Add support to Kate for saving/restoring manual document placement

Make absolutely sure that kdesktop_lock reads recently changed configuration files when starting up
pull/2/head
Timothy Pearson 12 years ago
parent c281f8a59d
commit de4e7b4159

@ -455,7 +455,8 @@ void KateDocManager::saveDocumentList (KConfig* config)
int i=0;
for ( Kate::Document *doc = m_docList.first(); doc; doc = m_docList.next() )
{
config->setGroup(TQString("Document %1").arg(i));
long docListPos = doc->documentListPosition();
config->setGroup(TQString("Document %1").arg((docListPos<0)?i:docListPos));
doc->writeSessionConfig(config);
config->setGroup(grp);

@ -107,6 +107,8 @@ KateFileList::KateFileList (KateMainWindow *main,
setupActions ();
connect(this,TQT_SIGNAL(moved()),this,TQT_SLOT(updateFileListLocations()));
for (uint i = 0; i < KateDocManager::self()->documents(); i++)
{
slotDocumentCreated (KateDocManager::self()->document(i));
@ -228,6 +230,7 @@ void KateFileList::slotDocumentCreated (Kate::Document *doc)
connect(doc,TQT_SIGNAL(modifiedOnDisc(Kate::Document *, bool, unsigned char)),this,TQT_SLOT(slotModifiedOnDisc(Kate::Document *, bool, unsigned char)));
sort();
updateFileListLocations();
updateActions ();
}
@ -247,6 +250,7 @@ void KateFileList::slotDocumentDeleted (uint documentNumber)
item = item->nextSibling();
}
updateFileListLocations();
updateActions ();
}
@ -352,6 +356,23 @@ void KateFileList::slotViewChanged ()
repaintItem( m_viewHistory.at( i ) );
}
updateFileListLocations();
}
void KateFileList::updateFileListLocations()
{
TQListViewItem* item = firstChild();
int i=0;
while (item) {
if (m_sort == KateFileList::sortManual) {
((KateFileListItem *)item)->document()->setDocumentListPosition(i);
}
else {
((KateFileListItem *)item)->document()->setDocumentListPosition(-1);
}
item = item->itemBelow();
i++;
}
}
void KateFileList::slotMenu ( TQListViewItem *item, const TQPoint &p, int /*col*/ )
@ -437,6 +458,7 @@ void KateFileList::moveFileUp()
}
}
}
updateFileListLocations();
}
void KateFileList::moveFileDown()
@ -449,11 +471,13 @@ void KateFileList::moveFileDown()
m_clickedMenuItem->moveItem(nitemabove);
}
}
updateFileListLocations();
}
void KateFileList::updateSort ()
{
sort ();
updateFileListLocations();
}
void KateFileList::readConfig( KConfig *config, const TQString &group )

@ -126,6 +126,7 @@ class KateFileList : public KListView
void slotNameChanged (Kate::Document *doc);
void slotViewChanged ();
void slotMenu ( TQListViewItem *item, const TQPoint &p, int col );
void updateFileListLocations();
protected:
virtual void keyPressEvent( TQKeyEvent *e );

@ -244,7 +244,7 @@ void KateViewSpace::saveConfig ( KConfig* config, int myIndex ,const TQString& v
if (currentView())
config->writeEntry( "Active View", currentView()->getDoc()->url().prettyURL() );
// Save file list, includeing cursor position in this instance.
// Save file list, including cursor position in this instance.
TQPtrListIterator<Kate::View> it(mViewList);
int idx = 0;
@ -252,8 +252,9 @@ void KateViewSpace::saveConfig ( KConfig* config, int myIndex ,const TQString& v
{
if ( !it.current()->getDoc()->url().isEmpty() )
{
long docListPos = it.current()->getDoc()->documentListPosition();
config->setGroup( group );
config->writeEntry( TQString("View %1").arg( idx ), it.current()->getDoc()->url().prettyURL() );
config->writeEntry( TQString("View %1").arg( (docListPos<0)?idx:docListPos ), it.current()->getDoc()->url().prettyURL() );
// view config, group: "ViewSpace <n> url"
TQString vgroup = TQString("%1 %2").arg(group).arg(it.current()->getDoc()->url().prettyURL());

@ -38,6 +38,15 @@
#include <X11/Xlib.h>
#include <fixx11h.h>
#define OPEN_TDMCONFIG_AND_SET_GROUP \
if( stat( KDE_CONFDIR "/tdm/tdmdistrc" , &st ) == 0) { \
tdmconfig = new KSimpleConfig( TQString::fromLatin1( KDE_CONFDIR "/tdm/tdmdistrc" )); \
} \
else { \
tdmconfig = new KSimpleConfig( TQString::fromLatin1( KDE_CONFDIR "/tdm/tdmrc" )); \
} \
tdmconfig->setGroup("X-*-Greeter");
// [FIXME] Add GUI configuration checkboxes for these three settings (see kdesktoprc [ScreenSaver] UseUnmanagedLockWindows, DelaySaverStart, and UseTDESAK)
bool trinity_desktop_lock_use_system_modal_dialogs = FALSE;
bool trinity_desktop_lock_delay_screensaver_start = FALSE;
@ -203,13 +212,7 @@ int main( int argc, char **argv )
struct stat st;
KSimpleConfig* tdmconfig;
if( stat( KDE_CONFDIR "/tdm/tdmdistrc" , &st ) == 0) {
tdmconfig = new KSimpleConfig( TQString::fromLatin1( KDE_CONFDIR "/tdm/tdmdistrc" ));
}
else {
tdmconfig = new KSimpleConfig( TQString::fromLatin1( KDE_CONFDIR "/tdm/tdmrc" ));
}
tdmconfig->setGroup("X-*-Greeter");
OPEN_TDMCONFIG_AND_SET_GROUP
trinity_desktop_lock_use_sak = tdmconfig->readBoolEntry("UseSAK", true);
LockProcess process;
@ -270,7 +273,8 @@ int main( int argc, char **argv )
// Reload settings to make sure they reflect reality
KDesktopSettings::self()->config()->reparseConfiguration();
tdmconfig->reparseConfiguration();
delete tdmconfig;
OPEN_TDMCONFIG_AND_SET_GROUP
trinity_desktop_lock_use_system_modal_dialogs = !KDesktopSettings::useUnmanagedLockWindows();
trinity_desktop_lock_delay_screensaver_start = KDesktopSettings::delaySaverStart();
if (trinity_desktop_lock_use_system_modal_dialogs) {

Loading…
Cancel
Save