X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/3759f51a1315f7517aa4e8a80c582ea602e18c08..e6527fca191823eec596078a183a162f2fd75d64:/src/dolphinmainwindow.cpp diff --git a/src/dolphinmainwindow.cpp b/src/dolphinmainwindow.cpp index 102e54404..561c235b7 100644 --- a/src/dolphinmainwindow.cpp +++ b/src/dolphinmainwindow.cpp @@ -303,6 +303,35 @@ void DolphinMainWindow::slotSortOrderChanged(Qt::SortOrder order) descending->setChecked(sortDescending); } +void DolphinMainWindow::slotAdditionalInfoChanged(KFileItemDelegate::AdditionalInformation info) +{ + QAction* action = 0; + switch (info) { + case KFileItemDelegate::FriendlyMimeType: + action = actionCollection()->action("show_mime_info"); + break; + case KFileItemDelegate::Size: + action = actionCollection()->action("show_size_info"); + break; + case KFileItemDelegate::ModificationTime: + action = actionCollection()->action("show_date_info"); + break; + case KFileItemDelegate::NoInformation: + default: + action = actionCollection()->action("clear_info"); + break; + } + + if (action != 0) { + KToggleAction* toggleAction = static_cast(action); + toggleAction->setChecked(true); + + QActionGroup* group = toggleAction->actionGroup(); + Q_ASSERT(group != 0); + group->setEnabled(m_activeView->mode() == DolphinView::IconsView); + } +} + void DolphinMainWindow::slotSelectionChanged() { updateEditActions(); @@ -528,11 +557,32 @@ void DolphinMainWindow::undo() void DolphinMainWindow::cut() { + QClipboard* clipboard = QApplication::clipboard(); + const QMimeData* currentMimeData = clipboard->mimeData(); + const bool hadCutSelection = KonqMimeData::decodeIsCutSelection(currentMimeData); + QMimeData* mimeData = new QMimeData(); const KUrl::List kdeUrls = m_activeView->selectedUrls(); const KUrl::List mostLocalUrls; KonqMimeData::populateMimeData(mimeData, kdeUrls, mostLocalUrls, true); QApplication::clipboard()->setMimeData(mimeData); + + if (hadCutSelection) { + // If an old cut selection has been applied, the view must + // be reloaded to get the original icons of the items without an + // applied item effect. + m_view[PrimaryIdx]->reload(); + if (m_view[SecondaryIdx] != 0) { + m_view[SecondaryIdx]->reload(); + } + } + else { + // apply an item effect for the icons of all cut items + m_view[PrimaryIdx]->updateCutItems(); + if (m_view[SecondaryIdx] != 0) { + m_view[SecondaryIdx]->updateCutItems(); + } + } } void DolphinMainWindow::copy() @@ -595,13 +645,7 @@ void DolphinMainWindow::updatePasteAction() if (!urls.isEmpty()) { pasteAction->setEnabled(true); - const int count = urls.count(); - if (count == 1) { - pasteAction->setText(i18n("Paste 1 File")); - } - else { - pasteAction->setText(i18n("Paste %1 Files", count)); - } + pasteAction->setText(i18np("Paste One File", "Paste %1 Files", urls.count())); } else { pasteAction->setEnabled(false); @@ -689,6 +733,29 @@ void DolphinMainWindow::toggleSortOrder() m_activeView->setSortOrder(order); } +void DolphinMainWindow::clearInfo() +{ + m_activeView->setAdditionalInfo(KFileItemDelegate::NoInformation); +} + +void DolphinMainWindow::showMimeInfo() +{ + clearStatusBar(); + m_activeView->setAdditionalInfo(KFileItemDelegate::FriendlyMimeType); +} + +void DolphinMainWindow::showSizeInfo() +{ + clearStatusBar(); + m_activeView->setAdditionalInfo(KFileItemDelegate::Size); +} + +void DolphinMainWindow::showDateInfo() +{ + clearStatusBar(); + m_activeView->setAdditionalInfo(KFileItemDelegate::ModificationTime); +} + void DolphinMainWindow::toggleSplitView() { if (m_view[SecondaryIdx] == 0) { @@ -919,11 +986,11 @@ void DolphinMainWindow::init() assert(manager != 0); KBookmarkGroup root = manager->root(); if (root.first().isNull()) { - root.addBookmark(manager, i18n("Home"), settings.generalSettings()->homeUrl(), "user-home"); - root.addBookmark(manager, i18n("Storage Media"), KUrl("media:/"), "blockdevice"); - root.addBookmark(manager, i18n("Network"), KUrl("remote:/"), "network-workgroup"); - root.addBookmark(manager, i18n("Root"), KUrl("/"), "folder_red"); - root.addBookmark(manager, i18n("Trash"), KUrl("trash:/"), "user-trash-full"); + root.addBookmark(manager, i18n("Home"), settings.generalSettings()->homeUrl(), "folder-home"); + root.addBookmark(manager, i18n("Storage Media"), KUrl("media:/"), "hdd-mount"); + root.addBookmark(manager, i18n("Network"), KUrl("remote:/"), "network-local"); + root.addBookmark(manager, i18n("Root"), KUrl("/"), "folder-red"); + root.addBookmark(manager, i18n("Trash"), KUrl("trash:/"), "user-trash"); } setupActions(); @@ -1063,7 +1130,7 @@ void DolphinMainWindow::setupActions() KToggleAction* iconsView = actionCollection()->add("icons"); iconsView->setText(i18n("Icons")); iconsView->setShortcut(Qt::CTRL | Qt::Key_1); - iconsView->setIcon(KIcon("view_icon")); + iconsView->setIcon(KIcon("view-icon")); connect(iconsView, SIGNAL(triggered()), this, SLOT(setIconsView())); KToggleAction* detailsView = actionCollection()->add("details"); @@ -1112,8 +1179,31 @@ void DolphinMainWindow::setupActions() sortDescending->setText(i18n("Descending")); connect(sortDescending, SIGNAL(triggered()), this, SLOT(toggleSortOrder())); + KToggleAction* clearInfo = actionCollection()->add("clear_info"); + clearInfo->setText(i18n("No Information")); + connect(clearInfo, SIGNAL(triggered()), this, SLOT(clearInfo())); + + KToggleAction* showMimeInfo = actionCollection()->add("show_mime_info"); + showMimeInfo->setText(i18n("Type")); + connect(showMimeInfo, SIGNAL(triggered()), this, SLOT(showMimeInfo())); + + KToggleAction* showSizeInfo = actionCollection()->add("show_size_info"); + showSizeInfo->setText(i18n("Size")); + connect(showSizeInfo, SIGNAL(triggered()), this, SLOT(showSizeInfo())); + + KToggleAction* showDateInfo = actionCollection()->add("show_date_info"); + showDateInfo->setText(i18n("Date")); + connect(showDateInfo, SIGNAL(triggered()), this, SLOT(showDateInfo())); + + QActionGroup* infoGroup = new QActionGroup(this); + infoGroup->addAction(clearInfo); + infoGroup->addAction(showMimeInfo); + infoGroup->addAction(showSizeInfo); + infoGroup->addAction(showDateInfo); + KToggleAction* showPreview = actionCollection()->add("show_preview"); - showPreview->setText(i18n("Show Preview")); + showPreview->setText(i18n("Preview")); + showPreview->setIcon(KIcon("thumbnail-show")); connect(showPreview, SIGNAL(triggered()), this, SLOT(togglePreview())); KToggleAction* showHiddenFiles = actionCollection()->add("show_hidden_files"); @@ -1122,9 +1212,9 @@ void DolphinMainWindow::setupActions() connect(showHiddenFiles, SIGNAL(triggered()), this, SLOT(toggleShowHiddenFiles())); KToggleAction* split = actionCollection()->add("split_view"); - split->setText(i18n("Split View")); + split->setText(i18n("Split")); split->setShortcut(Qt::Key_F10); - split->setIcon(KIcon("view_left_right")); + split->setIcon(KIcon("view-left-right")); connect(split, SIGNAL(triggered()), this, SLOT(toggleSplitView())); QAction* reload = actionCollection()->addAction("reload"); @@ -1315,6 +1405,7 @@ void DolphinMainWindow::updateViewActions() slotSortingChanged(m_activeView->sorting()); slotSortOrderChanged(m_activeView->sortOrder()); + slotAdditionalInfoChanged(m_activeView->additionalInfo()); KToggleAction* showFilterBarAction = static_cast(actionCollection()->action("show_filter_bar")); @@ -1379,6 +1470,8 @@ void DolphinMainWindow::connectViewSignals(int viewIndex) this, SLOT(slotSortingChanged(DolphinView::Sorting))); connect(view, SIGNAL(sortOrderChanged(Qt::SortOrder)), this, SLOT(slotSortOrderChanged(Qt::SortOrder))); + connect(view, SIGNAL(additionalInfoChanged(KFileItemDelegate::AdditionalInformation)), + this, SLOT(slotAdditionalInfoChanged(KFileItemDelegate::AdditionalInformation))); connect(view, SIGNAL(selectionChanged()), this, SLOT(slotSelectionChanged())); connect(view, SIGNAL(showFilterBarChanged(bool)),