Introduce MirallConfigFile::save/restoreGeometry()

This commit is contained in:
Daniel Molkentin 2013-07-22 12:28:43 +02:00
parent b2c587e2f8
commit 5fe4d2db2b
4 changed files with 26 additions and 9 deletions

View file

@ -60,6 +60,7 @@ LogBrowser::LogBrowser(QWidget *parent) :
_logstream(0), _logstream(0),
_doFileFlush(false) _doFileFlush(false)
{ {
setObjectName("LogBrowser"); // for save/restoreGeometry()
setWindowTitle(tr("Log Output")); setWindowTitle(tr("Log Output"));
setMinimumWidth(600); setMinimumWidth(600);
@ -118,8 +119,7 @@ LogBrowser::LogBrowser(QWidget *parent) :
connect(Logger::instance(), SIGNAL(newLog(QString)),this,SLOT(slotNewLog(QString)), Qt::AutoConnection); connect(Logger::instance(), SIGNAL(newLog(QString)),this,SLOT(slotNewLog(QString)), Qt::AutoConnection);
MirallConfigFile cfg; MirallConfigFile cfg;
QSettings settings(cfg.configFile(), QSettings::IniFormat); cfg.restoreGeometry(this);
restoreGeometry(settings.value("LogBrowser/geometry").toByteArray());
} }
LogBrowser::~LogBrowser() LogBrowser::~LogBrowser()
@ -219,8 +219,7 @@ void LogBrowser::slotClearLog()
void LogBrowser::closeEvent(QCloseEvent *event) void LogBrowser::closeEvent(QCloseEvent *event)
{ {
MirallConfigFile cfg; MirallConfigFile cfg;
QSettings settings(cfg.configFile(), QSettings::IniFormat); cfg.saveGeometry(this);
settings.setValue("LogBrowser/geometry", saveGeometry());
QWidget::closeEvent(event); QWidget::closeEvent(event);
} }

View file

@ -37,6 +37,7 @@ static const char remotePollIntervalC[] = "remotePollInterval";
static const char monoIconsC[] = "monoIcons"; static const char monoIconsC[] = "monoIcons";
static const char optionalDesktopNoficationsC[] = "optionalDesktopNotifications"; static const char optionalDesktopNoficationsC[] = "optionalDesktopNotifications";
static const char skipUpdateCheckC[] = "skipUpdateCheck"; static const char skipUpdateCheckC[] = "skipUpdateCheck";
static const char geometryC[] = "geometry";
static const char proxyHostC[] = "Proxy/host"; static const char proxyHostC[] = "Proxy/host";
static const char proxyTypeC[] = "Proxy/type"; static const char proxyTypeC[] = "Proxy/type";
@ -99,6 +100,21 @@ void MirallConfigFile::setSeenVersion(const QString &version)
settings.sync(); settings.sync();
} }
void MirallConfigFile::saveGeometry(QWidget *w)
{
Q_ASSERT(!w->objectName().isNull());
QSettings settings( configFile(), QSettings::IniFormat );
settings.setIniCodec( "UTF-8" );
settings.beginGroup(w->objectName());
settings.setValue(QLatin1String(geometryC), w->saveGeometry());
settings.sync();
}
void MirallConfigFile::restoreGeometry(QWidget *w)
{
w->restoreGeometry(getValue(geometryC, w->objectName()).toByteArray());
}
QString MirallConfigFile::configPath() const QString MirallConfigFile::configPath() const
{ {
QString dir = _confDir; QString dir = _confDir;

View file

@ -18,10 +18,10 @@
#include <QString> #include <QString>
class QVariant; class QVariant;
class QWidget;
namespace Mirall { namespace Mirall {
class MirallConfigFile class MirallConfigFile
{ {
/* let only CredentialStore read the password from the file. All other classes /* let only CredentialStore read the password from the file. All other classes
@ -103,6 +103,9 @@ public:
QString seenVersion() const; QString seenVersion() const;
void setSeenVersion(const QString &version); void setSeenVersion(const QString &version);
void saveGeometry(QWidget *w);
void restoreGeometry(QWidget *w);
protected: protected:
// these classes can only be access from CredentialStore as a friend class. // these classes can only be access from CredentialStore as a friend class.
bool ownCloudPasswordExists( const QString& connection = QString() ) const; bool ownCloudPasswordExists( const QString& connection = QString() ) const;

View file

@ -42,6 +42,7 @@ SettingsDialog::SettingsDialog(Application *app, QWidget *parent) :
_ui(new Ui::SettingsDialog), _folderMan(app->_folderMan) _ui(new Ui::SettingsDialog), _folderMan(app->_folderMan)
{ {
_ui->setupUi(this); _ui->setupUi(this);
setObjectName("Settings"); // required as group for saveGeometry call
setWindowTitle(tr("%1 Settings").arg(Theme::instance()->appNameGUI())); setWindowTitle(tr("%1 Settings").arg(Theme::instance()->appNameGUI()));
@ -85,8 +86,7 @@ SettingsDialog::SettingsDialog(Application *app, QWidget *parent) :
connect(closeButton, SIGNAL(pressed()), SLOT(accept())); connect(closeButton, SIGNAL(pressed()), SLOT(accept()));
MirallConfigFile cfg; MirallConfigFile cfg;
QSettings settings(cfg.configFile(), QSettings::IniFormat); cfg.restoreGeometry(this);
restoreGeometry(settings.value("Settings/geometry").toByteArray());
} }
SettingsDialog::~SettingsDialog() SettingsDialog::~SettingsDialog()
@ -106,8 +106,7 @@ void SettingsDialog::addAccount(const QString &title, QWidget *widget)
void SettingsDialog::closeEvent(QCloseEvent *event) void SettingsDialog::closeEvent(QCloseEvent *event)
{ {
MirallConfigFile cfg; MirallConfigFile cfg;
QSettings settings(cfg.configFile(), QSettings::IniFormat); cfg.saveGeometry(this);
settings.setValue("Settings/geometry", saveGeometry());
QWidget::closeEvent(event); QWidget::closeEvent(event);
} }