Better folder selection.

svn path=/trunk/kdepim/; revision=363517
wilder-work
Carsten Burghardt 22 years ago
parent 54c324f7b6
commit ef3e332895
  1. 1
      Makefile.am
  2. 32
      accountdialog.cpp
  3. 5
      accountdialog.h
  4. 20
      configuredialog.cpp
  5. 6
      configuredialog_p.h
  6. 41
      kmfolderdia.cpp
  7. 10
      kmfolderdia.h
  8. 109
      kmfolderseldlg.cpp
  9. 76
      kmfolderseldlg.h
  10. 4
      kmmainwidget.cpp

@ -108,6 +108,7 @@ libkmailprivate_la_SOURCES = kmmessage.cpp kmmainwin.cpp configuredialog.cpp \
composercryptoconfiguration.ui \
warningconfiguration.ui smimeconfiguration.ui annotationjobs.cpp \
accountcombobox.cpp redirectdialog.cpp foldershortcutdialog.cpp \
folderrequester.cpp \
replyphrases.kcfgc custommimeheader.kcfgc
kmail_SOURCES = main.cpp

@ -32,6 +32,7 @@
#include <qpushbutton.h>
#include <qwhatsthis.h>
#include <qhbox.h>
#include <qcombobox.h>
#include <kfiledialog.h>
#include <klocale.h>
@ -58,6 +59,10 @@ using KMail::SieveConfigEditor;
#include "kmfoldermgr.h"
#include "kmservertest.h"
#include "protocols.h"
#include "folderrequester.h"
using KMail::FolderRequester;
#include "kmmainwidget.h"
#include "kmfolder.h"
#include <cassert>
#include <stdlib.h>
@ -780,10 +785,10 @@ void AccountDialog::makeImapAccountPage( bool connected )
tabWidget->addTab( page1, i18n("&General") );
int row = -1;
QGridLayout *grid = new QGridLayout( page1, 15, 2, marginHint(), spacingHint() );
grid->addColSpacing( 1, fontMetrics().maxWidth()*15 );
grid->setRowStretch( 15, 10 );
grid->setColStretch( 1, 10 );
QGridLayout *grid = new QGridLayout( page1, 16, 2, marginHint(), spacingHint() );
grid->addColSpacing( 1, fontMetrics().maxWidth()*16 );
// grid->setRowStretch( 15, 10 );
// grid->setColStretch( 1, 10 );
++row;
QLabel *label = new QLabel( i18n("&Name:"), page1 );
@ -880,8 +885,8 @@ void AccountDialog::makeImapAccountPage( bool connected )
grid->addMultiCellWidget( mImap.listOnlyOpenCheck, row, row, 0, 1 );
}
++row;
#if 0
++row;
QHBox* resourceHB = new QHBox( page1 );
resourceHB->setSpacing( 11 );
mImap.resourceCheck =
@ -929,10 +934,13 @@ void AccountDialog::makeImapAccountPage( bool connected )
grid->addWidget( mImap.intervalSpin, row, 1 );
++row;
mImap.trashCombo = new KMFolderComboBox( page1 );
mImap.trashCombo->showOutboxFolder( FALSE );
label = new QLabel( i18n("&Trash folder:"), page1 );
grid->addWidget( label, row, 0 );
mImap.trashCombo = new FolderRequester( page1,
kmkernel->getKMMainWidget()->folderTree() );
mImap.trashCombo->setShowOutbox( false );
label->setBuddy( mImap.trashCombo );
grid->addWidget( mImap.trashCombo, row, 1 );
grid->addWidget( new QLabel( mImap.trashCombo, i18n("&Trash folder:"), page1 ), row, 0 );
QWidget *page2 = new QWidget( tabWidget );
tabWidget->addTab( page2, i18n("S&ecurity") );
@ -1672,9 +1680,9 @@ void AccountDialog::saveSettings()
epa.setListOnlyOpenFolders( mImap.listOnlyOpenCheck->isChecked() );
epa.setStorePasswd( mImap.storePasswordCheck->isChecked() );
epa.setPasswd( mImap.passwordEdit->text(), epa.storePasswd() );
KMFolder *t = mImap.trashCombo->getFolder();
KMFolder *t = mImap.trashCombo->folder();
if ( t )
epa.setTrash( mImap.trashCombo->getFolder()->idString() );
epa.setTrash( mImap.trashCombo->folder()->idString() );
else
epa.setTrash( kmkernel->trashFolder()->idString() );
#if 0
@ -1727,9 +1735,9 @@ void AccountDialog::saveSettings()
epa.setOnlySubscribedFolders( mImap.subscribedFoldersCheck->isChecked() );
epa.setStorePasswd( mImap.storePasswordCheck->isChecked() );
epa.setPasswd( mImap.passwordEdit->text(), epa.storePasswd() );
KMFolder *t = mImap.trashCombo->getFolder();
KMFolder *t = mImap.trashCombo->folder();
if ( t )
epa.setTrash( mImap.trashCombo->getFolder()->idString() );
epa.setTrash( mImap.trashCombo->folder()->idString() );
else
epa.setTrash( kmkernel->trashFolder()->idString() );
#if 0

@ -24,7 +24,7 @@
#define _ACCOUNT_DIALOG_H_
#include <kdialogbase.h>
#include "kmfoldercombobox.h"
#include <qguardedptr.h>
class QRegExpValidator;
class QCheckBox;
@ -40,6 +40,7 @@ class KMServerTest;
class QButtonGroup;
namespace KMail {
class SieveConfigEditor;
class FolderRequester;
}
class AccountDialog : public KDialogBase
@ -176,7 +177,7 @@ class AccountDialog : public KDialogBase
QRadioButton *authNTLM;
QRadioButton *authAnonymous;
QPushButton *checkCapabilities;
KMFolderComboBox *trashCombo;
KMail::FolderRequester *trashCombo;
};
private slots:

@ -46,9 +46,13 @@
#include <composercryptoconfiguration.h>
#include <warningconfiguration.h>
#include <smimeconfiguration.h>
#include "folderrequester.h"
using KMail::FolderRequester;
#include "accountcombobox.h"
#include "imapaccountbase.h"
#include "folderstorage.h"
#include "kmfolder.h"
#include "kmmainwidget.h"
using KMail::IdentityListView;
using KMail::IdentityListViewItem;
@ -3905,12 +3909,13 @@ MiscPageFolderTab::MiscPageFolderTab( QWidget * parent, const char * name )
// "On startup..." option:
hlay = new QHBoxLayout( vlay ); // inherits spacing
mOnStartupOpenFolder = new KMFolderComboBox( this );
mOnStartupOpenFolder = new FolderRequester( this,
kmkernel->getKMMainWidget()->folderTree() );
label = new QLabel( mOnStartupOpenFolder,
i18n("Open this folder on startup:"), this );
hlay->addWidget( label );
hlay->addWidget( mOnStartupOpenFolder, 1 );
connect( mOnStartupOpenFolder, SIGNAL( activated( int ) ),
connect( mOnStartupOpenFolder, SIGNAL( folderChanged( KMFolder* ) ),
this, SLOT( slotEmitChanged( void ) ) );
// "Empty &trash on program exit" option:
@ -3983,8 +3988,8 @@ void MiscPage::FolderTab::save() {
general.writeEntry( "empty-trash-on-exit", mEmptyTrashCheck->isChecked() );
general.writeEntry( "confirm-before-empty", mEmptyFolderConfirmCheck->isChecked() );
general.writeEntry( "default-mailbox-format", mMailboxPrefCombo->currentItem() );
general.writeEntry( "startupFolder", mOnStartupOpenFolder->getFolder() ?
mOnStartupOpenFolder->getFolder()->idString() : QString::null );
general.writeEntry( "startupFolder", mOnStartupOpenFolder->folder() ?
mOnStartupOpenFolder->folder()->idString() : QString::null );
GlobalSettings::setDelayedMarkAsRead( mDelayedMarkAsRead->isChecked() );
GlobalSettings::setDelayedMarkTime( mDelayedMarkTime->value() );
@ -4076,11 +4081,12 @@ MiscPageGroupwareTab::MiscPageGroupwareTab( QWidget* parent, const char* name )
// First possibility in the widgetstack: a combo showing the list of all folders
// This is used with the ical/vcard storage
mFolderCombo = new KMFolderComboBox( mBox );
mFolderCombo = new FolderRequester( mBox,
kmkernel->getKMMainWidget()->folderTree() );
mFolderComboStack->addWidget( mFolderCombo, 0 );
QToolTip::add( mFolderCombo, toolTip );
QWhatsThis::add( mFolderCombo, whatsThis );
connect( mFolderCombo, SIGNAL( activated( int ) ),
connect( mFolderCombo, SIGNAL( folderChanged( KMFolder* ) ),
this, SLOT( slotEmitChanged() ) );
// Second possibility in the widgetstack: a combo showing the list of accounts
@ -4242,7 +4248,7 @@ void MiscPage::GroupwareTab::save() {
// return 0. In that case we really don't have it enabled
QString folderId;
if ( format == 0 ) {
KMFolder* folder = mFolderCombo->getFolder();
KMFolder* folder = mFolderCombo->folder();
if ( folder )
folderId = folder->idString();
} else {

@ -32,7 +32,6 @@ class QListBox;
class QButtonGroup;
class QRegExpValidator;
class QVBox;
class KMFolderComboBox;
class KMAccount;
class KMTransportInfo;
class ListView;
@ -52,6 +51,7 @@ namespace KMail {
class IdentityDialog;
class IdentityListView;
class AccountComboBox;
class FolderRequester;
}
namespace Kleo {
class BackendConfigWidget;
@ -846,7 +846,7 @@ protected:
QCheckBox *mDelayedMarkAsRead;
KIntSpinBox *mDelayedMarkTime;
QCheckBox *mShowPopupAfterDnD;
KMFolderComboBox *mOnStartupOpenFolder;
KMail::FolderRequester *mOnStartupOpenFolder;
};
class MiscPageGroupwareTab : public ConfigModuleTab {
@ -872,7 +872,7 @@ private:
QLabel* mFolderComboLabel;
QWidgetStack* mFolderComboStack;
KMFolderComboBox* mFolderCombo; // in the widgetstack
KMail::FolderRequester* mFolderCombo; // in the widgetstack
KMail::AccountComboBox* mAccountCombo; // in the widgetstack
QCheckBox* mHideGroupwareFolders;

@ -48,6 +48,8 @@
#include "kmailicalifaceimpl.h"
#include "kmmainwidget.h"
#include "globalsettings.h"
#include "folderrequester.h"
using KMail::FolderRequester;
#include <keditlistbox.h>
#include <klineedit.h>
@ -86,7 +88,8 @@ KMFolderDialog::KMFolderDialog(KMFolder *aFolder, KMFolderDir *aFolderDir,
mFolderDir( aFolderDir ),
mParentFolder( 0 ),
mPositionInFolderList( 0 ),
mIsNewFolder( aFolder == 0 )
mIsNewFolder( aFolder == 0 ),
mFolderTree( aParent )
{
kdDebug(5006)<<"KMFolderDialog::KMFolderDialog()" << endl;
@ -285,9 +288,9 @@ KMail::FolderDiaGeneralTab::FolderDiaGeneralTab( KMFolderDialog* dlg,
QLabel* belongsToLabel = new QLabel( i18n("&Belongs to:" ), fpGroup );
hl->addWidget( belongsToLabel );
mBelongsToComboBox = new QComboBox(fpGroup);
hl->addWidget( mBelongsToComboBox );
belongsToLabel->setBuddy( mBelongsToComboBox );
mBelongsTo = new FolderRequester( fpGroup, mDlg->folderTree() );
hl->addWidget( mBelongsTo );
belongsToLabel->setBuddy( mBelongsTo );
//start icons group
QGroupBox *iconGroup = new QGroupBox( i18n("Folder Icons"), this, "iconGroup" );
@ -373,9 +376,9 @@ KMail::FolderDiaGeneralTab::FolderDiaGeneralTab( KMFolderDialog* dlg,
ml->addWidget( mMailboxTypeComboBox );
ml->addStretch( 1 );
mBelongsToComboBox->insertStringList( mDlg->folderNameList() );
// we want to know if the activated changes
connect( mBelongsToComboBox, SIGNAL(activated(int)), SLOT(slotUpdateItems(int)) );
connect( mBelongsTo, SIGNAL(folderChanged(KMFolder*)),
SLOT(slotUpdateItems(KMFolder*)) );
QGroupBox *idGroup = new QGroupBox( i18n("Identity" ), this );
idGroup->setColumnLayout( 0, Qt::Vertical );
@ -547,8 +550,8 @@ KMail::FolderDiaGeneralTab::FolderDiaGeneralTab( KMFolderDialog* dlg,
KMFolder* parentFolder = mDlg->parentFolder();
if ( parentFolder ) {
mBelongsToComboBox->setCurrentItem( mDlg->positionInFolderList() );
slotUpdateItems( mDlg->positionInFolderList() );
mBelongsTo->setFolder( parentFolder );
slotUpdateItems( parentFolder );
}
if ( mDlg->folder() ) {
@ -560,7 +563,7 @@ KMail::FolderDiaGeneralTab::FolderDiaGeneralTab( KMFolderDialog* dlg,
case KMFolderTypeSearch:
mMailboxTypeComboBox->setCurrentItem( 2 );
belongsToLabel->hide();
mBelongsToComboBox->hide();
mBelongsTo->hide();
newmailGroup->hide();
break;
case KMFolderTypeMaildir:
@ -573,12 +576,12 @@ KMail::FolderDiaGeneralTab::FolderDiaGeneralTab( KMFolderDialog* dlg,
break;
case KMFolderTypeImap:
belongsToLabel->setEnabled( false );
mBelongsToComboBox->setEnabled( false );
mBelongsTo->setEnabled( false );
mMailboxTypeGroupBox->hide();
break;
case KMFolderTypeCachedImap:
belongsToLabel->setEnabled( false );
mBelongsToComboBox->setEnabled( false );
mBelongsTo->setEnabled( false );
mMailboxTypeGroupBox->hide();
newmailGroup->hide();
break;
@ -595,7 +598,7 @@ KMail::FolderDiaGeneralTab::FolderDiaGeneralTab( KMFolderDialog* dlg,
case KMFolderTypeSearch:
mMailboxTypeComboBox->setCurrentItem( 2 );
belongsToLabel->hide();
mBelongsToComboBox->hide();
mBelongsTo->hide();
newmailGroup->hide();
break;
case KMFolderTypeMaildir:
@ -613,6 +616,9 @@ KMail::FolderDiaGeneralTab::FolderDiaGeneralTab( KMFolderDialog* dlg,
break;
default: ;
}
} else {
// creating new top level local folder
newmailGroup->hide();
}
// Musn't be able to edit details for a system folder.
@ -684,11 +690,8 @@ void FolderDiaGeneralTab::slotFolderNameChanged( const QString& str )
}
//-----------------------------------------------------------------------------
void FolderDiaGeneralTab::slotUpdateItems ( int current )
void FolderDiaGeneralTab::slotUpdateItems ( KMFolder* selectedFolder )
{
KMFolder* selectedFolder = 0;
// check if the index is valid (the top level has no entrance in the mDlg->folders())
if (current > 0) selectedFolder = *mDlg->folders().at(current - 1);
if (selectedFolder && (selectedFolder->folderType() == KMFolderTypeImap ||
selectedFolder->folderType() == KMFolderTypeCachedImap))
{
@ -744,8 +747,7 @@ bool FolderDiaGeneralTab::save()
QString acctName;
QString fldName, oldFldName;
KMFolderDir *selectedFolderDir = &(kmkernel->folderMgr()->dir());
KMFolder *selectedFolder = 0;
int curFolder = mBelongsToComboBox->currentItem();
KMFolder *selectedFolder = mBelongsTo->folder();
if( !mDlg->isNewFolder() ) oldFldName = mDlg->folder()->name();
if (!mNameEdit->text().isEmpty()) fldName = mNameEdit->text();
@ -760,9 +762,8 @@ bool FolderDiaGeneralTab::save()
if (mMailboxTypeComboBox->currentItem() == 2) {
selectedFolderDir = &(kmkernel->searchFolderMgr()->dir());
}
else if (curFolder != 0)
else if (selectedFolder)
{
selectedFolder = *mDlg->folders().at(curFolder - 1);
selectedFolderDir = selectedFolder->createChildFolder();
}

@ -55,6 +55,7 @@ namespace KPIM { class IdentityCombo; }
class KMFolderDialog;
class KMFolderTree;
template <typename T> class QGuardedPtr;
namespace KMail { class FolderRequester; }
namespace KMail {
@ -128,7 +129,7 @@ private slots:
* is called if the folder dropdown changes
* then we update the other items to reflect the capabilities
*/
void slotUpdateItems( int );
void slotUpdateItems( KMFolder* );
void slotFolderNameChanged( const QString& );
void slotFolderContentsSelectionChanged( int );
@ -136,13 +137,12 @@ private:
void initializeWithValuesFromFolder( KMFolder* folder );
private:
QComboBox *mBelongsToComboBox;
FolderRequester *mBelongsTo;
QComboBox *mMailboxTypeComboBox;
QComboBox *mShowSenderReceiverComboBox;
QComboBox *mContentsComboBox;
QGroupBox *mIncidencesForGroup;
QComboBox *mIncidencesForComboBox;
QLineEdit *mNameEdit;
QLabel *mNormalIconLabel;
KIconButton *mNormalIconButton;
QLabel *mUnreadIconLabel;
@ -151,6 +151,7 @@ private:
QCheckBox *mNewMailCheckBox;
QCheckBox *mIgnoreNewMailCheckBox;
QCheckBox *mKeepRepliesInSameFolderCheckBox;
KLineEdit *mNameEdit;
KPIM::IdentityCombo *mIdentityComboBox;
QGroupBox *mMailboxTypeGroupBox;
@ -263,6 +264,8 @@ public:
KMFolder* parentFolder() const { return mParentFolder; }
int positionInFolderList() const { return mPositionInFolderList; }
KMFolderTree* folderTree() const { return mFolderTree; }
protected slots:
void slotChanged( bool );
virtual void slotOk();
@ -291,6 +294,7 @@ private:
QValueVector<KMail::FolderDiaTab*> mTabs;
int mDelayedSavingTabs; // this should go into a base class one day
KMFolderTree* mFolderTree;
};
#endif /*__KMFOLDERDIA*/

@ -7,9 +7,10 @@
#include "globalsettings.h"
#include <kdebug.h>
#include <qvbox.h>
#include <klineedit.h>
#include <assert.h>
#include <qlayout.h>
#include <qtoolbutton.h>
namespace KMail {
@ -58,28 +59,45 @@ SimpleFolderTree::SimpleFolderTree( QWidget * parent,
KMFolderTree * folderTree,
const QString & preSelection,
bool mustBeReadWrite )
: KListView( parent )
: KListView( parent ), mFolderTree( folderTree )
{
assert( folderTree );
int columnIdx = addColumn( i18n( "Folder" ) );
mFolderColumn = addColumn( i18n( "Folder" ) );
setRootIsDecorated( true );
setSorting( -1 );
reload( mustBeReadWrite, true, true, preSelection );
}
void SimpleFolderTree::reload( bool mustBeReadWrite, bool showOutbox,
bool showImapFolders, const QString& preSelection )
{
clear();
FolderItem * lastItem = 0;
FolderItem * lastTopItem = 0;
FolderItem * selectedItem = 0;
int lastDepth = 0;
for ( QListViewItemIterator it( folderTree ) ; it.current() ; ++it ) {
QString selected = preSelection;
if ( selected.isEmpty() && folder() )
selected = folder()->idString();
for ( QListViewItemIterator it( mFolderTree ) ; it.current() ; ++it )
{
KMFolderTreeItem * fti = static_cast<KMFolderTreeItem *>( it.current() );
// search folders are never shown
if ( !fti || fti->protocol() == KFolderTreeItem::Search )
continue;
// imap folders?
if ( fti->protocol() == KFolderTreeItem::Imap && !showImapFolders )
continue;
// the outbox?
if ( fti->type() == KFolderTreeItem::Outbox && !showOutbox )
continue;
int depth = fti->depth();// - 1;
//kdDebug( 5006 ) << "LastDepth=" << lastDepth << "\tdepth=" << depth
// << "\tname=" << fti->text( 0 ) << endl;
FolderItem * item = 0;
if ( depth <= 0 ) {
// top level - first top level item or after last existing top level item
@ -119,14 +137,14 @@ SimpleFolderTree::SimpleFolderTree( QWidget * parent,
}
}
item->setText( columnIdx, fti->text( 0 ) );
item->setText( mFolderColumn, fti->text( 0 ) );
// Make items without folders and top level items unselectable
// (i.e. root item Local Folders and IMAP accounts)
if ( !fti->folder() || depth == 0 || ( mustBeReadWrite && fti->folder()->isReadOnly() ) ) {
item->setSelectable( false );
} else {
item->setFolder( fti->folder() );
if ( preSelection == item->folder()->idString() )
if ( selected == item->folder()->idString() )
selectedItem = item;
}
lastItem = item;
@ -143,27 +161,49 @@ SimpleFolderTree::SimpleFolderTree( QWidget * parent,
const KMFolder * SimpleFolderTree::folder() const
{
QListViewItem * item = currentItem();
if( item ) {
if ( item ) {
const KMFolder * folder = static_cast<FolderItem *>( item )->folder();
if( folder ) return folder;
}
return 0;
}
} // namespace KMail
//-----------------------------------------------------------------------------
void SimpleFolderTree::setFolder( KMFolder *folder )
{
for ( QListViewItemIterator it( this ) ; it.current() ; ++it )
{
const KMFolder *fld = static_cast<FolderItem *>( it.current() )->folder();
if ( fld == folder )
{
setSelected( it.current(), true );
ensureItemVisible( it.current() );
}
}
}
//-----------------------------------------------------------------------------
void SimpleFolderTree::setFolder( const QString& idString )
{
setFolder( kmkernel->findFolderById( idString ) );
}
//-----------------------------------------------------------------------------
KMFolderSelDlg::KMFolderSelDlg( KMMainWidget * parent, const QString& caption, bool mustBeReadWrite )
KMFolderSelDlg::KMFolderSelDlg( KMMainWidget * parent, const QString& caption,
bool mustBeReadWrite, bool useGlobalSettings )
: KDialogBase( parent, "folder dialog", true, caption,
Ok|Cancel, Ok, true ) // mainwin as parent, modal
Ok|Cancel, Ok, true ), // mainwin as parent, modal
mUseGlobalSettings( useGlobalSettings )
{
KMFolderTree * ft = parent->folderTree();
assert( ft );
QString global = mUseGlobalSettings ?
GlobalSettings::lastSelectedFolder() : QString::null;
mTreeView = new KMail::SimpleFolderTree( makeVBoxMainWidget(), ft,
GlobalSettings::lastSelectedFolder(),
mustBeReadWrite );
global, mustBeReadWrite );
mTreeView->setFocus();
connect( mTreeView, SIGNAL( doubleClicked( QListViewItem*, const QPoint&, int ) ),
this, SLOT( slotSelect() ) );
@ -171,12 +211,30 @@ KMFolderSelDlg::KMFolderSelDlg( KMMainWidget * parent, const QString& caption, b
resize(220, 300);
}
//-----------------------------------------------------------------------------
KMFolderSelDlg::KMFolderSelDlg( QWidget * parent, KMFolderTree * tree,
const QString& caption, bool mustBeReadWrite, bool useGlobalSettings )
: KDialogBase( parent, "folder dialog", true, caption,
Ok|Cancel, Ok, true ), // mainwin as parent, modal
mUseGlobalSettings( useGlobalSettings )
{
QString global = mUseGlobalSettings ?
GlobalSettings::lastSelectedFolder() : QString::null;
mTreeView = new KMail::SimpleFolderTree( makeVBoxMainWidget(), tree,
global, mustBeReadWrite );
mTreeView->setFocus();
connect( mTreeView, SIGNAL( doubleClicked( QListViewItem*, const QPoint&, int ) ),
this, SLOT( slotSelect() ) );
resize(220, 300);
}
//-----------------------------------------------------------------------------
KMFolderSelDlg::~KMFolderSelDlg()
{
const KMFolder * cur = folder();
if ( cur ) {
if ( cur && mUseGlobalSettings ) {
GlobalSettings::setLastSelectedFolder( cur->idString() );
}
}
@ -188,12 +246,25 @@ KMFolder * KMFolderSelDlg::folder( void )
return ( KMFolder * ) mTreeView->folder();
}
//-----------------------------------------------------------------------------
void KMFolderSelDlg::setFolder( KMFolder* folder )
{
mTreeView->setFolder( folder );
}
//-----------------------------------------------------------------------------
void KMFolderSelDlg::slotSelect()
{
accept();
}
//-----------------------------------------------------------------------------
void KMFolderSelDlg::setFlags( bool mustBeReadWrite, bool showOutbox,
bool showImapFolders )
{
mTreeView->reload( mustBeReadWrite, showOutbox, showImapFolders );
}
} // namespace KMail
#include "kmfolderseldlg.moc"

@ -1,14 +1,13 @@
/* KMail Folder Selection Dialog
* Pops up a small window with a list of folders and Ok/Cancel buttons.
* Author: Stefan Taferner <taferner@kde.org>
* Carsten Burghardt <burghardt@kde.org>
*/
#ifndef kmfolderseldlg_h
#define kmfolderseldlg_h
#include <kdialogbase.h>
#include <klistview.h>
#include <qvaluelist.h>
#include <qguardedptr.h>
class KMFolder;
class KMFolderTree;
@ -22,32 +21,67 @@ namespace KMail {
SimpleFolderTree( QWidget * parent, KMFolderTree * folderTree,
const QString & preSelection, bool mustBeReadWrite );
/** Reload the tree and select what folders to show and what not */
void reload( bool mustBeReadWrite, bool showOutbox, bool showImapFolders,
const QString& preSelection = QString::null );
/** Return the current folder */
const KMFolder * folder() const;
/** Set the current folder */
void setFolder( KMFolder* );
void setFolder( const QString& idString );
private:
KMFolderTree* mFolderTree;
int mFolderColumn;
};
}
//-----------------------------------------------------------------------------
class KMFolderSelDlg: public KDialogBase
{
Q_OBJECT
//-----------------------------------------------------------------------------
class KMFolderSelDlg: public KDialogBase
{
Q_OBJECT
public:
/**
* Constructor with KMMainWidget
* @p parent @em must be a @see KMMainWin, because we
* need its foldertree.
* @param mustBeReadWrite if true, readonly folders are disabled
* @param useGlobalSettings if true, the current folder is read and
* written to GlobalSettings
*/
KMFolderSelDlg( KMMainWidget * parent, const QString& caption,
bool mustBeReadWrite, bool useGlobalSettings = true );
/**
* Constructor with separate KMFolderTree
* @param mustBeReadWrite if true, readonly folders are disabled
* @param useGlobalSettings if true, the current folder is read and
* written to GlobalSettings
*/
KMFolderSelDlg( QWidget * parent, KMFolderTree * tree,
const QString& caption, bool mustBeReadWrite,
bool useGlobalSettings = true );
public:
/** Constructor. @p parent @em must be a @see KMMainWin, because we
need its foldertree.
* @param mustBeReadWrite if true, readonly folders are disabled
*/
KMFolderSelDlg( KMMainWidget * parent, const QString& caption, bool mustBeReadWrite );
virtual ~KMFolderSelDlg();
virtual ~KMFolderSelDlg();
/** Returns selected folder */
virtual KMFolder* folder( void );
/** Returns selected folder */
virtual KMFolder* folder( void );
protected slots:
void slotSelect();
/** Set selected folder */
void setFolder( KMFolder* folder );
/** Set some flags what folders to show and what not */
void setFlags( bool mustBeReadWrite, bool showOutbox, bool showImapFolders );
protected slots:
void slotSelect();
protected:
SimpleFolderTree * mTreeView;
bool mUseGlobalSettings;
};
protected:
KMail::SimpleFolderTree * mTreeView;
};
} // namespace KMail
#endif /*kmfolderseldlg_h*/

@ -1406,7 +1406,7 @@ void KMMainWidget::slotToggleTotalColumn()
//-----------------------------------------------------------------------------
void KMMainWidget::slotMoveMsg()
{
KMFolderSelDlg dlg( this, i18n("Move Message to Folder"), true );
KMail::KMFolderSelDlg dlg( this, i18n("Move Message to Folder"), true );
KMFolder* dest;
if (!dlg.exec()) return;
@ -1487,7 +1487,7 @@ void KMMainWidget::slotStartWatchGnuPG()
//-----------------------------------------------------------------------------
void KMMainWidget::slotCopyMsg()
{
KMFolderSelDlg dlg( this, i18n("Copy Message to Folder"), true );
KMail::KMFolderSelDlg dlg( this, i18n("Copy Message to Folder"), true );
KMFolder* dest;
if (!dlg.exec()) return;

Loading…
Cancel
Save