void QvisAppearanceWindow::fontNameChanged(const QString &newFont) { AppearanceAttributes *atts = (AppearanceAttributes *)subject; atts->SetFontName(newFont.toStdString()); SetUpdate(false); Apply(); }
void QvisAppearanceWindow::orientationChanged(int index) { AppearanceAttributes *atts = (AppearanceAttributes *)subject; atts->SetOrientation((index == 0) ? 0 : 2); SetUpdate(false); Apply(); }
void QvisAppearanceWindow::styleChanged(int index) { AppearanceAttributes *atts = (AppearanceAttributes *)subject; atts->SetStyle(styleNames[index]); SetUpdate(false); Apply(); }
void QvisAppearanceWindow::useSysDefaultChanged(bool val) { AppearanceAttributes *atts = (AppearanceAttributes *)subject; atts->SetUseSystemDefault(val); atts->SelectAll(); atts->Notify(); }
void QvisAppearanceWindow::foregroundChanged(const QColor &fg) { AppearanceAttributes *atts = (AppearanceAttributes *)subject; if(ColorsNotTooClose(fg, atts->GetBackground().c_str())) { QString tmp; tmp.sprintf("#%02x%02x%02x", fg.red(), fg.green(), fg.blue()); atts->SetForeground(tmp.toStdString()); SetUpdate(false); Apply(); } }
void QvisAppearanceWindow::UpdateWindowSensitivity() { AppearanceAttributes *atts = (AppearanceAttributes *)subject; bool val = !atts->GetUseSystemDefault(); backgroundColorButton->setEnabled(val); backgroundColorLabel->setEnabled(val); foregroundColorButton->setEnabled(val); foregroundColorLabel->setEnabled(val); fontName->setEnabled(val); fontLabel->setEnabled(val); styleComboBox->setEnabled(val); styleLabel->setEnabled(val); orientationComboBox->setEnabled(val); orientationLabel->setEnabled(val); }
void SetAppearance(QApplication *app, AppearanceAttributes *aa) { const char *mName = "SetAppearance: "; // Get the current appearance attributes. AppearanceAttributes currentAtts; GetAppearance(app, ¤tAtts); // // Set the style // std::string newStyle(aa->GetStyle()); if(aa->GetUseSystemDefault()) newStyle = aa->GetDefaultStyle(); bool changeStyle = newStyle != currentAtts.GetDefaultStyle(); if(changeStyle) { debug1 << mName << "Setting style to: " << newStyle << endl; // Set the style via the style name. app->setStyle(newStyle.c_str()); } // // Set the font. // std::string newFont(aa->GetFontName()); if(aa->GetUseSystemDefault()) newFont = aa->GetDefaultFontName(); bool changeFont = (newFont != currentAtts.GetDefaultFontName()) || changeStyle; if(changeFont) { QFont font; bool okay = true; if(newFont.size() > 0 && newFont[0] == '-') { // It's probably an XLFD font = QFont(newFont.c_str()); debug1 << mName << "The font looks like XLFD: " << newFont << endl; } else okay = font.fromString(newFont.c_str()); if(okay) { debug1 << mName << "Font okay. name=" << font.toString().toStdString() << endl; app->setFont(font); // Force the font change on all top level widgets. // for each top level widget... foreach(QWidget *w, QApplication::topLevelWidgets()) w->setFont(font); } else debug1 << mName << "Font NOT okay. name=" << font.toString().toStdString() << endl; } // // Set the application colors // std::string newBG(aa->GetBackground()); std::string newFG(aa->GetForeground()); if(aa->GetUseSystemDefault()) { newBG = aa->GetDefaultBackground(); newFG = aa->GetDefaultForeground(); } bool changeColors = newBG != currentAtts.GetDefaultBackground() || newFG != currentAtts.GetDefaultForeground(); bool colorStyle = newStyle != "macintosh"; if(changeColors && colorStyle) { QColor bg(newBG.c_str()); QColor fg(newFG.c_str()); QColor btn(bg); // Put the converted RGB format color into the appearance attributes // in case the colors were given as color names. if(!aa->GetUseSystemDefault()) { char tmp[20]; sprintf(tmp, "#%02x%02x%02x", bg.red(), bg.green(), bg.blue()); aa->SetBackground(tmp); sprintf(tmp, "#%02x%02x%02x", fg.red(), fg.green(), fg.blue()); aa->SetForeground(tmp); } debug1 <<mName << "Setting BG color to: " << newBG << endl; debug1 <<mName << "Setting FG color to: " << newFG << endl; int h,s,v; fg.getHsv(&h,&s,&v); QColor base = Qt::white; bool bright_mode = false; if(v >= 255 - 50) { base = btn.dark(150); bright_mode = true; } QPalette pal(fg, btn, btn.light(), btn.dark(), btn.dark(150), fg, Qt::white, base, bg); // pal.setCurrentColorGroup(QPalette::Normal); if (bright_mode) { // pal.setColor(QPalette::Text, fg); // pal.setColor(QPalette::WindowText, fg); pal.setColor(QPalette::Normal, QPalette::HighlightedText, base ); pal.setColor(QPalette::Normal, QPalette::Highlight, Qt::white ); } else { // pal.setColor(QPalette::Text, fg); // pal.setColor(QPalette::WindowText, fg); pal.setColor(QPalette::Normal, QPalette::HighlightedText, Qt::white ); pal.setColor(QPalette::Normal, QPalette::Highlight, Qt::darkBlue ); } // Set inactive colors // pal.setCurrentColorGroup(QPalette::Inactive); if (bright_mode) { // pal.setColor(QPalette::Inactive, QPalette::Text, fg); // pal.setColor(QPalette::Inactive, QPalette::WindowText, fg); pal.setColor(QPalette::Inactive, QPalette::HighlightedText, base ); pal.setColor(QPalette::Inactive, QPalette::Highlight, Qt::white ); } else { // pal.setColor(QPalette::Inactive, QPalette::Text, fg); // pal.setColor(QPalette::Inactive, QPalette::WindowText, fg); pal.setColor(QPalette::Inactive, QPalette::HighlightedText, Qt::white ); pal.setColor(QPalette::Inactive, QPalette::Highlight, Qt::darkBlue ); } // Set disabled colors QColor disabled((fg.red()+btn.red())/2, (fg.green()+btn.green())/2, (fg.blue()+btn.blue())/2); // pal.setCurrentColorGroup(QPalette::Disabled); pal.setColor(QPalette::Disabled, QPalette::WindowText, disabled); pal.setColor(QPalette::Disabled, QPalette::Light, btn.light( 125 )); pal.setColor(QPalette::Disabled, QPalette::Text, disabled); pal.setColor(QPalette::Disabled, QPalette::Base, Qt::white); if (bright_mode) { pal.setColor(QPalette::Disabled, QPalette::HighlightedText, base); pal.setColor(QPalette::Disabled, QPalette::Highlight, Qt::white); } else { pal.setColor(QPalette::Disabled, QPalette::HighlightedText, Qt::white); pal.setColor(QPalette::Disabled, QPalette::Highlight, Qt::darkBlue); } app->setPalette(pal); } }
void QvisAppearanceWindow::UpdateWindow(bool doAll) { AppearanceAttributes *atts = (AppearanceAttributes *)subject; int j; for(int i = 0; i < atts->NumAttributes(); ++i) { if(!doAll) { if(!atts->IsSelected(i)) continue; } switch(i) { case AppearanceAttributes::ID_useSystemDefault: { // new scope bool val = atts->GetUseSystemDefault(); useSysDefaultCheckBox->blockSignals(true); if(val) useSysDefaultCheckBox->setCheckState(Qt::Checked); else useSysDefaultCheckBox->setCheckState(Qt::Unchecked); useSysDefaultCheckBox->blockSignals(false); } break; case AppearanceAttributes::ID_background: { // new scope QColor bg; if(atts->GetUseSystemDefault()) bg = QColor(atts->GetDefaultBackground().c_str()); else bg = QColor(atts->GetBackground().c_str()); backgroundColorButton->blockSignals(true); backgroundColorButton->setButtonColor(bg); backgroundColorButton->blockSignals(false); } break; case AppearanceAttributes::ID_foreground: { // new scope QColor fg; if(atts->GetUseSystemDefault()) fg = QColor(atts->GetDefaultForeground().c_str()); else fg = QColor(atts->GetForeground().c_str()); foregroundColorButton->blockSignals(true); foregroundColorButton->setButtonColor(fg); foregroundColorButton->blockSignals(false); } break; case AppearanceAttributes::ID_fontName: fontName->blockSignals(true); if(atts->GetUseSystemDefault()) fontName->setText(atts->GetDefaultFontName().c_str()); else fontName->setText(atts->GetFontName().c_str()); fontName->blockSignals(false); break; case AppearanceAttributes::ID_style: { // new scope std::string styleName; if(atts->GetUseSystemDefault()) styleName = atts->GetDefaultStyle(); else styleName = atts->GetStyle(); for(j = 0; j < numStyleNames; ++j) { if(styleName == styleNames[j]) { styleComboBox->blockSignals(true); styleComboBox->setCurrentIndex(j); styleComboBox->blockSignals(false); break; } } } break; case AppearanceAttributes::ID_orientation: orientationComboBox->blockSignals(true); if(atts->GetOrientation() == 0) orientationComboBox->setCurrentIndex(0); else orientationComboBox->setCurrentIndex(1); orientationComboBox->blockSignals(false); break; } } UpdateWindowSensitivity(); }