[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [ark] part: Save and restore the size of the internal viewer window.
From:       Jonathan Marten <jjm () keelhaul ! me ! uk>
Date:       2011-12-31 16:16:04
Message-ID: 20111231161604.BE4CFA60A6 () git ! kde ! org
[Download RAW message or body]

Git commit da9591757f6575f79f9a7d456105a0cc89e6f0e1 by Jonathan Marten.
Committed on 31/12/2011 at 16:59.
Pushed by marten into branch 'master'.

Save and restore the size of the internal viewer window.

REVIEW:103581

M  +12   -8    part/arkviewer.cpp
M  +1    -0    part/arkviewer.h

http://commits.kde.org/ark/da9591757f6575f79f9a7d456105a0cc89e6f0e1

diff --git a/part/arkviewer.cpp b/part/arkviewer.cpp
index 9bfd651..e68314e 100644
--- a/part/arkviewer.cpp
+++ b/part/arkviewer.cpp
@@ -59,6 +59,9 @@ ArkViewer::~ArkViewer()
 
 void ArkViewer::dialogClosed()
 {
+    KConfigGroup conf = KGlobal::config()->group("Viewer");
+    saveDialogSize(conf);
+
     if (m_part) {
         KProgressDialog progressDialog
             (this, i18n("Closing preview"),
@@ -98,8 +101,6 @@ void ArkViewer::view(const QString& filename, QWidget *parent)
     } else if (viewer->hasServiceType(QLatin1String( "KParts/ReadOnlyPart" ))) {
         ArkViewer *internalViewer = new ArkViewer(parent, Qt::Window);
 
-        internalViewer->hide();
-
         if (!internalViewer->viewInInternalViewer(filename)) {
             KMessageBox::sorry(parent, i18n("The internal viewer cannot preview this file."));
             delete internalViewer;
@@ -129,6 +130,14 @@ void ArkViewer::keyPressEvent(QKeyEvent *event)
     event->accept();
 }
 
+// This sets the default size of the dialog.  It will only take effect in the case
+// where there is no saved size in the config file - it sets the default values
+// for KDialog::restoreDialogSize().
+QSize ArkViewer::sizeHint() const
+{
+    return QSize(560, 400);
+}
+
 bool ArkViewer::viewInInternalViewer(const QString& filename)
 {
     const KUrl fileUrl(filename);
@@ -136,12 +145,7 @@ bool ArkViewer::viewInInternalViewer(const QString& filename)
     KMimeType::Ptr mimetype = KMimeType::findByUrl(fileUrl, 0, true);
 
     setCaption(fileUrl.fileName());
-    // TODO: Load the size from the config file
-    QSize size = QSize();
-    if (size.width() < 200) {
-        size = QSize(560, 400);
-    }
-    setInitialSize(size);
+    restoreDialogSize(KGlobal::config()->group("Viewer"));
 
     QFrame *header = new QFrame(m_widget);
     QHBoxLayout *headerLayout = new QHBoxLayout(header);
diff --git a/part/arkviewer.h b/part/arkviewer.h
index b810e17..a677e39 100644
--- a/part/arkviewer.h
+++ b/part/arkviewer.h
@@ -35,6 +35,7 @@ class ArkViewer : public KDialog
 
 public:
     virtual ~ArkViewer();
+    virtual QSize sizeHint() const;
 
     static void view(const QString& filename, QWidget* parent = 0);
 
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic