]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/dolphinmainwindow.cpp
a tooltip - wasn't sure what the button did at first
[dolphin.git] / src / dolphinmainwindow.cpp
index dc46a942984bf539eec0c3be440331d570af488d..561c235b7d95a81a4f706794dd9824da3a54edd8 100644 (file)
@@ -303,6 +303,35 @@ void DolphinMainWindow::slotSortOrderChanged(Qt::SortOrder order)
     descending->setChecked(sortDescending);\r
 }\r
 \r
+void DolphinMainWindow::slotAdditionalInfoChanged(KFileItemDelegate::AdditionalInformation info)\r
+{\r
+    QAction* action = 0;\r
+    switch (info) {\r
+        case KFileItemDelegate::FriendlyMimeType:\r
+            action = actionCollection()->action("show_mime_info");\r
+            break;\r
+        case KFileItemDelegate::Size:\r
+            action = actionCollection()->action("show_size_info");\r
+            break;\r
+        case KFileItemDelegate::ModificationTime:\r
+            action = actionCollection()->action("show_date_info");\r
+            break;\r
+        case KFileItemDelegate::NoInformation:\r
+        default:\r
+            action = actionCollection()->action("clear_info");\r
+            break;\r
+    }\r
+\r
+    if (action != 0) {\r
+        KToggleAction* toggleAction = static_cast<KToggleAction*>(action);\r
+        toggleAction->setChecked(true);\r
+\r
+        QActionGroup* group = toggleAction->actionGroup();\r
+        Q_ASSERT(group != 0);\r
+        group->setEnabled(m_activeView->mode() == DolphinView::IconsView);\r
+    }\r
+}\r
+\r
 void DolphinMainWindow::slotSelectionChanged()\r
 {\r
     updateEditActions();\r
@@ -528,11 +557,32 @@ void DolphinMainWindow::undo()
 \r
 void DolphinMainWindow::cut()\r
 {\r
+    QClipboard* clipboard = QApplication::clipboard();\r
+    const QMimeData* currentMimeData = clipboard->mimeData();\r
+    const bool hadCutSelection = KonqMimeData::decodeIsCutSelection(currentMimeData);\r
+\r
     QMimeData* mimeData = new QMimeData();\r
     const KUrl::List kdeUrls = m_activeView->selectedUrls();\r
     const KUrl::List mostLocalUrls;\r
     KonqMimeData::populateMimeData(mimeData, kdeUrls, mostLocalUrls, true);\r
     QApplication::clipboard()->setMimeData(mimeData);\r
+\r
+    if (hadCutSelection) {\r
+        // If an old cut selection has been applied, the view must\r
+        // be reloaded to get the original icons of the items without an\r
+        // applied item effect.\r
+        m_view[PrimaryIdx]->reload();\r
+        if (m_view[SecondaryIdx] != 0) {\r
+            m_view[SecondaryIdx]->reload();\r
+        }\r
+    }\r
+    else {\r
+        // apply an item effect for the icons of all cut items\r
+        m_view[PrimaryIdx]->updateCutItems();\r
+        if (m_view[SecondaryIdx] != 0) {\r
+            m_view[SecondaryIdx]->updateCutItems();\r
+        }\r
+    }\r
 }\r
 \r
 void DolphinMainWindow::copy()\r
@@ -595,13 +645,7 @@ void DolphinMainWindow::updatePasteAction()
     if (!urls.isEmpty()) {\r
         pasteAction->setEnabled(true);\r
 \r
-        const int count = urls.count();\r
-        if (count == 1) {\r
-            pasteAction->setText(i18n("Paste 1 File"));\r
-        }\r
-        else {\r
-            pasteAction->setText(i18n("Paste %1 Files", count));\r
-        }\r
+        pasteAction->setText(i18np("Paste One File", "Paste %1 Files", urls.count()));\r
     }\r
     else {\r
         pasteAction->setEnabled(false);\r
@@ -689,6 +733,29 @@ void DolphinMainWindow::toggleSortOrder()
     m_activeView->setSortOrder(order);\r
 }\r
 \r
+void DolphinMainWindow::clearInfo()\r
+{\r
+    m_activeView->setAdditionalInfo(KFileItemDelegate::NoInformation);\r
+}\r
+\r
+void DolphinMainWindow::showMimeInfo()\r
+{\r
+    clearStatusBar();\r
+    m_activeView->setAdditionalInfo(KFileItemDelegate::FriendlyMimeType);\r
+}\r
+\r
+void DolphinMainWindow::showSizeInfo()\r
+{\r
+    clearStatusBar();\r
+    m_activeView->setAdditionalInfo(KFileItemDelegate::Size);\r
+}\r
+\r
+void DolphinMainWindow::showDateInfo()\r
+{\r
+    clearStatusBar();\r
+    m_activeView->setAdditionalInfo(KFileItemDelegate::ModificationTime);\r
+}\r
+\r
 void DolphinMainWindow::toggleSplitView()\r
 {\r
     if (m_view[SecondaryIdx] == 0) {\r
@@ -1112,6 +1179,28 @@ void DolphinMainWindow::setupActions()
     sortDescending->setText(i18n("Descending"));\r
     connect(sortDescending, SIGNAL(triggered()), this, SLOT(toggleSortOrder()));\r
 \r
+    KToggleAction* clearInfo = actionCollection()->add<KToggleAction>("clear_info");\r
+    clearInfo->setText(i18n("No Information"));\r
+    connect(clearInfo, SIGNAL(triggered()), this, SLOT(clearInfo()));\r
+\r
+    KToggleAction* showMimeInfo = actionCollection()->add<KToggleAction>("show_mime_info");\r
+    showMimeInfo->setText(i18n("Type"));\r
+    connect(showMimeInfo, SIGNAL(triggered()), this, SLOT(showMimeInfo()));\r
+\r
+    KToggleAction* showSizeInfo = actionCollection()->add<KToggleAction>("show_size_info");\r
+    showSizeInfo->setText(i18n("Size"));\r
+    connect(showSizeInfo, SIGNAL(triggered()), this, SLOT(showSizeInfo()));\r
+\r
+    KToggleAction* showDateInfo = actionCollection()->add<KToggleAction>("show_date_info");\r
+    showDateInfo->setText(i18n("Date"));\r
+    connect(showDateInfo, SIGNAL(triggered()), this, SLOT(showDateInfo()));\r
+\r
+    QActionGroup* infoGroup = new QActionGroup(this);\r
+    infoGroup->addAction(clearInfo);\r
+    infoGroup->addAction(showMimeInfo);\r
+    infoGroup->addAction(showSizeInfo);\r
+    infoGroup->addAction(showDateInfo);\r
+\r
     KToggleAction* showPreview = actionCollection()->add<KToggleAction>("show_preview");\r
     showPreview->setText(i18n("Preview"));\r
     showPreview->setIcon(KIcon("thumbnail-show"));\r
@@ -1316,6 +1405,7 @@ void DolphinMainWindow::updateViewActions()
 \r
     slotSortingChanged(m_activeView->sorting());\r
     slotSortOrderChanged(m_activeView->sortOrder());\r
+    slotAdditionalInfoChanged(m_activeView->additionalInfo());\r
 \r
     KToggleAction* showFilterBarAction =\r
         static_cast<KToggleAction*>(actionCollection()->action("show_filter_bar"));\r
@@ -1380,6 +1470,8 @@ void DolphinMainWindow::connectViewSignals(int viewIndex)
             this, SLOT(slotSortingChanged(DolphinView::Sorting)));\r
     connect(view, SIGNAL(sortOrderChanged(Qt::SortOrder)),\r
             this, SLOT(slotSortOrderChanged(Qt::SortOrder)));\r
+    connect(view, SIGNAL(additionalInfoChanged(KFileItemDelegate::AdditionalInformation)),\r
+            this, SLOT(slotAdditionalInfoChanged(KFileItemDelegate::AdditionalInformation)));\r
     connect(view, SIGNAL(selectionChanged()),\r
             this, SLOT(slotSelectionChanged()));\r
     connect(view, SIGNAL(showFilterBarChanged(bool)),\r