|
|
|
|
@ -35,6 +35,7 @@ KMFolderDialog::KMFolderDialog(KMFolder* aFolder, KMFolderDir *aFolderDir, |
|
|
|
|
KDialogBase::Ok, aParent, "KMFolderDialog", TRUE ), |
|
|
|
|
folder((KMAcctFolder*)aFolder),mFolderDir( aFolderDir ) |
|
|
|
|
{ |
|
|
|
|
mFolder = aFolder; |
|
|
|
|
qDebug("KMFolderDialog::KMFolderDialog()"); |
|
|
|
|
|
|
|
|
|
// Main tab
|
|
|
|
|
@ -61,8 +62,8 @@ KMFolderDialog::KMFolderDialog(KMFolder* aFolder, KMFolderDir *aFolderDir, |
|
|
|
|
|
|
|
|
|
hl->addSpacing( spacingHint() ); |
|
|
|
|
|
|
|
|
|
label = new QLabel( i18n("File under:" ), page ); |
|
|
|
|
hl->addWidget( label ); |
|
|
|
|
QLabel *label2 = new QLabel( i18n("File under:" ), page ); |
|
|
|
|
hl->addWidget( label2 ); |
|
|
|
|
|
|
|
|
|
fileInFolder = new QComboBox(page); |
|
|
|
|
hl->addWidget( fileInFolder ); |
|
|
|
|
@ -88,6 +89,13 @@ KMFolderDialog::KMFolderDialog(KMFolder* aFolder, KMFolderDir *aFolderDir, |
|
|
|
|
fileInFolder->setCurrentItem( i ); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (aFolder->account()) { |
|
|
|
|
label->setEnabled( false ); |
|
|
|
|
nameEdit->setEnabled( false ); |
|
|
|
|
label2->setEnabled( false ); |
|
|
|
|
fileInFolder->setEnabled( false ); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// Mailing-list data tab
|
|
|
|
|
//
|
|
|
|
|
page = addPage( i18n("Associated Mailing List"), i18n("Email addresses of the mailing-list related to this folder") ); |
|
|
|
|
@ -138,60 +146,62 @@ KMFolderDialog::KMFolderDialog(KMFolder* aFolder, KMFolderDir *aFolderDir, |
|
|
|
|
//-----------------------------------------------------------------------------
|
|
|
|
|
void KMFolderDialog::slotOk() |
|
|
|
|
{ |
|
|
|
|
QString acctName; |
|
|
|
|
QString fldName, oldFldName; |
|
|
|
|
KMFolderDir *selectedFolderDir = &(kernel->folderMgr()->dir()); |
|
|
|
|
int curFolder = fileInFolder->currentItem(); |
|
|
|
|
|
|
|
|
|
if (folder) oldFldName = folder->name(); |
|
|
|
|
if (!nameEdit->text().isEmpty()) fldName = nameEdit->text(); |
|
|
|
|
else fldName = oldFldName; |
|
|
|
|
fldName.replace(QRegExp("/"), ""); |
|
|
|
|
if (fldName.isEmpty()) fldName = i18n("unnamed"); |
|
|
|
|
if (curFolder != 0) |
|
|
|
|
selectedFolderDir = (*mFolders.at(curFolder - 1))->createChildFolder(); |
|
|
|
|
|
|
|
|
|
QString message = i18n( "Failed to create folder '%1', folder already exists." ).arg(fldName); |
|
|
|
|
if ((selectedFolderDir->hasNamedFolder(fldName)) && |
|
|
|
|
if (!mFolder || !mFolder->account()) |
|
|
|
|
{ |
|
|
|
|
QString acctName; |
|
|
|
|
QString fldName, oldFldName; |
|
|
|
|
KMFolderDir *selectedFolderDir = &(kernel->folderMgr()->dir()); |
|
|
|
|
int curFolder = fileInFolder->currentItem(); |
|
|
|
|
|
|
|
|
|
if (folder) oldFldName = folder->name(); |
|
|
|
|
if (!nameEdit->text().isEmpty()) fldName = nameEdit->text(); |
|
|
|
|
else fldName = oldFldName; |
|
|
|
|
fldName.replace(QRegExp("/"), ""); |
|
|
|
|
if (fldName.isEmpty()) fldName = i18n("unnamed"); |
|
|
|
|
if (curFolder != 0) |
|
|
|
|
selectedFolderDir = (*mFolders.at(curFolder - 1))->createChildFolder(); |
|
|
|
|
|
|
|
|
|
QString message = i18n( "Failed to create folder '%1', folder already exists." ).arg(fldName); |
|
|
|
|
if ((selectedFolderDir->hasNamedFolder(fldName)) && |
|
|
|
|
(!((folder) && |
|
|
|
|
(selectedFolderDir == folder->parent()) && |
|
|
|
|
(folder->name() == fldName)))) { |
|
|
|
|
KMessageBox::error( this, message ); |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
(selectedFolderDir == folder->parent()) && |
|
|
|
|
(folder->name() == fldName)))) { |
|
|
|
|
KMessageBox::error( this, message ); |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
message = i18n( "Cannot move a parent folder into a child folder." ); |
|
|
|
|
KMFolderDir* folderDir = selectedFolderDir; |
|
|
|
|
message = i18n( "Cannot move a parent folder into a child folder." ); |
|
|
|
|
KMFolderDir* folderDir = selectedFolderDir; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Buggy?
|
|
|
|
|
if (folder && folder->child()) |
|
|
|
|
while ((folderDir != &kernel->folderMgr()->dir()) && |
|
|
|
|
(folderDir != folder->parent())){ |
|
|
|
|
if (folderDir->findRef( folder ) != -1) { |
|
|
|
|
KMessageBox::error( this, message ); |
|
|
|
|
return; |
|
|
|
|
// Buggy?
|
|
|
|
|
if (folder && folder->child()) |
|
|
|
|
while ((folderDir != &kernel->folderMgr()->dir()) && |
|
|
|
|
(folderDir != folder->parent())){ |
|
|
|
|
if (folderDir->findRef( folder ) != -1) { |
|
|
|
|
KMessageBox::error( this, message ); |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
folderDir = folderDir->parent(); |
|
|
|
|
} |
|
|
|
|
folderDir = folderDir->parent(); |
|
|
|
|
} |
|
|
|
|
// End buggy?
|
|
|
|
|
// End buggy?
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (folder && folder->child() && (selectedFolderDir) && |
|
|
|
|
if (folder && folder->child() && (selectedFolderDir) && |
|
|
|
|
(selectedFolderDir->path().find( folder->child()->path() + "/" ) == 0)) { |
|
|
|
|
KMessageBox::error( this, message ); |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
KMessageBox::error( this, message ); |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (folder && folder->child() && (selectedFolderDir == folder->child())) { |
|
|
|
|
KMessageBox::error( this, message ); |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
if (folder && folder->child() && (selectedFolderDir == folder->child())) { |
|
|
|
|
KMessageBox::error( this, message ); |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (!folder) { |
|
|
|
|
folder = (KMAcctFolder*)kernel->folderMgr()->createFolder(fldName, FALSE, selectedFolderDir ); |
|
|
|
|
} |
|
|
|
|
else if ((oldFldName != fldName) || (folder->parent() != selectedFolderDir)) |
|
|
|
|
if (!folder) { |
|
|
|
|
folder = (KMAcctFolder*)kernel->folderMgr()->createFolder(fldName, FALSE, selectedFolderDir ); |
|
|
|
|
} |
|
|
|
|
else if ((oldFldName != fldName) || (folder->parent() != selectedFolderDir)) |
|
|
|
|
{ |
|
|
|
|
if (folder->parent() != selectedFolderDir) |
|
|
|
|
folder->rename(fldName, selectedFolderDir ); |
|
|
|
|
@ -199,6 +209,7 @@ void KMFolderDialog::slotOk() |
|
|
|
|
folder->rename(fldName); |
|
|
|
|
kernel->folderMgr()->contentsChanged(); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
folder->setMailingList( holdsMailingList->isChecked() ); |
|
|
|
|
folder->setMailingListPostAddress( mailingListPostAddress->text() ); |
|
|
|
|
|