Merged revisions 850412 via svnmerge from

svn+ssh://tmcguire@svn.kde.org/home/kde/branches/kdepim/enterprise4/kdepim

................
  r850412 | ervin | 2008-08-21 15:20:19 +0200 (Thu, 21 Aug 2008) | 19 lines
  
  Merged revisions 790349,790352 via svnmerge from 
  svn+ssh://ervin@svn.kde.org/home/kde/branches/kdepim/enterprise/kdepim
  
  ........
    r790349 | ervin | 2008-03-26 17:08:28 +0100 (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 17:28:20 +0100 (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=/trunk/KDE/kdepim/; revision=850604
wilder-work
Thomas McGuire 18 years ago
parent 9bba5ceec3
commit a21601f4a1
  1. 60
      searchwindow.cpp
  2. 8
      searchwindow.h

@ -238,6 +238,8 @@ SearchWindow::SearchWindow(KMMainWidget* w, KMFolder *curFolder):
connect(mLbxMatches, SIGNAL(itemDoubleClicked(QTreeWidgetItem *,int)),
this, SLOT(slotShowMsg(QTreeWidgetItem *,int)));
connect( mLbxMatches, SIGNAL( currentItemChanged( QTreeWidgetItem *, QTreeWidgetItem *) ),
this, SLOT( slotCurrentChanged(QTreeWidgetItem *) ) );
connect( mLbxMatches, SIGNAL( contextMenuRequested( QTreeWidgetItem*) ),
this, SLOT( slotContextMenuRequested( QTreeWidgetItem* ) ) );
mLbxMatches->setDragEnabled( true );
@ -245,28 +247,32 @@ SearchWindow::SearchWindow(KMMainWidget* w, KMFolder *curFolder):
QHBoxLayout *hbl2 = new QHBoxLayout();
hbl2->setObjectName( "kmfs_hbl2" );
mSearchFolderLbl = new QLabel(i18n("Search folder &name:"),searchWidget);
mSearchFolderEdt = new KLineEdit(searchWidget);
if (searchFolder)
mSearchFolderEdt->setText(searchFolder->folder()->name());
mSearchFolderLbl = new QLabel( i18n("Search folder &name:"), searchWidget );
mSearchFolderEdt = new KLineEdit( searchWidget );
if ( searchFolder )
mSearchFolderEdt->setText( searchFolder->folder()->name() );
else
mSearchFolderEdt->setText(i18n("Last Search"));
mSearchFolderEdt->setText( i18n("Last Search") );
mSearchFolderLbl->setBuddy(mSearchFolderEdt);
mSearchFolderBtn = new KPushButton(i18n("&Rename"), searchWidget);
mSearchFolderBtn->setEnabled(false);
mSearchFolderOpenBtn = new KPushButton(i18n("Op&en"), searchWidget);
mSearchFolderOpenBtn = new KPushButton(i18n("Op&en Search Folder"), searchWidget);
mSearchFolderOpenBtn->setEnabled(false);
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 KPushButton( i18n("Open &Message"), searchWidget );
mSearchResultOpenBtn->setEnabled( false );
connect( mSearchResultOpenBtn, SIGNAL( clicked() ),
this, SLOT( slotShowSelectedMsg() ) );
hbl2->addWidget(mSearchFolderLbl);
hbl2->addWidget(mSearchFolderEdt);
hbl2->addWidget(mSearchFolderBtn);
hbl2->addWidget(mSearchFolderOpenBtn);
hbl2->addWidget(mSearchResultOpenBtn);
mStatusBar = new KStatusBar(searchWidget);
mStatusBar->insertPermanentItem(i18n("AMiddleLengthText..."), 0);
@ -498,6 +504,7 @@ void SearchWindow::slotSearch()
this, SLOT( slotAddMsg( int ) ) );
connect( mFolder, SIGNAL( msgRemoved( KMFolder*, quint32 ) ),
this, SLOT( slotRemoveMsg( KMFolder*, quint32 ) ) );
mSearchFolderEdt->setEnabled( false );
KMSearch *search = new KMSearch();
connect( search, SIGNAL( finished( bool ) ),
this, SLOT( searchDone() ) );
@ -516,10 +523,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 );
}
@ -537,6 +540,8 @@ void SearchWindow::searchDone()
mLbxMatches->setSortingEnabled( true );
mLbxMatches->sortByColumn( mSortColumn, mSortOrder );
mSearchFolderEdt->setEnabled( true );
}
void SearchWindow::slotAddMsg( int idx )
@ -623,10 +628,16 @@ 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.setSingleShot( true );
mRenameTimer.start( 250 );
mSearchFolderOpenBtn->setEnabled( false );
} else {
mRenameTimer.stop();
mSearchFolderOpenBtn->setEnabled( true );
}
}
//-----------------------------------------------------------------------------
@ -646,6 +657,7 @@ void SearchWindow::renameSearchFolder()
++i;
}
}
mSearchFolderOpenBtn->setEnabled(true);
}
void SearchWindow::openSearchFolder()
@ -691,6 +703,18 @@ bool SearchWindow::slotShowMsg(QTreeWidgetItem *item,int)
return true;
}
//-----------------------------------------------------------------------------
void SearchWindow::slotShowSelectedMsg()
{
slotShowMsg( mLbxMatches->currentItem(), 0 );
}
//-----------------------------------------------------------------------------
void SearchWindow::slotCurrentChanged( QTreeWidgetItem *item )
{
mSearchResultOpenBtn->setEnabled( item != 0 );
}
//-----------------------------------------------------------------------------
void SearchWindow::enableGUI()
{

@ -23,6 +23,7 @@
#include <QList>
#include <QPointer>
#include <QTimer>
#include <QTreeWidget>
#include <KDialog>
@ -100,11 +101,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(QTreeWidgetItem *,int);
void slotShowSelectedMsg();
void slotCurrentChanged(QTreeWidgetItem *);
virtual void updateContextMenuActions();
virtual void slotContextMenuRequested( QTreeWidgetItem* );
virtual void copySelectedToFolder( QAction* );
@ -155,8 +158,8 @@ protected:
MatchListView* mLbxMatches;
QLabel *mSearchFolderLbl;
QLineEdit *mSearchFolderEdt;
KPushButton *mSearchFolderBtn;
KPushButton *mSearchFolderOpenBtn;
KPushButton *mSearchResultOpenBtn;
KStatusBar* mStatusBar;
QWidget* mLastFocus; // to remember the position of the focus
QMap<QAction*,KMFolder*> mMenuToFolder;
@ -165,6 +168,7 @@ protected:
*mSaveAtchAction, *mCopyAction, *mCutAction;
KActionMenu *mForwardActionMenu;
QList<QPointer<KMFolder> > mFolders;
QTimer mRenameTimer;
// not owned by us
KMMainWidget* mKMMainWidget;

Loading…
Cancel
Save