void CodeSpinBox::codeChanged(bool code) { if(!code) { if(mPrefix.isEmpty()) mPrefix = prefix(); if(mSuffix.isEmpty()) mSuffix = suffix(); setPrefix(mPrefix); setSuffix(mSuffix); setButtonSymbols(QAbstractSpinBox::UpDownArrows); setValue(text().toInt()); codeLineEdit()->textChanged(codeLineEdit()->text()); } else { setButtonSymbols(QAbstractSpinBox::NoButtons); mPrefix = prefix(); mSuffix = suffix(); int previousWidth = width(); setPrefix(QString()); setSuffix(QString()); setMinimumWidth(previousWidth);//This is a hack to fix widget size under KDE, but a better fix has to be found } }
void CodeSpinBox::contextMenuEvent(QContextMenuEvent *event) { QMenu *menu = codeLineEdit()->createStandardContextMenu(); menu->addSeparator(); const uint se = stepEnabled(); QAction *up = menu->addAction(tr("&Step up")); up->setShortcut(QKeySequence(Qt::Key_Up)); up->setEnabled(se & StepUpEnabled); QAction *down = menu->addAction(tr("Step &down")); down->setShortcut(QKeySequence(Qt::Key_Down)); down->setEnabled(se & StepDownEnabled); menu->addSeparator(); codeLineEdit()->addShortcuts(menu); const QAction *action = menu->exec(event->globalPos()); if(action == up) stepBy(1); else if(action == down) stepBy(-1); delete menu; event->accept(); }
QString CodeSpinBox::textFromValue(int value) const { if(isCode()) return codeLineEdit()->text(); return QSpinBox::textFromValue(value); }
QString CodeDateTimeEdit::textFromDateTime(const QDateTime &dateTime) const { if(isCode()) return codeLineEdit()->text(); return QDateTimeEdit::textFromDateTime(dateTime); }
void CodeDateTimeEdit::codeChanged(bool code) { if(!code) { setCalendarPopup(true); setButtonSymbols(QAbstractSpinBox::UpDownArrows); setDateTime(QDateTime::currentDateTime()); setDisplayFormat("dd/MM/yyyy hh:mm:ss"); codeLineEdit()->textChanged(codeLineEdit()->text()); } else { setDisplayFormat(QString()); setCalendarPopup(false); setButtonSymbols(QAbstractSpinBox::NoButtons); } }
QString CodeSpinBox::text() { QString currentPrefix = prefix(); QString currentSuffix = suffix(); setPrefix(QString()); setSuffix(QString()); QString value = codeLineEdit()->text(); setPrefix(currentPrefix); setSuffix(currentSuffix); return value; }
bool KeyEdit::eventFilter(QObject *object, QEvent *event) { if(isCode()) return QObject::eventFilter(object, event); if(event->type() == QEvent::KeyPress) { QKeyEvent *keyEvent = static_cast<QKeyEvent *>(event); if(!mKeyInput.fromEvent(keyEvent)) return true; codeLineEdit()->setText(mKeyInput.toTranslatedText()); return true; } return QObject::eventFilter(object, event); }
void CodeSpinBox::setParameterContainer(const ParameterContainer *parameterContainer) { codeLineEdit()->setParameterContainer(parameterContainer); }
void CodeSpinBox::setCompletionModel(QAbstractItemModel *completionModel) { codeLineEdit()->setCompletionModel(completionModel); }
void CodeSpinBox::openEditor(int line, int column) { codeLineEdit()->openEditor(line, column); }
void CodeSpinBox::setFromSubParameter(const SubParameter &subParameter) { setCode(subParameter.isCode()); codeLineEdit()->setText(subParameter.value().toString()); }
void CodeSpinBox::setCode(bool code) { codeLineEdit()->setCode(code); }
bool CodeSpinBox::isCode() const { return codeLineEdit()->isCode(); }
void FileEdit::setParameterContainer(const ParameterContainer *parameterContainer) { codeLineEdit()->setParameterContainer(parameterContainer); }
void KeyEdit::setKeyInput(const KeyInput &keyInput) { mKeyInput = keyInput; codeLineEdit()->setText(mKeyInput.toTranslatedText()); }
bool CodeComboBox::isCode() const { return codeLineEdit()->isCode(); }
void CodeDateTimeEdit::setParameterContainer(const ParameterContainer *parameterContainer) { codeLineEdit()->setParameterContainer(parameterContainer); }
void CodeDateTimeEdit::openEditor(int line, int column) { codeLineEdit()->openEditor(line, column); }
void CodeDateTimeEdit::setCode(bool code) { codeLineEdit()->setCode(code); }
bool CodeDateTimeEdit::isCode() const { return codeLineEdit()->isCode(); }
QSet<QString> CodeSpinBox::findVariables() const { return codeLineEdit()->findVariables(); }
void CodeComboBox::setCode(bool code) { codeLineEdit()->setCode(code); }
QSet<QString> CodeDateTimeEdit::findVariables() const { return codeLineEdit()->findVariables(); }
QSet<QString> FileEdit::findVariables() const { return codeLineEdit()->findVariables(); }
void ColorEdit::setCompletionModel(QAbstractItemModel *completionModel) { codeLineEdit()->setCompletionModel(completionModel); }
void PositionEdit::setParameterContainer(const ParameterContainer *parameterContainer) { codeLineEdit()->setParameterContainer(parameterContainer); }