Disable a few actions for imap folders that are not going to work in the near

future.

svn path=/trunk/kdenetwork/kmail/; revision=87551
wilder-work
Michael Haeckel 25 years ago
parent 942daa3644
commit 7ae243c1d1
  1. 103
      kmfolderdia.cpp
  2. 1
      kmfolderdia.h
  3. 11
      kmfoldertree.cpp

@ -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() );

@ -32,6 +32,7 @@ protected:
QComboBox *fileInFolder;
QLineEdit *nameEdit;
KMAcctFolder* folder;
KMFolder *mFolder;
KMFolderDir* mFolderDir;
QValueList<QGuardedPtr<KMFolder> > mFolders;

@ -688,7 +688,7 @@ void KMFolderTree::rightButtonPressed(QListViewItem *lvi, const QPoint &p, int)
QPopupMenu *folderMenu = new QPopupMenu;
KMFolderTreeItem* fti = static_cast<KMFolderTreeItem*>(lvi);
if (!fti || !fti->folder)
if (!fti || !fti->folder || fti->folder->isDir())
return;
int m1 = folderMenu->insertItem(i18n("&Create Child Folder..."), this,
@ -708,15 +708,14 @@ void KMFolderTree::rightButtonPressed(QListViewItem *lvi, const QPoint &p, int)
topLevelWidget(),
SLOT(slotCompose()));
if (fti->folder->isSystemFolder()) {
if (fti->folder->account() || fti->folder->isSystemFolder()) {
folderMenu->setItemEnabled(m1,false);
folderMenu->setItemEnabled(m2,false);
folderMenu->setItemEnabled(m3,false);
}
if (!fti->folder->isMailingList()) {
if (fti->folder->isSystemFolder())
folderMenu->setItemEnabled(m2,false);
if (!fti->folder->isMailingList())
folderMenu->setItemEnabled(m4,false);
}
folderMenu->exec (p, 0);
triggerUpdate();

Loading…
Cancel
Save