diff options
Diffstat (limited to 'kicker/menuext/kate/katesessionmenu.cpp')
-rw-r--r-- | kicker/menuext/kate/katesessionmenu.cpp | 53 |
1 files changed, 40 insertions, 13 deletions
diff --git a/kicker/menuext/kate/katesessionmenu.cpp b/kicker/menuext/kate/katesessionmenu.cpp index 854f4ce31..198cb4f7a 100644 --- a/kicker/menuext/kate/katesessionmenu.cpp +++ b/kicker/menuext/kate/katesessionmenu.cpp @@ -29,8 +29,8 @@ #include <klibloader.h> #include <tdelocale.h> #include <tdemessagebox.h> -#include <ksimpleconfig.h> -#include <kstandarddirs.h> +#include <tdesimpleconfig.h> +#include <tdestandarddirs.h> #include <tqvalidator.h> @@ -76,15 +76,39 @@ void KateSessionMenu::initialize() insertSeparator(); - TQStringList list = TDEGlobal::dirs()->findAllResources( "data", "kate/sessions/*.katesession", false, true); - for (TQStringList::ConstIterator it = list.begin(); it != list.end(); ++it) + TQString configFile = locateLocal("data", "kate/sessions") + "/sessions.list"; + if (TDEGlobal::dirs()->exists(configFile)) { - KSimpleConfig config( *it, true ); - config.setGroup( "General" ); - m_sessions.append( config.readEntry( "Name" ) ); + // Read new style configuration (from TDE R14.1.0) + TDESimpleConfig *config = new TDESimpleConfig(configFile, true); + config->setGroup("Sessions list"); + int sessionsCount = config->readNumEntry("Sessions count", 0); + for (int i = 0; i < sessionsCount; ++i) + { + TQString urlStr = config->readEntry(TQString("URL_%1").arg(i)); + if (!urlStr.isEmpty() && TDEGlobal::dirs()->exists(urlStr)) + { + // Filter out empty URLs or non existing sessions + TDESimpleConfig *sessionConfig = new TDESimpleConfig(urlStr, true); + sessionConfig->setGroup("General"); + // Session general properties + TQString sessionName = sessionConfig->readEntry("Name", i18n("Unnamed")); + m_sessions.append( sessionName ); + } + } + } + else + { + TQStringList list = TDEGlobal::dirs()->findAllResources( "data", "kate/sessions/*.katesession", false, true); + for (TQStringList::ConstIterator it = list.begin(); it != list.end(); ++it) + { + TDESimpleConfig config( *it, true ); + config.setGroup( "General" ); + m_sessions.append( config.readEntry( "Name" ) ); + } + m_sessions.sort(); } - m_sessions.sort(); for ( TQStringList::ConstIterator it1 = m_sessions.begin(); it1 != m_sessions.end(); ++it1 ) { @@ -93,7 +117,7 @@ void KateSessionMenu::initialize() // means for updating, to let the user manually update if he/she added new sessions. insertSeparator(); - insertItem( SmallIconSet("reload"), i18n("Reload Session List"), this, TQT_SLOT(reinitialize()) ); + insertItem( SmallIconSet("reload"), i18n("Reload Session List"), this, TQ_SLOT(reloadSessionsList()) ); } void KateSessionMenu::slotExec( int id ) @@ -112,7 +136,7 @@ void KateSessionMenu::slotExec( int id ) TQString name = KInputDialog::getText( i18n("Session Name"), i18n("Please enter a name for the new session"), TQString::null, - &ok, 0, 0, new Validator( TQT_TQOBJECT(m_parent) ) ); + &ok, 0, 0, new Validator( m_parent ) ); if ( ! ok ) return; @@ -143,8 +167,11 @@ void KateSessionMenu::slotExec( int id ) else if ( id > 2 ) args << m_sessions[ id-3 ]; - kapp->tdeinitExec("kate", args); + tdeApp->tdeinitExec("kate", args); } - -// kate: space-indent: on; indent-width 2; replace-tabs on; +void KateSessionMenu::reloadSessionsList() +{ + reinitialize(); + exec(); +} |