📄 advancedfilter.cpp
字号:
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 + -