void KeyboardConfig::init_keyboard() { TDEConfig *config = new TDEConfig("kcminputrc", true); // Read-only, no globals config->setGroup("Keyboard"); XKeyboardState kbd; XKeyboardControl kbdc; XGetKeyboardControl(kapp->getDisplay(), &kbd); bool key = config->readBoolEntry("KeyboardRepeating", true); kbdc.key_click_percent = config->readNumEntry("ClickVolume", kbd.key_click_percent); kbdc.auto_repeat_mode = (key ? AutoRepeatModeOn : AutoRepeatModeOff); XChangeKeyboardControl(kapp->getDisplay(), KBKeyClickPercent | KBAutoRepeatMode, &kbdc); if( key ) { int delay_ = config->readNumEntry("RepeatDelay", 500); double rate_ = config->readDoubleNumEntry("RepeatRate", 30); set_repeatrate(delay_, rate_); } int numlockState = config->readNumEntry( "NumLock", 2 ); if( numlockState != 2 ) numlockx_change_numlock_state( numlockState == 0 ); delete config; }
void KMMainView::restoreSettings() { TDEConfig *conf = KMFactory::self()->printConfig(); conf->setGroup("General"); setViewType((KMPrinterView::ViewType)conf->readNumEntry("ViewType",KMPrinterView::Icons)); setOrientation(conf->readNumEntry("Orientation", Qt::Vertical)); bool view = conf->readBoolEntry("ViewToolBar",false); slotToggleToolBar(view); ((TDEToggleAction*)m_actions->action("view_toolbar"))->setChecked(view); view = conf->readBoolEntry( "ViewMenuBar", true ); slotToggleMenuBar( view ); static_cast<TDEToggleAction*>( m_actions->action( "view_menubar" ) )->setChecked( view ); view = conf->readBoolEntry("ViewPrinterInfos",true); slotShowPrinterInfos(view); ((TDEToggleAction*)m_actions->action("view_printerinfos"))->setChecked(view); }
ObjKsTheme::ObjKsTheme( const TQString& theme ) :mActiveTheme (theme), mThemeDir("/"), mThemeConfig (0L), mThemePrefix( "Themes/" ), d(0) { // Get Xinerama config. TDEConfig *config = kapp->config(); config->setGroup( "Xinerama" ); TQDesktopWidget *desktop = kapp->desktop(); mXineramaScreen = config->readNumEntry("KSplashScreen", desktop->primaryScreen()); // For Xinerama, let's put the mouse on the first head. Otherwise it could appear anywhere! if (desktop->isVirtualDesktop() && mXineramaScreen != -2) { TQRect rect = desktop->screenGeometry( mXineramaScreen ); if (!rect.contains(TQCursor::pos())) TQCursor::setPos(rect.center()); } // Does the active theme exist? if( !loadThemeRc( mActiveTheme, false ) ) if( !loadLocalConfig( mActiveTheme, false ) ) if( !loadThemeRc( "Default", false ) ) loadLocalConfig( "Default", true ); //force: we need some defaults loadCmdLineArgs(TDECmdLineArgs::parsedArgs()); mThemePrefix += ( mActiveTheme + "/" ); }
//--------------------------------------------------------------------------- // // User clicked Cancel // void AmorDialog::slotCancel() { // restore offset TDEConfig *config = kapp->config(); TDEConfigGroupSaver cs(config, "General"); emit offsetChanged(config->readNumEntry("Offset")); reject(); }
Condition_list_base::Condition_list_base( TDEConfig& cfg_P, Condition_list_base* parent_P ) : Condition( parent_P ) { TQString save_cfg_group = cfg_P.group(); int cnt = cfg_P.readNumEntry( "ConditionsCount", 0 ); for( int i = 0; i < cnt; ++i ) { cfg_P.setGroup( save_cfg_group + TQString::number( i )); (void) Condition::create_cfg_read( cfg_P, this ); } cfg_P.setGroup( save_cfg_group ); }
/** 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); }
bool EXRCreator::create(const TQString &path, int, int, TQImage &img) { Imf::InputFile in ( path.ascii() ); const Imf::Header &h = in.header(); if ( h.hasPreviewImage() ) { kdDebug() << "EXRcreator - using preview" << endl; const Imf::PreviewImage &preview = in.header().previewImage(); TQImage qpreview(preview.width(), preview.height(), 32, 0, TQImage::BigEndian); for ( unsigned int y=0; y < preview.height(); y++ ) { for ( unsigned int x=0; x < preview.width(); x++ ) { const Imf::PreviewRgba &q = preview.pixels()[x+(y*preview.width())]; qpreview.setPixel( x, y, tqRgba(q.r, q.g, q.b, q.a) ); } } img = qpreview; return true; } else { // do it the hard way // We ignore maximum size when just extracting the thumnail // from the header, but it is very expensive to render large // EXR images just to turn it into an icon, so we go back // to honouring it in here. kdDebug() << "EXRcreator - using original image" << endl; TDEConfig * config = TDEGlobal::config(); TDEConfigGroupSaver cgs( config, "PreviewSettings" ); unsigned long long maxSize = config->readNumEntry( "MaximumSize", 1024*1024 /* 1MB */ ); unsigned long long fileSize = TQFile( path ).size(); if ( (fileSize > 0) && (fileSize < maxSize) ) { if (!img.load( path )) { return false; } if (img.depth() != 32) img = img.convertDepth( 32 ); return true; } else { return false; } } }
void KCMStyle::loadEffects( TDEConfig& config ) { // Load effects. config.setGroup("KDE"); cbEnableEffects->setChecked( config.readBoolEntry( "EffectsEnabled", false) ); if ( config.readBoolEntry( "EffectAnimateCombo", false) ) comboComboEffect->setCurrentItem( 1 ); else comboComboEffect->setCurrentItem( 0 ); if ( config.readBoolEntry( "EffectAnimateTooltip", false) ) comboTooltipEffect->setCurrentItem( 1 ); else if ( config.readBoolEntry( "EffectFadeTooltip", false) ) comboTooltipEffect->setCurrentItem( 2 ); else comboTooltipEffect->setCurrentItem( 0 ); TQSettings settings; bool semiTransparentRubberband = settings.readBoolEntry("/TDEStyle/Settings/SemiTransparentRubberband", false); comboRubberbandEffect->setCurrentItem( semiTransparentRubberband ? 1 : 0 ); if ( config.readBoolEntry( "EffectAnimateMenu", false) ) comboMenuEffect->setCurrentItem( 1 ); else if ( config.readBoolEntry( "EffectFadeMenu", false) ) comboMenuEffect->setCurrentItem( 2 ); else comboMenuEffect->setCurrentItem( 0 ); comboMenuHandle->setCurrentItem(config.readNumEntry("InsertTearOffHandle", 0)); // TDEStyle Menu transparency and drop-shadow options... TQString effectEngine = settings.readEntry("/TDEStyle/Settings/MenuTransparencyEngine", "Disabled"); #ifdef HAVE_XRENDER if (effectEngine == "XRender") { comboMenuEffectType->setCurrentItem(2); comboMenuEffect->setCurrentItem(3); } else if (effectEngine == "SoftwareBlend") { comboMenuEffectType->setCurrentItem(1); comboMenuEffect->setCurrentItem(3); #else if (effectEngine == "XRender" || effectEngine == "SoftwareBlend") { comboMenuEffectType->setCurrentItem(1); // Software Blend comboMenuEffect->setCurrentItem(3); #endif } else if (effectEngine == "SoftwareTint") { comboMenuEffectType->setCurrentItem(0); comboMenuEffect->setCurrentItem(3); } else comboMenuEffectType->setCurrentItem(0); if (comboMenuEffect->currentItem() != 3) // If not translucency... menuPreview->setPreviewMode( MenuPreview::Tint ); else if (comboMenuEffectType->currentItem() == 0) menuPreview->setPreviewMode( MenuPreview::Tint ); else menuPreview->setPreviewMode( MenuPreview::Blend ); slOpacity->setValue( (int)(100 * settings.readDoubleEntry("/TDEStyle/Settings/MenuOpacity", 0.90)) ); // Menu Drop-shadows... cbMenuShadow->setChecked( settings.readBoolEntry("/TDEStyle/Settings/MenuDropShadow", false) ); if (cbEnableEffects->isChecked()) { containerFrame->setEnabled( true ); menuContainer->setEnabled( comboMenuEffect->currentItem() == 3 ); } else { menuContainer->setEnabled( false ); containerFrame->setEnabled( false ); } m_bEffectsDirty = false; } void KCMStyle::menuEffectTypeChanged() { MenuPreview::PreviewMode mode; if (comboMenuEffect->currentItem() != 3) mode = MenuPreview::Tint; else if (comboMenuEffectType->currentItem() == 0) mode = MenuPreview::Tint; else mode = MenuPreview::Blend; menuPreview->setPreviewMode(mode); m_bEffectsDirty = true; }
void TDERecentDocument::add(const KURL& url, const TQString& desktopEntryName) { if ( url.isLocalFile() && !TDEGlobal::dirs()->relativeLocation("tmp", url.path()).startsWith("/")) return; TQString openStr = url.url(); openStr.replace( TQRegExp("\\$"), "$$" ); // Desktop files with type "Link" are $-variable expanded kdDebug(250) << "TDERecentDocument::add for " << openStr << endl; TDEConfig *config = TDEGlobal::config(); TQString oldGrp = config->group(); config->setGroup(TQString::fromLatin1("RecentDocuments")); bool useRecent = config->readBoolEntry(TQString::fromLatin1("UseRecent"), true); int maxEntries = config->readNumEntry(TQString::fromLatin1("MaxEntries"), 10); config->setGroup(oldGrp); if(!useRecent) return; TQString path = recentDocumentDirectory(); TQString dStr = path + url.fileName(); TQString ddesktop = dStr + TQString::fromLatin1(".desktop"); int i=1; // check for duplicates while(TQFile::exists(ddesktop)){ // see if it points to the same file and application KSimpleConfig tmp(ddesktop); tmp.setDesktopGroup(); if(tmp.readEntry(TQString::fromLatin1("X-TDE-LastOpenedWith")) == desktopEntryName) { utime(TQFile::encodeName(ddesktop), NULL); return; } // if not append a (num) to it ++i; if ( i > maxEntries ) break; ddesktop = dStr + TQString::fromLatin1("[%1].desktop").arg(i); } TQDir dir(path); // check for max entries, delete oldest files if exceeded TQStringList list = dir.entryList(TQDir::Files | TQDir::Hidden, TQDir::Time | TQDir::Reversed); i = list.count(); if(i > maxEntries-1){ TQStringList::Iterator it; it = list.begin(); while(i > maxEntries-1){ TQFile::remove(dir.absPath() + TQString::fromLatin1("/") + (*it)); --i, ++it; } } // create the applnk KSimpleConfig conf(ddesktop); conf.setDesktopGroup(); conf.writeEntry( TQString::fromLatin1("Type"), TQString::fromLatin1("Link") ); conf.writePathEntry( TQString::fromLatin1("URL"), openStr ); // If you change the line below, change the test in the above loop conf.writeEntry( TQString::fromLatin1("X-TDE-LastOpenedWith"), desktopEntryName ); TQString name = url.fileName(); if (name.isEmpty()) name = openStr; conf.writeEntry( TQString::fromLatin1("Name"), name ); conf.writeEntry( TQString::fromLatin1("Icon"), KMimeType::iconForURL( url ) ); }
int TDERecentDocument::maximumItems() { TDEConfig *config = TDEGlobal::config(); TDEConfigGroupSaver sa(config, TQString::fromLatin1("RecentDocuments")); return config->readNumEntry(TQString::fromLatin1("MaxEntries"), 10); }
void PreviewJob::startPreview() { // Load the list of plugins to determine which mimetypes are supported TDETrader::OfferList plugins = TDETrader::self()->query("ThumbCreator"); TQMap<TQString, KService::Ptr> mimeMap; for (TDETrader::OfferList::ConstIterator it = plugins.begin(); it != plugins.end(); ++it) if (!d->enabledPlugins || d->enabledPlugins->contains((*it)->desktopEntryName())) { TQStringList mimeTypes = (*it)->property("MimeTypes").toStringList(); for (TQStringList::ConstIterator mt = mimeTypes.begin(); mt != mimeTypes.end(); ++mt) mimeMap.insert(*mt, *it); } // Look for images and store the items in our todo list :) bool bNeedCache = false; for (KFileItemListIterator it(d->initialItems); it.current(); ++it ) { PreviewItem item; item.item = it.current(); TQMap<TQString, KService::Ptr>::ConstIterator plugin = mimeMap.find(it.current()->mimetype()); if (plugin == mimeMap.end() && (it.current()->mimetype() != "application/x-desktop") && (it.current()->mimetype() != "media/builtin-mydocuments") && (it.current()->mimetype() != "media/builtin-mycomputer") && (it.current()->mimetype() != "media/builtin-mynetworkplaces") && (it.current()->mimetype() != "media/builtin-printers") && (it.current()->mimetype() != "media/builtin-trash") && (it.current()->mimetype() != "media/builtin-webbrowser")) { TQString mimeType = it.current()->mimetype(); plugin = mimeMap.find(mimeType.replace(TQRegExp("/.*"), "/*")); if (plugin == mimeMap.end()) { // check mime type inheritance KMimeType::Ptr mimeInfo = KMimeType::mimeType(it.current()->mimetype()); TQString parentMimeType = mimeInfo->parentMimeType(); while (!parentMimeType.isEmpty()) { plugin = mimeMap.find(parentMimeType); if (plugin != mimeMap.end()) break; KMimeType::Ptr parentMimeInfo = KMimeType::mimeType(parentMimeType); if (!parentMimeInfo) break; parentMimeType = parentMimeInfo->parentMimeType(); } } if (plugin == mimeMap.end()) { // check X-TDE-Text property KMimeType::Ptr mimeInfo = KMimeType::mimeType(it.current()->mimetype()); TQVariant textProperty = mimeInfo->property("X-TDE-text"); if (textProperty.isValid() && textProperty.type() == TQVariant::Bool) { if (textProperty.toBool()) { plugin = mimeMap.find("text/plain"); if (plugin == mimeMap.end()) { plugin = mimeMap.find( "text/*" ); } } } } } if (plugin != mimeMap.end()) { item.plugin = *plugin; d->items.append(item); if (!bNeedCache && d->bSave && (it.current()->url().protocol() != "file" || !it.current()->url().directory( false ).startsWith(d->thumbRoot)) && (*plugin)->property("CacheThumbnail").toBool()) bNeedCache = true; } else { emitFailed(it.current()); if (d->deleteItems) delete it.current(); } } // Read configuration value for the maximum allowed size TDEConfig * config = TDEGlobal::config(); TDEConfigGroupSaver cgs( config, "PreviewSettings" ); d->maximumSize = config->readNumEntry( "MaximumSize", 1024*1024 /* 1MB */ ); if (bNeedCache) { if (d->width <= 128 && d->height <= 128) d->cacheWidth = d->cacheHeight = 128; else d->cacheWidth = d->cacheHeight = 256; d->thumbPath = d->thumbRoot + (d->cacheWidth == 128 ? "normal/" : "large/"); TDEStandardDirs::makeDir(d->thumbPath, 0700); } else d->bSave = false; determineNextFile(); }
void KasPrefsDialog::addLookPage() { TQVBox *lookPage = addVBoxPage( i18n("Appearance"), TQString::null, Icon( "appearance" ) ); // // Item size // TQGrid *itemSizeBox = new TQGrid( 2, lookPage ); itemSizeBox->setSpacing( spacingHint() ); TQWhatsThis::add( itemSizeBox, i18n( "Specifies the size of the task items." ) ); TQLabel *itemSizeLabel = new TQLabel( i18n("Si&ze:"), itemSizeBox ); itemSizeCombo = new TQComboBox( itemSizeBox ); itemSizeCombo->insertItem( i18n( "Enormous" ) ); itemSizeCombo->insertItem( i18n( "Huge" ) ); itemSizeCombo->insertItem( i18n( "Large" ) ); itemSizeCombo->insertItem( i18n( "Medium" ) ); itemSizeCombo->insertItem( i18n( "Small" ) ); itemSizeCombo->insertItem( i18n( "Custom" ) ); itemSizeLabel->setBuddy( itemSizeCombo ); connect( itemSizeCombo, TQT_SIGNAL( activated( int ) ), kasbar, TQT_SLOT( setItemSize( int ) ) ); connect( itemSizeCombo, TQT_SIGNAL( activated( int ) ), TQT_SLOT( itemSizeChanged( int ) ) ); new TQWidget( itemSizeBox ); customSize = new TQSpinBox( 5, 1000, 1, itemSizeBox ); customSize->setValue( kasbar->itemExtent() ); connect( customSize, TQT_SIGNAL( valueChanged( int ) ), kasbar, TQT_SLOT( setItemExtent( int ) ) ); connect( customSize, TQT_SIGNAL( valueChanged( int ) ), kasbar, TQT_SLOT( customSizeChanged( int ) ) ); int sz = kasbar->itemSize(); itemSizeCombo->setCurrentItem( sz ); customSize->setEnabled( sz == KasBar::Custom ); // // Boxes per line // TQHBox *maxBoxesBox = new TQHBox( lookPage ); TQWhatsThis::add( maxBoxesBox, i18n( "Specifies the maximum number of items that should be placed in a line " "before starting a new row or column. If the value is 0 then all the " "available space will be used." ) ); TQLabel *maxBoxesLabel = new TQLabel( i18n("Bo&xes per line: "), maxBoxesBox ); TDEConfig *conf = kasbar->config(); if ( conf ) conf->setGroup( "Layout" ); maxBoxesSpin = new KIntSpinBox( 0, 50, 1, conf ? conf->readNumEntry( "MaxBoxes", 0 ) : 11, 10, maxBoxesBox, "maxboxes" ); connect( maxBoxesSpin, TQT_SIGNAL( valueChanged( int ) ), kasbar, TQT_SLOT( setMaxBoxes( int ) ) ); maxBoxesLabel->setBuddy( maxBoxesSpin ); // // Mode // detachedCheck = new TQCheckBox( i18n("&Detach from screen edge"), lookPage ); TQWhatsThis::add( detachedCheck, i18n( "Detaches the bar from the screen edge and makes it draggable." ) ); detachedCheck->setEnabled( !kasbar->isStandAlone() ); detachedCheck->setChecked( kasbar->isDetached() ); connect( detachedCheck, TQT_SIGNAL( toggled(bool) ), kasbar, TQT_SLOT( setDetached(bool) ) ); (void) new TQWidget( lookPage, "spacer" ); (void) new TQWidget( lookPage, "spacer" ); (void) new TQWidget( lookPage, "spacer" ); }
/* --| 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; }