summaryrefslogtreecommitdiffstats
path: root/kicker/menuext/kate/katesessionmenu.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'kicker/menuext/kate/katesessionmenu.cpp')
-rw-r--r--kicker/menuext/kate/katesessionmenu.cpp53
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();
+}