Merged revisions 790349-790352 via svnmerge from

svn+ssh://pradeepto@svn.kde.org/home/kde/branches/kdepim/enterprise/kdepim

........
  r790349 | ervin | 2008-03-26 21:38:28 +0530 (Wed, 26 Mar 2008) | 4 lines
  
  No need for this extra open of the search folder. It's supposed to be
  already opened, and avoid one extra close in the SearchWindow dtor (was
  crashing kmail if the search folder was opened after being renamed).
........
  r790352 | ervin | 2008-03-26 21:58:20 +0530 (Wed, 26 Mar 2008) | 7 lines
  
  Add an "Open Message" button, and the old open button is now "Open
  Search Folder". Removed the "Rename" button, now the search folder is
  renamed "as you type" (after a small delay).
  
  Fixes kolab/issue2217.
........

svn path=/branches/KDE/3.5/kdepim/; revision=836861
wilder-work
Pradeepto Bhattacharya 18 years ago
parent d1e0241218
commit 4ac02f8743
  1. 46
      searchwindow.cpp
  2. 8
      searchwindow.h

@ -239,6 +239,8 @@ SearchWindow::SearchWindow(KMMainWidget* w, const char* name,
connect(mLbxMatches, SIGNAL(doubleClicked(QListViewItem *)),
this, SLOT(slotShowMsg(QListViewItem *)));
connect(mLbxMatches, SIGNAL(currentChanged(QListViewItem *)),
this, SLOT(slotCurrentChanged(QListViewItem *)));
connect( mLbxMatches, SIGNAL( contextMenuRequested( QListViewItem*, const QPoint &, int )),
this, SLOT( slotContextMenuRequested( QListViewItem*, const QPoint &, int )));
vbl->addWidget(mLbxMatches);
@ -254,18 +256,20 @@ SearchWindow::SearchWindow(KMMainWidget* w, const char* name,
mSearchFolderLbl->setBuddy(mSearchFolderEdt);
hbl2->addWidget(mSearchFolderEdt);
mSearchFolderBtn = new QPushButton(i18n("&Rename"), searchWidget);
mSearchFolderBtn->setEnabled(false);
hbl2->addWidget(mSearchFolderBtn);
mSearchFolderOpenBtn = new QPushButton(i18n("Op&en"), searchWidget);
mSearchFolderOpenBtn = new QPushButton(i18n("Op&en Search Folder"), searchWidget);
mSearchFolderOpenBtn->setEnabled(false);
hbl2->addWidget(mSearchFolderOpenBtn);
connect( mSearchFolderEdt, SIGNAL( textChanged( const QString &)),
this, SLOT( updateCreateButton( const QString & )));
connect( mSearchFolderBtn, SIGNAL( clicked() ),
this, SLOT( scheduleRename( const QString & )));
connect( &mRenameTimer, SIGNAL( timeout() ),
this, SLOT( renameSearchFolder() ));
connect( mSearchFolderOpenBtn, SIGNAL( clicked() ),
this, SLOT( openSearchFolder() ));
mSearchResultOpenBtn = new QPushButton(i18n("Open &Message"), searchWidget);
mSearchResultOpenBtn->setEnabled(false);
hbl2->addWidget(mSearchResultOpenBtn);
connect( mSearchResultOpenBtn, SIGNAL( clicked() ),
this, SLOT( slotShowSelectedMsg() ));
mStatusBar = new KStatusBar(searchWidget);
mStatusBar->insertFixedItem(i18n("AMiddleLengthText..."), 0, true);
mStatusBar->changeItem(i18n("Ready."), 0);
@ -509,6 +513,7 @@ void SearchWindow::slotSearch()
this, SLOT(slotAddMsg(int)));
connect(mFolder, SIGNAL(msgRemoved(KMFolder*, Q_UINT32)),
this, SLOT(slotRemoveMsg(KMFolder*, Q_UINT32)));
mSearchFolderEdt->setEnabled(false);
KMSearch *search = new KMSearch();
connect(search, SIGNAL(finished(bool)),
this, SLOT(searchDone()));
@ -527,10 +532,6 @@ void SearchWindow::slotSearch()
mFolder->setSearch(search);
enableGUI();
if (mFolder && !mFolders.contains(mFolder.operator->()->folder())) {
mFolder->open("searchwindow");
mFolders.append(mFolder.operator->()->folder());
}
mTimer->start(200);
}
@ -548,6 +549,8 @@ void SearchWindow::searchDone()
mLbxMatches->setSorting(mSortColumn, mSortOrder == Ascending);
mLbxMatches->setShowSortIndicator(true);
mSearchFolderEdt->setEnabled(true);
}
void SearchWindow::slotAddMsg(int idx)
@ -625,9 +628,15 @@ void SearchWindow::closeEvent(QCloseEvent *e)
}
//-----------------------------------------------------------------------------
void SearchWindow::updateCreateButton( const QString &s)
void SearchWindow::scheduleRename( const QString &s)
{
mSearchFolderBtn->setEnabled(s != i18n("Last Search") && mSearchFolderOpenBtn->isEnabled());
if (!s.isEmpty() && s != i18n("Last Search")) {
mRenameTimer.start(250, true);
mSearchFolderOpenBtn->setEnabled(false);
} else {
mRenameTimer.stop();
mSearchFolderOpenBtn->setEnabled(true);
}
}
//-----------------------------------------------------------------------------
@ -647,6 +656,7 @@ void SearchWindow::renameSearchFolder()
++i;
}
}
mSearchFolderOpenBtn->setEnabled(true);
}
void SearchWindow::openSearchFolder()
@ -692,6 +702,18 @@ bool SearchWindow::slotShowMsg(QListViewItem *item)
return true;
}
//-----------------------------------------------------------------------------
void SearchWindow::slotShowSelectedMsg()
{
slotShowMsg(mLbxMatches->currentItem());
}
//-----------------------------------------------------------------------------
void SearchWindow::slotCurrentChanged(QListViewItem *item)
{
mSearchResultOpenBtn->setEnabled(item!=0);
}
//-----------------------------------------------------------------------------
void SearchWindow::enableGUI()
{

@ -25,6 +25,7 @@
#include <qptrlist.h>
#include <qstringlist.h>
#include <qguardedptr.h>
#include <qtimer.h>
#include <kdialogbase.h>
#include <kxmlguiclient.h>
@ -108,11 +109,13 @@ protected slots:
virtual void slotClose();
virtual void slotSearch();
virtual void slotStop();
void updateCreateButton( const QString &);
void scheduleRename( const QString &);
void renameSearchFolder();
void openSearchFolder();
void folderInvalidated(KMFolder *);
virtual bool slotShowMsg(QListViewItem *);
void slotShowSelectedMsg();
void slotCurrentChanged(QListViewItem *);
virtual void updateContextMenuActions();
virtual void slotContextMenuRequested( QListViewItem*, const QPoint &, int );
virtual void copySelectedToFolder( int menuId );
@ -167,8 +170,8 @@ protected:
KListView* mLbxMatches;
QLabel *mSearchFolderLbl;
QLineEdit *mSearchFolderEdt;
QPushButton *mSearchFolderBtn;
QPushButton *mSearchFolderOpenBtn;
QPushButton *mSearchResultOpenBtn;
KStatusBar* mStatusBar;
QWidget* mLastFocus; // to remember the position of the focus
QMap<int,KMFolder*> mMenuToFolder;
@ -178,6 +181,7 @@ protected:
*mCopyAction, *mCutAction;
KActionMenu *mForwardActionMenu;
QValueList<QGuardedPtr<KMFolder> > mFolders;
QTimer mRenameTimer;
// not owned by us
KMMainWidget* mKMMainWidget;

Loading…
Cancel
Save