⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 advancedfilter.cpp

📁 LINUX 下, 以 QT/KDE 写的档案管理员
💻 CPP
📖 第 1 页 / 共 3 页
字号:
}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 + -