ColorPickerDialog::ColorPickerDialog(QWidget *parent, QString const &title): bases::PlatformDialog(parent, title), m_color(Qt::black) { QGridLayout *m_gridLayout = new QGridLayout(); setLayout(m_gridLayout); for (unsigned i = 0; i < 10; i++) { for (unsigned j = 0; j < 10; j++) { bases::ClickableWidget *colorWidget = new bases::ClickableWidget(this); colorWidget->setMinimumSize(20,20); QColor color = (j == 0) ? QColor::fromHsl(0, 0, (int)((double)i * 255 / 9)) : QColor::fromHsl(i * 36, 255, (int)((double)j * 25.5)); QPalette pal(palette()); pal.setColor(QPalette::Background, color); colorWidget->setAutoFillBackground(true); colorWidget->setPalette(pal); m_gridLayout->addWidget(colorWidget, i, j); m_colors[colorWidget] = color; connect(colorWidget, SIGNAL(clicked()), this, SLOT(colorClicked())); } } }
MarkStateRuleDialog::MarkStateRuleDialog(QWidget *parent, LTS* lts, QColor color, int parameter, bool negated, QSet<int> values): QDialog(parent), m_lts(lts) { m_ui.setupUi(this); connect(m_ui.color, SIGNAL(clicked()), this, SLOT(colorClicked())); connect(m_ui.parameterList, SIGNAL(itemSelectionChanged()), this, SLOT(parameterSelected())); setColor(color); for (size_t i = 0; i < m_lts->getNumParameters(); i++) { m_ui.parameterList->addItem(QString::fromStdString(m_lts->getParameterName(i))); } assert(parameter < static_cast<int>(m_lts->getNumParameters())); m_ui.parameterList->item(parameter)->setSelected(true); if (negated) { m_ui.relationList->item(0)->setSelected(false); m_ui.relationList->item(1)->setSelected(true); } else { m_ui.relationList->item(0)->setSelected(true); m_ui.relationList->item(1)->setSelected(false); } for (int i = 0; i < m_ui.valueList->count(); i++) { m_ui.valueList->item(i)->setCheckState(values.contains(i) ? Qt::Checked : Qt::Unchecked); } }
void CustomColorsWidget::CreateButtons() { int titleRow = 1 ? includeTitleRow : 0; for (int row=0; row<buttonsHigh; ++row) { for (int col=0; col<buttonsWide; ++col) { ColorButton *newButton = new ColorButton(); newButton->setEnabled(false); newButton->SetRow(row); newButton->SetColumn(col); newButton->setCheckable(true); connect(newButton, SIGNAL(clicked(QColor)), this, SIGNAL(colorClicked(QColor))); connect(newButton, SIGNAL(clicked(QColor,int,int)), this, SLOT(setCurrentColor(QColor,int,int))); newButton->SetBackgroundColor(QColor::fromRgb(255, 255, 255)); gridLayout->addWidget(newButton, row+titleRow, col); buttons.push_back(newButton); buttonGroup->addButton(newButton); } } if (includeTitleRow) { QLabel *titleLabel = new QLabel("Custom Colors:"); titleLabel->setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Maximum); gridLayout->addWidget(titleLabel, 0, 0, 1, gridLayout->columnCount()); } QPushButton *removeColorButton = new QPushButton(); removeColorButton->setText("Remove From Custom Colors"); removeColorButton->setFixedHeight(27); connect(removeColorButton, SIGNAL(clicked()), this, SLOT(removeColor())); gridLayout->addWidget(removeColorButton, gridLayout->rowCount(), 0, 1, gridLayout->columnCount()); }
void ColorWidget::setCurrentIndex(int idx) { if (idx < 0 || idx > buttons.size() - 1) { return; } auto *btn = buttons[idx]; btn->setDown(true); emit colorClicked(btn->getColor()); }
RocketOptionsDialog::RocketOptionsDialog(QWidget *parent) : QDialog(parent) { setupUi(this); positionGroup.addButton(radPosition1, 1); positionGroup.addButton(radPosition2, 2); positionGroup.addButton(radPosition3, 3); positionGroup.addButton(radPosition4, 4); positionGroup.addButton(radPosition5, 5); positionGroup.addButton(radPosition6, 6); positionGroup.addButton(radPosition7, 7); positionGroup.addButton(radPosition8, 8); positionGroup.addButton(radPosition9, 9); connect(&positionGroup, SIGNAL(buttonClicked(int)), SLOT(positionClicked(int))); QSettings settings; settings.beginGroup("thumbnail"); chkAlwaysMakeThumbnails->setChecked(settings.value("alwaysMakeThumbnails").toBool()); settings.endGroup(); settings.beginGroup("ui"); chkAskBeforeDeleting->setChecked(settings.value("askBeforeDeleting").toBool()); chkUseFading->setChecked(settings.value("useFading").toBool()); chkShowRollover->setChecked(settings.value("showRollover").toBool()); chkCenterOnSelection->setChecked(settings.value("centerOnSelection").toBool()); settings.endGroup(); spnRamForImages->setValue(settings.value("image/ramForImages").toInt()); chkCheckForUpdates->setChecked(settings.value("program/checkForUpdates").toBool()); settings.beginGroup("watermark"); watermarkFont = settings.value("font").value< QFont >(); QFont textFont = watermarkFont; textFont.setPointSize(txtWatermarkText->font().pointSize()); txtWatermarkText->setFont(textFont); //disregard point size spnMargin->setValue(settings.value("margin").toInt()); txtWatermarkText->setPlainText(settings.value("text").toString()); if (settings.value("selected").toString() == "text") { radWatermarkText->setChecked(true); } else { radImage->setChecked(true); } if (QFile(settings.value("image").toString()).exists()) { linImage->setText(settings.value("image").toString()); } chkAddWatermark->setChecked(settings.value("on").toBool()); positionGroup.button(settings.value("position").toInt())->setChecked(true); watermarkColor = settings.value("color").value< QColor >(); QColor buttonColor = watermarkColor; buttonColor.setAlpha(255); setColorButtonColor(buttonColor); //disregard alpha sldOpacity->setValue(watermarkColor.alpha()); settings.endGroup(); connect(btnColor, SIGNAL(clicked()), SLOT(colorClicked())); connect(sldOpacity, SIGNAL(valueChanged(int)), SLOT(opacityChanged())); connect(btnFont, SIGNAL(clicked()), SLOT(fontClicked())); connect(btnImageSelect, SIGNAL(clicked()), SLOT(imageSelectClicked())); connect(btnPreview, SIGNAL(clicked()), SLOT(previewClicked())); }
void ColorWidget::onColorClicked(const QColor &color) { auto *btn = qobject_cast<ColorButton*>(sender()); if (!btn) return; foreach (auto *b, buttons) { if (b != btn) { b->setDown(false); } } emit colorClicked(color); }
void QgsColorButton::buttonClicked() { if ( linkedProjectColor().isValid() ) { QToolButton::showMenu(); } else { switch ( mBehavior ) { case ShowDialog: showColorDialog(); return; case SignalOnly: emit colorClicked( mColor ); return; } } }
QgsCompoundColorWidget::QgsCompoundColorWidget( QWidget *parent, const QColor& color, Layout widgetLayout ) : QgsPanelWidget( parent ) , mAllowAlpha( true ) , mLastCustomColorIndex( 0 ) , mPickingColor( false ) { setupUi( this ); if ( widgetLayout == LayoutVertical ) { // shuffle stuff around QVBoxLayout* newLayout = new QVBoxLayout(); newLayout->addWidget( mTabWidget ); newLayout->addWidget( mSlidersWidget ); newLayout->addWidget( mPreviewWidget ); newLayout->addWidget( mSwatchesWidget ); delete layout(); setLayout( newLayout ); } QSettings settings; mSchemeList->header()->hide(); mSchemeList->setColumnWidth( 0, 44 ); //get schemes with ShowInColorDialog set refreshSchemeComboBox(); QList<QgsColorScheme *> schemeList = QgsColorSchemeRegistry::instance()->schemes( QgsColorScheme::ShowInColorDialog ); //choose a reasonable starting scheme int activeScheme = settings.value( "/Windows/ColorDialog/activeScheme", 0 ).toInt(); activeScheme = activeScheme >= mSchemeComboBox->count() ? 0 : activeScheme; mSchemeList->setScheme( schemeList.at( activeScheme ) ); mSchemeComboBox->setCurrentIndex( activeScheme ); updateActionsForCurrentScheme(); //listen out for selection changes in list, so we can enable/disable the copy colors option connect( mSchemeList->selectionModel(), SIGNAL( selectionChanged( QItemSelection, QItemSelection ) ), this, SLOT( listSelectionChanged( QItemSelection, QItemSelection ) ) ); //copy action defaults to disabled mActionCopyColors->setEnabled( false ); connect( mActionCopyColors, SIGNAL( triggered() ), mSchemeList, SLOT( copyColors() ) ); connect( mActionPasteColors, SIGNAL( triggered() ), mSchemeList, SLOT( pasteColors() ) ); connect( mActionExportColors, SIGNAL( triggered() ), this, SLOT( exportColors() ) ); connect( mActionImportColors, SIGNAL( triggered() ), this, SLOT( importColors() ) ); connect( mActionImportPalette, SIGNAL( triggered() ), this, SLOT( importPalette() ) ); connect( mActionRemovePalette, SIGNAL( triggered() ), this, SLOT( removePalette() ) ); connect( mActionNewPalette, SIGNAL( triggered() ), this, SLOT( newPalette() ) ); connect( mRemoveColorsFromSchemeButton, SIGNAL( clicked() ), mSchemeList, SLOT( removeSelection() ) ); QMenu* schemeMenu = new QMenu( mSchemeToolButton ); schemeMenu->addAction( mActionCopyColors ); schemeMenu->addAction( mActionPasteColors ); schemeMenu->addSeparator(); schemeMenu->addAction( mActionImportColors ); schemeMenu->addAction( mActionExportColors ); schemeMenu->addSeparator(); schemeMenu->addAction( mActionNewPalette ); schemeMenu->addAction( mActionImportPalette ); schemeMenu->addAction( mActionRemovePalette ); schemeMenu->addAction( mActionShowInButtons ); mSchemeToolButton->setMenu( schemeMenu ); connect( mSchemeComboBox, SIGNAL( currentIndexChanged( int ) ), this, SLOT( schemeIndexChanged( int ) ) ); connect( mSchemeList, SIGNAL( colorSelected( QColor ) ), this, SLOT( setColor( QColor ) ) ); mOldColorLabel->hide(); mVerticalRamp->setOrientation( QgsColorRampWidget::Vertical ); mVerticalRamp->setInteriorMargin( 2 ); mVerticalRamp->setShowFrame( true ); mRedSlider->setComponent( QgsColorWidget::Red ); mGreenSlider->setComponent( QgsColorWidget::Green ); mBlueSlider->setComponent( QgsColorWidget::Blue ); mHueSlider->setComponent( QgsColorWidget::Hue ); mSaturationSlider->setComponent( QgsColorWidget::Saturation ); mValueSlider->setComponent( QgsColorWidget::Value ); mAlphaSlider->setComponent( QgsColorWidget::Alpha ); mSwatchButton1->setShowMenu( false ); mSwatchButton1->setBehaviour( QgsColorButton::SignalOnly ); mSwatchButton2->setShowMenu( false ); mSwatchButton2->setBehaviour( QgsColorButton::SignalOnly ); mSwatchButton3->setShowMenu( false ); mSwatchButton3->setBehaviour( QgsColorButton::SignalOnly ); mSwatchButton4->setShowMenu( false ); mSwatchButton4->setBehaviour( QgsColorButton::SignalOnly ); mSwatchButton5->setShowMenu( false ); mSwatchButton5->setBehaviour( QgsColorButton::SignalOnly ); mSwatchButton6->setShowMenu( false ); mSwatchButton6->setBehaviour( QgsColorButton::SignalOnly ); mSwatchButton7->setShowMenu( false ); mSwatchButton7->setBehaviour( QgsColorButton::SignalOnly ); mSwatchButton8->setShowMenu( false ); mSwatchButton8->setBehaviour( QgsColorButton::SignalOnly ); mSwatchButton9->setShowMenu( false ); mSwatchButton9->setBehaviour( QgsColorButton::SignalOnly ); mSwatchButton10->setShowMenu( false ); mSwatchButton10->setBehaviour( QgsColorButton::SignalOnly ); mSwatchButton11->setShowMenu( false ); mSwatchButton11->setBehaviour( QgsColorButton::SignalOnly ); mSwatchButton12->setShowMenu( false ); mSwatchButton12->setBehaviour( QgsColorButton::SignalOnly ); mSwatchButton13->setShowMenu( false ); mSwatchButton13->setBehaviour( QgsColorButton::SignalOnly ); mSwatchButton14->setShowMenu( false ); mSwatchButton14->setBehaviour( QgsColorButton::SignalOnly ); mSwatchButton15->setShowMenu( false ); mSwatchButton15->setBehaviour( QgsColorButton::SignalOnly ); mSwatchButton16->setShowMenu( false ); mSwatchButton16->setBehaviour( QgsColorButton::SignalOnly ); //restore custom colors mSwatchButton1->setColor( settings.value( "/Windows/ColorDialog/customColor1", QVariant( QColor() ) ).value<QColor>() ); mSwatchButton2->setColor( settings.value( "/Windows/ColorDialog/customColor2", QVariant( QColor() ) ).value<QColor>() ); mSwatchButton3->setColor( settings.value( "/Windows/ColorDialog/customColor3", QVariant( QColor() ) ).value<QColor>() ); mSwatchButton4->setColor( settings.value( "/Windows/ColorDialog/customColor4", QVariant( QColor() ) ).value<QColor>() ); mSwatchButton5->setColor( settings.value( "/Windows/ColorDialog/customColor5", QVariant( QColor() ) ).value<QColor>() ); mSwatchButton6->setColor( settings.value( "/Windows/ColorDialog/customColor6", QVariant( QColor() ) ).value<QColor>() ); mSwatchButton7->setColor( settings.value( "/Windows/ColorDialog/customColor7", QVariant( QColor() ) ).value<QColor>() ); mSwatchButton8->setColor( settings.value( "/Windows/ColorDialog/customColor8", QVariant( QColor() ) ).value<QColor>() ); mSwatchButton9->setColor( settings.value( "/Windows/ColorDialog/customColor9", QVariant( QColor() ) ).value<QColor>() ); mSwatchButton10->setColor( settings.value( "/Windows/ColorDialog/customColor10", QVariant( QColor() ) ).value<QColor>() ); mSwatchButton11->setColor( settings.value( "/Windows/ColorDialog/customColor11", QVariant( QColor() ) ).value<QColor>() ); mSwatchButton12->setColor( settings.value( "/Windows/ColorDialog/customColor12", QVariant( QColor() ) ).value<QColor>() ); mSwatchButton13->setColor( settings.value( "/Windows/ColorDialog/customColor13", QVariant( QColor() ) ).value<QColor>() ); mSwatchButton14->setColor( settings.value( "/Windows/ColorDialog/customColor14", QVariant( QColor() ) ).value<QColor>() ); mSwatchButton15->setColor( settings.value( "/Windows/ColorDialog/customColor15", QVariant( QColor() ) ).value<QColor>() ); mSwatchButton16->setColor( settings.value( "/Windows/ColorDialog/customColor16", QVariant( QColor() ) ).value<QColor>() ); //restore sample radius mSpinBoxRadius->setValue( settings.value( "/Windows/ColorDialog/sampleRadius", 1 ).toInt() ); mSamplePreview->setColor( QColor() ); if ( color.isValid() ) { setColor( color ); } //restore active component radio button int activeRadio = settings.value( "/Windows/ColorDialog/activeComponent", 2 ).toInt(); switch ( activeRadio ) { case 0: mHueRadio->setChecked( true ); break; case 1: mSaturationRadio->setChecked( true ); break; case 2: mValueRadio->setChecked( true ); break; case 3: mRedRadio->setChecked( true ); break; case 4: mGreenRadio->setChecked( true ); break; case 5: mBlueRadio->setChecked( true ); break; } int currentTab = settings.value( "/Windows/ColorDialog/activeTab", 0 ).toInt(); mTabWidget->setCurrentIndex( currentTab ); #ifdef Q_OS_MAC //disable color picker tab for OSX, as it is impossible to grab the mouse under OSX //see note for QWidget::grabMouse() re OSX Cocoa //http://qt-project.org/doc/qt-4.8/qwidget.html#grabMouse mTabWidget->removeTab( 3 ); #endif //setup connections connect( mColorBox, SIGNAL( colorChanged( QColor ) ), this, SLOT( setColor( QColor ) ) ); connect( mColorWheel, SIGNAL( colorChanged( QColor ) ), this, SLOT( setColor( QColor ) ) ); connect( mColorText, SIGNAL( colorChanged( QColor ) ), this, SLOT( setColor( QColor ) ) ); connect( mVerticalRamp, SIGNAL( colorChanged( QColor ) ), this, SLOT( setColor( QColor ) ) ); connect( mRedSlider, SIGNAL( colorChanged( QColor ) ), this, SLOT( setColor( QColor ) ) ); connect( mGreenSlider, SIGNAL( colorChanged( QColor ) ), this, SLOT( setColor( QColor ) ) ); connect( mBlueSlider, SIGNAL( colorChanged( QColor ) ), this, SLOT( setColor( QColor ) ) ); connect( mHueSlider, SIGNAL( colorChanged( QColor ) ), this, SLOT( setColor( QColor ) ) ); connect( mValueSlider, SIGNAL( colorChanged( QColor ) ), this, SLOT( setColor( QColor ) ) ); connect( mSaturationSlider, SIGNAL( colorChanged( QColor ) ), this, SLOT( setColor( QColor ) ) ); connect( mAlphaSlider, SIGNAL( colorChanged( QColor ) ), this, SLOT( setColor( QColor ) ) ); connect( mColorPreview, SIGNAL( colorChanged( QColor ) ), this, SLOT( setColor( QColor ) ) ); connect( mSwatchButton1, SIGNAL( colorClicked( QColor ) ), this, SLOT( setColor( QColor ) ) ); connect( mSwatchButton2, SIGNAL( colorClicked( QColor ) ), this, SLOT( setColor( QColor ) ) ); connect( mSwatchButton3, SIGNAL( colorClicked( QColor ) ), this, SLOT( setColor( QColor ) ) ); connect( mSwatchButton4, SIGNAL( colorClicked( QColor ) ), this, SLOT( setColor( QColor ) ) ); connect( mSwatchButton5, SIGNAL( colorClicked( QColor ) ), this, SLOT( setColor( QColor ) ) ); connect( mSwatchButton6, SIGNAL( colorClicked( QColor ) ), this, SLOT( setColor( QColor ) ) ); connect( mSwatchButton7, SIGNAL( colorClicked( QColor ) ), this, SLOT( setColor( QColor ) ) ); connect( mSwatchButton8, SIGNAL( colorClicked( QColor ) ), this, SLOT( setColor( QColor ) ) ); connect( mSwatchButton9, SIGNAL( colorClicked( QColor ) ), this, SLOT( setColor( QColor ) ) ); connect( mSwatchButton10, SIGNAL( colorClicked( QColor ) ), this, SLOT( setColor( QColor ) ) ); connect( mSwatchButton11, SIGNAL( colorClicked( QColor ) ), this, SLOT( setColor( QColor ) ) ); connect( mSwatchButton12, SIGNAL( colorClicked( QColor ) ), this, SLOT( setColor( QColor ) ) ); connect( mSwatchButton13, SIGNAL( colorClicked( QColor ) ), this, SLOT( setColor( QColor ) ) ); connect( mSwatchButton14, SIGNAL( colorClicked( QColor ) ), this, SLOT( setColor( QColor ) ) ); connect( mSwatchButton15, SIGNAL( colorClicked( QColor ) ), this, SLOT( setColor( QColor ) ) ); connect( mSwatchButton16, SIGNAL( colorClicked( QColor ) ), this, SLOT( setColor( QColor ) ) ); }
QgsColorDialogV2::QgsColorDialogV2( QWidget *parent, Qt::WindowFlags fl, const QColor& color ) : QDialog( parent, fl ) , mPreviousColor( color ) , mAllowAlpha( true ) , mLastCustomColorIndex( 0 ) , mPickingColor( false ) { setupUi( this ); QSettings settings; restoreGeometry( settings.value( "/Windows/ColorDialog/geometry" ).toByteArray() ); mSchemeList->header()->hide(); mSchemeList->setColumnWidth( 0, 44 ); //get schemes with ShowInColorDialog set refreshSchemeComboBox(); QList<QgsColorScheme *> schemeList = QgsColorSchemeRegistry::instance()->schemes( QgsColorScheme::ShowInColorDialog ); //choose a reasonable starting scheme int activeScheme = settings.value( "/Windows/ColorDialog/activeScheme", 0 ).toInt(); activeScheme = activeScheme >= mSchemeComboBox->count() ? 0 : activeScheme; mSchemeList->setScheme( schemeList.at( activeScheme ) ); mSchemeComboBox->setCurrentIndex( activeScheme ); mActionImportColors->setEnabled( schemeList.at( activeScheme )->isEditable() ); mActionPasteColors->setEnabled( schemeList.at( activeScheme )->isEditable() ); mAddColorToSchemeButton->setEnabled( schemeList.at( activeScheme )->isEditable() ); mRemoveColorsFromSchemeButton->setEnabled( schemeList.at( activeScheme )->isEditable() ); QgsUserColorScheme* userScheme = dynamic_cast<QgsUserColorScheme*>( schemeList.at( activeScheme ) ); mActionRemovePalette->setEnabled( userScheme ? true : false ); //listen out for selection changes in list, so we can enable/disable the copy colors option connect( mSchemeList->selectionModel(), SIGNAL( selectionChanged( QItemSelection, QItemSelection ) ), this, SLOT( listSelectionChanged( QItemSelection, QItemSelection ) ) ); //copy action defaults to disabled mActionCopyColors->setEnabled( false ); connect( mActionCopyColors, SIGNAL( triggered() ), mSchemeList, SLOT( copyColors() ) ); connect( mActionPasteColors, SIGNAL( triggered() ), mSchemeList, SLOT( pasteColors() ) ); connect( mActionExportColors, SIGNAL( triggered() ), this, SLOT( exportColors() ) ); connect( mActionImportColors, SIGNAL( triggered() ), this, SLOT( importColors() ) ); connect( mActionImportPalette, SIGNAL( triggered() ), this, SLOT( importPalette() ) ); connect( mActionRemovePalette, SIGNAL( triggered() ), this, SLOT( removePalette() ) ); connect( mActionNewPalette, SIGNAL( triggered() ), this, SLOT( newPalette() ) ); connect( mRemoveColorsFromSchemeButton, SIGNAL( clicked() ), mSchemeList, SLOT( removeSelection() ) ); QMenu* schemeMenu = new QMenu( mSchemeToolButton ); schemeMenu->addAction( mActionCopyColors ); schemeMenu->addAction( mActionPasteColors ); schemeMenu->addSeparator(); schemeMenu->addAction( mActionImportColors ); schemeMenu->addAction( mActionExportColors ); schemeMenu->addSeparator(); schemeMenu->addAction( mActionNewPalette ); schemeMenu->addAction( mActionImportPalette ); schemeMenu->addAction( mActionRemovePalette ); mSchemeToolButton->setMenu( schemeMenu ); connect( mSchemeComboBox, SIGNAL( currentIndexChanged( int ) ), this, SLOT( schemeIndexChanged( int ) ) ); connect( mSchemeList, SIGNAL( colorSelected( QColor ) ), this, SLOT( setColor( QColor ) ) ); if ( mPreviousColor.isValid() ) { QPushButton* resetButton = new QPushButton( tr( "Reset" ) ); mButtonBox->addButton( resetButton, QDialogButtonBox::ResetRole ); } else { mOldColorLabel->hide(); } mVerticalRamp->setOrientation( QgsColorRampWidget::Vertical ); mVerticalRamp->setInteriorMargin( 2 ); mVerticalRamp->setShowFrame( true ); mRedSlider->setComponent( QgsColorWidget::Red ); mGreenSlider->setComponent( QgsColorWidget::Green ); mBlueSlider->setComponent( QgsColorWidget::Blue ); mHueSlider->setComponent( QgsColorWidget::Hue ); mSaturationSlider->setComponent( QgsColorWidget::Saturation ); mValueSlider->setComponent( QgsColorWidget::Value ); mAlphaSlider->setComponent( QgsColorWidget::Alpha ); mSwatchButton1->setShowMenu( false ); mSwatchButton1->setBehaviour( QgsColorButtonV2::SignalOnly ); mSwatchButton2->setShowMenu( false ); mSwatchButton2->setBehaviour( QgsColorButtonV2::SignalOnly ); mSwatchButton3->setShowMenu( false ); mSwatchButton3->setBehaviour( QgsColorButtonV2::SignalOnly ); mSwatchButton4->setShowMenu( false ); mSwatchButton4->setBehaviour( QgsColorButtonV2::SignalOnly ); mSwatchButton5->setShowMenu( false ); mSwatchButton5->setBehaviour( QgsColorButtonV2::SignalOnly ); mSwatchButton6->setShowMenu( false ); mSwatchButton6->setBehaviour( QgsColorButtonV2::SignalOnly ); mSwatchButton7->setShowMenu( false ); mSwatchButton7->setBehaviour( QgsColorButtonV2::SignalOnly ); mSwatchButton8->setShowMenu( false ); mSwatchButton8->setBehaviour( QgsColorButtonV2::SignalOnly ); mSwatchButton9->setShowMenu( false ); mSwatchButton9->setBehaviour( QgsColorButtonV2::SignalOnly ); mSwatchButton10->setShowMenu( false ); mSwatchButton10->setBehaviour( QgsColorButtonV2::SignalOnly ); mSwatchButton11->setShowMenu( false ); mSwatchButton11->setBehaviour( QgsColorButtonV2::SignalOnly ); mSwatchButton12->setShowMenu( false ); mSwatchButton12->setBehaviour( QgsColorButtonV2::SignalOnly ); mSwatchButton13->setShowMenu( false ); mSwatchButton13->setBehaviour( QgsColorButtonV2::SignalOnly ); mSwatchButton14->setShowMenu( false ); mSwatchButton14->setBehaviour( QgsColorButtonV2::SignalOnly ); mSwatchButton15->setShowMenu( false ); mSwatchButton15->setBehaviour( QgsColorButtonV2::SignalOnly ); mSwatchButton16->setShowMenu( false ); mSwatchButton16->setBehaviour( QgsColorButtonV2::SignalOnly ); //restore custom colors mSwatchButton1->setColor( settings.value( "/Windows/ColorDialog/customColor1", QVariant( QColor() ) ).value<QColor>() ); mSwatchButton2->setColor( settings.value( "/Windows/ColorDialog/customColor2", QVariant( QColor() ) ).value<QColor>() ); mSwatchButton3->setColor( settings.value( "/Windows/ColorDialog/customColor3", QVariant( QColor() ) ).value<QColor>() ); mSwatchButton4->setColor( settings.value( "/Windows/ColorDialog/customColor4", QVariant( QColor() ) ).value<QColor>() ); mSwatchButton5->setColor( settings.value( "/Windows/ColorDialog/customColor5", QVariant( QColor() ) ).value<QColor>() ); mSwatchButton6->setColor( settings.value( "/Windows/ColorDialog/customColor6", QVariant( QColor() ) ).value<QColor>() ); mSwatchButton7->setColor( settings.value( "/Windows/ColorDialog/customColor7", QVariant( QColor() ) ).value<QColor>() ); mSwatchButton8->setColor( settings.value( "/Windows/ColorDialog/customColor8", QVariant( QColor() ) ).value<QColor>() ); mSwatchButton9->setColor( settings.value( "/Windows/ColorDialog/customColor9", QVariant( QColor() ) ).value<QColor>() ); mSwatchButton10->setColor( settings.value( "/Windows/ColorDialog/customColor10", QVariant( QColor() ) ).value<QColor>() ); mSwatchButton11->setColor( settings.value( "/Windows/ColorDialog/customColor11", QVariant( QColor() ) ).value<QColor>() ); mSwatchButton12->setColor( settings.value( "/Windows/ColorDialog/customColor12", QVariant( QColor() ) ).value<QColor>() ); mSwatchButton13->setColor( settings.value( "/Windows/ColorDialog/customColor13", QVariant( QColor() ) ).value<QColor>() ); mSwatchButton14->setColor( settings.value( "/Windows/ColorDialog/customColor14", QVariant( QColor() ) ).value<QColor>() ); mSwatchButton15->setColor( settings.value( "/Windows/ColorDialog/customColor15", QVariant( QColor() ) ).value<QColor>() ); mSwatchButton16->setColor( settings.value( "/Windows/ColorDialog/customColor16", QVariant( QColor() ) ).value<QColor>() ); //restore sample radius mSpinBoxRadius->setValue( settings.value( "/Windows/ColorDialog/sampleRadius", 1 ).toInt() ); mSamplePreview->setColor( QColor() ); if ( color.isValid() ) { setColor( color ); mColorPreview->setColor2( color ); } //restore active component radio button int activeRadio = settings.value( "/Windows/ColorDialog/activeComponent", 2 ).toInt(); switch ( activeRadio ) { case 0: mHueRadio->setChecked( true ); break; case 1: mSaturationRadio->setChecked( true ); break; case 2: mValueRadio->setChecked( true ); break; case 3: mRedRadio->setChecked( true ); break; case 4: mGreenRadio->setChecked( true ); break; case 5: mBlueRadio->setChecked( true ); break; } int currentTab = settings.value( "/Windows/ColorDialog/activeTab", 0 ).toInt(); mTabWidget->setCurrentIndex( currentTab ); //setup connections connect( mColorBox, SIGNAL( colorChanged( QColor ) ), this, SLOT( setColor( QColor ) ) ); connect( mColorWheel, SIGNAL( colorChanged( QColor ) ), this, SLOT( setColor( QColor ) ) ); connect( mColorText, SIGNAL( colorChanged( QColor ) ), this, SLOT( setColor( QColor ) ) ); connect( mVerticalRamp, SIGNAL( colorChanged( QColor ) ), this, SLOT( setColor( QColor ) ) ); connect( mRedSlider, SIGNAL( colorChanged( QColor ) ), this, SLOT( setColor( QColor ) ) ); connect( mGreenSlider, SIGNAL( colorChanged( QColor ) ), this, SLOT( setColor( QColor ) ) ); connect( mBlueSlider, SIGNAL( colorChanged( QColor ) ), this, SLOT( setColor( QColor ) ) ); connect( mHueSlider, SIGNAL( colorChanged( QColor ) ), this, SLOT( setColor( QColor ) ) ); connect( mValueSlider, SIGNAL( colorChanged( QColor ) ), this, SLOT( setColor( QColor ) ) ); connect( mSaturationSlider, SIGNAL( colorChanged( QColor ) ), this, SLOT( setColor( QColor ) ) ); connect( mAlphaSlider, SIGNAL( colorChanged( QColor ) ), this, SLOT( setColor( QColor ) ) ); connect( mColorPreview, SIGNAL( colorChanged( QColor ) ), this, SLOT( setColor( QColor ) ) ); connect( mSwatchButton1, SIGNAL( colorClicked( QColor ) ), this, SLOT( setColor( QColor ) ) ); connect( mSwatchButton2, SIGNAL( colorClicked( QColor ) ), this, SLOT( setColor( QColor ) ) ); connect( mSwatchButton3, SIGNAL( colorClicked( QColor ) ), this, SLOT( setColor( QColor ) ) ); connect( mSwatchButton4, SIGNAL( colorClicked( QColor ) ), this, SLOT( setColor( QColor ) ) ); connect( mSwatchButton5, SIGNAL( colorClicked( QColor ) ), this, SLOT( setColor( QColor ) ) ); connect( mSwatchButton6, SIGNAL( colorClicked( QColor ) ), this, SLOT( setColor( QColor ) ) ); connect( mSwatchButton7, SIGNAL( colorClicked( QColor ) ), this, SLOT( setColor( QColor ) ) ); connect( mSwatchButton8, SIGNAL( colorClicked( QColor ) ), this, SLOT( setColor( QColor ) ) ); connect( mSwatchButton9, SIGNAL( colorClicked( QColor ) ), this, SLOT( setColor( QColor ) ) ); connect( mSwatchButton10, SIGNAL( colorClicked( QColor ) ), this, SLOT( setColor( QColor ) ) ); connect( mSwatchButton11, SIGNAL( colorClicked( QColor ) ), this, SLOT( setColor( QColor ) ) ); connect( mSwatchButton12, SIGNAL( colorClicked( QColor ) ), this, SLOT( setColor( QColor ) ) ); connect( mSwatchButton13, SIGNAL( colorClicked( QColor ) ), this, SLOT( setColor( QColor ) ) ); connect( mSwatchButton14, SIGNAL( colorClicked( QColor ) ), this, SLOT( setColor( QColor ) ) ); connect( mSwatchButton15, SIGNAL( colorClicked( QColor ) ), this, SLOT( setColor( QColor ) ) ); connect( mSwatchButton16, SIGNAL( colorClicked( QColor ) ), this, SLOT( setColor( QColor ) ) ); }
lcQPropertiesDialog::lcQPropertiesDialog(QWidget *parent, void *data) : QDialog(parent), ui(new Ui::lcQPropertiesDialog) { ui->setupUi(this); ui->fogDensityEdit->setValidator(new QDoubleValidator()); connect(ui->solidColorButton, SIGNAL(clicked()), this, SLOT(colorClicked())); connect(ui->gradient1ColorButton, SIGNAL(clicked()), this, SLOT(colorClicked())); connect(ui->gradient2ColorButton, SIGNAL(clicked()), this, SLOT(colorClicked())); connect(ui->fogColorButton, SIGNAL(clicked()), this, SLOT(colorClicked())); connect(ui->ambientColorButton, SIGNAL(clicked()), this, SLOT(colorClicked())); options = (lcPropertiesDialogOptions*)data; setWindowTitle(tr("%1 Properties").arg(options->Properties.mName)); ui->descriptionEdit->setText(options->Properties.mDescription); ui->authorEdit->setText(options->Properties.mAuthor); ui->commentsEdit->setText(options->Properties.mComments); if (options->Properties.mBackgroundType == LC_BACKGROUND_IMAGE) ui->imageRadio->setChecked(true); else if (options->Properties.mBackgroundType == LC_BACKGROUND_GRADIENT) ui->gradientRadio->setChecked(true); else ui->solidRadio->setChecked(true); ui->imageNameEdit->setText(options->Properties.mBackgroundImage); ui->imageTileCheckBox->setChecked(options->Properties.mBackgroundImageTile); ui->fogCheckBox->setChecked(options->Properties.mFogEnabled); ui->fogDensityEdit->setText(QString::number(options->Properties.mFogDensity)); QPixmap pix(12, 12); pix.fill(QColor(options->Properties.mBackgroundSolidColor[0] * 255, options->Properties.mBackgroundSolidColor[1] * 255, options->Properties.mBackgroundSolidColor[2] * 255)); ui->solidColorButton->setIcon(pix); pix.fill(QColor(options->Properties.mBackgroundGradientColor1[0] * 255, options->Properties.mBackgroundGradientColor1[1] * 255, options->Properties.mBackgroundGradientColor1[2] * 255)); ui->gradient1ColorButton->setIcon(pix); pix.fill(QColor(options->Properties.mBackgroundGradientColor2[0] * 255, options->Properties.mBackgroundGradientColor2[1] * 255, options->Properties.mBackgroundGradientColor2[2] * 255)); ui->gradient2ColorButton->setIcon(pix); pix.fill(QColor(options->Properties.mFogColor[0] * 255, options->Properties.mFogColor[1] * 255, options->Properties.mFogColor[2] * 255)); ui->fogColorButton->setIcon(pix); pix.fill(QColor(options->Properties.mAmbientColor[0] * 255, options->Properties.mAmbientColor[1] * 255, options->Properties.mAmbientColor[2] * 255)); ui->ambientColorButton->setIcon(pix); lcPiecesLibrary *library = lcGetPiecesLibrary(); lcArray<lcPartsListEntry>& partsUsed = options->PartsList; QStringList horizontalLabels, partNames; bool *colorsUsed = new bool[gNumUserColors]; memset(colorsUsed, 0, sizeof(bool) * gNumUserColors); int *infoRows = new int[library->mPieces.GetSize()], numInfos = 0; memset(infoRows, 0, sizeof(int) * library->mPieces.GetSize()); for (int partIdx = 0; partIdx < partsUsed.GetSize(); partIdx++) { colorsUsed[partsUsed[partIdx].ColorIndex] = true; int infoIndex = library->mPieces.FindIndex(partsUsed[partIdx].Info); if (!infoRows[infoIndex]) { infoRows[infoIndex] = ++numInfos; partNames.append(partsUsed[partIdx].Info->m_strDescription); } } int *colorColumns = new int[gNumUserColors]; memset(colorColumns, 0, sizeof(int) * gNumUserColors); int numColors = 0; horizontalLabels.append(tr("Part")); for (int colorIdx = 0; colorIdx < gNumUserColors; colorIdx++) { if (colorsUsed[colorIdx]) { colorColumns[colorIdx] = numColors++; horizontalLabels.append(gColorList[colorIdx].Name); } } horizontalLabels.append(tr("Total")); QTableWidget *table = ui->partsTable; table->setColumnCount(numColors + 2); table->setRowCount(numInfos + 1); table->setHorizontalHeaderLabels(horizontalLabels); #if (QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)) table->horizontalHeader()->setSectionResizeMode(0, QHeaderView::ResizeToContents); #else table->horizontalHeader()->setResizeMode(0, QHeaderView::ResizeToContents); #endif for (int rowIdx = 0; rowIdx < partNames.size(); rowIdx++) table->setItem(rowIdx, 0, new QTableWidgetItem(partNames[rowIdx])); table->setItem(partNames.size(), 0, new QTableWidgetItem(tr("Total"))); QVector<int> infoTotals; QVector<int> colorTotals; int total = 0; infoTotals.resize(numInfos); colorTotals.resize(numColors); for (int partIdx = 0; partIdx < partsUsed.GetSize(); partIdx++) { int colorIndex = partsUsed[partIdx].ColorIndex; int infoIndex = library->mPieces.FindIndex(partsUsed[partIdx].Info); int count = partsUsed[partIdx].Count; QTableWidgetItem *item = new QTableWidgetItem(QString::number(count)); item->setTextAlignment(Qt::AlignCenter); table->setItem(infoRows[infoIndex] - 1, colorColumns[colorIndex] + 1, item); infoTotals[infoRows[infoIndex] - 1] += count; colorTotals[colorColumns[colorIndex]] += count; total += count; } for (int infoIdx = 0; infoIdx < numInfos; infoIdx++) { QTableWidgetItem *item = new QTableWidgetItem(QString::number(infoTotals[infoIdx])); item->setTextAlignment(Qt::AlignCenter); table->setItem(infoIdx, numColors + 1, item); } for (int colorIdx = 0; colorIdx < numColors; colorIdx++) { QTableWidgetItem *item = new QTableWidgetItem(QString::number(colorTotals[colorIdx])); item->setTextAlignment(Qt::AlignCenter); table->setItem(numInfos, colorIdx + 1, item); } QTableWidgetItem *item = new QTableWidgetItem(QString::number(total)); item->setTextAlignment(Qt::AlignCenter); table->setItem(numInfos, numColors + 1, item); delete[] colorColumns; delete[] colorsUsed; delete[] infoRows; }