📄 advancedfilter.cpp
字号:
}bool AdvancedFilter::fillQuery( KRQuery *query ){ KIO::filesize_t minSize = 0, maxSize = 0; // size calculations //////////////////////////////////////////////// if ( biggerThanEnabled->isChecked() && !(biggerThanAmount->text().simplifyWhiteSpace()).isEmpty() ) { minSize = biggerThanAmount->text().toULong(); switch ( biggerThanType->currentItem() ) { case 1 : minSize *= 1024; break; case 2 : minSize *= (1024*1024); break; } query->setMinimumFileSize( minSize ); } if ( smallerThanEnabled->isChecked() && !(smallerThanAmount->text().simplifyWhiteSpace()).isEmpty()) { maxSize = smallerThanAmount->text().toULong(); switch (smallerThanType->currentItem()) { case 1 : maxSize *= 1024; break; case 2 : maxSize *= (1024*1024); break; } query->setMaximumFileSize( maxSize ); } // check that minSize is smaller than maxSize if ( ( minSize > 0) && ( maxSize > 0) && ( maxSize < minSize)) { KMessageBox::detailedError(this, i18n("Specified sizes are inconsistent!"), i18n("Please re-enter the values, so that the left side size will be smaller than (or equal to) the right side size.")); biggerThanAmount->setFocus(); return false; } // date calculations //////////////////////////////////////////////////// if (modifiedBetweenEnabled->isChecked()) { // first, if both dates are empty, than don't use them if ( !(modifiedBetweenData1->text().simplifyWhiteSpace().isEmpty() && modifiedBetweenData2->text().simplifyWhiteSpace().isEmpty()) ) { // check if date is valid QDate d1 = KGlobal::locale()->readDate(modifiedBetweenData1->text()); if (!d1.isValid()) { invalidDateMessage(modifiedBetweenData1); return false; } QDate d2 = KGlobal::locale()->readDate(modifiedBetweenData2->text()); if (!d2.isValid()) { invalidDateMessage(modifiedBetweenData2); return false; } if (d1 > d2) { KMessageBox::detailedError(this, i18n("Dates are inconsistent!"), i18n("The date on the left is later than the date on the right. Please re-enter the dates, so that the left side date will be earlier than the right side date.")); modifiedBetweenData1->setFocus(); return false; } // all seems to be ok, create time_t time_t newerTime, olderTime; qdate2time_t(&newerTime, d1, true); qdate2time_t(&olderTime, d2, false); query->setNewerThan( newerTime ); query->setOlderThan( olderTime ); } } else if (notModifiedAfterEnabled->isChecked()) { if ( !notModifiedAfterData->text().simplifyWhiteSpace().isEmpty() ) { QDate d = KGlobal::locale()->readDate(notModifiedAfterData->text()); if (!d.isValid()) { invalidDateMessage(notModifiedAfterData); return false; } time_t olderTime; qdate2time_t(&olderTime, d, false); query->setOlderThan( olderTime ); } } else if (modifiedInTheLastEnabled->isChecked()) { if ( !(modifiedInTheLastData->text().simplifyWhiteSpace().isEmpty() && notModifiedInTheLastData->text().simplifyWhiteSpace().isEmpty()) ) { QDate d1 = QDate::currentDate(); QDate d2 = QDate::currentDate(); if (!modifiedInTheLastData->text().simplifyWhiteSpace().isEmpty()) { int tmp1 = modifiedInTheLastData->text().simplifyWhiteSpace().toInt(); switch (modifiedInTheLastType->currentItem()) { case 1 : tmp1 *= 7; break; case 2 : tmp1 *= 30; break; case 3 : tmp1 *= 365; break; } d1 = d1.addDays((-1) * tmp1); time_t newerTime; qdate2time_t(&newerTime, d1, true); query->setNewerThan( newerTime ); } if (!notModifiedInTheLastData->text().simplifyWhiteSpace().isEmpty()) { int tmp2 = notModifiedInTheLastData->text().simplifyWhiteSpace().toInt(); switch (notModifiedInTheLastType->currentItem()) { case 1 : tmp2 *= 7; break; case 2 : tmp2 *= 30; break; case 3 : tmp2 *= 365; break; } d2 = d2.addDays((-1) * tmp2); time_t olderTime; qdate2time_t(&olderTime, d2, true); query->setOlderThan( olderTime ); } if ( !modifiedInTheLastData->text().simplifyWhiteSpace().isEmpty() && !notModifiedInTheLastData->text().simplifyWhiteSpace().isEmpty() ) { if (d1 > d2) { KMessageBox::detailedError(this, i18n("Dates are inconsistent!"), i18n("The date on top is later than the date on the bottom. Please re-enter the dates, so that the top date will be earlier than the bottom date.")); modifiedInTheLastData->setFocus(); return false; } } } } // permissions and ownership ///////////////////////////////////// if (permissionsEnabled->isChecked()) { QString perm = ownerR->currentText() + ownerW->currentText() + ownerX->currentText() + groupR->currentText() + groupW->currentText() + groupX->currentText() + allR->currentText() + allW->currentText() + allX->currentText(); query->setPermissions( perm ); } if (belongsToUserEnabled->isChecked()) query->setOwner( belongsToUserData->currentText() ); if (belongsToGroupEnabled->isChecked()) query->setGroup( belongsToGroupData->currentText() ); return true;}void AdvancedFilter::loadFromProfile( QString name ){ krConfig->setGroup( name ); smallerThanEnabled->setChecked( krConfig->readBoolEntry( "Smaller Than Enabled", false ) ); smallerThanAmount->setText( krConfig->readEntry( "Smaller Than Amount", "" ) ); smallerThanType->setCurrentItem( krConfig->readNumEntry( "Smaller Than Type", 0 ) ); biggerThanEnabled->setChecked( krConfig->readBoolEntry( "Bigger Than Enabled", false ) ); biggerThanAmount->setText( krConfig->readEntry( "Bigger Than Amount", "" ) ); biggerThanType->setCurrentItem( krConfig->readNumEntry( "Bigger Than Type", 0 ) ); modifiedBetweenEnabled->setChecked( krConfig->readBoolEntry( "Modified Between Enabled", false ) ); notModifiedAfterEnabled->setChecked( krConfig->readBoolEntry( "Not Modified After Enabled", false ) ); modifiedInTheLastEnabled->setChecked( krConfig->readBoolEntry( "Modified In The Last Enabled", false ) ); modifiedBetweenData1->setText( krConfig->readEntry( "Modified Between 1", "" ) ); modifiedBetweenData2->setText( krConfig->readEntry( "Modified Between 2", "" ) ); notModifiedAfterData->setText( krConfig->readEntry( "Not Modified After", "" ) ); modifiedInTheLastData->setText( krConfig->readEntry( "Modified In The Last", "" ) ); notModifiedInTheLastData->setText( krConfig->readEntry( "Not Modified In The Last", "" ) ); modifiedInTheLastType->setCurrentItem( krConfig->readNumEntry( "Modified In The Last Type", 0 ) ); notModifiedInTheLastType->setCurrentItem( krConfig->readNumEntry( "Not Modified In The Last Type", 0 ) ); belongsToUserEnabled->setChecked( krConfig->readBoolEntry( "Belongs To User Enabled", false ) ); belongsToGroupEnabled->setChecked( krConfig->readBoolEntry( "Belongs To Group Enabled", false ) ); QString user = krConfig->readEntry( "Belongs To User", "" ); for( int i = belongsToUserData->count(); i >= 0; i-- ) { belongsToUserData->setCurrentItem( i ); if( belongsToUserData->currentText() == user ) break; } QString group = krConfig->readEntry( "Belongs To Group", "" ); for( int i = belongsToGroupData->count(); i >= 0; i-- ) { belongsToGroupData->setCurrentItem( i ); if( belongsToGroupData->currentText() == group ) break; } permissionsEnabled->setChecked( krConfig->readBoolEntry( "Permissions Enabled", false ) ); ownerW->setCurrentItem( krConfig->readNumEntry( "Owner Write", 0 ) ); ownerR->setCurrentItem( krConfig->readNumEntry( "Owner Read", 0 ) ); ownerX->setCurrentItem( krConfig->readNumEntry( "Owner Execute", 0 ) ); groupW->setCurrentItem( krConfig->readNumEntry( "Group Write", 0 ) ); groupR->setCurrentItem( krConfig->readNumEntry( "Group Read", 0 ) ); groupX->setCurrentItem( krConfig->readNumEntry( "Group Execute", 0 ) ); allW->setCurrentItem( krConfig->readNumEntry( "All Write", 0 ) ); allR->setCurrentItem( krConfig->readNumEntry( "All Read", 0 ) ); allX->setCurrentItem( krConfig->readNumEntry( "All Execute", 0 ) );}void AdvancedFilter::saveToProfile( QString name ){ krConfig->setGroup( name ); krConfig->writeEntry( "Smaller Than Enabled", smallerThanEnabled->isChecked() ); krConfig->writeEntry( "Smaller Than Amount", smallerThanAmount->text() ); krConfig->writeEntry( "Smaller Than Type", smallerThanType->currentItem() ); krConfig->writeEntry( "Bigger Than Enabled", biggerThanEnabled->isChecked() ); krConfig->writeEntry( "Bigger Than Amount", biggerThanAmount->text() ); krConfig->writeEntry( "Bigger Than Type", biggerThanType->currentItem() ); krConfig->writeEntry( "Modified Between Enabled", modifiedBetweenEnabled->isChecked() ); krConfig->writeEntry( "Not Modified After Enabled", notModifiedAfterEnabled->isChecked() ); krConfig->writeEntry( "Modified In The Last Enabled", modifiedInTheLastEnabled->isChecked() ); krConfig->writeEntry( "Modified Between 1", modifiedBetweenData1->text() ); krConfig->writeEntry( "Modified Between 2", modifiedBetweenData2->text() ); krConfig->writeEntry( "Not Modified After", notModifiedAfterData->text() ); krConfig->writeEntry( "Modified In The Last", modifiedInTheLastData->text() ); krConfig->writeEntry( "Not Modified In The Last", notModifiedInTheLastData->text() ); krConfig->writeEntry( "Modified In The Last Type", modifiedInTheLastType->currentItem() ); krConfig->writeEntry( "Not Modified In The Last Type", notModifiedInTheLastType->currentItem() ); krConfig->writeEntry( "Belongs To User Enabled", belongsToUserEnabled->isChecked() ); krConfig->writeEntry( "Belongs To Group Enabled", belongsToGroupEnabled->isChecked() ); krConfig->writeEntry( "Belongs To User", belongsToUserData->currentText() ); krConfig->writeEntry( "Belongs To Group", belongsToGroupData->currentText() ); krConfig->writeEntry( "Permissions Enabled", permissionsEnabled->isChecked() ); krConfig->writeEntry( "Owner Write", ownerW->currentItem() ); krConfig->writeEntry( "Owner Read", ownerR->currentItem() ); krConfig->writeEntry( "Owner Execute", ownerX->currentItem() ); krConfig->writeEntry( "Group Write", groupW->currentItem() ); krConfig->writeEntry( "Group Read", groupR->currentItem() ); krConfig->writeEntry( "Group Execute", groupX->currentItem() ); krConfig->writeEntry( "All Write", allW->currentItem() ); krConfig->writeEntry( "All Read", allR->currentItem() ); krConfig->writeEntry( "All Execute", allX->currentItem() );}#include "advancedfilter.moc"
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -