QDate QtopiaInputDialog::getDate(QWidget *parent, const QString &title, const QString &label, const QDate &date, const QDate &minDate, const QDate &maxDate, bool *ok) { #ifdef CALENDAR_FOR_DATE QCalendarWidget *cal = new QCalendarWidget(); cal->setSelectedDate(date); cal->setMinimumDate(minDate); cal->setMaximumDate(maxDate); cal->setVerticalHeaderFormat(QCalendarWidget::NoVerticalHeader); QTextCharFormat headerFormat = cal->headerTextFormat(); headerFormat.setBackground(QApplication::palette().window()); headerFormat.setForeground(QApplication::palette().windowText()); cal->setHeaderTextFormat(headerFormat); QWidget *navBar = cal->findChild<QWidget*>("qt_calendar_navigationbar"); if (navBar) navBar->setBackgroundRole(QPalette::Window); QtopiaInputDialog dlg(parent, title, label, cal); bool accepted = (QtopiaApplication::execDialog(&dlg) == QDialog::Accepted); if (ok) *ok = accepted; return cal->selectedDate(); #else QDateEdit *de = new QDateEdit(date); de->setMinimumDate(minDate); de->setMaximumDate(maxDate); QtopiaInputDialog dlg(parent, title, label, de); bool accepted = (QtopiaApplication::execDialog(&dlg) == QDialog::Accepted); if (ok) *ok = accepted; return de->date(); #endif }
QWidget* DateEditDelegate::createEditor(QWidget *parent, const QStyleOptionViewItem &/*option*/, const QModelIndex &/*index*/) const{ QDateEdit *date = new QDateEdit(parent); date->setCalendarPopup(true); date->setDisplayFormat("yyyy-MM-dd"); date->setDate(QDate::currentDate()); date->setMinimumDate(QDate(2014,3,1)); date->setMaximumDate(QDate(2050,12,31)); return date; }
QWidget *DateTimeDelegate::createEditor(QWidget *parent, const QStyleOptionViewItem &/* option */, const QModelIndex &index) const { // TODO: use the ModernDateEditor editor if (m_IsDateOnly) { QDateEdit *editor = new QDateEdit(parent); editor->setMinimumDate(m_MinDate); editor->setMaximumDate(m_MaxDate); editor->setCalendarPopup(true); editor->setDisplayFormat(tkTr(Trans::Constants::DATEFORMAT_FOR_EDITOR)); editor->setDate(index.data(Qt::EditRole).toDate()); return editor; } else { QDateTimeEdit *editor = new QDateTimeEdit(parent); editor->setMinimumDateTime(QDateTime(m_MinDate, m_MinTime)); editor->setMaximumDateTime(QDateTime(m_MaxDate, m_MaxTime)); editor->setDisplayFormat(tkTr(Trans::Constants::DATETIMEFORMAT_FOR_EDITOR)); editor->setDateTime(index.data().toDateTime()); return editor; } return 0; }
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ QWidget *UKvyt_Delegate::createEditor(QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const { QSpinBox *spinbox; if (index.column() == durationColumn_2) { QDoubleSpinBox *double_spinbox = new QDoubleSpinBox(parent); double_spinbox->setMaximum ( 999999999 ); double_spinbox->setMinimum ( -999999999 ); connect(double_spinbox, SIGNAL(editingFinished()), this, SLOT(commitAndCloseEditor())); return double_spinbox; } else if ((index.column() == durationColumn_3) || (index.column() == durationColumn_4)){ QDateEdit * dateEdit = new QDateEdit(parent); QDate date; date.setYMD( 2100, 12, 30 ); dateEdit->setMaximumDate( date ); date.setYMD( 2004, 1, 1 ); dateEdit->setMinimumDate( date ); dateEdit->setDisplayFormat( "d.MM.yyyy" ); connect(dateEdit, SIGNAL(editingFinished()), this, SLOT(commitAndCloseEditor())); return dateEdit; } else if ((index.column() == durationColumn_5) || (index.column() == durationColumn_1)){ spinbox = new QSpinBox(parent); spinbox->setMaximum ( 999999 ); spinbox->setMinimum ( 1 ); connect(spinbox, SIGNAL(editingFinished()), this, SLOT(commitAndCloseEditor())); return spinbox; } else{ return QSqlRelationalDelegate::createEditor(parent, option, index); } }
void ExprParamElement::setRangedSearch(bool ranged) { if (inRangedConfig == ranged) return; // nothing to do here inRangedConfig = ranged; QHBoxLayout* hbox = (dynamic_cast<QHBoxLayout*>(internalframe->layout())); // add additional or remove extra input fields depending on whether // ranged search or not if (inRangedConfig) { QLabel * toLbl = new QLabel(tr("to")); toLbl->setMinimumSize(10, FIELDS_MIN_HEIGHT); toLbl->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); if (searchType == DateSearch) { internalframe->setMinimumSize(250,26); QDateEdit * dateEdit = new QDateEdit(QDate::currentDate(), internalframe); dateEdit->setMinimumSize(DATE_FIELDS_MIN_WIDTH, FIELDS_MIN_HEIGHT); dateEdit->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); dateEdit->setObjectName("param2"); dateEdit->setDisplayFormat(tr("dd.MM.yyyy")); dateEdit->setMinimumDate(QDate(1970, 1, 1)); dateEdit->setMaximumDate(QDate(2099, 12,31)); hbox->addSpacing(9); hbox->addWidget(toLbl, Qt::AlignLeft); hbox->addSpacing(9); hbox->addWidget(dateEdit, Qt::AlignLeft); hbox->addStretch(); } else if (searchType == SizeSearch) { internalframe->setMinimumSize(340,26); QLineEdit * lineEdit = new QLineEdit(internalframe); lineEdit->setMinimumSize(SIZE_FIELDS_MIN_WIDTH, FIELDS_MIN_HEIGHT); lineEdit->setMaximumSize(SIZE_FIELDS_MIN_WIDTH, FIELDS_MIN_HEIGHT); lineEdit->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); lineEdit->setObjectName("param2"); lineEdit->setValidator(numValidator); QComboBox * cb = new QComboBox(internalframe); cb->setObjectName("unitsCb2"); cb-> addItem(tr("KB"), QVariant(1024)); cb->addItem(tr("MB"), QVariant(1048576)); cb->addItem(tr("GB"), QVariant(1073741824)); hbox->addSpacing(9); hbox->addWidget(toLbl, Qt::AlignLeft); hbox->addSpacing(9); hbox->addWidget(lineEdit, Qt::AlignLeft); hbox->addSpacing(9); hbox->addWidget(cb); hbox->addStretch(); } // else if (searchType == PopSearch) // { // elem->layout()->addWidget(new QLabel(tr("to")), Qt::AlignCenter); // QLineEdit * lineEdit = new QLineEdit(elem); // lineEdit->setObjectName("param2"); // lineEdit->setValidator(numValidator); // elem->layout()->addWidget(slineEdit); // } hbox->invalidate(); internalframe->adjustSize(); internalframe->show(); this->adjustSize(); } else { adjustForSearchType(searchType); } }
void ExprParamElement::adjustForSearchType(ExprSearchType type) { // record which search type is active searchType = type; QRegExp regExp("0|[1-9][0-9]*"); numValidator = new QRegExpValidator(regExp, this); QRegExp hexRegExp("[A-Fa-f0-9]*"); hexValidator = new QRegExpValidator(hexRegExp, this); // remove all elements QList<QWidget*> children = qFindChildren<QWidget*>(internalframe); QWidget* child; QLayout * lay_out = internalframe->layout(); while (!children.isEmpty()) { child = children.takeLast(); child->hide(); lay_out->removeWidget(child); delete child; } delete lay_out; QHBoxLayout* hbox = createLayout(); internalframe->setLayout(hbox); internalframe->setMinimumSize(320,26); if (isStringSearchExpression()) { // set up for default of a simple input field QLineEdit* lineEdit = new QLineEdit(internalframe); lineEdit->setMinimumSize(STR_FIELDS_MIN_WIDTH, FIELDS_MIN_HEIGHT); lineEdit->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Fixed); lineEdit->setObjectName("param1"); hbox->addWidget(lineEdit); hbox->addSpacing(9); QCheckBox* icCb = new QCheckBox(tr("ignore case"), internalframe); icCb->setObjectName("ignoreCaseCB"); icCb->setCheckState(Qt::Checked); // hex search specifics: hidden case sensitivity and hex validator if (searchType == HashSearch) { icCb->hide(); lineEdit->setValidator(hexValidator); } hbox->addWidget(icCb); hbox->addStretch(); } else if (searchType == DateSearch) { QDateEdit * dateEdit = new QDateEdit(QDate::currentDate(), internalframe); dateEdit->setMinimumSize(DATE_FIELDS_MIN_WIDTH, FIELDS_MIN_HEIGHT); dateEdit->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); dateEdit->setDisplayFormat(tr("dd.MM.yyyy")); dateEdit->setObjectName("param1"); dateEdit->setMinimumDate(QDate(1970, 1, 1)); dateEdit->setMaximumDate(QDate(2099, 12,31)); hbox->addWidget(dateEdit, Qt::AlignLeft); hbox->addStretch(); } else if (searchType == SizeSearch) { QLineEdit * lineEdit = new QLineEdit(internalframe); lineEdit->setMinimumSize(SIZE_FIELDS_MIN_WIDTH, FIELDS_MIN_HEIGHT); lineEdit->setMaximumSize(SIZE_FIELDS_MIN_WIDTH, FIELDS_MIN_HEIGHT); lineEdit->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); lineEdit->setObjectName("param1"); lineEdit->setValidator(numValidator); hbox->addWidget(lineEdit, Qt::AlignLeft); QComboBox * cb = new QComboBox(internalframe); cb->setObjectName("unitsCb1"); cb-> addItem(tr("KB"), QVariant(1024)); cb->addItem(tr("MB"), QVariant(1048576)); cb->addItem(tr("GB"), QVariant(1073741824)); hbox->addSpacing(9); internalframe->layout()->addWidget(cb); hbox->addStretch(); } /* POP Search not implemented else if (searchType == PopSearch) { QLineEdit * lineEdit = new QLineEdit(elem); lineEdit->setObjectName("param1"); lineEdit->setValidator(numValidator); elem->layout()->addWidget(lineEdit); }*/ hbox->invalidate(); internalframe->adjustSize(); internalframe->show(); this->adjustSize(); }