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

List:       kde-commits
Subject:    playground/base/plasma/plasmate
From:       Marco Martin <notmart () gmail ! com>
Date:       2010-10-28 16:40:55
Message-ID: 20101028164055.A51CAAC89A () svn ! kde ! org
[Download RAW message or body]

SVN commit 1190705 by mart:

rationalize a bit docks hide/show logic


 M  +45 -16    mainwindow.cpp  
 M  +11 -4     mainwindow.h  


--- trunk/playground/base/plasma/plasmate/mainwindow.cpp #1190704:1190705
@@ -194,15 +194,20 @@
 {
     addAction("New Save Point", "document-save",           SLOT(selectSavePoint()), "savepoint");
     addAction("Publish",        "krfb",                    SLOT(selectPublish()),   "publish");
-    addAction("Preview",        "user-desktop",            SLOT(selectPreview()),   "preview");
-    addAction("Notes",          "accessories-text-editor", SLOT(selectNotes()),     "notes");
-    addAction("File List",      "system-file-manager",     SLOT(selectFileList()),  "file_list");
-    addAction("Timeline", "process-working",  SLOT(selectTimeline()), "timeline");
+    addAction("Preview",        "user-desktop",            SLOT(togglePreview()),   "preview");
+    addAction("Notes",          "accessories-text-editor", SLOT(toggleNotes()),     "notes");
+    addAction("File List",      "system-file-manager",     SLOT(toggleFileList()),  "file_list");
+    addAction("Timeline", "process-working",  SLOT(toggleTimeline()), "timeline");
     addAction("Documentation", "help-contents", SLOT(openDocumentation()), "documentation");
 }
 
-void MainWindow::selectTimeline()
+void MainWindow::toggleTimeline()
 {
+    setFileListVisible(!m_timeLine || !m_timeLine->isVisible());
+}
+
+void MainWindow::setTimelineVisible(const bool visible)
+{
     KConfig c;
     KConfigGroup configDock = c.group("DocksPosition");
     Qt::DockWidgetArea location = (Qt::DockWidgetArea) configDock.readEntry("WorkflowLocation",
@@ -210,7 +215,7 @@
     location = (Qt::DockWidgetArea) configDock.readEntry("TimeLineLocation",
                                                          QVariant(Qt::BottomDockWidgetArea)).toInt();
                                                          
-    if(!m_timeLine) {
+    if (visible && !m_timeLine) {
         m_timeLine = new TimeLine(this, m_model->package(), location);
         m_timeLine->setObjectName("timeline");
         connect(m_timeLine, SIGNAL(sourceDirectoryChanged()),
@@ -219,31 +224,47 @@
                 this, SLOT(saveEditorData()));
         addDockWidget(location, m_timeLine);
     }
+    if (m_timeLine) {
     m_timeLine->setVisible(!m_timeLine->isVisible());
 }
+}
 
-void MainWindow::selectFileList()
+void MainWindow::toggleFileList()
 {
-    if(!m_editWidget) {
+    setFileListVisible(!m_editWidget || !m_editWidget->isVisible());
+}
+
+void MainWindow::setFileListVisible(const bool visible)
+{
+    if (visible && !m_editWidget) {
         m_editWidget = new QDockWidget(i18n("Files"), this);
         m_editWidget->setObjectName("edit tree");
         m_editWidget->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred);
         m_editWidget->setWidget(m_editPage);
-        addDockWidget(Qt::RightDockWidgetArea, m_editWidget);
+        addDockWidget(Qt::LeftDockWidgetArea, m_editWidget);
     }
-    m_editWidget->setVisible(!m_editWidget->isVisible());
+    if (m_editWidget) {
+        m_editWidget->setVisible(visible);
 }
+}
 
-void MainWindow::selectNotes()
+void MainWindow::toggleNotes()
 {
-    if(!m_notesWidget) {
+    setFileListVisible(!m_notesWidget || !m_notesWidget->isVisible());
+}
+
+void MainWindow::setNotesVisible(const bool visible)
+{
+    if (visible && !m_notesWidget) {
         m_notesWidget = new QDockWidget(i18n("Project notes"), this);
         m_notesWidget->setObjectName("projectNotes");
         loadNotesEditor(m_notesWidget);
         addDockWidget(Qt::LeftDockWidgetArea, m_notesWidget);
     }
-    m_notesWidget->setVisible(!m_notesWidget->isVisible());
+    if (m_notesWidget) {
+        m_notesWidget->setVisible(visible);
 }
+}
 
 void MainWindow::selectSavePoint()
 {
@@ -259,16 +280,23 @@
   m_publisher->exec();
 }
 
-void MainWindow::selectPreview()
+void MainWindow::togglePreview()
 {
+    setFileListVisible(!m_previewerWidget || !m_previewerWidget->isVisible());
+}
+
+void MainWindow::setPreviewVisible(const bool visible)
+{
+   if (visible && !m_previewerWidget) {
   QString packagePath = KStandardDirs::locateLocal("appdata", m_currentProject + '/');
-   if(!m_previewerWidget) {
        m_previewerWidget = createPreviewerFor(m_currentProjectType);
        addDockWidget(Qt::RightDockWidgetArea, m_previewerWidget);
        m_previewerWidget->showPreview(packagePath);
    }   
-   m_previewerWidget->setVisible(!m_previewerWidget->isVisible());
+   if (m_previewerWidget) {
+       m_previewerWidget->setVisible(visible);
 }
+}
 
 void MainWindow::saveEditorData()
 {
@@ -584,6 +612,7 @@
         splitDockWidget(m_editWidget, m_previewerWidget, Qt::Vertical);
         m_previewerWidget->showPreview(packagePath);
     }
+    setFileListVisible(true);
     restoreState(state);
 
     // Now, setup some useful properties such as the project name in the title bar
--- trunk/playground/base/plasma/plasmate/mainwindow.h #1190704:1190705
@@ -67,11 +67,18 @@
     // refreshes editor, killing all local changes
     void editorDestructiveRefresh();
     void selectSavePoint();
-    void selectTimeline();
     void selectPublish();
-    void selectPreview();
-    void selectNotes();
-    void selectFileList();
+
+    void toggleTimeline();
+    void togglePreview();
+    void toggleNotes();
+    void toggleFileList();
+    
+    void setTimelineVisible(const bool visible);
+    void setPreviewVisible(const bool visible);
+    void setNotesVisible(const bool visible);
+    void setFileListVisible(const bool visible);
+
     void openDocumentation();
 
 signals:
[prev in list] [next in list] [prev in thread] [next in thread] 

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