[Pkg-owncloud-commits] [owncloud-client] 76/89: Save and restore activity view state.

Sandro Knauß hefee-guest at moszumanska.debian.org
Sat Dec 14 01:02:39 UTC 2013


This is an automated email from the git hooks/post-receive script.

hefee-guest pushed a commit to branch master
in repository owncloud-client.

commit bc5f7d899a2c9a5105874fb358cf389121a65e13
Author: Klaas Freitag <freitag at owncloud.com>
Date:   Thu Dec 12 15:16:19 2013 +0100

    Save and restore activity view state.
    
    Fixes bug #1256
---
 src/mirall/mirallconfigfile.cpp | 23 +++++++++++++++++++++++
 src/mirall/mirallconfigfile.h   |  3 +++
 src/mirall/protocolwidget.cpp   |  7 +++++++
 3 files changed, 33 insertions(+)

diff --git a/src/mirall/mirallconfigfile.cpp b/src/mirall/mirallconfigfile.cpp
index cce7428..d061308 100644
--- a/src/mirall/mirallconfigfile.cpp
+++ b/src/mirall/mirallconfigfile.cpp
@@ -30,6 +30,7 @@
 #include <QSettings>
 #include <QDebug>
 #include <QNetworkProxy>
+#include <QHeaderView>
 
 #define DEFAULT_REMOTE_POLL_INTERVAL 30000 // default remote poll time in milliseconds
 #define DEFAULT_MAX_LOG_LINES 20000
@@ -135,6 +136,28 @@ void MirallConfigFile::restoreGeometry(QWidget *w)
     w->restoreGeometry(getValue(geometryC, w->objectName()).toByteArray());
 }
 
+void MirallConfigFile::saveGeometryHeader(QHeaderView *header)
+{
+    if(!header) return;
+    Q_ASSERT(!header->objectName().isNull());
+
+    QSettings settings(configFile(), QSettings::IniFormat);
+    settings.beginGroup(header->objectName());
+    settings.setValue(QLatin1String(geometryC), header->saveState());
+    settings.sync();
+}
+
+void MirallConfigFile::restoreGeometryHeader(QHeaderView *header)
+{
+    if(!header) return;
+    Q_ASSERT(!header->objectName().isNull());
+
+    QSettings settings(configFile(), QSettings::IniFormat);
+    settings.beginGroup(header->objectName());
+    header->restoreState(getValue(geometryC, header->objectName()).toByteArray());
+}
+
+
 QString MirallConfigFile::configPath() const
 {
     if( _confDir.isEmpty() ) {
diff --git a/src/mirall/mirallconfigfile.h b/src/mirall/mirallconfigfile.h
index 3ceb2ca..31138bd 100644
--- a/src/mirall/mirallconfigfile.h
+++ b/src/mirall/mirallconfigfile.h
@@ -20,6 +20,7 @@
 #include <QVariant>
 
 class QWidget;
+class QHeaderView;
 
 namespace Mirall {
 
@@ -104,6 +105,8 @@ public:
     void saveGeometry(QWidget *w);
     void restoreGeometry(QWidget *w);
 
+    void saveGeometryHeader(QHeaderView *header);
+    void restoreGeometryHeader(QHeaderView *header);
 protected:
     void storeData(const QString& group, const QString& key, const QVariant& value);
     QVariant retrieveData(const QString& group, const QString& key) const;
diff --git a/src/mirall/protocolwidget.cpp b/src/mirall/protocolwidget.cpp
index 8c6fae7..638ab84 100644
--- a/src/mirall/protocolwidget.cpp
+++ b/src/mirall/protocolwidget.cpp
@@ -17,6 +17,7 @@
 #endif
 
 #include "mirall/protocolwidget.h"
+#include "mirall/mirallconfigfile.h"
 #include "mirall/syncresult.h"
 #include "mirall/logger.h"
 #include "mirall/utility.h"
@@ -56,6 +57,7 @@ ProtocolWidget::ProtocolWidget(QWidget *parent) :
     _ui->_treeWidget->setColumnCount(5);
     _ui->_treeWidget->setRootIsDecorated(false);
     _ui->_treeWidget->setTextElideMode(Qt::ElideMiddle);
+    _ui->_treeWidget->header()->setObjectName("ActivityListHeader");
 
     connect(this, SIGNAL(guiLog(QString,QString)), Logger::instance(), SIGNAL(guiLog(QString,QString)));
 
@@ -67,6 +69,8 @@ ProtocolWidget::ProtocolWidget(QWidget *parent) :
     copyBtn->setToolTip( tr("Copy the activity list to the clipboard."));
     connect(copyBtn, SIGNAL(clicked()), SLOT(copyToClipboard()));
 
+    MirallConfigFile cfg;
+    cfg.restoreGeometryHeader(_ui->_treeWidget->header());
 }
 
 void ProtocolWidget::initializeList()
@@ -101,6 +105,9 @@ void ProtocolWidget::initializeList()
 
 ProtocolWidget::~ProtocolWidget()
 {
+    MirallConfigFile cfg;
+    cfg.saveGeometryHeader(_ui->_treeWidget->header() );
+
     delete _ui;
 }
 

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-owncloud/owncloud-client.git



More information about the Pkg-owncloud-commits mailing list