[PATCH] Add support for remembering settings

Tomaz Canabrava tcanabrava at kde.org
Sat Apr 27 09:11:08 PDT 2013


And I personally don't like how QSettings works. I'm actually tryinhg to do
a replacement for the current Qt Settings thing.


2013/4/27 Amit Chaudhuri <amit.k.chaudhuri at gmail.com>

> Syntax police: fair cop.
> New Line @ EOF - wonder why?
> Using ini & / or leaving as is - let's see how Dirk feels after his black
> belt sparring sessions ;)
>
>
> On Sat, Apr 27, 2013 at 1:05 PM, Lubomir I. Ivanov <neolit123 at gmail.com>wrote:
>
>> On 27 April 2013 12:09,  <amit.k.chaudhuri at gmail.com> wrote:
>> > From: Amit Chaudhuri <amit.k.chaudhuri at gmail.com>
>> >
>> > Use QSettings to provide persistent storage of settings. For example, we
>> > store and restore the size of the MainWindow.
>> >
>> > We use the organisation name hohndel.org and keep subsurface as the
>> > application name.
>> >
>> > A section is specified for things to do with the MainWindow; other
>> > sections could be added e.g. for preferred units?
>> >
>> > Signed-off-by: Amit Chaudhuri <amit.k.chaudhuri at gmail.com>
>>
>>
>> oh hai, i'm the annoying syntax police. :-)
>> a couple of quick things bellow.
>>
>> > ---
>> >  qt-ui/mainwindow.cpp |   37 +++++++++++++++++++++++++++++++++++++
>> >  qt-ui/mainwindow.h   |    5 +++++
>> >  2 files changed, 42 insertions(+)
>> >
>> > diff --git a/qt-ui/mainwindow.cpp b/qt-ui/mainwindow.cpp
>> > index 8cdc601..0c6691a 100644
>> > --- a/qt-ui/mainwindow.cpp
>> > +++ b/qt-ui/mainwindow.cpp
>> > @@ -12,6 +12,8 @@
>> >  #include <QtDebug>
>> >  #include <QDateTime>
>> >  #include <QSortFilterProxyModel>
>> > +#include <QSettings>
>> > +#include <QCloseEvent>
>> >
>> >  #include "divelistview.h"
>> >  #include "starwidget.h"
>> > @@ -31,6 +33,7 @@ MainWindow::MainWindow() : ui(new Ui::MainWindow()),
>> >         ui->ListWidget->setModel(sortModel);
>> >
>> >         setWindowIcon(QIcon(":subsurface-icon"));
>> > +       readSettings();
>> >  }
>> >
>> >  void MainWindow::on_actionNew_triggered()
>> > @@ -138,6 +141,11 @@ void MainWindow::on_actionPreferences_triggered()
>> >  void MainWindow::on_actionQuit_triggered()
>> >  {
>> >         qDebug("actionQuit");
>> > +       if (unsaved_changes() && (askSaveChanges() == FALSE))
>> > +       {
>> > +               return;
>> > +       }
>> > +
>> >  }
>> >
>>
>> opening curly brace for branches _should be_ at the same line as the
>> "if", "else" conditions:
>>
>> if (hello) {
>> }
>>
>> >  void MainWindow::on_actionDownloadDC_triggered()
>> > @@ -284,3 +292,32 @@ bool MainWindow::askSaveChanges()
>> >         }
>> >         return false;
>> >  }
>> > +
>> > +void MainWindow::readSettings()
>> > +{
>> > +       QSettings settings("hohndel.org","subsurface");
>> > +
>> > +       /* note: section/key i.e. forward slash to separate */
>> > +       QSize sz = settings.value("MainWindow/size").value<QSize>();
>> > +       resize(sz);
>> > +}
>> > +
>> > +void MainWindow::writeSettings()
>> > +{
>> > +       QSettings settings("hohndel.org","subsurface");
>> > +       settings.beginGroup("MainWindow");
>> > +       settings.setValue("size",size());
>> > +       settings.endGroup();
>> > +       /* other groups here; avoid '/' and '\' in keys with
>> setValue(...) please */
>> > +}
>> > +
>>
>> we might want to use IniFormat for portability instead of native
>> formats, i.e. writing to similar OS locations and with the same
>> format:
>> http://qt-project.org/doc/qt-4.8/qsettings.html#Format-enum
>>
>> i think i've already suggested that before and i'm personally against
>> using the Windows registry for writing, regardless of it being the
>> "native" Windows format.
>>
>> > +void MainWindow::closeEvent(QCloseEvent *event)
>> > +{
>> > +       if (unsaved_changes() && (askSaveChanges() == FALSE))
>> > +       {
>> > +               event->ignore();
>> > +               return;
>> > +       }
>> > +       event->accept();
>> > +       writeSettings();
>>
>> same as the first comment.
>>
>> > +}
>> > \ No newline at end of file
>>
>> hmm, it says no newline at EOF?
>>
>> lubomir
>> --
>>
>
>
> _______________________________________________
> subsurface mailing list
> subsurface at hohndel.org
> http://lists.hohndel.org/cgi-bin/mailman/listinfo/subsurface
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.hohndel.org/pipermail/subsurface/attachments/20130427/7969df77/attachment.html>


More information about the subsurface mailing list