void KCMStyle::updateConfigButton() { if (!styleEntries[currentStyle()] || styleEntries[currentStyle()]->configPage.isEmpty()) { pbConfigStyle->setEnabled(false); return; } // We don't check whether it's loadable here - // lets us report an error and not waste time // loading things if the user doesn't click the button pbConfigStyle->setEnabled( true ); }
void FontSelectionView::_AddStylesToMenu(const BFont& font, BMenu* stylesMenu) const { stylesMenu->RemoveItems(0, stylesMenu->CountItems(), true); stylesMenu->SetRadioMode(true); font_family family; font_style style; font.GetFamilyAndStyle(&family, &style); BString currentStyle(style); int32 numStyles = count_font_styles(family); for (int32 j = 0; j < numStyles; j++) { if (get_font_style(family, j, &style) != B_OK) continue; BMessage* message = new BMessage(kMsgSetStyle); message->AddString("family", (char*)family); message->AddString("style", (char*)style); BMenuItem* item = new BMenuItem(style, message); item->SetMarked(currentStyle == style); stylesMenu->AddItem(item); item->SetTarget(this); } }
void CountProducerWidget::on_styleCombo_activated(int /*index*/) { if (m_producer) { m_producer->set("style", currentStyle().toLatin1().constData()); m_producer->set(kShotcutDetailProperty, detail().toUtf8().constData()); emit producerChanged(producer()); } }
Mlt::Properties CountProducerWidget::getPreset() const { Mlt::Properties p; p.set("direction", currentDirection().toLatin1().constData()); p.set("style", currentStyle().toLatin1().constData()); p.set("sound", currentSound().toLatin1().constData()); p.set("background", currentBackground().toLatin1().constData()); p.set("drop", ui->dropCheckBox->isChecked()); setLength(&p, ui->durationSpinBox->value()); return p; }
Mlt::Producer* CountProducerWidget::newProducer(Mlt::Profile& profile) { Mlt::Producer* p = new Mlt::Producer(profile, "count:"); p->set("direction", currentDirection().toLatin1().constData()); p->set("style", currentStyle().toLatin1().constData()); p->set("sound", currentSound().toLatin1().constData()); p->set("background", currentBackground().toLatin1().constData()); p->set("drop", ui->dropCheckBox->isChecked()); setLength(p, ui->durationSpinBox->value()); p->set(kShotcutCaptionProperty, ui->nameLabel->text().toUtf8().constData()); p->set(kShotcutDetailProperty, detail().toUtf8().constData()); return p; }
void ProgressBarGraphicsItem::mainPaint(QPainter* painter, const QStyleOptionGraphicsItem* option, QWidget* widget) { currentStyle()->ProgressBarGI_paint(this,painter,option,widget); }
void ProgressBarGraphicsItem::initializePaintSettings() { currentStyle()->ProgressBarGI_initializePaintSettings(this); }
QPainterPath ProgressBarGraphicsItem::shape() const { return currentStyle()->ProgressBarGI_shape(this); }
//--------------------------------------------------------------------------------------------------------------- // nwebasegraphicsitem functions //--------------------------------------------------------------------------------------------------------------- QRectF ProgressBarGraphicsItem::boundingRect() const{ return currentStyle()->ProgressBarGI_boundingRect(this); }
void KCMStyle::styleChanged() { switchStyle( currentStyle() ); }
void KCMStyle::loadStyle( TDEConfig& config ) { cbStyle->clear(); // Create a dictionary of WidgetStyle to Name and Desc. mappings, // as well as the config page info styleEntries.clear(); styleEntries.setAutoDelete(true); TQString strWidgetStyle; TQStringList list = TDEGlobal::dirs()->findAllResources("themes", "*.themerc", true, true); for (TQStringList::iterator it = list.begin(); it != list.end(); ++it) { KSimpleConfig config( *it, true ); if ( !(config.hasGroup("KDE") && config.hasGroup("Misc")) ) continue; config.setGroup("KDE"); strWidgetStyle = config.readEntry("WidgetStyle"); if (strWidgetStyle.isNull()) continue; // We have a widgetstyle, so lets read the i18n entries for it... StyleEntry* entry = new StyleEntry; config.setGroup("Misc"); entry->name = config.readEntry("Name"); entry->desc = config.readEntry("Comment", i18n("No description available.")); entry->configPage = config.readEntry("ConfigPage", TQString::null); // Check if this style should be shown config.setGroup("Desktop Entry"); entry->hidden = config.readBoolEntry("Hidden", false); // Insert the entry into our dictionary. styleEntries.insert(strWidgetStyle.lower(), entry); } // Obtain all style names TQStringList allStyles = TQStyleFactory::keys(); // Get translated names, remove all hidden style entries. TQStringList styles; StyleEntry* entry; for (TQStringList::iterator it = allStyles.begin(); it != allStyles.end(); it++) { TQString id = (*it).lower(); // Find the entry. if ( (entry = styleEntries.find(id)) != 0 ) { // Do not add hidden entries if (entry->hidden) continue; styles += entry->name; nameToStyleKey[entry->name] = id; } else { styles += (*it); //Fall back to the key (but in original case) nameToStyleKey[*it] = id; } } // Sort the style list, and add it to the combobox styles.sort(); cbStyle->insertStringList( styles ); // Find out which style is currently being used config.setGroup( "General" ); TQString defaultStyle = TDEStyle::defaultStyle(); TQString cfgStyle = config.readEntry( "widgetStyle", defaultStyle ); // Select the current style // Do not use cbStyle->listBox() as this may be NULL for some styles when // they use QPopupMenus for the drop-down list! // ##### Since Trolltech likes to seemingly copy & paste code, // TQStringList::findItem() doesn't have a Qt::StringComparisonMode field. // We roll our own (yuck) cfgStyle = cfgStyle.lower(); int item = 0; for( int i = 0; i < cbStyle->count(); i++ ) { TQString id = nameToStyleKey[cbStyle->text(i)]; item = i; if ( id == cfgStyle ) // ExactMatch break; else if ( id.contains( cfgStyle ) ) break; else if ( id.contains( TQApplication::style().className() ) ) break; item = 0; } cbStyle->setCurrentItem( item ); m_bStyleDirty = false; switchStyle( currentStyle() ); // make resets visible }
void KCMStyle::save() { // Don't do anything if we don't need to. if ( !(m_bToolbarsDirty | m_bEffectsDirty | m_bStyleDirty ) ) return; bool allowMenuTransparency = false; bool allowMenuDropShadow = false; // Read the TDEStyle flags to see if the style writer // has enabled menu translucency in the style. if (appliedStyle && appliedStyle->inherits("TDEStyle")) { allowMenuDropShadow = true; TDEStyle* style = dynamic_cast<TDEStyle*>(appliedStyle); if (style) { TDEStyle::TDEStyleFlags flags = style->styleFlags(); if (flags & TDEStyle::AllowMenuTransparency) allowMenuTransparency = true; } } TQString warn_string( i18n("<qt>Selected style: <b>%1</b><br><br>" "One or more effects that you have chosen could not be applied because the selected " "style does not support them; they have therefore been disabled.<br>" "<br>" ).arg( cbStyle->currentText()) ); bool show_warning = false; // Warn the user if they're applying a style that doesn't support // menu translucency and they enabled it. if ( (!allowMenuTransparency) && (cbEnableEffects->isChecked()) && (comboMenuEffect->currentItem() == 3) ) // Make Translucent { warn_string += i18n("Menu translucency is not available.<br>"); comboMenuEffect->setCurrentItem(0); // Disable menu effect. show_warning = true; } if (!allowMenuDropShadow && cbMenuShadow->isChecked()) { warn_string += i18n("Menu drop-shadows are not available."); cbMenuShadow->setChecked(false); show_warning = true; } // Tell the user what features we could not apply on their behalf. if (show_warning) KMessageBox::information(this, warn_string); // Save effects. TDEConfig config( "kdeglobals" ); config.setGroup("KDE"); config.writeEntry( "EffectsEnabled", cbEnableEffects->isChecked()); int item = comboComboEffect->currentItem(); config.writeEntry( "EffectAnimateCombo", item == 1 ); item = comboTooltipEffect->currentItem(); config.writeEntry( "EffectAnimateTooltip", item == 1); config.writeEntry( "EffectFadeTooltip", item == 2 ); item = comboRubberbandEffect->currentItem(); { TQSettings settings; // Only for TDEStyle stuff settings.writeEntry("/TDEStyle/Settings/SemiTransparentRubberband", item == 1); } item = comboMenuHandle->currentItem(); config.writeEntry( "InsertTearOffHandle", item ); item = comboMenuEffect->currentItem(); config.writeEntry( "EffectAnimateMenu", item == 1 ); config.writeEntry( "EffectFadeMenu", item == 2 ); // Handle TDEStyle's menu effects TQString engine("Disabled"); if (item == 3 && cbEnableEffects->isChecked()) // Make Translucent switch( comboMenuEffectType->currentItem()) { case 1: engine = "SoftwareBlend"; break; case 2: engine = "XRender"; break; default: case 0: engine = "SoftwareTint"; break; } { // Braces force a TQSettings::sync() TQSettings settings; // Only for TDEStyle stuff settings.writeEntry("/TDEStyle/Settings/MenuTransparencyEngine", engine); settings.writeEntry("/TDEStyle/Settings/MenuOpacity", slOpacity->value()/100.0); settings.writeEntry("/TDEStyle/Settings/MenuDropShadow", cbEnableEffects->isChecked() && cbMenuShadow->isChecked() ); } // Misc page config.writeEntry( "ShowIconsOnPushButtons", cbIconsOnButtons->isChecked(), true, true ); { // Braces force a TQSettings::sync() TQSettings settings; // Only for TDEStyle stuff settings.writeEntry("/TDEStyle/Settings/ScrollablePopupMenus", cbScrollablePopupMenus->isChecked() ); settings.writeEntry("/TDEStyle/Settings/AutoHideAccelerators", cbAutoHideAccelerators->isChecked() ); settings.writeEntry("/TDEStyle/Settings/MenuAltKeyNavigation", cbMenuAltKeyNavigation->isChecked() ); settings.writeEntry("/TDEStyle/Settings/PopupMenuDelay", m_popupMenuDelay->value() ); } config.writeEntry( "EffectNoTooltip", !cbEnableTooltips->isChecked(), true, true ); config.setGroup("General"); config.writeEntry( "widgetStyle", currentStyle() ); config.setGroup("Toolbar style"); config.writeEntry( "Highlighting", cbHoverButtons->isChecked(), true, true ); config.writeEntry( "TransparentMoving", cbTransparentToolbars->isChecked(), true, true ); TQString tbIcon; switch( comboToolbarIcons->currentItem() ) { case 1: tbIcon = "TextOnly"; break; case 2: tbIcon = "IconTextRight"; break; case 3: tbIcon = "IconTextBottom"; break; case 0: default: tbIcon = "IconOnly"; break; } config.writeEntry( "IconText", tbIcon, true, true ); config.sync(); // Export the changes we made to qtrc, and update all qt-only // applications on the fly, ensuring that we still follow the user's // export fonts/colors settings. if (m_bStyleDirty | m_bEffectsDirty) // Export only if necessary { uint flags = KRdbExportQtSettings; TDEConfig tdeconfig("kcmdisplayrc", true /*readonly*/, false /*no globals*/); tdeconfig.setGroup("X11"); bool exportKDEColors = tdeconfig.readBoolEntry("exportKDEColors", true); if (exportKDEColors) flags |= KRdbExportColors; runRdb( flags ); } // Now allow TDE apps to reconfigure themselves. if ( m_bStyleDirty ) KIPC::sendMessageAll(KIPC::StyleChanged); if ( m_bToolbarsDirty ) // ##### FIXME - Doesn't apply all settings correctly due to bugs in // TDEApplication/TDEToolbar KIPC::sendMessageAll(KIPC::ToolbarStyleChanged); if (m_bEffectsDirty) { KIPC::sendMessageAll(KIPC::SettingsChanged); kapp->dcopClient()->send("twin*", "", "reconfigure()", TQString("")); } //update kicker to re-used tooltips kicker parameter otherwise, it overwritted //by style tooltips parameters. TQByteArray data; kapp->dcopClient()->send( "kicker", "kicker", "configure()", data ); // Clean up m_bEffectsDirty = false; m_bToolbarsDirty = false; m_bStyleDirty = false; emit changed( false ); }
void KCMStyle::styleSpecificConfig() { TQString libname = styleEntries[currentStyle()]->configPage; // Use KLibLoader to get the library, handling // any errors that arise KLibLoader* loader = KLibLoader::self(); KLibrary* library = loader->library( TQFile::encodeName(libname) ); if (!library) { KMessageBox::detailedError(this, i18n("There was an error loading the configuration dialog for this style."), loader->lastErrorMessage(), i18n("Unable to Load Dialog")); return; } void* allocPtr = library->symbol("allocate_tdestyle_config"); if (!allocPtr) { KMessageBox::detailedError(this, i18n("There was an error loading the configuration dialog for this style."), loader->lastErrorMessage(), i18n("Unable to Load Dialog")); return; } //Create the container dialog StyleConfigDialog* dial = new StyleConfigDialog(this, styleEntries[currentStyle()]->name); dial->enableButtonSeparator(true); typedef TQWidget*(* factoryRoutine)( TQWidget* parent ); //Get the factory, and make the widget. factoryRoutine factory = (factoryRoutine)(allocPtr); //Grmbl. So here I am on my //"never use C casts" moralizing streak, and I find that one can't go void* -> function ptr //even with a reinterpret_cast. TQWidget* pluginConfig = factory( dial ); //Insert it in... dial->setMainWidget( pluginConfig ); //..and connect it to the wrapper connect(pluginConfig, TQT_SIGNAL(changed(bool)), dial, TQT_SLOT(setDirty(bool))); connect(dial, TQT_SIGNAL(defaults()), pluginConfig, TQT_SLOT(defaults())); connect(dial, TQT_SIGNAL(save()), pluginConfig, TQT_SLOT(save())); if (dial->exec() == TQDialog::Accepted && dial->isDirty() ) { // Force re-rendering of the preview, to apply settings switchStyle(currentStyle(), true); //For now, ask all TDE apps to recreate their styles to apply the setitngs KIPC::sendMessageAll(KIPC::StyleChanged); // We call setStyleDirty here to make sure we force style re-creation setStyleDirty(); } delete dial; }
//moved from KFormDesigner::FormManager void KexiFormManager::createActions(KActionCollection* collection) { d->collection = collection; // KXMLGUIClient* client = (KXMLGUIClient*)d->collection->parentGUIClient(); d->lib->createWidgetActions(d->widgetActionGroup); //! @todo insertWidget() slot? //2.0 d->lib->createWidgetActions(client, d->collection, //2.0 this, SLOT(insertWidget(const QByteArray &))); #ifdef KFD_SIGSLOTS if (d->features & KFormDesigner::Form::EnableConnections) { // nothing } else { d->dragConnectionAction = new KToggleAction( KIcon("signalslot"), i18n("Connect Signals/Slots"), d->collection); d->dragConnectionAction->setObjectName("drag_connection"); // d->widgetActionGroup->addAction(d->dragConnectionAction); connect(d->dragConnectionAction, SIGNAL(triggered()), this, SLOT(startCreatingConnection())); d->dragConnectionAction->setChecked(false); } #endif d->pointerAction = new KToggleAction( KIcon("mouse_pointer"), i18n("Pointer"), d->collection); d->pointerAction->setObjectName("edit_pointer"); d->widgetActionGroup->addAction(d->pointerAction); connect(d->pointerAction, SIGNAL(triggered()), this, SLOT(slotPointerClicked())); d->pointerAction->setChecked(true); d->snapToGridAction = new KToggleAction( i18n("Snap to Grid"), d->collection); d->snapToGridAction->setObjectName("snap_to_grid"); // d->widgetActionGroup->addAction(d->snapToGridAction); // d->snapToGridAction->setChecked(true); #if 0 // 2.0: todo // Create the Style selection action (with a combo box in toolbar and submenu items) KSelectAction *styleAction = new KSelectAction( i18n("Style"), d->collection); styleAction->setObjectName("change_style"); connect(styleAction, SIGNAL(triggered()), this, SLOT(slotStyle())); styleAction->setEditable(false); //js: unused? KGlobalGroup cg = KGlobal::config()->group("General"); QString currentStyle(kapp->style()->objectName().toLower()); const QStringList styles = QStyleFactory::keys(); styleAction->setItems(styles); styleAction->setCurrentItem(0); QStringList::ConstIterator endIt = styles.constEnd(); int idx = 0; for (QStringList::ConstIterator it = styles.constBegin(); it != endIt; ++it, ++idx) { if ((*it).toLower() == currentStyle) { styleAction->setCurrentItem(idx); break; } } styleAction->setToolTip(i18n("Set the current view style.")); styleAction->setMenuAccelsEnabled(true); #endif d->lib->addCustomWidgetActions(d->collection); #ifdef KEXI_DEBUG_GUI KConfigGroup generalGroup(KGlobal::config()->group("General")); if (generalGroup.readEntry("ShowInternalDebugger", false)) { KAction *a = new KAction(KIcon("run-build-file"), i18n("Show Form UI Code"), this); d->collection->addAction("show_form_ui", a); a->setShortcut(Qt::CTRL + Qt::Key_U); connect(a, SIGNAL(triggered()), this, SLOT(showFormUICode())); } #endif //! @todo move elsewhere { // (from obsolete kexiformpartinstui.rc) QStringList formActions; formActions << "edit_pointer" << QString() //sep #ifndef KEXI_NO_AUTOFIELD_WIDGET << ":library_widget_KexiDBAutoField" #endif << ":library_widget_KexiDBLabel" << ":library_widget_KexiDBImageBox" << ":library_widget_KexiDBLineEdit" << ":library_widget_KexiDBTextEdit" << ":library_widget_KPushButton" << ":library_widget_KexiDBComboBox" << ":library_widget_KexiDBCheckBox" #ifndef KEXI_NO_FORM_LAYOUTS << ":library_widget_Spacer" #endif << ":library_widget_Line" << ":library_widget_KexiFrame" << ":library_widget_QGroupBox" << ":library_widget_KFDTabWidget" #ifndef KEXI_NO_FORM_SPRING_ELEMENT << ":library_widget_Spring" #endif << QString() //sep ; KexiMainWindowIface *win = KexiMainWindowIface::global(); foreach( const QString& actionName_, formActions ) { QAction *a; const QString actionName(actionName_.startsWith(':') ? actionName_.mid(1) : actionName_); if (actionName.isEmpty()) { a = new QAction(this); a->setSeparator(true); } else { a = d->widgetActionGroup->action(actionName); } if (actionName_.startsWith(':')) { // icon only KexiSmallToolButton *btn = new KexiSmallToolButton(a, win->toolBar("form")); btn->setToolButtonStyle(Qt::ToolButtonIconOnly); win->appendWidgetToToolbar("form", btn); } else { win->addToolBarAction("form", a); } } QSet<QString> iconOnlyActions; iconOnlyActions << "widget_assign_action" << "show_form_ui"; const QList<QAction*> actions( d->collection->actions() ); foreach( QAction *a, actions ) { if (iconOnlyActions.contains(a->objectName())) { // icon only KexiSmallToolButton *btn = new KexiSmallToolButton(a, win->toolBar("form")); btn->setToolButtonStyle(Qt::ToolButtonIconOnly); win->appendWidgetToToolbar("form", btn); } else { win->addToolBarAction("form", a); } } }
void PropertyGraphicsItem::mainPaint(QPainter* painter, const QStyleOptionGraphicsItem* option, QWidget* widget, NWEItemSettings& setting) { currentStyle()->PropertyGI_paint(this, painter, option, widget,setting); }
NWEItemSettings NWEBaseGraphicsItem::beforePaint(QPainter* painter, const QStyleOptionGraphicsItem* option){ return currentStyle()->getNWEItemSettings(this,option); }