void EvaServers::fetchAddress( bool isUdp ) { int num = 0; if(m_bIsFirst){ m_bIsFirst = false; TDEConfig* config = new TDEConfig( (TQDir::homeDirPath() + "/.eva/eva.cfg") ); config->setGroup("General"); TQString type = config->readEntry("Server Type"); if(!type.isEmpty()){ TQHostAddress addr(config->readEntry("Server IP")); if(!addr.isNull()) { if( (type == "UDP" && isUdp) || (type == "TCP" && !isUdp)){ emit isReady(addr); return; } } } delete config; } if(isUdp){ num = UDPServers.count(); fetchType = UDP; } else{ num = TCPServers.count(); fetchType = TCP; } if(num == 0 ){ defaultAddress(); return; } //int index = rand() % num; int maxItems = isUdp?UDPServers.count():TCPServers.count(); if(m_CurrAddrIndex>maxItems) m_CurrAddrIndex = 0; serverItem addr; if(isUdp) addr = UDPServers[m_CurrAddrIndex++]; else addr = TCPServers[m_CurrAddrIndex++]; if(addr.type == Addr_IP){ emit isReady(TQHostAddress(addr.addr.latin1())); // this way, Red hat 9 might work properly return; } // the address should be a URL now, so we try to get the IP TQDns * dns = new TQDns(addr.addr, TQDns::A); TQObject::connect(dns, SIGNAL(resultsReady()), this, SLOT(getResultsSlot())); m_Timeout = new TQTimer(this, "dns timer"); TQObject::connect(m_Timeout, SIGNAL(timeout()), SLOT(slotTimeout())); m_Timeout->start(30000, true); }
void KCMStyle::loadMisc( TDEConfig& config ) { // TDE's Part via TDEConfig config.setGroup("Toolbar style"); cbHoverButtons->setChecked(config.readBoolEntry("Highlighting", true)); cbTransparentToolbars->setChecked(config.readBoolEntry("TransparentMoving", true)); TQString tbIcon = config.readEntry("IconText", "IconOnly"); if (tbIcon == "TextOnly") comboToolbarIcons->setCurrentItem(1); else if (tbIcon == "IconTextRight") comboToolbarIcons->setCurrentItem(2); else if (tbIcon == "IconTextBottom") comboToolbarIcons->setCurrentItem(3); else comboToolbarIcons->setCurrentItem(0); config.setGroup("KDE"); cbIconsOnButtons->setChecked(config.readBoolEntry("ShowIconsOnPushButtons", false)); cbEnableTooltips->setChecked(!config.readBoolEntry("EffectNoTooltip", false)); cbTearOffHandles->setChecked(config.readBoolEntry("InsertTearOffHandle", false)); TQSettings settings; cbScrollablePopupMenus->setChecked(settings.readBoolEntry("/TDEStyle/Settings/ScrollablePopupMenus", false)); cbAutoHideAccelerators->setChecked(settings.readBoolEntry("/TDEStyle/Settings/AutoHideAccelerators", false)); cbMenuAltKeyNavigation->setChecked(settings.readBoolEntry("/TDEStyle/Settings/MenuAltKeyNavigation", true)); m_popupMenuDelay->setValue(settings.readNumEntry("/TDEStyle/Settings/PopupMenuDelay", 250)); m_bToolbarsDirty = false; }
TQString KIMProxy::preferredApp() { TDEConfig *store = new KSimpleConfig( IM_CLIENT_PREFERENCES_FILE ); store->setGroup( IM_CLIENT_PREFERENCES_SECTION ); TQString preferredApp = store->readEntry( IM_CLIENT_PREFERENCES_ENTRY ); //kdDebug( 790 ) << k_funcinfo << "found preferred app: " << preferredApp << endl; return preferredApp; }
void ModifiersModule::load( bool useDefaults ) { TDEConfig *c = TDEGlobal::config(); c->setReadDefaults( useDefaults ); c->setGroup( "Keyboard" ); m_sLabelCtrlOrig = c->readEntry( "Label Ctrl", "Ctrl" ); m_sLabelAltOrig = c->readEntry( "Label Alt", "Alt" ); m_sLabelWinOrig = c->readEntry( "Label Win", "Win" ); m_bMacKeyboardOrig = c->readBoolEntry( "Mac Keyboard", false ); m_bMacSwapOrig = m_bMacKeyboardOrig && c->readBoolEntry( "Mac Modifier Swap", false ); updateWidgetData(); }
bool KRlprPrinterImpl::setupCommand(TQString& cmd, KPrinter *printer) { // retrieve the KMPrinter object, to get host and queue name KMPrinter *rpr = KMFactory::self()->manager()->findPrinter(printer->printerName()); if (!rpr) return false; QString host(rpr->option("host")), queue(rpr->option("queue")); if (!host.isEmpty() && !queue.isEmpty()) { QString exestr = TDEStandardDirs::findExe("rlpr"); if (exestr.isEmpty()) { printer->setErrorMessage(i18n("The <b>%1</b> executable could not be found in your path. Check your installation.").arg("rlpr")); return false; } cmd = TQString::fromLatin1("%1 -H %2 -P %3 -\\#%4").arg(exestr).arg(quote(host)).arg(quote(queue)).arg(printer->numCopies()); // proxy settings TDEConfig *conf = KMFactory::self()->printConfig(); conf->setGroup("RLPR"); QString host = conf->readEntry("ProxyHost",TQString::null), port = conf->readEntry("ProxyPort",TQString::null); if (!host.isEmpty()) { cmd.append(" -X ").append(quote(host)); if (!port.isEmpty()) cmd.append(" --port=").append(port); } return true; } else { printer->setErrorMessage(i18n("The printer is incompletely defined. Try to reinstall it.")); return false; } }
/** load the application */ void kweather::loadPrefs(){ kdDebug(12004) << "Loading Prefs" << endl; TDEConfig *kcConfig = config(); kcConfig->reparseConfiguration(); if (!kcConfig->hasGroup ("General Options") ) mFirstRun = true; kcConfig->setGroup("General Options"); logOn = kcConfig->readBoolEntry("logging", false); fileName = kcConfig->readPathEntry("log_file_name"); reportLocation = kcConfig->readEntry("report_location"); mViewMode = kcConfig->readNumEntry("smallview_mode", dockwidget::ShowAll); static TQColor black(TQt::black); mTextColor = kcConfig->readColorEntry("textColor", &black); }
// static TQString TDEIconTheme::current() { // Static pointer because of unloading problems wrt DSO's. if (_theme != 0L) return *_theme; _theme = new TQString(); TDEConfig *config = TDEGlobal::config(); TDEConfigGroupSaver saver(config, "Icons"); *_theme = config->readEntry("Theme",defaultThemeName()); if ( *_theme == TQString::fromLatin1("hicolor") ) *_theme = defaultThemeName(); /* if (_theme->isEmpty()) { if (TQPixmap::defaultDepth() > 8) *_theme = defaultThemeName(); else *_theme = TQString::fromLatin1("locolor"); }*/ return *_theme; }
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 }
Condition_list::Condition_list( TDEConfig& cfg_P, Action_data_base* data_P ) : Condition_list_base( cfg_P, NULL ), data( data_P ) { _comment = cfg_P.readEntry( "Comment" ); }
KateConfigDialog::KateConfigDialog ( KateMainWindow *parent, Kate::View *view ) : KDialogBase ( KDialogBase::TreeList, i18n("Configure"), KDialogBase::Ok | KDialogBase::Apply|KDialogBase::Cancel | KDialogBase::Help, KDialogBase::Ok, parent, "configdialog" ) { TDEConfig *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); TQStringList path; setShowIconsInTreeList(true); path.clear(); path << i18n("Application"); setFolderIcon (path, SmallIcon("kate", TDEIcon::SizeSmall)); path.clear(); //BEGIN General page path << i18n("Application") << i18n("General"); TQFrame* frGeneral = addPage(path, i18n("General Options"), BarIcon("go-home", TDEIcon::SizeSmall)); TQVBoxLayout *lo = new TQVBoxLayout( frGeneral ); lo->setSpacing(KDialog::spacingHint()); config->setGroup("General"); // GROUP with the one below: "Appearance" TQButtonGroup *bgStartup = new TQButtonGroup( 1, Qt::Horizontal, i18n("&Appearance"), frGeneral ); lo->addWidget( bgStartup ); // show full path in title config->setGroup("General"); cb_fullPath = new TQCheckBox( i18n("&Show full path in title"), bgStartup); cb_fullPath->setChecked( mainWindow->viewManager()->getShowFullPath() ); TQWhatsThis::add(cb_fullPath,i18n("If this option is checked, the full document path will be shown in the window caption.")); connect( cb_fullPath, TQT_SIGNAL( toggled( bool ) ), this, TQT_SLOT( slotChanged() ) ); // sort filelist if desired cb_sortFiles = new TQCheckBox(bgStartup); cb_sortFiles->setText(i18n("Sort &files alphabetically in the file list")); cb_sortFiles->setChecked(parent->filelist->sortType() == KateFileList::sortByName); TQWhatsThis::add( cb_sortFiles, i18n( "If this is checked, the files in the file list will be sorted alphabetically.") ); connect( cb_sortFiles, TQT_SIGNAL( toggled( bool ) ), this, TQT_SLOT( slotChanged() ) ); // GROUP with the one below: "Behavior" bgStartup = new TQButtonGroup( 1, Qt::Horizontal, i18n("&Behavior"), frGeneral ); lo->addWidget( bgStartup ); // number of recent files TQHBox *hbNrf = new TQHBox( bgStartup ); TQLabel *lNrf = new TQLabel( i18n("&Number of recent files:"), hbNrf ); sb_numRecentFiles = new TQSpinBox( 0, 1000, 1, hbNrf ); sb_numRecentFiles->setValue( mainWindow->fileOpenRecent->maxItems() ); lNrf->setBuddy( sb_numRecentFiles ); TQString numRecentFileHelpString ( i18n( "<qt>Sets the number of recent files remembered by Kate.<p><strong>NOTE: </strong>" "If you set this lower than the current value, the list will be truncated and " "some items forgotten.</qt>") ); TQWhatsThis::add( lNrf, numRecentFileHelpString ); TQWhatsThis::add( sb_numRecentFiles, numRecentFileHelpString ); connect( sb_numRecentFiles, TQT_SIGNAL( valueChanged ( int ) ), this, TQT_SLOT( slotChanged() ) ); // Use only one instance of kate (MDI) ? cb_useInstance = new TQCheckBox(bgStartup); cb_useInstance->setText(i18n("Always use the current instance of kate to open new files")); cb_useInstance->setChecked(parent->useInstance); TQWhatsThis::add( cb_useInstance, i18n( "When checked, all files opened from outside of Kate will only use the " "currently opened instance of Kate.") ); connect( cb_useInstance, TQT_SIGNAL( toggled( bool ) ), this, TQT_SLOT( slotChanged() ) ); // sync the konsole ? cb_syncKonsole = new TQCheckBox(bgStartup); cb_syncKonsole->setText(i18n("Sync &terminal emulator with active document")); cb_syncKonsole->setChecked(parent->syncKonsole); TQWhatsThis::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, TQT_SIGNAL( toggled( bool ) ), this, TQT_SLOT( slotChanged() ) ); // modified files notification cb_modNotifications = new TQCheckBox( i18n("Wa&rn about files modified by foreign processes"), bgStartup ); cb_modNotifications->setChecked( parent->modNotification ); TQWhatsThis::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, TQT_SIGNAL( toggled( bool ) ), this, TQT_SLOT( slotChanged() ) ); // GROUP with the one below: "Meta-informations" bgStartup = new TQButtonGroup( 2, Qt::Horizontal, i18n("Meta-Information"), frGeneral ); lo->addWidget( bgStartup ); // save meta infos cb_saveMetaInfos = new TQCheckBox( bgStartup ); cb_saveMetaInfos->setText(i18n("Keep &meta-information past sessions")); cb_saveMetaInfos->setChecked(KateDocManager::self()->getSaveMetaInfos()); TQWhatsThis::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, TQT_SIGNAL( toggled( bool ) ), this, TQT_SLOT( slotChanged() ) ); // meta infos days TQHBox *hbDmf = new TQHBox( bgStartup ); hbDmf->setEnabled(KateDocManager::self()->getSaveMetaInfos()); TQLabel *lDmf = new TQLabel( i18n("&Delete unused meta-information after:"), hbDmf ); sb_daysMetaInfos = new TQSpinBox( 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, TQT_SIGNAL( toggled( bool ) ), hbDmf, TQT_SLOT( setEnabled( bool ) ) ); connect( sb_daysMetaInfos, TQT_SIGNAL( valueChanged ( int ) ), this, TQT_SLOT( slotChanged() ) ); lo->addStretch(1); // :-] works correct without autoadd //END General page path.clear(); //BEGIN Session page path << i18n("Application") << i18n("Sessions"); TQFrame* frSessions = addPage(path, i18n("Session Management"), BarIcon("history", TDEIcon::SizeSmall)); lo = new TQVBoxLayout( frSessions ); lo->setSpacing(KDialog::spacingHint()); // GROUP with the one below: "Startup" bgStartup = new TQButtonGroup( 1, Qt::Horizontal, i18n("Elements of Sessions"), frSessions ); lo->addWidget( bgStartup ); // restore view config cb_restoreVC = new TQCheckBox( bgStartup ); cb_restoreVC->setText(i18n("Include &window configuration")); config->setGroup("General"); cb_restoreVC->setChecked( config->readBoolEntry("Restore Window Configuration", true) ); TQWhatsThis::add(cb_restoreVC, i18n( "Check this if you want all your views and frames restored each time you open Kate")); connect( cb_restoreVC, TQT_SIGNAL( toggled( bool ) ), this, TQT_SLOT( slotChanged() ) ); TQRadioButton *rb1, *rb2, *rb3; sessions_start = new TQButtonGroup( 1, Qt::Horizontal, i18n("Behavior on Application Startup"), frSessions ); lo->add (sessions_start); sessions_start->setRadioButtonExclusive( true ); sessions_start->insert( rb1=new TQRadioButton( i18n("&Start new session"), sessions_start ), 0 ); sessions_start->insert( rb2=new TQRadioButton( i18n("&Load last-used session"), sessions_start ), 1 ); sessions_start->insert( rb3=new TQRadioButton( i18n("&Manually choose a session"), sessions_start ), 2 ); config->setGroup("General"); TQString 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, TQT_SIGNAL(toggled(bool)), this, TQT_SLOT(slotChanged())); connect(rb2, TQT_SIGNAL(toggled(bool)), this, TQT_SLOT(slotChanged())); connect(rb3, TQT_SIGNAL(toggled(bool)), this, TQT_SLOT(slotChanged())); sessions_exit = new TQButtonGroup( 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 TQRadioButton( i18n("&Do not save session"), sessions_exit ), 0 ); sessions_exit->insert( rb2=new TQRadioButton( i18n("&Save session"), sessions_exit ), 1 ); sessions_exit->insert( rb3=new TQRadioButton( i18n("&Ask user"), sessions_exit ), 2 ); config->setGroup("General"); TQString 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, TQT_SIGNAL(toggled(bool)), this, TQT_SLOT(slotChanged())); connect(rb2, TQT_SIGNAL(toggled(bool)), this, TQT_SLOT(slotChanged())); connect(rb3, TQT_SIGNAL(toggled(bool)), this, TQT_SLOT(slotChanged())); lo->addStretch(1); // :-] works correct without autoadd //END Session page path.clear(); // file selector page path << i18n("Application") << i18n("File Selector"); TQVBox *page = addVBoxPage( path, i18n("File Selector Settings"), BarIcon("document-open", TDEIcon::SizeSmall) ); fileSelConfigPage = new KFSConfigPage( page, "file selector config page", mainWindow->fileselector ); connect( fileSelConfigPage, TQT_SIGNAL( changed() ), this, TQT_SLOT( slotChanged() ) ); path.clear(); path << i18n("Application") << i18n("Document List"); page = addVBoxPage( path, i18n("Document List Settings"), BarIcon("view_text", TDEIcon::SizeSmall) ); filelistConfigPage = new KFLConfigPage( page, "file list config page", mainWindow->filelist ); connect( filelistConfigPage, TQT_SIGNAL( changed() ), this, TQT_SLOT( slotChanged() ) ); path.clear(); path << i18n("Application") << i18n("Plugins"); /*TQVBox **/page=addVBoxPage(path,i18n("Plugin Manager"), BarIcon("connect_established",TDEIcon::SizeSmall)); KateConfigPluginPage *configPluginPage = new KateConfigPluginPage(page, this); connect( configPluginPage, TQT_SIGNAL( changed() ), TQT_TQOBJECT(this), TQT_SLOT( slotChanged() ) ); // Tools->External Tools menu path.clear(); path << i18n("Application") << i18n("External Tools"); page = addVBoxPage( path, i18n("External Tools"), BarIcon("configure", TDEIcon::SizeSmall) ); configExternalToolsPage = new KateExternalToolsConfigWidget(page, "external tools config page"); connect( configExternalToolsPage, TQT_SIGNAL(changed()), TQT_TQOBJECT(this), TQT_SLOT(slotChanged()) ); // editor widgets from kwrite/kwdialog path.clear(); path << i18n("Editor"); setFolderIcon (path, SmallIcon("edit", TDEIcon::SizeSmall)); for (uint i = 0; i < KTextEditor::configInterfaceExtension (v->document())->configPages (); i++) { path.clear(); path << i18n("Editor") << KTextEditor::configInterfaceExtension (v->document())->configPageName (i); /*TQVBox **/page = addVBoxPage(path, KTextEditor::configInterfaceExtension (v->document())->configPageFullName (i), KTextEditor::configInterfaceExtension (v->document())->configPagePixmap(i, TDEIcon::SizeSmall) ); KTextEditor::ConfigPage *cPage = KTextEditor::configInterfaceExtension (v->document())->configPage(i, page); connect( cPage, TQT_SIGNAL( changed() ), this, TQT_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 (); }
/* --| main |------------------------------------------------------ */ extern "C" int KDE_EXPORT kdemain(int argc, char* argv[]) { setgid(getgid()); setuid(getuid()); // drop privileges // deal with shell/command //////////////////////////// bool histon = true; bool menubaron = true; bool tabbaron = true; bool frameon = true; bool scrollbaron = true; bool showtip = true; TDEAboutData aboutData( "konsole", I18N_NOOP("Konsole"), KONSOLE_VERSION, description, TDEAboutData::License_GPL_V2, "Copyright (c) 2011-2014, The Trinity Desktop project\nCopyright (c) 1997-2006, Lars Doelle"); aboutData.addAuthor( "Timothy Pearson", I18N_NOOP("Maintainer, Trinity bugfixes"), "*****@*****.**" ); aboutData.addAuthor("Robert Knight",I18N_NOOP("Previous Maintainer"), "*****@*****.**"); aboutData.addAuthor("Lars Doelle",I18N_NOOP("Author"), "*****@*****.**"); aboutData.addCredit("Kurt V. Hindenburg", I18N_NOOP("bug fixing and improvements"), "*****@*****.**"); aboutData.addCredit("Waldo Bastian", I18N_NOOP("bug fixing and improvements"), "*****@*****.**"); aboutData.addCredit("Stephan Binner", I18N_NOOP("bug fixing and improvements"), "*****@*****.**"); aboutData.addCredit("Chris Machemer", I18N_NOOP("bug fixing"), "*****@*****.**"); aboutData.addCredit("Stephan Kulow", I18N_NOOP("Solaris support and work on history"), "*****@*****.**"); aboutData.addCredit("Alexander Neundorf", I18N_NOOP("faster startup, bug fixing"), "*****@*****.**"); aboutData.addCredit("Peter Silva", I18N_NOOP("decent marking"), "*****@*****.**"); aboutData.addCredit("Lotzi Boloni", I18N_NOOP("partification\n" "Toolbar and session names"), "*****@*****.**"); aboutData.addCredit("David Faure", I18N_NOOP("partification\n" "overall improvements"), "*****@*****.**"); aboutData.addCredit("Antonio Larrosa", I18N_NOOP("transparency"), "*****@*****.**"); aboutData.addCredit("Matthias Ettrich", I18N_NOOP("most of main.C donated via kvt\n" "overall improvements"), "*****@*****.**"); aboutData.addCredit("Warwick Allison", I18N_NOOP("schema and selection improvements"), "*****@*****.**"); aboutData.addCredit("Dan Pilone", I18N_NOOP("SGI Port"), "*****@*****.**"); aboutData.addCredit("Kevin Street", I18N_NOOP("FreeBSD port"), "*****@*****.**"); aboutData.addCredit("Sven Fischer", I18N_NOOP("bug fixing"), "*****@*****.**"); aboutData.addCredit("Dale M. Flaven", I18N_NOOP("bug fixing"), "*****@*****.**"); aboutData.addCredit("Martin Jones", I18N_NOOP("bug fixing"), "*****@*****.**"); aboutData.addCredit("Lars Knoll", I18N_NOOP("bug fixing"), "*****@*****.**"); aboutData.addCredit("",I18N_NOOP("Thanks to many others.\n" "The above list only reflects the contributors\n" "I managed to keep track of.")); TDECmdLineArgs::init( argc, argv, &aboutData ); TDECmdLineArgs::addCmdLineOptions( options ); // Add our own options. //1.53 sec TDECmdLineArgs *args = TDECmdLineArgs::parsedArgs(); TDECmdLineArgs *qtargs = TDECmdLineArgs::parsedArgs("qt"); has_noxft = !args->isSet("xft"); TEWidget::setAntialias( !has_noxft ); TEWidget::setStandalone( true ); // The following Qt options have no effect; warn users. if( qtargs->isSet("background") ) kdWarning() << "The Qt option -bg, --background has no effect." << endl; if( qtargs->isSet("foreground") ) kdWarning() << "The Qt option -fg, --foreground has no effect." << endl; if( qtargs->isSet("button") ) kdWarning() << "The Qt option -btn, --button has no effect." << endl; if( qtargs->isSet("font") ) kdWarning() << "The Qt option -fn, --font has no effect." << endl; TDEApplication* a = NULL; #ifdef COMPOSITE a = new TDEApplication(TDEApplication::openX11RGBADisplay()); argb_visual = a->isX11CompositionAvailable(); #else a = new TDEApplication; #endif TQString dataPathBase = TDEStandardDirs::kde_default("data").append("konsole/"); TDEGlobal::dirs()->addResourceType("wallpaper", dataPathBase + "wallpapers"); KImageIO::registerFormats(); // add io for additional image formats //2.1 secs TQString title; if(args->isSet("T")) { title = TQFile::decodeName(args->getOption("T")); } if(qtargs->isSet("title")) { title = TQFile::decodeName(qtargs->getOption("title")); } TQString term = ""; if(args->isSet("tn")) { term=TQString::fromLatin1(args->getOption("tn")); } login_shell = args->isSet("ls"); TQStrList eargs; const char* shell = 0; if (!args->getOption("e").isEmpty()) { if (args->isSet("ls")) TDECmdLineArgs::usage(i18n("You can't use BOTH -ls and -e.\n")); shell = strdup(args->getOption("e")); eargs.append(shell); for(int i=0; i < args->count(); i++) eargs.append( args->arg(i) ); if (title.isEmpty() && (kapp->caption() == kapp->aboutData()->programName())) { title = TQFile::decodeName(shell); // program executed in the title bar } showtip = false; } TQCString sz = ""; sz = args->getOption("vt_sz"); histon = args->isSet("hist"); menubaron = args->isSet("menubar"); tabbaron = args->isSet("tabbar") && args->isSet("toolbar"); frameon = args->isSet("frame"); scrollbaron = args->isSet("scrollbar"); TQCString wname = qtargs->getOption("name"); full_script = args->isSet("script"); auto_close = args->isSet("close"); fixed_size = !args->isSet("resize"); if (!full_script) a->dcopClient()->setQtBridgeEnabled(false); TQCString type = ""; if(args->isSet("type")) { type = args->getOption("type"); } if(args->isSet("types")) { TQStringList types = TDEGlobal::dirs()->findAllResources("appdata", "*.desktop", false, true); types.sort(); for(TQStringList::ConstIterator it = types.begin(); it != types.end(); ++it) { TQString file = *it; file = file.mid(file.findRev('/')+1); if (file.endsWith(".desktop")) file = file.left(file.length()-8); printf("%s\n", TQFile::encodeName(file).data()); } return 0; } if(args->isSet("schemas") || args->isSet("schemata")) { ColorSchemaList colors; colors.checkSchemas(); for(int i = 0; i < (int) colors.count(); i++) { ColorSchema *schema = colors.find(i); TQString relPath = schema->relPath(); if (!relPath.isEmpty()) printf("%s\n", TQFile::encodeName(relPath).data()); } return 0; } if(args->isSet("keytabs")) { TQStringList lst = TDEGlobal::dirs()->findAllResources("data", "konsole/*.keytab"); printf("default\n"); // 'buildin' keytab lst.sort(); for(TQStringList::Iterator it = lst.begin(); it != lst.end(); ++it ) { TQFileInfo fi(*it); TQString file = fi.baseName(); printf("%s\n", TQFile::encodeName(file).data()); } return 0; } TQString workDir = TQFile::decodeName( args->getOption("workdir") ); TQString keytab = ""; if (args->isSet("keytab")) keytab = TQFile::decodeName(args->getOption("keytab")); TQString schema = ""; if (args->isSet("schema")) schema = args->getOption("schema"); TDEConfig * sessionconfig = 0; TQString profile = ""; if (args->isSet("profile")) { profile = args->getOption("profile"); TQString path = locate( "data", "konsole/profiles/" + profile ); if ( TQFile::exists( path ) ) sessionconfig=new TDEConfig( path, true ); else profile = ""; } if (args->isSet("profiles")) { TQStringList profiles = TDEGlobal::dirs()->findAllResources("data", "konsole/profiles/*", false, true); profiles.sort(); for(TQStringList::ConstIterator it = profiles.begin(); it != profiles.end(); ++it) { TQString file = *it; file = file.mid(file.findRev('/')+1); printf("%s\n", TQFile::encodeName(file).data()); } return 0; } //FIXME: more: font args->clear(); int c = 0, l = 0; if ( !sz.isEmpty() ) { char *ls = strchr( sz.data(), 'x' ); if ( ls != NULL ) { *ls='\0'; ls++; c=atoi(sz.data()); l=atoi(ls); } else { TDECmdLineArgs::usage(i18n("expected --vt_sz <#columns>x<#lines> e.g. 80x40\n")); } } if (!kapp->authorizeTDEAction("size")) fixed_size = true; // /////////////////////////////////////////////// // Ignore SIGHUP so that we don't get killed when // our parent-shell gets closed. signal(SIGHUP, SIG_IGN); putenv((char*)"COLORTERM="); // to trigger mc's color detection KonsoleSessionManaged ksm; if (a->isRestored() || !profile.isEmpty()) { if (!shell) shell = konsole_shell(eargs); if (profile.isEmpty()) sessionconfig = a->sessionConfig(); sessionconfig->setDesktopGroup(); int n = 1; TQString key; TQString sTitle; TQString sPgm; TQString sTerm; TQString sIcon; TQString sCwd; int n_tabbar; // TODO: Session management stores everything in same group, // should use one group / mainwindow while (TDEMainWindow::canBeRestored(n) || !profile.isEmpty()) { sessionconfig->setGroup(TQString("%1").arg(n)); if (!sessionconfig->hasKey("Pgm0")) sessionconfig->setDesktopGroup(); // Backwards compatible int session_count = sessionconfig->readNumEntry("numSes"); int counter = 0; wname = sessionconfig->readEntry("class",wname).latin1(); sPgm = sessionconfig->readEntry("Pgm0", shell); sessionconfig->readListEntry("Args0", eargs); sTitle = sessionconfig->readEntry("Title0", title); sTerm = sessionconfig->readEntry("Term0"); sIcon = sessionconfig->readEntry("Icon0","konsole"); sCwd = sessionconfig->readPathEntry("Cwd0"); workDir = sessionconfig->readPathEntry("workdir"); n_tabbar = TQMIN(sessionconfig->readUnsignedNumEntry("tabbar",Konsole::TabBottom),2); Konsole *m = new Konsole(wname,histon,menubaron,tabbaron,frameon,scrollbaron,0/*type*/,true,n_tabbar, workDir); m->newSession(sPgm, eargs, sTerm, sIcon, sTitle, sCwd); m->enableFullScripting(full_script); m->enableFixedSize(fixed_size); m->restore(n); sessionconfig->setGroup(TQString("%1").arg(n)); if (!sessionconfig->hasKey("Pgm0")) sessionconfig->setDesktopGroup(); // Backwards compatible m->makeGUI(); m->setEncoding(sessionconfig->readNumEntry("Encoding0")); m->setSchema(sessionconfig->readEntry("Schema0")); // Use konsolerc default as tmpFont instead? TQFont tmpFont = TDEGlobalSettings::fixedFont(); m->initSessionFont(sessionconfig->readFontEntry("SessionFont0", &tmpFont)); m->initSessionKeyTab(sessionconfig->readEntry("KeyTab0")); m->initMonitorActivity(sessionconfig->readBoolEntry("MonitorActivity0",false)); m->initMonitorSilence(sessionconfig->readBoolEntry("MonitorSilence0",false)); m->initMasterMode(sessionconfig->readBoolEntry("MasterMode0",false)); m->initTabColor(sessionconfig->readColorEntry("TabColor0")); // -1 will be changed to the default history in konsolerc m->initHistory(sessionconfig->readNumEntry("History0", -1), sessionconfig->readBoolEntry("HistoryEnabled0", true)); counter++; // show() before 2nd+ sessions are created allows --profile to // initialize the TE size correctly. m->show(); while (counter < session_count) { key = TQString("Title%1").arg(counter); sTitle = sessionconfig->readEntry(key, title); key = TQString("Args%1").arg(counter); sessionconfig->readListEntry(key, eargs); key = TQString("Pgm%1").arg(counter); // if the -e option is passed on the command line, this overrides the program specified // in the profile file if ( args->isSet("e") ) sPgm = (shell ? TQFile::decodeName(shell) : TQString()); else sPgm = sessionconfig->readEntry(key, shell); key = TQString("Term%1").arg(counter); sTerm = sessionconfig->readEntry(key); key = TQString("Icon%1").arg(counter); sIcon = sessionconfig->readEntry(key,"konsole"); key = TQString("Cwd%1").arg(counter); sCwd = sessionconfig->readPathEntry(key); m->newSession(sPgm, eargs, sTerm, sIcon, sTitle, sCwd); m->setSessionTitle(sTitle); // Use title as is key = TQString("Schema%1").arg(counter); m->setSchema(sessionconfig->readEntry(key)); key = TQString("Encoding%1").arg(counter); m->setEncoding(sessionconfig->readNumEntry(key)); key = TQString("SessionFont%1").arg(counter); TQFont tmpFont = TDEGlobalSettings::fixedFont(); m->initSessionFont(sessionconfig->readFontEntry(key, &tmpFont)); key = TQString("KeyTab%1").arg(counter); m->initSessionKeyTab(sessionconfig->readEntry(key)); key = TQString("MonitorActivity%1").arg(counter); m->initMonitorActivity(sessionconfig->readBoolEntry(key,false)); key = TQString("MonitorSilence%1").arg(counter); m->initMonitorSilence(sessionconfig->readBoolEntry(key,false)); key = TQString("MasterMode%1").arg(counter); m->initMasterMode(sessionconfig->readBoolEntry(key,false)); key = TQString("TabColor%1").arg(counter); m->initTabColor(sessionconfig->readColorEntry(key)); // -1 will be changed to the default history in konsolerc key = TQString("History%1").arg(counter); TQString key2 = TQString("HistoryEnabled%1").arg(counter); m->initHistory(sessionconfig->readNumEntry(key, -1), sessionconfig->readBoolEntry(key2, true)); counter++; } m->setDefaultSession( sessionconfig->readEntry("DefaultSession","shell.desktop") ); m->initFullScreen(); if ( !profile.isEmpty() ) { m->callReadPropertiesInternal(sessionconfig,1); profile = ""; // Hack to work-around sessions initialized with minimum size for (int i=0;i<counter;i++) m->activateSession( i ); m->setColLin(c,l); // will use default height and width if called with (0,0) } // works only for the first one, but there won't be more. n++; m->activateSession( sessionconfig->readNumEntry("ActiveSession",0) ); m->setAutoClose(auto_close); } } else { Konsole* m = new Konsole(wname,histon,menubaron,tabbaron,frameon,scrollbaron,type, false, 0, workDir); m->newSession((shell ? TQFile::decodeName(shell) : TQString()), eargs, term, TQString(), title, workDir); m->enableFullScripting(full_script); m->enableFixedSize(fixed_size); //3.8 :-( //exit(0); if (!keytab.isEmpty()) m->initSessionKeyTab(keytab); if (!schema.isEmpty()) { if (schema.right(7)!=".schema") schema+=".schema"; m->setSchema(schema); m->activateSession(0); // Fixes BR83162, transp. schema + notabbar } m->setColLin(c,l); // will use default height and width if called with (0,0) m->initFullScreen(); m->show(); if (showtip) m->showTipOnStart(); m->setAutoClose(auto_close); } int ret = a->exec(); //// Temporary code, waiting for Qt to do this properly // Delete all toplevel widgets that have WDestructiveClose TQWidgetList *list = TQApplication::topLevelWidgets(); // remove all toplevel widgets that have a parent (i.e. they // got WTopLevel explicitly), they'll be deleted by the parent list->first(); while( list->current()) { if( list->current()->parentWidget() != NULL || !list->current()->testWFlags( TQt::WDestructiveClose ) ) { list->remove(); continue; } list->next(); } TQWidgetListIt it(*list); TQWidget * w; while( (w=it.current()) != 0 ) { ++it; delete w; } delete list; delete a; return ret; }