📄 generalfilter.cpp
字号:
followLinks = new QCheckBox( this, "followLinks" ); followLinks->setText( i18n( "Follow &links" ) ); recurseLayout->addWidget( followLinks ); filterLayout->addLayout( recurseLayout, 3, 0 ); } // Connection table if( properties & FilterTabs::HasProfileHandler ) { connect( profileAddBtn, SIGNAL(clicked()) , this, SLOT( slotAddBtnClicked() ) ); connect( profileLoadBtn, SIGNAL(clicked()) , this, SLOT( slotLoadBtnClicked() ) ); connect( profileOverwriteBtn, SIGNAL(clicked()) , this, SLOT( slotOverwriteBtnClicked() ) ); connect( profileRemoveBtn, SIGNAL(clicked()) , this, SLOT( slotRemoveBtnClicked() ) ); connect( profileListBox, SIGNAL(doubleClicked(QListBoxItem *)) , this, SLOT( slotProfileDoubleClicked(QListBoxItem *) ) ); connect( profileManager, SIGNAL(loadFromProfile(QString )), fltTabs, SLOT( loadFromProfile(QString ) ) ); connect( profileManager, SIGNAL(saveToProfile(QString )), fltTabs, SLOT( saveToProfile(QString ) ) ); } connect( searchFor, SIGNAL(activated(const QString&)), searchFor, SLOT(addToHistory(const QString&))); connect( containsText, SIGNAL(activated(const QString&)), containsText, SLOT(addToHistory(const QString&))); // load the completion and history lists // ==> search for krConfig->setGroup("Search"); QStringList list = krConfig->readListEntry("SearchFor Completion"); searchFor->completionObject()->setItems(list); list = krConfig->readListEntry("SearchFor History"); searchFor->setHistoryItems(list); // ==> grep krConfig->setGroup("Search"); list = krConfig->readListEntry("ContainsText Completion"); containsText->completionObject()->setItems(list); list = krConfig->readListEntry("ContainsText History"); containsText->setHistoryItems(list); setTabOrder( searchFor, containsText ); // search for -> content setTabOrder( containsText, searchType ); // content -> search type}GeneralFilter::~GeneralFilter(){ // save the history combos // ==> search for QStringList list = searchFor->completionObject()->items(); krConfig->setGroup("Search"); krConfig->writeEntry("SearchFor Completion", list); list = searchFor->historyItems(); krConfig->writeEntry("SearchFor History", list); // ==> grep text list = containsText->completionObject()->items(); krConfig->setGroup("Search"); krConfig->writeEntry("ContainsText Completion", list); list = containsText->historyItems(); krConfig->writeEntry("ContainsText History", list); krConfig->sync();}bool GeneralFilter::fillQuery( KRQuery *query ){ // check that we have (at least) what to search, and where to search in if (searchFor->currentText().simplifyWhiteSpace().isEmpty()) { KMessageBox::error(this ,i18n("No search criteria entered!")); searchFor->setFocus(); return false; } // now fill the query query->setNameFilter( searchFor->currentText().stripWhiteSpace(), searchForCase->isChecked() ); bool remoteContent = (properties & FilterTabs::HasRemoteContentSearch ) ? remoteContentSearch->isChecked() : false; query->setContent( containsText->currentText(), containsTextCase->isChecked(), containsWholeWord->isChecked(), remoteContent ); if (ofType->currentText()!=i18n("All Files")) query->setMimeType( ofType->currentText() ); else query->setMimeType( QString::null ); if ( properties & FilterTabs::HasRecurseOptions ) { query->setSearchInArchives( searchInArchives->isChecked() ); query->setRecursive( searchInDirs->isChecked() ); query->setFollowLinks( followLinks->isChecked() ); // create the lists } if( properties & FilterTabs::HasSearchIn ) { query->setSearchInDirs( searchIn->urlList() ); // checking the lists if (query->searchInDirs().isEmpty() ) { // we need a place to search in KMessageBox::error(this ,i18n("Please specify a location to search in.")); searchIn->lineEdit()->setFocus(); return false; } } if( properties & FilterTabs::HasDontSearchIn ) query->setDontSearchInDirs( dontSearchIn->urlList() ); return true;}void GeneralFilter::queryAccepted(){ searchFor->addToHistory(searchFor->currentText()); containsText->addToHistory(containsText->currentText());}void GeneralFilter::loadFromProfile( QString name ){ krConfig->setGroup( name ); searchForCase->setChecked( krConfig->readBoolEntry( "Case Sensitive Search", false ) ); containsTextCase->setChecked( krConfig->readBoolEntry( "Case Sensitive Content", false ) ); remoteContentSearch->setChecked( krConfig->readBoolEntry( "Remote Content Search", false ) ); containsWholeWord->setChecked( krConfig->readBoolEntry( "Match Whole Word Only", false ) ); containsText->setEditText( krConfig->readEntry( "Contains Text", "" ) ); searchFor->setEditText( krConfig->readEntry( "Search For", "" ) ); QString mime = krConfig->readEntry( "Mime Type", "" ); for( int i = ofType->count(); i >= 0; i-- ) { ofType->setCurrentItem( i ); if( ofType->currentText() == mime ) break; } if( properties & FilterTabs::HasRecurseOptions ) { searchInDirs->setChecked( krConfig->readBoolEntry( "Search In Subdirectories", true ) ); searchInArchives->setChecked( krConfig->readBoolEntry( "Search In Archives", false ) ); followLinks->setChecked( krConfig->readBoolEntry( "Follow Symlinks", false ) ); } if( properties & FilterTabs::HasSearchIn ) { searchIn->lineEdit()->setText( krConfig->readEntry( "Search In Edit", "" ) ); searchIn->listBox()->clear(); QStringList searchInList = krConfig->readListEntry( "Search In List" ); if( !searchInList.isEmpty() ) searchIn->listBox()->insertStringList( searchInList ); } if( properties & FilterTabs::HasDontSearchIn ) { dontSearchIn->lineEdit()->setText( krConfig->readEntry( "Dont Search In Edit", "" ) ); dontSearchIn->listBox()->clear(); QStringList dontSearchInList = krConfig->readListEntry( "Dont Search In List" ); if( !dontSearchInList.isEmpty() ) dontSearchIn->listBox()->insertStringList( dontSearchInList ); }}void GeneralFilter::saveToProfile( QString name ){ krConfig->setGroup( name ); krConfig->writeEntry( "Case Sensitive Search", searchForCase->isChecked() ); krConfig->writeEntry( "Case Sensitive Content", containsTextCase->isChecked() ); krConfig->writeEntry( "Remote Content Search", remoteContentSearch->isChecked() ); krConfig->writeEntry( "Match Whole Word Only", containsWholeWord->isChecked() ); krConfig->writeEntry( "Contains Text", containsText->currentText() ); krConfig->writeEntry( "Search For", searchFor->currentText() ); krConfig->writeEntry( "Mime Type", ofType->currentText() ); if( properties & FilterTabs::HasRecurseOptions ) { krConfig->writeEntry( "Search In Subdirectories", searchInDirs->isChecked() ); krConfig->writeEntry( "Search In Archives", searchInArchives->isChecked() ); krConfig->writeEntry( "Follow Symlinks", followLinks->isChecked() ); } if( properties & FilterTabs::HasSearchIn ) { krConfig->writeEntry( "Search In Edit", searchIn->lineEdit()->text() ); QStringList searchInList; for ( QListBoxItem *item = searchIn->listBox()->firstItem(); item != 0; item = item->next() ) searchInList.append( item->text().simplifyWhiteSpace() ); krConfig->writeEntry( "Search In List", searchInList ); } if( properties & FilterTabs::HasDontSearchIn ) { krConfig->writeEntry( "Dont Search In Edit", dontSearchIn->lineEdit()->text() ); QStringList dontSearchInList; for ( QListBoxItem *item = dontSearchIn->listBox()->firstItem(); item != 0; item = item->next() ) dontSearchInList.append( item->text().simplifyWhiteSpace() ); krConfig->writeEntry( "Dont Search In List", dontSearchInList ); }}void GeneralFilter::refreshProfileListBox(){ profileListBox->clear(); profileListBox->insertStringList( ProfileManager::availableProfiles( "SelectionProfile" ) ); if( profileListBox->count() != 0 ) { profileLoadBtn->setEnabled( true ); profileOverwriteBtn->setEnabled( true ); profileRemoveBtn->setEnabled( true ); } else { profileLoadBtn->setEnabled( false ); profileOverwriteBtn->setEnabled( false ); profileRemoveBtn->setEnabled( false ); }}void GeneralFilter::slotAddBtnClicked(){ profileManager->newProfile( searchFor->currentText().simplifyWhiteSpace() ); refreshProfileListBox();}void GeneralFilter::slotOverwriteBtnClicked(){ QListBoxItem *item = profileListBox->item( profileListBox->currentItem() ); if( item != 0 ) profileManager->overwriteProfile( item->text() );}void GeneralFilter::slotRemoveBtnClicked(){ QListBoxItem *item = profileListBox->item( profileListBox->currentItem() ); if( item != 0 ) { profileManager->deleteProfile( item->text() ); refreshProfileListBox(); }}void GeneralFilter::slotProfileDoubleClicked( QListBoxItem *item ){ if( item != 0 ) { QString profileName = item->text(); profileManager->loadProfile( profileName ); fltTabs->close( true ); }}void GeneralFilter::slotLoadBtnClicked(){ QListBoxItem *item = profileListBox->item( profileListBox->currentItem() ); if( item != 0 ) profileManager->loadProfile( item->text() );}#include "generalfilter.moc"
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -