djvMultiChoiceDialog::djvMultiChoiceDialog( const QString & label, const QStringList & choices, const QVector<bool> & values, QWidget * parent) : QDialog(parent), _p(new P(label, choices, values)) { _p->labelWidget = new QLabel(label); QDialogButtonBox * buttonBox = new QDialogButtonBox( QDialogButtonBox::Ok | QDialogButtonBox::Cancel); QVBoxLayout * layout = new QVBoxLayout(this); QVBoxLayout * vLayout = new QVBoxLayout; vLayout->setMargin(20); vLayout->addWidget(_p->labelWidget); _p->buttonLayout = new QVBoxLayout; _p->buttonLayout->setSpacing(0); vLayout->addLayout(_p->buttonLayout); layout->addLayout(vLayout); layout->addWidget(buttonBox); setWindowTitle(tr("Multi Choice Dialog")); widgetUpdate(); connect(buttonBox, SIGNAL(accepted()), this, SLOT(accept())); connect(buttonBox, SIGNAL(rejected()), this, SLOT(reject())); }
djvFileEdit::djvFileEdit(QWidget * parent) : QWidget(parent), _p(new P) { // Create the widgets. _p->edit = new QLineEdit; QPushButton * button = new QPushButton(tr("&Browse")); // Layout the widgets. QHBoxLayout * layout = new QHBoxLayout(this); layout->setMargin(0); layout->addWidget(_p->edit, 1); layout->addWidget(button); // Initialize. widgetUpdate(); // Setup the callbacks. connect(_p->edit, SIGNAL(editingFinished()), SLOT(editCallback())); connect(button, SIGNAL(clicked()), SLOT(buttonCallback())); }
void djvFileBrowserPrefsWidget::resetPreferences() { djvFileBrowserPrefs::global()->setSequence( djvFileBrowserPrefs::sequenceDefault()); djvFileBrowserPrefs::global()->setShowHidden( djvFileBrowserPrefs::showHiddenDefault()); djvFileBrowserPrefs::global()->setSort( djvFileBrowserPrefs::sortDefault()); djvFileBrowserPrefs::global()->setReverseSort( djvFileBrowserPrefs::reverseSortDefault()); djvFileBrowserPrefs::global()->setSortDirsFirst( djvFileBrowserPrefs::sortDirsFirstDefault()); djvFileBrowserPrefs::global()->setThumbnails( djvFileBrowserPrefs::thumbnailsDefault()); djvFileBrowserPrefs::global()->setThumbnailsSize( djvFileBrowserPrefs::thumbnailsSizeDefault()); djvFileBrowserPrefs::global()->setThumbnailsCache( djvFileBrowserPrefs::thumbnailsCacheDefault()); djvFileBrowserPrefs::global()->setShortcuts( djvFileBrowserPrefs::shortcutsDefault()); widgetUpdate(); }
djvHelpPrefsWidget::djvHelpPrefsWidget(djvGuiContext * context, QWidget * parent) : djvAbstractPrefsWidget( qApp->translate("djvHelpPrefsWidget", "Help"), context, parent), _p(new djvHelpPrefsWidgetPrivate) { // Create the widgets. _p->toolTipsWidget = new QCheckBox( qApp->translate("djvHelpPrefsWidget", "Enable tool tips")); // Layout the widgets. QVBoxLayout * layout = new QVBoxLayout(this); layout->setSpacing(context->style()->sizeMetric().largeSpacing); djvPrefsGroupBox * prefsGroupBox = new djvPrefsGroupBox( qApp->translate("djvHelpPrefsWidget", "Tool Tips"), context); QFormLayout * formLayout = prefsGroupBox->createLayout(); formLayout->addRow(_p->toolTipsWidget); layout->addWidget(prefsGroupBox); layout->addStretch(); // Initialize. widgetUpdate(); // Setup the callbacks. connect( _p->toolTipsWidget, SIGNAL(toggled(bool)), SLOT(toolTipsCallback(bool))); }
djvInputDialog::djvInputDialog( const QString & label, const QString & text, QWidget * parent) : QDialog(parent), _p(new P(label, text)) { _p->labelWidget = new QLabel; _p->textEdit = new QLineEdit; QDialogButtonBox * buttonBox = new QDialogButtonBox( QDialogButtonBox::Ok | QDialogButtonBox::Cancel); QVBoxLayout * layout = new QVBoxLayout(this); QVBoxLayout * vLayout = new QVBoxLayout; vLayout->setMargin(20); vLayout->addWidget(_p->labelWidget); vLayout->addWidget(_p->textEdit); layout->addLayout(vLayout); layout->addWidget(buttonBox); setWindowTitle(tr("Input Dialog")); widgetUpdate(); connect(_p->textEdit, SIGNAL(editingFinished()), SLOT(textCallback())); connect(buttonBox, SIGNAL(accepted()), this, SLOT(accept())); connect(buttonBox, SIGNAL(rejected()), this, SLOT(reject())); }
void djvToolButton::setDefaultAction(QAction * action) { if (action == _p->defaultAction) return; if (_p->defaultAction) { disconnect( _p->defaultAction, SIGNAL(toggled(bool)), this, SLOT(setChecked(bool))); disconnect( _p->defaultAction, SIGNAL(changed()), this, SLOT(widgetUpdate())); disconnect( this, SIGNAL(toggled(bool)), _p->defaultAction, SLOT(setChecked(bool))); }
void djvMultiChoiceDialog::setChoices(const QStringList & choices) { _p->choices = choices; _p->values = QVector<bool>(choices.count()); widgetUpdate(); }
djvToolButton::djvToolButton(const QIcon & icon, QWidget * parent) : djvAbstractToolButton(parent), _p(new P) { setIcon(icon); widgetUpdate(); }
void djvInputDialog::setLabel(const QString & label) { if (label == _p->label) return; _p->label = label; widgetUpdate(); }
void djvInputDialog::setText(const QString & text) { if (text == _p->text) return; _p->text = text; widgetUpdate(); }
void djvFloatDisplay::setValue(double value) { if (value == _p->value) return; _p->value = value; Q_EMIT valueChanged(_p->value); widgetUpdate(); }
void djvFileEdit::setFileInfo(const djvFileInfo & file) { if (file == _p->fileInfo) return; _p->fileInfo = file; widgetUpdate(); Q_EMIT fileInfoChanged(_p->fileInfo); }
void djvIntDisplay::setValue(int value) { if (value == _p->value) return; _p->value = value; Q_EMIT valueChanged(_p->value); widgetUpdate(); }
void djvFloatDisplay::setRange(double min, double max) { if (min == _p->min && max == _p->max) return; _p->min = min; _p->max = max; Q_EMIT rangeChanged(_p->min, _p->max); widgetUpdate(); }
void djvColorWidget::typeCallback(int in) { djvColor tmp(djvPixel::pixel( djvPixel::format(_p->color.pixel()), static_cast<djvPixel::TYPE>(in))); djvColorUtil::convert(_p->color, tmp); setColor(tmp); widgetUpdate(); }
void djvIntDisplay::setRange(int min, int max) { if (min == _p->min && max == _p->max) return; _p->min = min; _p->max = max; Q_EMIT rangeChanged(_p->min, _p->max); widgetUpdate(); }
void djvViewPlaybackPrefsWidget::resetPreferences() { context()->playbackPrefs()->setAutoStart( djvViewPlaybackPrefs::autoStartDefault()); context()->playbackPrefs()->setLoop( djvViewPlaybackPrefs::loopDefault()); context()->playbackPrefs()->setEveryFrame( djvViewPlaybackPrefs::everyFrameDefault()); context()->playbackPrefs()->setLayout( djvViewPlaybackPrefs::layoutDefault()); widgetUpdate(); }
djvFloatDisplay::djvFloatDisplay(QWidget * parent) : QWidget(parent), _p(new P) { _p->spinBox = new QDoubleSpinBox; _p->spinBox->setButtonSymbols(QAbstractSpinBox::NoButtons); _p->spinBox->setReadOnly(true); QHBoxLayout * layout = new QHBoxLayout(this); layout->setSpacing(0); layout->setMargin(0); layout->addWidget(_p->spinBox); widgetUpdate(); }
void djvStylePrefsWidget::resetPreferences() { context()->style()->setPalettes( djvStyle::palettesDefault()); context()->style()->setPalettesIndex( djvStyle::palettesIndexDefault()); context()->style()->setColorSwatchTransparency( djvStyle::colorSwatchTransparencyDefault()); context()->style()->setSizeMetrics( djvStyle::sizeMetricsDefault()); context()->style()->setSizeMetricsIndex( djvStyle::sizeMetricsIndexDefault()); context()->style()->setFonts( djvStyle::fontsDefault()); widgetUpdate(); }
void widgetUpdate(widget_t *widget, Uint32 ticks) { widget_t *walk; if(widget == NULL) { return; } if((widget->handlers != NULL) && (widget->handlers->update != NULL)) { if(widget->handlers->update(widget, ticks)) { widgetDirty(widget); } } for(walk = widget->child; walk != NULL; walk = walk->next) { widgetUpdate(walk, ticks); } }
djvFloatEdit::djvFloatEdit(QWidget * parent) : QWidget(parent), _p(new djvFloatEditPrivate) { _p->object = new djvFloatObject(this); _p->spinBox = new QDoubleSpinBox; _p->spinBox->setKeyboardTracking(false); QHBoxLayout * layout = new QHBoxLayout(this); layout->setSpacing(0); layout->setMargin(0); layout->addWidget(_p->spinBox); widgetUpdate(); connect( _p->object, SIGNAL(valueChanged(double)), SLOT(valueCallback())); connect( _p->object, SIGNAL(minChanged(double)), SLOT(rangeCallback())); connect( _p->object, SIGNAL(maxChanged(double)), SLOT(rangeCallback())); connect( _p->object, SIGNAL(rangeChanged(double, double)), SLOT(rangeCallback())); connect( _p->object, SIGNAL(incChanged(double, double)), SLOT(widgetUpdate())); connect( _p->spinBox, SIGNAL(valueChanged(double)), SLOT(spinBoxCallback(double))); }
djvFloatSlider::djvFloatSlider(QWidget * parent) : QWidget(parent), _p(new djvFloatSliderPrivate) { _p->object = new djvFloatObject(this); _p->slider = new Slider; _p->slider->setRange(0, steps); QHBoxLayout * layout = new QHBoxLayout(this); layout->setSpacing(0); layout->setMargin(0); layout->addWidget(_p->slider); _p->object->setRange(0.0, 1.0); widgetUpdate(); connect( _p->object, SIGNAL(valueChanged(double)), SLOT(valueCallback())); connect( _p->object, SIGNAL(minChanged(double)), SLOT(rangeCallback())); connect( _p->object, SIGNAL(maxChanged(double)), SLOT(rangeCallback())); connect( _p->object, SIGNAL(rangeChanged(double, double)), SLOT(rangeCallback())); connect( _p->slider, SIGNAL(valueChanged(int)), SLOT(sliderCallback(int))); }
djvSequencePrefsWidget::djvSequencePrefsWidget(djvGuiContext * context, QWidget * parent) : djvAbstractPrefsWidget( qApp->translate("djvSequencePrefsWidget", "Sequences"), context, parent), _p(new djvSequencePrefsWidgetPrivate) { // Create the widgets. _p->maxFramesWidget = new djvIntEdit; _p->maxFramesWidget->setMax(djvIntObject::intMax); _p->maxFramesWidget->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); // Layout the widgets. QVBoxLayout * layout = new QVBoxLayout(this); layout->setSpacing(context->style()->sizeMetric().largeSpacing); djvPrefsGroupBox * prefsGroupBox = new djvPrefsGroupBox( qApp->translate("djvSequencePrefsWidget", "Max Frames"), qApp->translate("djvSequencePrefsWidget", "Set the maximum number of frames allowed in a sequence. This is used " "as a safety feature to prevent file sequences from becoming too large."), context); QFormLayout * formLayout = prefsGroupBox->createLayout(); formLayout->addRow( qApp->translate("djvSequencePrefsWidget", "Frames:"), _p->maxFramesWidget); layout->addWidget(prefsGroupBox); layout->addStretch(); // Initialize. widgetUpdate(); // Setup the callbacks. connect( _p->maxFramesWidget, SIGNAL(valueChanged(int)), SLOT(maxFramesCallback(int))); }
void djvColorWidget::setColor(const djvColor & color) { if (color == _p->color) return; //DJV_DEBUG("djvColorWidget::setColor"); //DJV_DEBUG_PRINT("color = " << color); const djvColor prev = _p->color; _p->color = color; if (_p->color.pixel() != prev.pixel()) { widgetUpdate(); } valueUpdate(); Q_EMIT colorChanged(_p->color); }
void djvFloatEdit::rangeCallback() { widgetUpdate(); Q_EMIT rangeChanged(_p->object->min(), _p->object->max()); }
void djvFloatEdit::valueCallback() { widgetUpdate(); Q_EMIT valueChanged(_p->object->value()); }
djvColorWidget::djvColorWidget(djvGuiContext * context, QWidget * parent) : QWidget(parent), _p(new djvColorWidgetPrivate) { //DJV_DEBUG("djvColorWidget::djvColorWidget"); // Create the widgets. for (int i = 0; i < djvPixel::channelsMax; ++i) { djvIntEditSlider * intSlider = new djvIntEditSlider(context); intSlider->setResetToDefault(false); _p->intWidgets += intSlider; djvFloatEditSlider * floatSlider = new djvFloatEditSlider(context); floatSlider->setResetToDefault(false); floatSlider->editObject()->setClamp(false); _p->floatWidgets += floatSlider; } _p->formatWidget = new QComboBox; _p->formatWidget->addItems(djvPixel::formatLabels()); _p->formatWidget->setToolTip(qApp->translate("djvColorWidget", "Pixel format")); _p->typeWidget = new QComboBox; _p->typeWidget->addItems(djvPixel::typeLabels()); _p->typeWidget->setToolTip(qApp->translate("djvColorWidget", "Pixel type")); // Layout the widgets. QVBoxLayout * layout = new QVBoxLayout(this); layout->setMargin(0); for (int i = 0; i < djvPixel::channelsMax; ++i) { layout->addWidget(_p->intWidgets[i]); layout->addWidget(_p->floatWidgets[i]); } _p->bottomLayout = new QHBoxLayout; _p->bottomLayout->setMargin(0); _p->bottomLayout->setSpacing(0); _p->bottomLayout->addStretch(); _p->bottomLayout->addWidget(_p->formatWidget); _p->bottomLayout->addWidget(_p->typeWidget); layout->addLayout(_p->bottomLayout); // Initialize. setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed); widgetUpdate(); valueUpdate(); // Setup the callbacks. for (int i = 0; i < djvPixel::channelsMax; ++i) { connect( _p->intWidgets[i], SIGNAL(valueChanged(int)), SLOT(intCallback(int))); connect( _p->floatWidgets[i], SIGNAL(valueChanged(double)), SLOT(floatCallback(double))); } connect( _p->formatWidget, SIGNAL(activated(int)), SLOT(formatCallback(int))); connect( _p->typeWidget, SIGNAL(activated(int)), SLOT(typeCallback(int))); }
djvStylePrefsWidget::djvStylePrefsWidget(djvGuiContext * context, QWidget * parent) : djvAbstractPrefsWidget( qApp->translate("djvStylePrefsWidget", "Style"), context, parent), _p(new djvStylePrefsWidgetPrivate) { // Create the widgets. _p->colorWidget = new QComboBox; _p->colorWidget->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); _p->colorWidget->addItems(context->style()->paletteNames()); _p->colorForegroundWidget = new djvColorSwatch(context); _p->colorForegroundWidget->setSwatchSize(djvColorSwatch::SWATCH_SMALL); _p->colorForegroundWidget->setColorDialogEnabled(true); _p->colorForegroundWidget->setToolTip( qApp->translate("djvStylePrefsWidget", "Foreground")); _p->colorBackgroundWidget = new djvColorSwatch(context); _p->colorBackgroundWidget->setSwatchSize(djvColorSwatch::SWATCH_SMALL); _p->colorBackgroundWidget->setColorDialogEnabled(true); _p->colorBackgroundWidget->setToolTip( qApp->translate("djvStylePrefsWidget", "Background")); _p->colorBackground2Widget = new djvColorSwatch(context); _p->colorBackground2Widget->setSwatchSize(djvColorSwatch::SWATCH_SMALL); _p->colorBackground2Widget->setColorDialogEnabled(true); _p->colorBackground2Widget->setToolTip( qApp->translate("djvStylePrefsWidget", "Background 2")); _p->colorButtonWidget = new djvColorSwatch(context); _p->colorButtonWidget->setSwatchSize(djvColorSwatch::SWATCH_SMALL); _p->colorButtonWidget->setColorDialogEnabled(true); _p->colorButtonWidget->setToolTip( qApp->translate("djvStylePrefsWidget", "Button")); _p->colorSelectWidget = new djvColorSwatch(context); _p->colorSelectWidget->setSwatchSize(djvColorSwatch::SWATCH_SMALL); _p->colorSelectWidget->setColorDialogEnabled(true); _p->colorSelectWidget->setToolTip( qApp->translate("djvStylePrefsWidget", "Select")); _p->colorSwatchTransparencyWidget = new QCheckBox( qApp->translate("djvStylePrefsWidget", "Show transparency in color swatches")); _p->sizeWidget = new QComboBox; _p->sizeWidget->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); _p->sizeWidget->addItems(context->style()->sizeMetricNames()); _p->sizeValueWidget = new djvIntEdit; _p->sizeValueWidget->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); _p->fontNormalWidget = new QFontComboBox; _p->fontNormalWidget->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); _p->fontFixedWidget = new QFontComboBox; _p->fontFixedWidget->setFontFilters(QFontComboBox::MonospacedFonts); _p->fontFixedWidget->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); // Layout the widgets. QVBoxLayout * layout = new QVBoxLayout(this); layout->setSpacing(context->style()->sizeMetric().largeSpacing); djvPrefsGroupBox * prefsGroupBox = new djvPrefsGroupBox( qApp->translate("djvStylePrefsWidget", "Colors"), context); QFormLayout * formLayout = prefsGroupBox->createLayout(); QHBoxLayout * hLayout = new QHBoxLayout; hLayout->addWidget(_p->colorWidget); hLayout->addWidget(_p->colorForegroundWidget); hLayout->addWidget(_p->colorBackgroundWidget); hLayout->addWidget(_p->colorBackground2Widget); hLayout->addWidget(_p->colorButtonWidget); hLayout->addWidget(_p->colorSelectWidget); formLayout->addRow( qApp->translate("djvStylePrefsWidget", "Color:"), hLayout); formLayout->addRow(_p->colorSwatchTransparencyWidget); layout->addWidget(prefsGroupBox); prefsGroupBox = new djvPrefsGroupBox( qApp->translate("djvStylePrefsWidget", "Size"), context); formLayout = prefsGroupBox->createLayout(); hLayout = new QHBoxLayout; hLayout->setMargin(0); hLayout->addWidget(_p->sizeWidget); hLayout->addWidget(_p->sizeValueWidget); formLayout->addRow( qApp->translate("djvStylePrefsWidget", "Size:"), hLayout); layout->addWidget(prefsGroupBox); prefsGroupBox = new djvPrefsGroupBox( qApp->translate("djvStylePrefsWidget", "Fonts"), context); formLayout = prefsGroupBox->createLayout(); formLayout->addRow( qApp->translate("djvStylePrefsWidget", "Normal:"), _p->fontNormalWidget); formLayout->addRow( qApp->translate("djvStylePrefsWidget", "Fixed:"), _p->fontFixedWidget); layout->addWidget(prefsGroupBox); layout->addStretch(); // Initialize. widgetUpdate(); // Setup the callbacks. connect( _p->colorWidget, SIGNAL(activated(int)), SLOT(colorCallback(int))); connect( _p->colorForegroundWidget, SIGNAL(colorChanged(const djvColor &)), SLOT(colorForegroundCallback(const djvColor &))); connect( _p->colorBackgroundWidget, SIGNAL(colorChanged(const djvColor &)), SLOT(colorBackgroundCallback(const djvColor &))); connect( _p->colorBackground2Widget, SIGNAL(colorChanged(const djvColor &)), SLOT(colorBackground2Callback(const djvColor &))); connect( _p->colorButtonWidget, SIGNAL(colorChanged(const djvColor &)), SLOT(colorButtonCallback(const djvColor &))); connect( _p->colorSelectWidget, SIGNAL(colorChanged(const djvColor &)), SLOT(colorSelectCallback(const djvColor &))); connect( _p->colorSwatchTransparencyWidget, SIGNAL(toggled(bool)), SLOT(colorSwatchTransparencyCallback(bool))); connect( _p->sizeWidget, SIGNAL(activated(int)), SLOT(sizeCallback(int))); connect( _p->sizeValueWidget, SIGNAL(valueChanged(int)), SLOT(sizeValueCallback(int))); connect( _p->fontNormalWidget, SIGNAL(currentFontChanged(const QFont &)), SLOT(fontNormalCallback(const QFont &))); connect( _p->fontFixedWidget, SIGNAL(currentFontChanged(const QFont &)), SLOT(fontFixedCallback(const QFont &))); }
void djvStylePrefsWidget::sizeCallback(int index) { context()->style()->setSizeMetricsIndex(index); widgetUpdate(); }
void djvStylePrefsWidget::colorCallback(int index) { context()->style()->setPalettesIndex(index); widgetUpdate(); }