]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/dolphinmainwindow.cpp
SVN_SILENT made messages (.desktop file)
[dolphin.git] / src / dolphinmainwindow.cpp
index ffe1c4e8e646a8888d48bcf241dd0c216a484e2e..536da2a472125b8e2298cf89ef2018910b0a1e72 100644 (file)
  *   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA            *
  ***************************************************************************/
 
-#include <config-kmetadata.h>
 #include "dolphinmainwindow.h"
 
+#include <config-kmetadata.h>
+
 #include "dolphinapplication.h"
 #include "dolphinnewmenu.h"
 #include "dolphinsettings.h"
@@ -207,11 +208,18 @@ void DolphinMainWindow::rename(const KUrl& oldUrl, const KUrl& newUrl)
 void DolphinMainWindow::refreshViews()
 {
     Q_ASSERT(m_view[PrimaryIdx] != 0);
-    m_view[PrimaryIdx]->refresh();
 
+    // remember the current active view, as because of
+    // the refreshing the active view might change to
+    // the secondary view
+    DolphinView* activeView = m_activeView;
+
+    m_view[PrimaryIdx]->refresh();
     if (m_view[SecondaryIdx] != 0) {
         m_view[SecondaryIdx]->refresh();
     }
+
+    setActiveView(activeView);
 }
 
 void DolphinMainWindow::changeUrl(const KUrl& url)
@@ -346,6 +354,11 @@ void DolphinMainWindow::slotSelectionChanged(const KFileItemList& selection)
     emit selectionChanged(selection);
 }
 
+void DolphinMainWindow::slotRequestItemInfo(const KUrl& url)
+{
+    emit requestItemInfo(url);
+}
+
 void DolphinMainWindow::slotHistoryChanged()
 {
     updateHistory();
@@ -445,7 +458,8 @@ void DolphinMainWindow::deleteItems()
 void DolphinMainWindow::properties()
 {
     const KFileItemList list = m_activeView->selectedItems();
-    new KPropertiesDialog(list, this);
+    KPropertiesDialog dialog(list, this);
+    dialog.exec();
 }
 
 void DolphinMainWindow::quit()
@@ -729,33 +743,21 @@ void DolphinMainWindow::toggleSplitView()
         // create a secondary view
         m_view[SecondaryIdx] = new DolphinView(this,
                                                0,
-                                               m_view[PrimaryIdx]->url(),
+                                               m_view[PrimaryIdx]->rootUrl(),
                                                m_view[PrimaryIdx]->mode(),
                                                m_view[PrimaryIdx]->showHiddenFiles());
         connectViewSignals(SecondaryIdx);
-        m_splitter->insertWidget(0, m_view[SecondaryIdx]);
+        m_splitter->addWidget(m_view[SecondaryIdx]);
         m_splitter->setSizes(QList<int>() << newWidth << newWidth);
         m_view[SecondaryIdx]->reload();
         m_view[SecondaryIdx]->show();
     } else {
         // remove secondary view
-        if (m_activeView == m_view[PrimaryIdx]) {
-            m_view[SecondaryIdx]->close();
-            m_view[SecondaryIdx]->deleteLater();
-            m_view[SecondaryIdx] = 0;
-            setActiveView(m_view[PrimaryIdx]);
-        } else {
-            // The secondary view is active, hence from the users point of view
-            // the content of the secondary view should be moved to the primary view.
-            // From an implementation point of view it is more efficient to close
-            // the primary view and exchange the internal pointers afterwards.
-            m_view[PrimaryIdx]->close();
-            delete m_view[PrimaryIdx];
-            m_view[PrimaryIdx] = m_view[SecondaryIdx];
-            m_view[SecondaryIdx] = 0;
-            setActiveView(m_view[PrimaryIdx]);
-        }
+        m_view[SecondaryIdx]->close();
+        m_view[SecondaryIdx]->deleteLater();
+        m_view[SecondaryIdx] = 0;
     }
+    setActiveView(m_view[PrimaryIdx]);
     emit activeViewChanged();
 }
 
@@ -984,13 +986,7 @@ void DolphinMainWindow::init()
 void DolphinMainWindow::loadSettings()
 {
     GeneralSettings* settings = DolphinSettings::instance().generalSettings();
-
-    KToggleAction* splitAction = static_cast<KToggleAction*>(actionCollection()->action("split_view"));
-    if (settings->splitView()) {
-        splitAction->setChecked(true);
-        toggleSplitView();
-    }
-
+    updateSplitAction(settings->splitView());
     updateViewActions();
 }
 
@@ -1065,13 +1061,13 @@ void DolphinMainWindow::setupActions()
     KToggleAction* iconsView = actionCollection()->add<KToggleAction>("icons");
     iconsView->setText(i18n("Icons"));
     iconsView->setShortcut(Qt::CTRL | Qt::Key_1);
-    iconsView->setIcon(KIcon("view-icon"));
+    iconsView->setIcon(KIcon("fileview-icon"));
     connect(iconsView, SIGNAL(triggered()), this, SLOT(setIconsView()));
 
     KToggleAction* detailsView = actionCollection()->add<KToggleAction>("details");
     detailsView->setText(i18n("Details"));
     detailsView->setShortcut(Qt::CTRL | Qt::Key_2);
-    detailsView->setIcon(KIcon("fileview-text"));
+    detailsView->setIcon(KIcon("fileview-detailed"));
     connect(detailsView, SIGNAL(triggered()), this, SLOT(setDetailsView()));
 
     KToggleAction* columnView = actionCollection()->add<KToggleAction>("columns");
@@ -1154,7 +1150,7 @@ void DolphinMainWindow::setupActions()
 
     KToggleAction* showPreview = actionCollection()->add<KToggleAction>("show_preview");
     showPreview->setText(i18n("Preview"));
-    showPreview->setIcon(KIcon("thumbnail-show"));
+    showPreview->setIcon(KIcon("fileview-preview"));
     connect(showPreview, SIGNAL(triggered()), this, SLOT(togglePreview()));
 
     KToggleAction* showHiddenFiles = actionCollection()->add<KToggleAction>("show_hidden_files");
@@ -1162,10 +1158,9 @@ void DolphinMainWindow::setupActions()
     showHiddenFiles->setShortcut(Qt::ALT | Qt::Key_Period);
     connect(showHiddenFiles, SIGNAL(triggered()), this, SLOT(toggleShowHiddenFiles()));
 
-    KToggleAction* split = actionCollection()->add<KToggleAction>("split_view");
-    split->setText(i18n("Split"));
+    QAction* split = actionCollection()->addAction("split_view");
     split->setShortcut(Qt::Key_F10);
-    split->setIcon(KIcon("view-left-right"));
+    updateSplitAction(false);
     connect(split, SIGNAL(triggered()), this, SLOT(toggleSplitView()));
 
     QAction* reload = actionCollection()->addAction("reload");
@@ -1241,6 +1236,8 @@ void DolphinMainWindow::setupDockWidgets()
             infoWidget, SLOT(setUrl(KUrl)));
     connect(this, SIGNAL(selectionChanged(KFileItemList)),
             infoWidget, SLOT(setSelection(KFileItemList)));
+    connect(this, SIGNAL(requestItemInfo(KUrl)),
+            infoWidget, SLOT(requestDelayedItemInfo(KUrl)));
 
     // setup "Tree View"
     QDockWidget* treeViewDock = new QDockWidget(i18n("Folders"));
@@ -1398,8 +1395,7 @@ void DolphinMainWindow::updateViewActions()
         static_cast<KToggleAction*>(actionCollection()->action("show_hidden_files"));
     showHiddenFilesAction->setChecked(m_activeView->showHiddenFiles());
 
-    KToggleAction* splitAction = static_cast<KToggleAction*>(actionCollection()->action("split_view"));
-    splitAction->setChecked(m_view[SecondaryIdx] != 0);
+    updateSplitAction(m_view[SecondaryIdx] != 0);
 
     KToggleAction* editableLocactionAction =
         static_cast<KToggleAction*>(actionCollection()->action("editable_location"));
@@ -1455,6 +1451,8 @@ void DolphinMainWindow::connectViewSignals(int viewIndex)
             this, SLOT(slotAdditionalInfoChanged(KFileItemDelegate::AdditionalInformation)));
     connect(view, SIGNAL(selectionChanged(KFileItemList)),
             this, SLOT(slotSelectionChanged(KFileItemList)));
+    connect(view, SIGNAL(requestItemInfo(KUrl)),
+            this, SLOT(slotRequestItemInfo(KUrl)));
     connect(view, SIGNAL(showFilterBarChanged(bool)),
             this, SLOT(updateFilterBarAction(bool)));
     connect(view, SIGNAL(urlChanged(KUrl)),
@@ -1467,6 +1465,18 @@ void DolphinMainWindow::connectViewSignals(int viewIndex)
             this, SLOT(slotHistoryChanged()));
 }
 
+void DolphinMainWindow::updateSplitAction(bool isSplit)
+{
+    QAction* splitAction = actionCollection()->action("split_view");
+    if (isSplit) {
+        splitAction->setText(i18n("Join"));
+        splitAction->setIcon(KIcon("fileview-join"));
+    } else {
+        splitAction->setText(i18n("Split"));
+        splitAction->setIcon(KIcon("fileview-split"));
+    }
+}
+
 DolphinMainWindow::UndoUiInterface::UndoUiInterface(DolphinMainWindow* mainWin) :
     KonqUndoManager::UiInterface(mainWin),
     m_mainWin(mainWin)