KexiStartupFileDialogBase::KexiStartupFileDialogBase( const QString & dirName, const QString & filter, QWidget * parent, const char * name, bool modal) : Q3FileDialog(realStartDir(dirName), filter, parent, name, modal) , d(new KexiStartupFileDialogBasePrivate()) { // QString _dirName = dirName; QString _dirName = dirPath(); //make default 'My Documents' folder //TODO: store changes in the app's config file? if (_dirName.isEmpty()) _dirName = KGlobalSettings::documentPath(); init(_dirName, filter, parent); //find "OK" button QObjectList *l = queryList("QPushButton", "OK", false); m_okBtn = dynamic_cast<QPushButton*>(l->first()); delete l; l = queryList("QLineEdit", "name/filter editor", false); m_lineEdit = dynamic_cast<QLineEdit*>(l->first()); delete l; adjustSize(); }
void MetaDataBase::doConnections( QObject *o ) { setupDataBase(); MetaDataBaseRecord *r = db->find( (void*)o ); if ( !r ) { qWarning( "No entry for %p (%s, %s) found in MetaDataBase", o, o->name(), o->className() ); return; } QObject *sender = 0, *receiver = 0; QObjectList *l = 0; QValueList<Connection>::Iterator it = r->connections.begin(); for ( ; it != r->connections.end(); ++it ) { Connection conn = *it; if ( qstrcmp( conn.sender->name(), o->name() ) == 0 ) { sender = o; } else { l = o->queryList( 0, conn.sender->name(), false ); if ( !l || !l->first() ) { delete l; continue; } sender = l->first(); delete l; } if ( qstrcmp( conn.receiver->name(), o->name() ) == 0 ) { receiver = o; } else { l = o->queryList( 0, conn.receiver->name(), false ); if ( !l || !l->first() ) { delete l; continue; } receiver = l->first(); delete l; } QString s = "2""%1"; s = s.arg( conn.signal ); QString s2 = "1""%1"; s2 = s2.arg( conn.slot ); QStrList signalList = sender->metaObject()->signalNames( true ); QStrList slotList = receiver->metaObject()->slotNames( true ); // avoid warnings if ( signalList.find( conn.signal ) == -1 || slotList.find( conn.slot ) == -1 ) continue; QObject::connect( sender, s, receiver, s2 ); } }
static void signalHandler( QT_SIGNAL_ARGS ) { QFile f( QDir::homeDirPath() + "/.designerargs" ); f.open( IO_ReadOnly ); QString args; f.readLine( args, f.size() ); QStringList lst = QStringList::split( " ", args ); for ( QStringList::Iterator it = lst.begin(); it != lst.end(); ++it ) { QString arg = (*it).stripWhiteSpace(); if ( arg[0] != '-' ) { QObjectList* l = MainWindow::self->queryList( "FormWindow" ); FormWindow* fw = (FormWindow*) l->first(); #if 0 // ### what's this dead code for? FormWindow* totop; #endif bool haveit = FALSE; while ( fw ) { haveit = haveit || fw->fileName() == arg; #if 0 // ### what's this dead code for? if ( haveit ) totop = fw; #endif fw = (FormWindow*) l->next(); } if ( !haveit ) MainWindow::self->openFormWindow( arg ); } } MainWindow::self->raise(); MainWindow::self->setActiveWindow(); }
void PatternWidgetClass::init() { // delete all childs QObjectList * childs; while((childs = const_cast<QObjectList *>(this->children())) != NULL && !childs->isEmpty()) { delete childs->first(); } // resize widget // int numBehaviours = getDocument().getNumBehaviours(patternName); setFixedSize(100, PATTERN_NAME_HEIGHT + BEHAVIOUR_NAME_HEIGHT * numBehaviours + ARBITER_NAME_HEIGHT + 2*frameWidth()); // get internal rect dimensions (inside the frame) // QRect cr = contentsRect(); //----------------// // behaviour list // //----------------// // get string list with behaviour names // QStringList list = getDocument().getBehaviourNames(patternName); // show all behaviour names // int i = 0; for (QStringList::Iterator it = list.begin(); it != list.end(); ++it ) { QString behName = (*it); // create new label // BehaviourWidget* behWidget = new BehaviourWidget(this, behName); behWidget->setGeometry(cr.x(), cr.y()+PATTERN_NAME_HEIGHT+i*BEHAVIOUR_NAME_HEIGHT, cr.width(), BEHAVIOUR_NAME_HEIGHT); behWidget->show(); i++; } //---------// // arbiter // //---------// ArbiterWidget * arbiterWidget = new ArbiterWidget(this, getDocument().getArbiter(patternName)); arbiterWidget->setGeometry(cr.x(), cr.y()+cr.height()-ARBITER_NAME_HEIGHT, cr.width(), ARBITER_NAME_HEIGHT); arbiterWidget->show(); update(); }
void QDesignerToolBar::installEventFilters( QWidget *w ) { if ( !w ) return; QObjectList *l = w->queryList( "QWidget" ); for ( QObject *o = l->first(); o; o = l->next() ) o->installEventFilter( this ); delete l; }
QStringList Folder::subfolders() { QStringList lst = QStringList(); QObjectList* folderLst = (QObjectList*)children(); if (!folderLst) return lst; if (folderLst) { Folder *f; for (f = (Folder*)folderLst->first(); f; f = (Folder*)folderLst->next()) lst << f->folderName(); } return lst; }
void DocumentXML::clear() { document_.removeChild(document_.documentElement()); setModified(true); if (children()) { QObjectList childList = *children(); QObject * c = childList.first(); while (c) { delete c; c = childList.next(); } } }
void OutputWindow::setErrorMessages( const QStringList &errors, const QValueList<uint> &lines, bool clear, const QStringList &locations, const QObjectList &locationObjects ) { if ( clear ) errorView->clear(); QStringList::ConstIterator mit = errors.begin(); QValueList<uint>::ConstIterator lit = lines.begin(); QStringList::ConstIterator it = locations.begin(); QObjectList objects = (QObjectList)locationObjects; QObject *o = objects.first(); QListViewItem *after = 0; for ( ; lit != lines.end() && mit != errors.end(); ++lit, ++mit, ++it, o = objects.next() ) after = new ErrorItem( errorView, after, *mit, *lit, *it, o ); setCurrentPage( 1 ); }
QStatusBar * QMainWindow::statusBar() const { if ( d->sb ) return d->sb; QObjectList * l = ((QObject*)this)->queryList( "QStatusBar", 0, FALSE, FALSE ); QStatusBar * s; if ( l && l->count() ) s = (QStatusBar *)l->first(); else s = new QStatusBar( (QMainWindow *)this, "automatic status bar" ); delete l; ((QMainWindow *)this)->setStatusBar( s ); return s; }
QMenuBar * QMainWindow::menuBar() const { if ( d->mb ) return d->mb; QObjectList * l = ((QObject*)this)->queryList( "QMenuBar", 0, FALSE, FALSE ); QMenuBar * b; if ( l && l->count() ) b = (QMenuBar *)l->first(); else b = new QMenuBar( (QMainWindow *)this, "automatic menu bar" ); delete l; ((QMainWindowPrivate*)d)->mb = b; d->mb->installEventFilter( this ); ((QMainWindow *)this)->triggerLayout(); return b; }
QString Folder::sizeToString() { int size = 0; QObjectList* folderLst = (QObjectList*)children(); if (folderLst) { Folder *f; for (f = (Folder*)folderLst->first(); f; f = (Folder*)folderLst->next()) size += sizeof(f); } myWidget *w; for (w = lstWindows.first(); w ; w = lstWindows.next()) size += sizeof(w); return QString::number(8*size/1024.0,'f',1)+" "+tr("kB")+" ("+QString::number(8*size)+" "+tr("bytes")+")"; }
void PolicyView::init(PolicyXML * _policy) { if (policy_ == _policy) return; // delete all childs QObjectList * childs; while((childs = const_cast<QObjectList *>(viewport()->children())) != NULL && !childs->isEmpty()) { delete childs->first(); } policy_ = _policy; if (policy_ == NULL) return; policy_->setWidget(this); //------------------------- // rebuild the widget list QListViewItem * i = policy_->listViewItem()->firstChild(); while (i != NULL) { Item * item = policy_->itemFromListViewItem(i); PatternXML * pattern = dynamic_cast<PatternXML *>(item); if (pattern != NULL) addPatternWidget(pattern); i = i->nextSibling(); } QRect r = viewport()->childrenRect(); QPoint s = viewportToContents(r.bottomRight()); resizeContents(s.x(), s.y()); setContentsPos(0, 0); }
Folder* Folder::findSubfolder(const QString& s, bool caseSensitive, bool partialMatch) { QObjectList* folderLst = (QObjectList*)children(); if (folderLst) { Folder *f; for (f = (Folder*)folderLst->first(); f; f = (Folder*)folderLst->next()) { QString name = f->folderName(); if (partialMatch && name.startsWith(s, caseSensitive)) return f; else if (caseSensitive && name == s) return f; else { QString text = s; if (name == text.lower()) return f; } } } return 0; }
void PolicyViewClass::init() { // delete all childs QObjectList * childs; while((childs = const_cast<QObjectList *>(viewport()->children())) != NULL && !childs->isEmpty()) { delete childs->first(); } //-------------------------// // rebuild the widget list // //-------------------------// QStringList list = document.getPatternNames(); QStringList::Iterator patternIter = list.begin(); while (patternIter !=list.end()) { // generate pattern widget // QString patternName = *patternIter; PatternWidgetClass* patternWidget = new PatternWidgetClass(this, viewport(), patternName); patternWidget->show(); int x = std::max(0, document.getX(patternName)); int y = std::max(0, document.getY(patternName)); addChild(patternWidget, x, y); patternIter++; } QRect r = viewport()->childrenRect(); QPoint s = viewportToContents(r.bottomRight()); resizeContents(s.x(), s.y()); setContentsPos(0, 0); }
AmarokConfigDialog::AmarokConfigDialog( QWidget *parent, const char* name, KConfigSkeleton *config ) : KConfigDialog( parent, name, config ) , m_engineConfig( 0 ) , m_opt4( 0 ) { setWFlags( WDestructiveClose ); // IMPORTANT Don't simply change the page names, they are used as identifiers in other parts of the app. m_opt1 = new Options1( 0, "General" ); m_opt2 = new Options2( 0, "Appearance" ); m_opt4 = new Options4( 0, "Playback" ); Options5 *opt5 = new Options5( 0, "OSD" ); QVBox *opt6 = new QVBox; m_opt7 = new Options7( 0, "Collection" ); Options8 *opt8 = new Options8( 0, "Scrobbler" ); QVBox *opt9 = new QVBox; // Sound System opt6->setName( "Engine" ); opt6->setSpacing( KDialog::spacingHint() ); QWidget *groupBox, *aboutEngineButton; groupBox = new QGroupBox( 2, Qt::Horizontal, i18n("Sound System"), opt6 ); m_engineConfigFrame = new QGroupBox( 1, Qt::Horizontal, opt6 ); m_soundSystem = new QComboBox( false, groupBox ); aboutEngineButton = new QPushButton( i18n("About"), groupBox ); QToolTip::add( m_soundSystem, i18n("Click to select the sound system to use for playback.") ); QToolTip::add( aboutEngineButton, i18n("Click to get the plugin information.") ); /// Populate the engine selection combo box KTrader::OfferList offers = PluginManager::query( "[X-KDE-amaroK-plugintype] == 'engine'" ); KTrader::OfferList::ConstIterator end( offers.end() ); for( KTrader::OfferList::ConstIterator it = offers.begin(); it != end; ++it ) { // Don't list the <no engine> (void engine) entry if it's not currenty active, // cause there's no point in choosing this engine (it's a dummy, after all). if( (*it)->property( "X-KDE-amaroK-name" ).toString() == "void-engine" && AmarokConfig::soundSystem() != "void-engine" ) continue; m_soundSystem->insertItem( (*it)->name() ); // Save name properties in QMap for lookup m_pluginName[(*it)->name()] = (*it)->property( "X-KDE-amaroK-name" ).toString(); m_pluginAmarokName[(*it)->property( "X-KDE-amaroK-name" ).toString()] = (*it)->name(); } // Collection #if !defined(USE_MYSQL) && !defined(USE_POSTGRESQL) m_opt7->databaseBox->hide(); #endif #ifndef USE_MYSQL //FIXME we do this because this widget breaks the Apply button (always enabled). //It breaks because it is set to type="password" in the .kcfg file. Setting to //type="string" also fixes this bug, but means the password is stored in plain //text. This is a temporary fix so that the majority of users get a fixed Apply //button. delete m_opt7->dbSetupFrame->kcfg_MySqlPassword2; #endif m_opt7->collectionFoldersBox->setColumns( 1 ); new CollectionSetup( m_opt7->collectionFoldersBox ); //TODO this widget doesn't update the apply/ok buttons // Media Devices opt9->setName( "Media Devices" ); opt9->setSpacing( KDialog::spacingHint() ); QVBox *topbox = new QVBox( opt9 ); topbox->setSpacing( KDialog::spacingHint() ); QGroupBox *mediaBox = new QGroupBox( 2, Qt::Horizontal, i18n("Media Devices"), topbox ); mediaBox->setSizePolicy( QSizePolicy::Expanding, QSizePolicy::Minimum ); QVBox *vbox = new QVBox( mediaBox ); vbox->setSpacing( KDialog::spacingHint() ); m_deviceManager = new MediumPluginManager( vbox ); QHBox *hbox = new QHBox( topbox ); hbox->setSpacing( KDialog::spacingHint() ); hbox->setSizePolicy( QSizePolicy::Expanding, QSizePolicy::Minimum ); KPushButton *autodetect = new KPushButton( i18n( "Autodetect Devices" ), hbox ); autodetect->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed ) ); connect( autodetect, SIGNAL(clicked()), m_deviceManager, SLOT(redetectDevices()) ); KPushButton *add = new KPushButton( i18n( "Add Device..." ), hbox ); add->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed ) ); connect( add, SIGNAL(clicked()), m_deviceManager, SLOT(newDevice()) ); QFrame *frame = new QFrame( topbox ); frame->setSizePolicy( QSizePolicy::Expanding, QSizePolicy::Expanding ); // add pages addPage( m_opt1, i18n( "General" ), "misc", i18n( "Configure General Options" ) ); addPage( m_opt2, i18n( "Appearance" ), "colors", i18n( "Configure amaroK's Appearance" ) ); addPage( m_opt4, i18n( "Playback" ), "kmix", i18n( "Configure Playback" ) ); addPage( opt5, i18n( "OSD" ), "tv", i18n( "Configure On-Screen-Display" ) ); addPage( opt6, i18n( "Engine" ), "amarok", i18n( "Configure Engine" ) ); addPage( m_opt7, i18n( "Collection" ), amaroK::icon( "collection" ), i18n( "Configure Collection" ) ); addPage( opt8, i18n( "last.fm" ), "audioscrobbler", i18n( "Configure last.fm Support" ) ); addPage( opt9, i18n( "Media Devices" ), amaroK::icon( "device" ), i18n( "Configure Portable Player Support" ) ); // Show information labels (must be done after insertions) QObjectList *list = queryList( "QLabel", "infoPixmap" ); for( QObject *label = list->first(); label; label = list->next() ) static_cast<QLabel*>(label)->setPixmap( QMessageBox::standardIcon( QMessageBox::Information ) ); delete list; //stop KFont Requesters getting stupidly large list = queryList( "QLabel", "m_sampleLabel" ); for( QObject *label = list->first(); label; label = list->next() ) static_cast<QLabel*>(label)->setMaximumWidth( 250 ); delete list; connect( m_deviceManager, SIGNAL(changed()), SLOT(updateButtons()) ); connect( m_soundSystem, SIGNAL(activated( int )), SLOT(updateButtons()) ); connect( aboutEngineButton, SIGNAL(clicked()), SLOT(aboutEngine()) ); connect( opt5, SIGNAL(settingsChanged()), SLOT(updateButtons()) ); //see options5.ui.h connect( m_opt2->styleComboBox, SIGNAL( activated( int ) ), SLOT( updateButtons() ) ); connect( m_opt7->dbSetupFrame->databaseEngine, SIGNAL( activated( int ) ), SLOT( updateButtons() ) ); connect( m_opt1->kComboBox_browser, SIGNAL( activated( int ) ), SLOT( updateButtons() ) ); connect( m_opt1->kLineEdit_customBrowser, SIGNAL( textChanged( const QString& ) ), SLOT( updateButtons() ) ); }
AmarokConfigDialog::AmarokConfigDialog( QWidget *parent, const char* name, KConfigSkeleton *config ) : KConfigDialog( parent, name, config ) , m_engineConfig( 0 ) , m_opt4( 0 ) { setWFlags( WDestructiveClose ); // IMPORTANT Don't simply change the page names, they are used as identifiers in other parts of the app. m_opt1 = new Options1( 0, "General" ); m_opt2 = new Options2( 0, "Appearance" ); m_opt4 = new Options4( 0, "Playback" ); Options5 *opt5 = new Options5( 0, "OSD" ); QVBox *opt6 = new QVBox; m_opt7 = new Options7( 0, "Collection" ); Options8 *opt8 = new Options8( 0, "Scrobbler" ); // Sound System opt6->setName( "Engine" ); opt6->setSpacing( 12 ); opt6->setMargin( 11 ); QWidget *groupBox, *aboutEngineButton; groupBox = new QGroupBox( 2, Qt::Horizontal, i18n("Sound System"), opt6 ); m_engineConfigFrame = new QGroupBox( 1, Qt::Horizontal, opt6 ); m_soundSystem = new QComboBox( false, groupBox ); aboutEngineButton = new QPushButton( i18n("About"), groupBox ); QToolTip::add( m_soundSystem, i18n("Click to select the sound system to use for playback.") ); QToolTip::add( aboutEngineButton, i18n("Click to get the plugin information.") ); KTrader::OfferList offers = PluginManager::query( "[X-KDE-amaroK-plugintype] == 'engine'" ); KTrader::OfferList::ConstIterator end( offers.end() ); for( KTrader::OfferList::ConstIterator it = offers.begin(); it != end; ++it ) { m_soundSystem->insertItem( (*it)->name() ); // Save name properties in QMap for lookup m_pluginName[(*it)->name()] = (*it)->property( "X-KDE-amaroK-name" ).toString(); m_pluginAmarokName[(*it)->property( "X-KDE-amaroK-name" ).toString()] = (*it)->name(); } // KConfigXT doesn't like Comboboxes, still, 2 versions after // it was created. How shit. Hence we can't make recodeEncoding // a string (which we need to because by index is not consistent) QTextCodec *codec; m_opt1->kcfg_RecodeEncoding->insertItem( i18n("Locale Encoding") ); for( int i = 1; (codec = QTextCodec::codecForIndex( i )); i++ ) m_opt1->kcfg_RecodeEncoding->insertItem( codec->name() ); // Collection #if !defined(USE_MYSQL) && !defined(USE_POSTGRESQL) m_opt7->databaseBox->hide(); #endif #ifndef USE_MYSQL //FIXME we do this because this widget breaks the Apply button (always enabled). //It breaks because it is set to type="password" in the .kcfg file. Setting to //type="string" also fixes this bug, but means the password is stored in plain //text. This is a temporary fix so that the majority of users get a fixed Apply //button. delete m_opt7->dbSetupFrame->kcfg_MySqlPassword; #endif m_opt7->collectionFoldersBox->setColumns( 1 ); new CollectionSetup( m_opt7->collectionFoldersBox ); //TODO this widget doesn't update the apply/ok buttons // add pages addPage( m_opt1, i18n( "General" ), "misc", i18n( "Configure General Options" ) ); addPage( m_opt2, i18n( "Appearance" ), "colors", i18n( "Configure amaroK's Appearance" ) ); addPage( m_opt4, i18n( "Playback" ), "kmix", i18n( "Configure Playback" ) ); addPage( opt5, i18n( "OSD" ), "tv", i18n( "Configure On-Screen-Display" ) ); addPage( opt6, i18n( "Engine" ), "amarok", i18n( "Configure Engine" ) ); addPage( m_opt7, i18n( "Collection" ), "collection", i18n( "Configure Collection" ) ); addPage( opt8, i18n( "last.fm" ), "audioscrobbler", i18n( "Configure last.fm Support" ) ); // Show information labels (must be done after insertions) QObjectList *list = queryList( "QLabel", "infoPixmap" ); for( QObject *label = list->first(); label; label = list->next() ) static_cast<QLabel*>(label)->setPixmap( QMessageBox::standardIcon( QMessageBox::Information ) ); delete list; //stop KFont Requesters getting stupidly large list = queryList( "QLabel", "m_sampleLabel" ); for( QObject *label = list->first(); label; label = list->next() ) static_cast<QLabel*>(label)->setMaximumWidth( 250 ); delete list; connect( m_soundSystem, SIGNAL(activated( int )), SLOT(updateButtons()) ); connect( aboutEngineButton, SIGNAL(clicked()), SLOT(aboutEngine()) ); connect( opt5, SIGNAL(settingsChanged()), SLOT(updateButtons()) ); //see options5.ui.h connect( m_opt2->styleComboBox, SIGNAL( activated( int ) ), SLOT( updateButtons() ) ); connect( m_opt7->dbSetupFrame->databaseEngine, SIGNAL( activated( int ) ), SLOT( updateButtons() ) ); }
void ParameterDialog::initDialog() { editFelds_.clear(); QGridLayout * gridLayout = new QGridLayout(frame_, params_.size(), 3, 2, 5, "gridLayout"); // add parameter structs: unsigned long i = 0; Miro::CFG::ParameterVector::const_iterator first, last = params_.end(); for (first = params_.begin(); first != last; ++first, ++i) { // name QLabel * name = new QLabel(frame_); QString n = first->name_; n[0] = n[0].upper(); name->setText(n); gridLayout->addWidget(name, i, 0); // search existing entry QDomNode parameterNode; if (!node_.isNull()) { parameterNode = node_.firstChild(); while(!parameterNode.isNull()) { QDomElement e = parameterNode.toElement(); if (!e.isNull() && e.attribute("name") == n) break; parameterNode = parameterNode.nextSibling(); } } // if there is an existing entry // and we know our listview, // get the corresponding listview item ItemXML * childItem = NULL; if (!parameterNode.isNull() && item_ != NULL) { if (item_->children()) { QObjectList childList = *item_->children(); QObject * c = childList.first(); while (c) { childItem = dynamic_cast<ItemXML *>(c); MIRO_ASSERT(childItem != NULL); if (childItem->node().toElement().attribute("name") == n) { break; } childItem = NULL; c = childList.next(); } } } // create the dialog ParameterEdit * value; SimpleParameter::Type editType = SimpleParameter::typeFromName(first->type_); if (editType != SimpleParameter::NONE) { value = new SimpleParameterEdit(editType, *first, node_, parameterNode, item_, childItem, frame_, n.latin1()); // add measure QLabel * measure = new QLabel(frame_); if (!first->measure_.isEmpty()) { measure->setText(first->measure_); QToolTip::add(measure, (first->type_ != "angle")? first->type_ : QString("double")); } else measure->setText(first->type_); gridLayout->addWidget(measure, i, 2); } else { DeferredParameterEdit::EditType deferredEditType = DeferredParameterEdit::editType(first->type_); value = new DeferredParameterEdit(deferredEditType, *first, node_, parameterNode, item_, childItem, frame_, n.latin1()); } gridLayout->addWidget(value->editWidget(), i, 1); editFelds_.push_back(value); } }
void CriteriaEditor::loadEditWidgets() { int valueType = getValueType( m_fieldCombo->currentItem() ); if( m_currentValueType == valueType && !( m_criteriaCombo->currentText() == i18n( "is between" ) || m_criteriaCombo->currentText() == i18n( "is in the last" ) || m_criteriaCombo->currentText() == i18n( "is not in the last" ) || m_lastCriteria == i18n( "is between" ) || m_lastCriteria == i18n( "is in the last" ) || m_lastCriteria == i18n( "is not in the last" ) ) ) return; /* Store lastCriteria. This information is used above to decide whether it's necessary to change the Widgets */ m_lastCriteria = m_criteriaCombo->currentText(); QObjectList* list = m_editBox->queryList( "QWidget" ); for( QObject *obj = list->first(); obj; obj = list->next() ) static_cast<QWidget*>(obj)->deleteLater(); delete list; switch( valueType ) { case String: { m_lineEdit = new KLineEdit( m_editBox ); m_lineEdit->setFocus(); m_lineEdit->show(); break; } case AutoCompletionString: //artist, album, genre { m_comboBox = new KComboBox( true, m_editBox ); m_lineEdit = static_cast<KLineEdit*>( m_comboBox->lineEdit() ); m_lineEdit->setFocus(); m_comboBox->setMinimumSize( QSize( 240, 20 ) ); m_comboBox->show(); break; } case Year: //fall through case Number: { bool yearField = m_fieldCombo->currentText() == i18n("Year"); m_intSpinBox1 = new KIntSpinBox( m_editBox ); int maxValue = 1000; if( yearField ) { maxValue = QDate::currentDate().year(); m_intSpinBox1->setValue( maxValue ); } m_intSpinBox1->setMaxValue( maxValue ); m_intSpinBox1->setFocus(); m_intSpinBox1->show(); if( m_criteriaCombo->currentText() == i18n("is between") ) { m_rangeLabel = new QLabel( i18n("and"), m_editBox ); m_rangeLabel->setAlignment( AlignCenter ); m_rangeLabel->show(); m_intSpinBox2 = new KIntSpinBox( m_editBox ); if( yearField ) { maxValue = QDate::currentDate().year(); m_intSpinBox2->setValue( maxValue ); } m_intSpinBox2->setMaxValue( maxValue ); m_intSpinBox2->show(); } break; } case Rating: { const QStringList list = MetaBundle::ratingList(); m_comboBox = new KComboBox( false, m_editBox ); m_comboBox->insertStringList( list ); m_comboBox->show(); if( m_criteriaCombo->currentText() == i18n("is between") ) { m_rangeLabel = new QLabel( i18n("and"), m_editBox ); m_rangeLabel->setAlignment( AlignCenter ); m_rangeLabel->show(); m_comboBox2 = new KComboBox( false, m_editBox ); m_comboBox2->insertStringList( list ); m_comboBox2->show(); } break; } case Date: { if( m_criteriaCombo->currentText() == i18n("is in the last") || m_criteriaCombo->currentText() == i18n("is not in the last") ) { m_intSpinBox1 = new KIntSpinBox( m_editBox ); m_intSpinBox1->setMinValue( 1 ); m_intSpinBox1->show(); m_dateCombo = new KComboBox( m_editBox ); m_dateCombo->insertItem( i18n("Days") ); m_dateCombo->insertItem( i18n("Months") ); m_dateCombo->insertItem( i18n("Years") ); m_dateCombo->show(); } else { m_dateEdit1 = new QDateEdit( QDate::currentDate(), m_editBox); m_dateEdit1->setFocus(); m_dateEdit1->show(); if( m_criteriaCombo->currentText() == i18n("is between") ) { m_rangeLabel = new QLabel( i18n("and"), m_editBox ); m_rangeLabel->setAlignment( AlignCenter ); m_rangeLabel->show(); m_dateEdit2 = new QDateEdit( QDate::currentDate(), m_editBox); m_dateEdit2->show(); } } break; } default: ; }; }