[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: KDE/kdepim/akonadi/clients/akonadiconsole
From: Volker Krause <vkrause () kde ! org>
Date: 2008-06-22 9:06:01
Message-ID: 1214125561.205812.14452.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 822960 by vkrause:
Save and restore the UI state (splitters, item view layouts, etc.).
Since I'm lazy it's done in a generic way by traversing the object tree
and looking for supported widgets, so I should not have to do that ever
again in any other application :)
M +1 -0 CMakeLists.txt
M +4 -1 browserwidget.cpp
M +1 -0 mainwidget.cpp
M +11 -0 mainwindow.cpp
M +3 -0 mainwindow.h
A uistatesaver.cpp [License: LGPL (v2+)]
A uistatesaver.h [License: LGPL (v2+)]
--- trunk/KDE/kdepim/akonadi/clients/akonadiconsole/CMakeLists.txt #822959:822960
@@ -12,6 +12,7 @@
mainwidget.cpp
mainwindow.cpp
searchdialog.cpp
+ uistatesaver.cpp
)
qt4_add_dbus_interfaces( akonadiconsole_bin_SRCS
--- trunk/KDE/kdepim/akonadi/clients/akonadiconsole/browserwidget.cpp #822959:822960
@@ -50,6 +50,7 @@
#include <QStackedWidget>
#include <QtGui/QSortFilterProxyModel>
#include <QStandardItemModel>
+#include <QTimer>
using namespace Akonadi;
@@ -64,6 +65,7 @@
QVBoxLayout *layout = new QVBoxLayout( this );
QSplitter *splitter = new QSplitter( Qt::Horizontal, this );
+ splitter->setObjectName( "collectionSplitter" );
layout->addWidget( splitter );
mCollectionView = new Akonadi::CollectionView( xmlGuiWindow );
@@ -78,6 +80,7 @@
mCollectionView->setModel( sortModel );
QSplitter *splitter2 = new QSplitter( Qt::Vertical, this );
+ splitter2->setObjectName( "itemSplitter" );
splitter->addWidget( splitter2 );
QWidget *itemViewParent = new QWidget( this );
@@ -88,7 +91,7 @@
itemUi.modelBox->addItem( "Contacts" );
itemUi.modelBox->addItem( "Calendar" );
connect( itemUi.modelBox, SIGNAL(activated(int)), SLOT(modelChanged()) );
- modelChanged();
+ QTimer::singleShot( 0, this, SLOT(modelChanged()) );
itemUi.itemView->setXmlGuiWindow( xmlGuiWindow );
itemUi.itemView->setModel( mItemModel );
--- trunk/KDE/kdepim/akonadi/clients/akonadiconsole/mainwidget.cpp #822959:822960
@@ -44,6 +44,7 @@
QVBoxLayout *layout = new QVBoxLayout( this );
QTabWidget *tabWidget = new QTabWidget( this );
+ tabWidget->setObjectName( "mainTab" );
layout->addWidget( tabWidget );
tabWidget->addTab( new AgentWidget( tabWidget ), "Agents" );
--- trunk/KDE/kdepim/akonadi/clients/akonadiconsole/mainwindow.cpp #822959:822960
@@ -22,11 +22,13 @@
#include "mainwindow.h"
#include "mainwidget.h"
+#include "uistatesaver.h"
#include <akonadi/control.h>
#include <KAction>
#include <KActionCollection>
+#include <KConfigGroup>
#include <KLocale>
#include <KStandardAction>
#include <QApplication>
@@ -40,4 +42,13 @@
KStandardAction::quit( qApp, SLOT(quit()), actionCollection() );
setupGUI( Keys /*| ToolBar | StatusBar*/ | Save | Create, "akonadiconsoleui.rc" );
+
+ UiStateSaver::restoreState( this, KConfigGroup( KGlobal::config(), "UiState" ) );
}
+
+bool MainWindow::queryExit()
+{
+ KConfigGroup config( KGlobal::config(), "UiState" );
+ UiStateSaver::saveState( this, config );
+ return KXmlGuiWindow::queryExit();
+}
--- trunk/KDE/kdepim/akonadi/clients/akonadiconsole/mainwindow.h #822959:822960
@@ -30,6 +30,9 @@
public:
explicit MainWindow( QWidget *parent = 0 );
+
+ protected:
+ bool queryExit();
};
#endif
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic