From kde-commits Wed Jul 23 07:41:57 2008 From: Pradeepto Bhattacharya Date: Wed, 23 Jul 2008 07:41:57 +0000 To: kde-commits Subject: branches/KDE/3.5/kdepim Message-Id: <1216798917.051608.6766.nullmailer () svn ! kde ! org> X-MARC-Message: https://marc.info/?l=kde-commits&m=121679892825213 SVN commit 836861 by pradeepto: 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. ........ _M . (directory) M +34 -12 kmail/searchwindow.cpp M +6 -2 kmail/searchwindow.h ** branches/KDE/3.5/kdepim #property svnmerge-integrated - /branches/kdepim/enterprise/kdepim:1-767022,767033,767233-767554,767556,767558-767946,767948-769318,769320-769354,769356-771105,771107-771251,771253-772311,772313-772316,772318-775194,775196-775202,775204,775207-775211,775213-778001,778003-778004,778007,778010-778011,778013-778029,778031-778727,778729-779448,779450-779482,779484-779505,779507-779852,779854-779994,780211,780251,781595,782647-783127,783129-783243,783245,783248-783477,783479-783847,784129,784547,785316-785317,787827,788634,789925,817568,817604,817710-818288,818312-819076,819078-820073,820075-821035,821037-821124,821126-821378,821380-821648,821650-821813,821815-821835,821837-822268,822270-823864,823866-824217,824219-824277,824279-824285,824287-824288,824290-824805,824807-825075,825077-825083,825085-826354,826356-827491,830100,830443 + /branches/kdepim/enterprise/kdepim:1-767022,767033,767233-767554,767556,767558-767946,767948-769318,769320-769354,769356-771105,771107-771251,771253-772311,772313-772316,772318-775194,775196-775202,775204,775207-775211,775213-778001,778003-778004,778007,778010-778011,778013-778029,778031-778727,778729-779448,779450-779482,779484-779505,779507-779852,779854-779994,780211,780251,781595,782647-783127,783129-783243,783245,783248-783477,783479-783847,784129,784547,785316-785317,787827,788634,789925,790349-790352,817568,817604,817710-818288,818312-819076,819078-820073,820075-821035,821037-821124,821126-821378,821380-821648,821650-821813,821815-821835,821837-822268,822270-823864,823866-824217,824219-824277,824279-824285,824287-824288,824290-824805,824807-825075,825077-825083,825085-826354,826356-827491,830100,830443 --- branches/KDE/3.5/kdepim/kmail/searchwindow.cpp #836860:836861 @@ -239,6 +239,8 @@ 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 @@ 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 @@ 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 @@ 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 @@ mLbxMatches->setSorting(mSortColumn, mSortOrder == Ascending); mLbxMatches->setShowSortIndicator(true); + + mSearchFolderEdt->setEnabled(true); } void SearchWindow::slotAddMsg(int idx) @@ -625,9 +628,15 @@ } //----------------------------------------------------------------------------- -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 @@ ++i; } } + mSearchFolderOpenBtn->setEnabled(true); } void SearchWindow::openSearchFolder() @@ -693,6 +703,18 @@ } //----------------------------------------------------------------------------- +void SearchWindow::slotShowSelectedMsg() +{ + slotShowMsg(mLbxMatches->currentItem()); +} + +//----------------------------------------------------------------------------- +void SearchWindow::slotCurrentChanged(QListViewItem *item) +{ + mSearchResultOpenBtn->setEnabled(item!=0); +} + +//----------------------------------------------------------------------------- void SearchWindow::enableGUI() { KMSearch const *search = (mFolder) ? (mFolder->search()) : 0; --- branches/KDE/3.5/kdepim/kmail/searchwindow.h #836860:836861 @@ -25,6 +25,7 @@ #include #include #include +#include #include #include @@ -108,11 +109,13 @@ 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 @@ KListView* mLbxMatches; QLabel *mSearchFolderLbl; QLineEdit *mSearchFolderEdt; - QPushButton *mSearchFolderBtn; QPushButton *mSearchFolderOpenBtn; + QPushButton *mSearchResultOpenBtn; KStatusBar* mStatusBar; QWidget* mLastFocus; // to remember the position of the focus QMap mMenuToFolder; @@ -178,6 +181,7 @@ *mCopyAction, *mCutAction; KActionMenu *mForwardActionMenu; QValueList > mFolders; + QTimer mRenameTimer; // not owned by us KMMainWidget* mKMMainWidget;