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

📄 advancedfilter.cpp

📁 LINUX 下, 以 QT/KDE 写的档案管理员
💻 CPP
📖 第 1 页 / 共 3 页
字号:
  belongsToGroupData = new QComboBox( false, ownershipGroup, "belongsToGroupData" );  belongsToGroupData->setEnabled( false );  belongsToGroupData->setEditable( false );  hboxLayout->addWidget( belongsToGroupData );  ownershipLayout->addMultiCellLayout( hboxLayout, 0, 0, 0, 3 );  permissionsEnabled = new QCheckBox( ownershipGroup, "permissionsEnabled" );  permissionsEnabled->setText( i18n( "P&ermissions" ) );  ownershipLayout->addWidget( permissionsEnabled, 1, 0 );  QGroupBox *ownerGroup = new QGroupBox( ownershipGroup, "ownerGroup" );  ownerGroup->setTitle( i18n( "O&wner" ) );  int width = 2*height + height / 2;  ownerR = new QComboBox( false, ownerGroup, "ownerR" );  ownerR->insertItem( i18n( "?" ) );  ownerR->insertItem( i18n( "r" ) );  ownerR->insertItem( i18n( "-" ) );  ownerR->setEnabled( false );  ownerR->setGeometry( QRect( 10, 20, width, height+6 ) );  ownerW = new QComboBox( false, ownerGroup, "ownerW" );  ownerW->insertItem( i18n( "?" ) );  ownerW->insertItem( i18n( "w" ) );  ownerW->insertItem( i18n( "-" ) );  ownerW->setEnabled( false );  ownerW->setGeometry( QRect( 10 + width, 20, width, height+6 ) );  ownerX = new QComboBox( false, ownerGroup, "ownerX" );  ownerX->insertItem( i18n( "?" ) );  ownerX->insertItem( i18n( "x" ) );  ownerX->insertItem( i18n( "-" ) );  ownerX->setEnabled( false );  ownerX->setGeometry( QRect( 10 + 2*width, 20, width, height+6 ) );  ownershipLayout->addWidget( ownerGroup, 1, 1 );  QGroupBox *groupGroup = new QGroupBox( ownershipGroup, "groupGroup" );  groupGroup->setTitle( i18n( "Grou&p" ) );  groupR = new QComboBox( false, groupGroup, "groupR" );  groupR->insertItem( i18n( "?" ) );  groupR->insertItem( i18n( "r" ) );  groupR->insertItem( i18n( "-" ) );  groupR->setEnabled( false );  groupR->setGeometry( QRect( 10, 20, width, height+6 ) );  groupW = new QComboBox( false, groupGroup, "groupW" );  groupW->insertItem( i18n( "?" ) );  groupW->insertItem( i18n( "w" ) );  groupW->insertItem( i18n( "-" ) );  groupW->setEnabled( false );  groupW->setGeometry( QRect( 10 + width, 20, width, height+6 ) );  groupX = new QComboBox( false, groupGroup, "groupX" );  groupX->insertItem( i18n( "?" ) );  groupX->insertItem( i18n( "x" ) );  groupX->insertItem( i18n( "-" ) );  groupX->setEnabled( false );  groupX->setGeometry( QRect( 10 + 2*width, 20, width, height+6 ) );  ownershipLayout->addWidget( groupGroup, 1, 2 );  QGroupBox *allGroup = new QGroupBox( ownershipGroup, "allGroup" );  allGroup->setTitle( i18n( "A&ll" ) );  allR = new QComboBox( false, allGroup, "allR" );  allR->insertItem( i18n( "?" ) );  allR->insertItem( i18n( "r" ) );  allR->insertItem( i18n( "-" ) );  allR->setEnabled( false );  allR->setGeometry( QRect( 10, 20, width, height+6 ) );  allW = new QComboBox( false, allGroup, "allW" );  allW->insertItem( i18n( "?" ) );  allW->insertItem( i18n( "w" ) );  allW->insertItem( i18n( "-" ) );  allW->setEnabled( false );  allW->setGeometry( QRect( 10 + width, 20, width, height+6 ) );  allX = new QComboBox( false, allGroup, "allX" );  allX->insertItem( i18n( "?" ) );  allX->insertItem( i18n( "x" ) );  allX->insertItem( i18n( "-" ) );  allX->setEnabled( false );  allX->setGeometry( QRect( 10 + 2*width, 20, width, height+6 ) );  ownershipLayout->addWidget( allGroup, 1, 3 );  QLabel *infoLabel = new QLabel( ownershipGroup, "TextLabel4" );  QFont infoLabel_font( infoLabel->font() );  infoLabel_font.setFamily( "adobe-helvetica" );  infoLabel_font.setItalic( true );  infoLabel->setFont( infoLabel_font );  infoLabel->setText( i18n( "Note: a '?' is a wildcard" ) );  ownershipLayout->addMultiCellWidget( infoLabel, 2, 2, 0, 3, Qt::AlignRight );  filterLayout->addWidget( ownershipGroup, 2, 0 );  // Connection table  connect( biggerThanEnabled, SIGNAL( toggled(bool) ), biggerThanAmount, SLOT( setEnabled(bool) ) );  connect( biggerThanEnabled, SIGNAL( toggled(bool) ), biggerThanType, SLOT( setEnabled(bool) ) );  connect( smallerThanEnabled, SIGNAL( toggled(bool) ), smallerThanAmount, SLOT( setEnabled(bool) ) );  connect( smallerThanEnabled, SIGNAL( toggled(bool) ), smallerThanType, SLOT( setEnabled(bool) ) );  connect( modifiedBetweenEnabled, SIGNAL( toggled(bool) ), modifiedBetweenData1, SLOT( setEnabled(bool) ) );  connect( modifiedBetweenEnabled, SIGNAL( toggled(bool) ), modifiedBetweenBtn1, SLOT( setEnabled(bool) ) );  connect( modifiedBetweenEnabled, SIGNAL( toggled(bool) ), modifiedBetweenData2, SLOT( setEnabled(bool) ) );  connect( modifiedBetweenEnabled, SIGNAL( toggled(bool) ), modifiedBetweenBtn2, SLOT( setEnabled(bool) ) );  connect( notModifiedAfterEnabled, SIGNAL( toggled(bool) ), notModifiedAfterData, SLOT( setEnabled(bool) ) );  connect( notModifiedAfterEnabled, SIGNAL( toggled(bool) ), notModifiedAfterBtn, SLOT( setEnabled(bool) ) );  connect( modifiedInTheLastEnabled, SIGNAL( toggled(bool) ), modifiedInTheLastData, SLOT( setEnabled(bool) ) );  connect( modifiedInTheLastEnabled, SIGNAL( toggled(bool) ), modifiedInTheLastType, SLOT( setEnabled(bool) ) );  connect( modifiedInTheLastEnabled, SIGNAL( toggled(bool) ), notModifiedInTheLastData, SLOT( setEnabled(bool) ) );  connect( modifiedInTheLastEnabled, SIGNAL( toggled(bool) ), notModifiedInTheLastType, SLOT( setEnabled(bool) ) );  connect( belongsToUserEnabled, SIGNAL( toggled(bool) ), belongsToUserData, SLOT( setEnabled(bool) ) );  connect( belongsToGroupEnabled, SIGNAL( toggled(bool) ), belongsToGroupData, SLOT( setEnabled(bool) ) );  connect( permissionsEnabled, SIGNAL( toggled(bool) ), ownerR, SLOT( setEnabled(bool) ) );  connect( permissionsEnabled, SIGNAL( toggled(bool) ), ownerW, SLOT( setEnabled(bool) ) );  connect( permissionsEnabled, SIGNAL( toggled(bool) ), ownerX, SLOT( setEnabled(bool) ) );  connect( permissionsEnabled, SIGNAL( toggled(bool) ), groupR, SLOT( setEnabled(bool) ) );  connect( permissionsEnabled, SIGNAL( toggled(bool) ), groupW, SLOT( setEnabled(bool) ) );  connect( permissionsEnabled, SIGNAL( toggled(bool) ), groupX, SLOT( setEnabled(bool) ) );  connect( permissionsEnabled, SIGNAL( toggled(bool) ), allR, SLOT( setEnabled(bool) ) );  connect( permissionsEnabled, SIGNAL( toggled(bool) ), allW, SLOT( setEnabled(bool) ) );  connect( permissionsEnabled, SIGNAL( toggled(bool) ), allX, SLOT( setEnabled(bool) ) );  connect( modifiedBetweenBtn1, SIGNAL( clicked() ), this, SLOT( modifiedBetweenSetDate1() ) );  connect( modifiedBetweenBtn2, SIGNAL( clicked() ), this, SLOT( modifiedBetweenSetDate2() ) );  connect( notModifiedAfterBtn, SIGNAL( clicked() ), this, SLOT( notModifiedAfterSetDate() ) );  // fill the users and groups list  fillList(belongsToUserData, USERSFILE);  fillList(belongsToGroupData, GROUPSFILE);  // tab order  setTabOrder( biggerThanEnabled, biggerThanAmount );  setTabOrder( biggerThanAmount, smallerThanEnabled );  setTabOrder( smallerThanEnabled, smallerThanAmount );  setTabOrder( smallerThanAmount, modifiedBetweenEnabled );  setTabOrder( modifiedBetweenEnabled, modifiedBetweenData1 );  setTabOrder( modifiedBetweenData1, modifiedBetweenData2 );  setTabOrder( modifiedBetweenData2, notModifiedAfterEnabled );  setTabOrder( notModifiedAfterEnabled, notModifiedAfterData );  setTabOrder( notModifiedAfterData, modifiedInTheLastEnabled );  setTabOrder( modifiedInTheLastEnabled, modifiedInTheLastData );  setTabOrder( modifiedInTheLastData, notModifiedInTheLastData );  setTabOrder( notModifiedInTheLastData, belongsToUserEnabled );  setTabOrder( belongsToUserEnabled, belongsToUserData );  setTabOrder( belongsToUserData, belongsToGroupEnabled );  setTabOrder( belongsToGroupEnabled, belongsToGroupData );  setTabOrder( belongsToGroupData, permissionsEnabled );  setTabOrder( permissionsEnabled, ownerR );  setTabOrder( ownerR, ownerW );  setTabOrder( ownerW, ownerX );  setTabOrder( ownerX, groupR );  setTabOrder( groupR, groupW );  setTabOrder( groupW, groupX );  setTabOrder( groupX, allR );  setTabOrder( allR, allW );  setTabOrder( allW, allX );  setTabOrder( allX, biggerThanType );  setTabOrder( biggerThanType, smallerThanType );  setTabOrder( smallerThanType, modifiedInTheLastType );  setTabOrder( modifiedInTheLastType, notModifiedInTheLastType );}void AdvancedFilter::modifiedBetweenSetDate1(){  changeDate(modifiedBetweenData1);}void AdvancedFilter::modifiedBetweenSetDate2(){  changeDate(modifiedBetweenData2);}void AdvancedFilter::notModifiedAfterSetDate(){  changeDate(notModifiedAfterData);}void AdvancedFilter::changeDate(QLineEdit *p) {  // check if the current date is valid  QDate d = KGlobal::locale()->readDate(p->text());  if (!d.isValid()) d = QDate::currentDate();  KRGetDate *gd = new KRGetDate(d, this);  d = gd->getDate();  // if a user pressed ESC or closed the dialog, we'll return an invalid date  if (d.isValid())    p->setText(KGlobal::locale()->formatDate(d, true));  delete gd;}// bool start: set it to true if this date is the beginning of the search,// if it's the end, set it to falsevoid AdvancedFilter::qdate2time_t(time_t *dest, QDate d, bool start) {  struct tm t;  t.tm_sec   = (start ? 0 : 59);  t.tm_min   = (start ? 0 : 59);  t.tm_hour  = (start ? 0 : 23);  t.tm_mday  = d.day();  t.tm_mon   = d.month() - 1;  t.tm_year  = d.year() - 1900;  t.tm_wday  = d.dayOfWeek() - 1; // actually ignored by mktime  t.tm_yday  = d.dayOfYear() - 1; // actually ignored by mktime  t.tm_isdst = -1; // daylight saving time information isn't availble  (*dest) = mktime( &t );}void AdvancedFilter::fillList(QComboBox *list, QString filename) {  QFile data(filename);  if (!data.open(IO_ReadOnly))  {    krOut << "Search: Unable to read " << filename << " !!!" << endl;    return;  }  // and read it into the temporary array  QTextStream t(&data);  while (!data.atEnd())  {    QString s = t.readLine();    QString name = s.left(s.find(':'));    list->insertItem(name);  }}void AdvancedFilter::invalidDateMessage(QLineEdit *p){  // FIXME p->text() is empty sometimes (to reproduce, set date to "13.09.005")  KMessageBox::detailedError(this, i18n("Invalid date entered."),                             i18n("The date %1 is not valid according to your locale. Please re-enter a valid date (use the date button for easy access).").arg(p->text()) );  p->setFocus();

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -