ScimSetupWindow::ScimSetupWindow(scim::SocketServerThread *parent, const char */*name*/, KConfigSkeleton */*config*/) : KCMultiDialog(KDialogBase::TreeList, i18n("Configure skim"), 0), d(new ScimSetupWindowPrivate) { m_mc = SkimPluginManager::self(); setIcon(KGlobal::iconLoader()->loadIcon("configure", KIcon::NoGroup)); d->inputServer = parent; d->scim_backend_need_update = false; setShowIconsInTreeList( true ); connect( this, SIGNAL( configCommitted( const QCString & ) ), KSettings::Dispatcher::self(), SLOT( reparseConfiguration( const QCString & ) ) ); connect( this, SIGNAL( configCommitted( const QCString & ) ), SLOT(slotConfigurationChangedFor( const QCString & ))); connect( m_mc, SIGNAL(allPluginsLoaded()), this, SLOT(load())); //we cache all the available kcms and their hierarchy, so that we do not //need to reload them everytime load() is called QValueList<SkimPluginInfo *> skimplugins = SkimPluginInfo::fromServices( KTrader::self()->query( "Skim/SetupDir", "[X-KDE-PluginInfo-Category] == 'Root'" )); QValueList<SkimPluginInfo *>::ConstIterator pit; ScimSetupWindowPrivate::SetupDirInfo curDir; for ( pit = skimplugins.begin(); pit != skimplugins.end(); ++pit ) { curDir.sortedMods.clear(); curDir.path.clear(); QValueList< KService::Ptr > services = KTrader::self()->query( "Skim/KCModule", "[X-KDE-PluginInfo-DisplayParent] == '" + (*pit)->pluginName() + "'" ); std::multimap<int, int> sortedMods; //map weight to index in mods /*if( services.size() > 1)*/ { curDir.path << (*pit)->name(); curDir.iconfile = (*pit)->icon(); //sort the kcm according to their weight. 0 will be the first for( QValueList<KService::Ptr>::ConstIterator it = services.begin(); it != services.end(); ++it ) { KCModuleInfo mod(*it); d->mods.push_back(mod); curDir.sortedMods.insert(std::pair<int, int> (mod.weight(), d->mods.size()-1)); } QVariant v = ( *pit )->weight(); int weight = v.isValid () ? v.toInt() : 1000; //sort the dir according to their weight. 0 will be the first d->dirReposition.insert(std::pair<int, ScimSetupWindowPrivate::SetupDirInfo> (weight, curDir)); } } load(); if(ScimKdeSettings::self()->config()->hasGroup(SetupWindowGroup)) { ScimKdeSettings::self()->config()->setGroup(SetupWindowGroup); if( ScimKdeSettings::self()->config()->hasKey(SetupWindowSize)) resize(ScimKdeSettings::self()->config()->readSizeEntry(SetupWindowSize)); } }
ConfigDlg::ConfigDlg(QWidget *parent, const char *name) : KDialogBase(KDialogBase::TreeList, WStyle_DialogBorder, parent, name, true, "Settings", KDialogBase::Ok|KDialogBase::Cancel) { setShowIconsInTreeList(true); setMinimumSize(600,400); enableButtonSeparator(true); unfoldTreeList(); QVBox *frame; QStringList path; path << i18n("Languages"); setFolderIcon(path, BarIcon("protoeditor", KIcon::SizeSmall)); QValueList<LanguageSettings*> llist = Protoeditor::self()->settings()->languageSettingsList(); QValueList<LanguageSettings*>::iterator it; for(it = llist.begin(); it != llist.end(); ++it) { path.clear(); path << i18n("Languages") << (*it)->languageName(); frame = addVBoxPage(path, (*it)->languageName(), BarIcon((*it)->iconName(), KIcon::SizeSmall)); frame->setSpacing(0); frame->setMargin(0); m_langSettingsWidgets.append((*it)->createSettingsWidget(frame)); } path.clear(); path << i18n("Sites"); frame= addVBoxPage(path, i18n("Sites"), BarIcon("package_network", KIcon::SizeSmall)); frame->setSpacing(0); frame->setMargin(0); m_siteSettingsWidget = new SiteSettingsWidget(frame);//->reparent(((QWidget*)frame), 0, QPoint()); path.clear(); path << i18n("External Applications"); frame = addVBoxPage(path, i18n("External Applications"), BarIcon("gear", KIcon::SizeSmall)); frame->setSpacing(0); frame->setMargin(0); m_extAppSettingsWidget = new ExtAppSettingsWidget(frame, i18n("External Applications"));//->reparent(((QWidget*)frame), 0, QPoint()); resize(QSize(590, 300).expandedTo(minimumSizeHint())); }
KateConfigDialog::KateConfigDialog(KateMainWindow *parent, Kate::View *view) : KDialogBase(KDialogBase::TreeList, i18n("Configure"), KDialogBase::Ok | KDialogBase::Apply | KDialogBase::Cancel | KDialogBase::Help, KDialogBase::Ok, parent, "configdialog") { KConfig *config = KateApp::self()->config(); KWin::setIcons(winId(), KateApp::self()->icon(), KateApp::self()->miniIcon()); actionButton(KDialogBase::Apply)->setEnabled(false); mainWindow = parent; setMinimumSize(600, 400); v = view; pluginPages.setAutoDelete(false); editorPages.setAutoDelete(false); QStringList path; setShowIconsInTreeList(true); path.clear(); path << i18n("Application"); setFolderIcon(path, SmallIcon("kate", KIcon::SizeSmall)); path.clear(); // BEGIN General page path << i18n("Application") << i18n("General"); QFrame *frGeneral = addPage(path, i18n("General Options"), BarIcon("gohome", KIcon::SizeSmall)); QVBoxLayout *lo = new QVBoxLayout(frGeneral); lo->setSpacing(KDialog::spacingHint()); config->setGroup("General"); // GROUP with the one below: "Appearance" QButtonGroup *bgStartup = new QButtonGroup(1, Qt::Horizontal, i18n("&Appearance"), frGeneral); lo->addWidget(bgStartup); // show full path in title config->setGroup("General"); cb_fullPath = new QCheckBox(i18n("&Show full path in title"), bgStartup); cb_fullPath->setChecked(mainWindow->viewManager()->getShowFullPath()); QWhatsThis::add(cb_fullPath, i18n("If this option is checked, the full document path will be shown in the window caption.")); connect(cb_fullPath, SIGNAL(toggled(bool)), this, SLOT(slotChanged())); // GROUP with the one below: "Behavior" bgStartup = new QButtonGroup(1, Qt::Horizontal, i18n("&Behavior"), frGeneral); lo->addWidget(bgStartup); // sync the konsole ? cb_syncKonsole = new QCheckBox(bgStartup); cb_syncKonsole->setText(i18n("Sync &terminal emulator with active document")); cb_syncKonsole->setChecked(parent->syncKonsole); QWhatsThis::add(cb_syncKonsole, i18n("If this is checked, the built in Konsole will <code>cd</code> to the directory " "of the active document when started and whenever the active document changes, " "if the document is a local file.")); connect(cb_syncKonsole, SIGNAL(toggled(bool)), this, SLOT(slotChanged())); // modified files notification cb_modNotifications = new QCheckBox(i18n("Wa&rn about files modified by foreign processes"), bgStartup); cb_modNotifications->setChecked(parent->modNotification); QWhatsThis::add(cb_modNotifications, i18n("If enabled, when Kate receives focus you will be asked what to do with " "files that have been modified on the hard disk. If not enabled, you will " "be asked what to do with a file that has been modified on the hard disk only " "when that file gains focus inside Kate.")); connect(cb_modNotifications, SIGNAL(toggled(bool)), this, SLOT(slotChanged())); // GROUP with the one below: "Meta-informations" bgStartup = new QButtonGroup(1, Qt::Horizontal, i18n("Meta-Information"), frGeneral); lo->addWidget(bgStartup); // save meta infos cb_saveMetaInfos = new QCheckBox(bgStartup); cb_saveMetaInfos->setText(i18n("Keep &meta-information past sessions")); cb_saveMetaInfos->setChecked(KateDocManager::self()->getSaveMetaInfos()); QWhatsThis::add(cb_saveMetaInfos, i18n("Check this if you want document configuration like for example " "bookmarks to be saved past editor sessions. The configuration will be " "restored if the document has not changed when reopened.")); connect(cb_saveMetaInfos, SIGNAL(toggled(bool)), this, SLOT(slotChanged())); // meta infos days QHBox *hbDmf = new QHBox(bgStartup); hbDmf->setEnabled(KateDocManager::self()->getSaveMetaInfos()); QLabel *lDmf = new QLabel(i18n("&Delete unused meta-information after:"), hbDmf); sb_daysMetaInfos = new QSpinBox(0, 180, 1, hbDmf); sb_daysMetaInfos->setSpecialValueText(i18n("(never)")); sb_daysMetaInfos->setSuffix(i18n(" day(s)")); sb_daysMetaInfos->setValue(KateDocManager::self()->getDaysMetaInfos()); lDmf->setBuddy(sb_daysMetaInfos); connect(cb_saveMetaInfos, SIGNAL(toggled(bool)), hbDmf, SLOT(setEnabled(bool))); connect(sb_daysMetaInfos, SIGNAL(valueChanged(int)), this, SLOT(slotChanged())); lo->addStretch(1); // :-] works correct without autoadd // END General page path.clear(); // BEGIN Session page path << i18n("Application") << i18n("Sessions"); QFrame *frSessions = addPage(path, i18n("Session Management"), BarIcon("history", KIcon::SizeSmall)); lo = new QVBoxLayout(frSessions); lo->setSpacing(KDialog::spacingHint()); // GROUP with the one below: "Startup" bgStartup = new QButtonGroup(1, Qt::Horizontal, i18n("Elements of Sessions"), frSessions); lo->addWidget(bgStartup); // restore view config cb_restoreVC = new QCheckBox(bgStartup); cb_restoreVC->setText(i18n("Include &window configuration")); config->setGroup("General"); cb_restoreVC->setChecked(config->readBoolEntry("Restore Window Configuration", true)); QWhatsThis::add(cb_restoreVC, i18n("Check this if you want all your views and frames restored each time you open Kate")); connect(cb_restoreVC, SIGNAL(toggled(bool)), this, SLOT(slotChanged())); QRadioButton *rb1, *rb2, *rb3; sessions_start = new QButtonGroup(1, Qt::Horizontal, i18n("Behavior on Application Startup"), frSessions); lo->add(sessions_start); sessions_start->setRadioButtonExclusive(true); sessions_start->insert(rb1 = new QRadioButton(i18n("&Start new session"), sessions_start), 0); sessions_start->insert(rb2 = new QRadioButton(i18n("&Load last-used session"), sessions_start), 1); sessions_start->insert(rb3 = new QRadioButton(i18n("&Manually choose a session"), sessions_start), 2); config->setGroup("General"); QString sesStart(config->readEntry("Startup Session", "manual")); if(sesStart == "new") sessions_start->setButton(0); else if(sesStart == "last") sessions_start->setButton(1); else sessions_start->setButton(2); connect(rb1, SIGNAL(toggled(bool)), this, SLOT(slotChanged())); connect(rb2, SIGNAL(toggled(bool)), this, SLOT(slotChanged())); connect(rb3, SIGNAL(toggled(bool)), this, SLOT(slotChanged())); sessions_exit = new QButtonGroup(1, Qt::Horizontal, i18n("Behavior on Application Exit or Session Switch"), frSessions); lo->add(sessions_exit); sessions_exit->setRadioButtonExclusive(true); sessions_exit->insert(rb1 = new QRadioButton(i18n("&Do not save session"), sessions_exit), 0); sessions_exit->insert(rb2 = new QRadioButton(i18n("&Save session"), sessions_exit), 1); sessions_exit->insert(rb3 = new QRadioButton(i18n("&Ask user"), sessions_exit), 2); config->setGroup("General"); QString sesExit(config->readEntry("Session Exit", "save")); if(sesExit == "discard") sessions_exit->setButton(0); else if(sesExit == "save") sessions_exit->setButton(1); else sessions_exit->setButton(2); connect(rb1, SIGNAL(toggled(bool)), this, SLOT(slotChanged())); connect(rb2, SIGNAL(toggled(bool)), this, SLOT(slotChanged())); connect(rb3, SIGNAL(toggled(bool)), this, SLOT(slotChanged())); lo->addStretch(1); // :-] works correct without autoadd // END Session page path.clear(); // file selector page path << i18n("Application") << i18n("File Selector"); QVBox *page = addVBoxPage(path, i18n("File Selector Settings"), BarIcon("fileopen", KIcon::SizeSmall)); fileSelConfigPage = new KFSConfigPage(page, "file selector config page", mainWindow->fileselector); connect(fileSelConfigPage, SIGNAL(changed()), this, SLOT(slotChanged())); path.clear(); path << i18n("Application") << i18n("Document List"); page = addVBoxPage(path, i18n("Document List Settings"), BarIcon("view_text", KIcon::SizeSmall)); filelistConfigPage = new KFLConfigPage(page, "file list config page", mainWindow->filelist); connect(filelistConfigPage, SIGNAL(changed()), this, SLOT(slotChanged())); path.clear(); path << i18n("Application") << i18n("Plugins"); /*QVBox **/ page = addVBoxPage(path, i18n("Plugin Manager"), BarIcon("connect_established", KIcon::SizeSmall)); KateConfigPluginPage *configPluginPage = new KateConfigPluginPage(page, this); connect(configPluginPage, SIGNAL(changed()), this, SLOT(slotChanged())); // Tools->External Tools menu path.clear(); path << i18n("Application") << i18n("External Tools"); page = addVBoxPage(path, i18n("External Tools"), BarIcon("configure", KIcon::SizeSmall)); configExternalToolsPage = new KateExternalToolsConfigWidget(page, "external tools config page"); connect(configExternalToolsPage, SIGNAL(changed()), this, SLOT(slotChanged())); // editor widgets from kwrite/kwdialog path.clear(); path << i18n("Editor"); setFolderIcon(path, SmallIcon("edit", KIcon::SizeSmall)); for(uint i = 0; i < KTextEditor::configInterfaceExtension(v->document())->configPages(); i++) { path.clear(); path << i18n("Editor") << KTextEditor::configInterfaceExtension(v->document())->configPageName(i); /*QVBox **/ page = addVBoxPage(path, KTextEditor::configInterfaceExtension(v->document())->configPageFullName(i), KTextEditor::configInterfaceExtension(v->document())->configPagePixmap(i, KIcon::SizeSmall)); KTextEditor::ConfigPage *cPage = KTextEditor::configInterfaceExtension(v->document())->configPage(i, page); connect(cPage, SIGNAL(changed()), this, SLOT(slotChanged())); editorPages.append(cPage); } KatePluginList &pluginList(KatePluginManager::self()->pluginList()); for(unsigned int i = 0; i < pluginList.size(); ++i) { if(pluginList[i].load && Kate::pluginConfigInterfaceExtension(pluginList[i].plugin)) addPluginPage(pluginList[i].plugin); } enableButtonSeparator(true); dataChanged = false; unfoldTreeList(); }
PMSettingsDialog::PMSettingsDialog( PMPart* part, QWidget* parent, const char* name ) : KDialogBase( TreeList, i18n( "Configure" ), Ok | Apply | Cancel | Default, Ok, parent, name ) { QStringList sl; QWidget* w = 0; PMSettingsDialogPage* p = 0; m_pPart = part; setShowIconsInTreeList( true ); sl.clear( ); sl.append( i18n( "Povray" ) ); w = addVBoxPage( sl, i18n( "Povray Options" ), SmallIcon( "pmconfigurepovray", 22 ) ); p = new PMPovraySettings( w ); registerPage( w, p ); sl.clear( ); sl.append( i18n( "Graphical View" ) ); sl.append( i18n( "OpenGL" ) ); w = addVBoxPage( sl, i18n( "OpenGL Display Settings" ), SmallIcon( "pmconfigureopengl", 22 ) ); p = new PMOpenGLSettings( w ); registerPage( w, p ); sl.clear( ); sl.append( i18n( "Graphical View" ) ); setFolderIcon( sl, SmallIcon( "pmconfiguregraphicalview", 22 ) ); sl.append( i18n( "Colors" ) ); w = addVBoxPage( sl, i18n( "Color Settings" ), SmallIcon( "pmconfigurecolors", 22 ) ); p = new PMColorSettings( w ); registerPage( w, p ); sl.clear( ); sl.append( i18n( "Graphical View" ) ); sl.append( i18n( "Grid" ) ); w = addVBoxPage( sl, i18n( "Grid Settings" ), SmallIcon( "pmconfiguregrid", 22 ) ); p = new PMGridSettings( w ); registerPage( w, p ); sl.clear( ); sl.append( i18n( "Graphical View" ) ); sl.append( i18n( "Objects" ) ); w = addVBoxPage( sl, i18n( "Display Settings for Objects" ), SmallIcon( "pmconfigureobjects", 22 ) ); p = new PMObjectSettings( w ); registerPage( w, p ); sl.clear( ); sl.append( i18n( "Properties View" ) ); setFolderIcon( sl, SmallIcon( "pmconfiguredialogview", 22 ) ); sl.append( i18n( "Texture Preview" ) ); w = addVBoxPage( sl, i18n( "Display Settings for Texture Previews" ), SmallIcon( "pmconfiguretexturepreview", 22 ) ); p = new PMPreviewSettings( w ); registerPage( w, p ); sl.clear( ); sl.append( i18n( "View Layout" ) ); w = addVBoxPage( sl, i18n( "Display Settings for View Layouts" ), SmallIcon( "pmconfigureviewlayout", 22 ) ); p = new PMLayoutSettings( w ); registerPage( w, p ); #ifdef KPM_WITH_OBJECT_LIBRARY sl.clear( ); sl.append( i18n( "Object Libraries" ) ); w = addVBoxPage( sl, i18n( "Display Settings for Object Libraries" ), SmallIcon( "pmconfigureobjectlibrary", 22 ) ); p = new PMObjectLibrarySettings( w ); registerPage( w, p ); #endif #ifdef KPM_WITH_PLUGINS sl.clear( ); sl.append( i18n( "Plugins" ) ); w = addVBoxPage( sl, i18n( "Plugin Settings" ) ); p = new PMPluginSettings( w ); registerPage( w, p ); #endif displaySettings( ); resize( s_size ); }