X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/3c1c185400a55103cea3ed567de167df87b59945..4c3dbbb628b5eac8530d5c49db4bf98da0444986:/src/dolphinmainwindow.cpp diff --git a/src/dolphinmainwindow.cpp b/src/dolphinmainwindow.cpp index a7cbc527a..8f68724ac 100644 --- a/src/dolphinmainwindow.cpp +++ b/src/dolphinmainwindow.cpp @@ -178,7 +178,7 @@ void DolphinMainWindow::dropUrls(const KUrl::List& urls, QString seq = QKeySequence(Qt::ShiftModifier).toString(); seq.chop(1); // chop superfluous '+' - QAction* moveAction = popup.addAction(KIcon("goto-page"), + QAction* moveAction = popup.addAction(KIcon("go-jump"), i18nc("@action:inmenu", "&Move Here\t%1", seq)); @@ -190,7 +190,7 @@ void DolphinMainWindow::dropUrls(const KUrl::List& urls, seq = QKeySequence(Qt::ControlModifier + Qt::ShiftModifier).toString(); seq.chop(1); - QAction* linkAction = popup.addAction(KIcon("www"), + QAction* linkAction = popup.addAction(KIcon("insert-link"), i18nc("@action:inmenu", "&Link Here\t%1", seq)); @@ -326,32 +326,51 @@ void DolphinMainWindow::slotSortOrderChanged(Qt::SortOrder order) void DolphinMainWindow::slotAdditionalInfoChanged(KFileItemDelegate::InformationList list) { - QAction* showMimeInfo = actionCollection()->action("show_mime_info"); QAction* showSizeInfo = actionCollection()->action("show_size_info"); QAction* showDateInfo = actionCollection()->action("show_date_info"); + QAction* showPermissionsInfo = actionCollection()->action("show_permissions_info"); + QAction* showOwnerInfo = actionCollection()->action("show_owner_info"); + QAction* showGroupInfo = actionCollection()->action("show_group_info"); + QAction* showMimeInfo = actionCollection()->action("show_mime_info"); - showMimeInfo->setChecked(false); showSizeInfo->setChecked(false); showDateInfo->setChecked(false); + showPermissionsInfo->setChecked(false); + showOwnerInfo->setChecked(false); + showGroupInfo->setChecked(false); + showMimeInfo->setChecked(false); const DolphinView* view = m_activeViewContainer->view(); - // currently only the icons view supports additional information - const bool enable = (view->mode() == DolphinView::IconsView); - showMimeInfo->setEnabled(enable); + + // currently the column view does not support additional information + const bool enable = (view->mode() != DolphinView::ColumnView); showSizeInfo->setEnabled(enable); showDateInfo->setEnabled(enable); + showPermissionsInfo->setEnabled(enable); + showOwnerInfo->setEnabled(enable); + showGroupInfo->setEnabled(enable); + showMimeInfo->setEnabled(enable); foreach (KFileItemDelegate::Information info, list) { switch (info) { - case KFileItemDelegate::FriendlyMimeType: - showMimeInfo->setChecked(true); - break; case KFileItemDelegate::Size: showSizeInfo->setChecked(true); break; case KFileItemDelegate::ModificationTime: showDateInfo->setChecked(true); break; + case KFileItemDelegate::Permissions: + showPermissionsInfo->setChecked(true); + break; + case KFileItemDelegate::Owner: + showOwnerInfo->setChecked(true); + break; + case KFileItemDelegate::OwnerAndGroup: + showGroupInfo->setChecked(true); + break; + case KFileItemDelegate::FriendlyMimeType: + showMimeInfo->setChecked(true); + break; default: break; } @@ -698,19 +717,11 @@ void DolphinMainWindow::invertSelection() clearStatusBar(); m_activeViewContainer->view()->invertSelection(); } -void DolphinMainWindow::setIconsView() -{ - m_activeViewContainer->view()->setMode(DolphinView::IconsView); -} - -void DolphinMainWindow::setDetailsView() -{ - m_activeViewContainer->view()->setMode(DolphinView::DetailsView); -} -void DolphinMainWindow::setColumnView() +void DolphinMainWindow::setViewMode(QAction* action) { - m_activeViewContainer->view()->setMode(DolphinView::ColumnView); + const DolphinView::Mode mode = action->data().value(); + m_activeViewContainer->view()->setMode(mode); } void DolphinMainWindow::sortByName() @@ -778,11 +789,6 @@ void DolphinMainWindow::toggleSortCategorization() view->setCategorizedSorting(!categorizedSorting); } -void DolphinMainWindow::toggleMimeInfo() -{ - toggleAdditionalInfo("show_mime_info", KFileItemDelegate::FriendlyMimeType); -} - void DolphinMainWindow::toggleSizeInfo() { toggleAdditionalInfo("show_size_info", KFileItemDelegate::Size); @@ -793,6 +799,26 @@ void DolphinMainWindow::toggleDateInfo() toggleAdditionalInfo("show_date_info", KFileItemDelegate::ModificationTime); } +void DolphinMainWindow::togglePermissionsInfo() +{ + toggleAdditionalInfo("show_permissions_info", KFileItemDelegate::Permissions); +} + +void DolphinMainWindow::toggleOwnerInfo() +{ + toggleAdditionalInfo("show_owner_info", KFileItemDelegate::Owner); +} + +void DolphinMainWindow::toggleGroupInfo() +{ + toggleAdditionalInfo("show_group_info", KFileItemDelegate::OwnerAndGroup); +} + +void DolphinMainWindow::toggleMimeInfo() +{ + toggleAdditionalInfo("show_mime_info", KFileItemDelegate::FriendlyMimeType); +} + void DolphinMainWindow::toggleSplitView() { if (m_viewContainer[SecondaryView] == 0) { @@ -891,7 +917,9 @@ void DolphinMainWindow::toggleEditLocation() void DolphinMainWindow::editLocation() { - m_activeViewContainer->urlNavigator()->setUrlEditable(true); + KUrlNavigator* navigator = m_activeViewContainer->urlNavigator(); + navigator->setUrlEditable(true); + navigator->setFocus(); } void DolphinMainWindow::adjustViewProperties() @@ -1045,14 +1073,6 @@ void DolphinMainWindow::init() // assure a proper default size if Dolphin runs the first time resize(700, 500); } -#ifdef HAVE_NEPOMUK - if (!MetaDataWidget::metaDataAvailable()) { - DolphinStatusBar* statusBar = activeViewContainer()->statusBar(); - statusBar->setMessage(i18nc("@info:status", - "Failed to contact Nepomuk service, annotation and tagging are disabled."), - DolphinStatusBar::Error); - } -#endif emit urlChanged(homeUrl); } @@ -1091,30 +1111,30 @@ void DolphinMainWindow::setupActions() connect(menu, SIGNAL(aboutToShow()), this, SLOT(updateNewMenu())); - QAction* newWindow = actionCollection()->addAction("new_window"); + KAction* newWindow = actionCollection()->addAction("new_window"); newWindow->setIcon(KIcon("window-new")); newWindow->setText(i18nc("@action:inmenu File", "New &Window")); newWindow->setShortcut(Qt::CTRL | Qt::Key_N); connect(newWindow, SIGNAL(triggered()), this, SLOT(openNewMainWindow())); - QAction* rename = actionCollection()->addAction("rename"); + KAction* rename = actionCollection()->addAction("rename"); rename->setText(i18nc("@action:inmenu File", "Rename...")); rename->setShortcut(Qt::Key_F2); connect(rename, SIGNAL(triggered()), this, SLOT(rename())); - QAction* moveToTrash = actionCollection()->addAction("move_to_trash"); + KAction* moveToTrash = actionCollection()->addAction("move_to_trash"); moveToTrash->setText(i18nc("@action:inmenu File", "Move to Trash")); - moveToTrash->setIcon(KIcon("edit-trash")); + moveToTrash->setIcon(KIcon("user-trash")); moveToTrash->setShortcut(QKeySequence::Delete); connect(moveToTrash, SIGNAL(triggered()), this, SLOT(moveToTrash())); - QAction* deleteAction = actionCollection()->addAction("delete"); + KAction* deleteAction = actionCollection()->addAction("delete"); deleteAction->setText(i18nc("@action:inmenu File", "Delete")); deleteAction->setShortcut(Qt::SHIFT | Qt::Key_Delete); deleteAction->setIcon(KIcon("edit-delete")); connect(deleteAction, SIGNAL(triggered()), this, SLOT(deleteItems())); - QAction* properties = actionCollection()->addAction("properties"); + KAction* properties = actionCollection()->addAction("properties"); properties->setText(i18nc("@action:inmenu File", "Properties")); properties->setShortcut(Qt::ALT | Qt::Key_Return); connect(properties, SIGNAL(triggered()), this, SLOT(properties())); @@ -1126,16 +1146,21 @@ void DolphinMainWindow::setupActions() SLOT(undo()), actionCollection()); - KStandardAction::cut(this, SLOT(cut()), actionCollection()); + //Need to remove shift+del from cut action, else the shortcut for deletejob + //doesn't work + KAction* cut = KStandardAction::cut(this, SLOT(cut()), actionCollection()); + KShortcut cutShortcut = cut->shortcut(); + cutShortcut.remove(Qt::SHIFT + Qt::Key_Delete, KShortcut::KeepEmpty); + cut->setShortcut(cutShortcut); KStandardAction::copy(this, SLOT(copy()), actionCollection()); KStandardAction::paste(this, SLOT(paste()), actionCollection()); - QAction* selectAll = actionCollection()->addAction("select_all"); + KAction* selectAll = actionCollection()->addAction("select_all"); selectAll->setText(i18nc("@action:inmenu Edit", "Select All")); selectAll->setShortcut(Qt::CTRL + Qt::Key_A); connect(selectAll, SIGNAL(triggered()), this, SLOT(selectAll())); - QAction* invertSelection = actionCollection()->addAction("invert_selection"); + KAction* invertSelection = actionCollection()->addAction("invert_selection"); invertSelection->setText(i18nc("@action:inmenu Edit", "Invert Selection")); invertSelection->setShortcut(Qt::CTRL | Qt::SHIFT | Qt::Key_A); connect(invertSelection, SIGNAL(triggered()), this, SLOT(invertSelection())); @@ -1149,28 +1174,16 @@ void DolphinMainWindow::setupActions() SLOT(zoomOut()), actionCollection()); - KToggleAction* iconsView = actionCollection()->add("icons"); - iconsView->setText(i18nc("@action:inmenu View Mode", "Icons")); - iconsView->setShortcut(Qt::CTRL | Qt::Key_1); - iconsView->setIcon(KIcon("fileview-icon")); - connect(iconsView, SIGNAL(triggered()), this, SLOT(setIconsView())); - - KToggleAction* detailsView = actionCollection()->add("details"); - detailsView->setText(i18nc("@action:inmenu View Mode", "Details")); - detailsView->setShortcut(Qt::CTRL | Qt::Key_2); - detailsView->setIcon(KIcon("fileview-detailed")); - connect(detailsView, SIGNAL(triggered()), this, SLOT(setDetailsView())); - KToggleAction* columnView = actionCollection()->add("columns"); - columnView->setText(i18nc("@action:inmenu View Mode", "Columns")); - columnView->setShortcut(Qt::CTRL | Qt::Key_3); - columnView->setIcon(KIcon("fileview-column")); - connect(columnView, SIGNAL(triggered()), this, SLOT(setColumnView())); + KToggleAction* iconsView = DolphinView::iconsModeAction(actionCollection()); + KToggleAction* detailsView = DolphinView::detailsModeAction(actionCollection()); + KToggleAction* columnView = DolphinView::columnsModeAction(actionCollection()); QActionGroup* viewModeGroup = new QActionGroup(this); viewModeGroup->addAction(iconsView); viewModeGroup->addAction(detailsView); viewModeGroup->addAction(columnView); + connect(viewModeGroup, SIGNAL(triggered(QAction*)), this, SLOT(setViewMode(QAction*))); KToggleAction* sortByName = actionCollection()->add("sort_by_name"); sortByName->setText(i18nc("@action:inmenu Sort By", "Name")); @@ -1239,10 +1252,6 @@ void DolphinMainWindow::setupActions() showInGroups->setText(i18nc("@action:inmenu View", "Show in Groups")); connect(showInGroups, SIGNAL(triggered()), this, SLOT(toggleSortCategorization())); - KToggleAction* showMimeInfo = actionCollection()->add("show_mime_info"); - showMimeInfo->setText(i18nc("@action:inmenu Additional information", "Type")); - connect(showMimeInfo, SIGNAL(triggered()), this, SLOT(toggleMimeInfo())); - KToggleAction* showSizeInfo = actionCollection()->add("show_size_info"); showSizeInfo->setText(i18nc("@action:inmenu Additional information", "Size")); connect(showSizeInfo, SIGNAL(triggered()), this, SLOT(toggleSizeInfo())); @@ -1251,6 +1260,22 @@ void DolphinMainWindow::setupActions() showDateInfo->setText(i18nc("@action:inmenu Additional information", "Date")); connect(showDateInfo, SIGNAL(triggered()), this, SLOT(toggleDateInfo())); + KToggleAction* showPermissionsInfo = actionCollection()->add("show_permissions_info"); + showPermissionsInfo->setText(i18nc("@action:inmenu Additional information", "Permissions")); + connect(showPermissionsInfo, SIGNAL(triggered()), this, SLOT(togglePermissionsInfo())); + + KToggleAction* showOwnerInfo = actionCollection()->add("show_owner_info"); + showOwnerInfo->setText(i18nc("@action:inmenu Additional information", "Owner")); + connect(showOwnerInfo, SIGNAL(triggered()), this, SLOT(toggleOwnerInfo())); + + KToggleAction* showGroupInfo = actionCollection()->add("show_group_info"); + showGroupInfo->setText(i18nc("@action:inmenu Additional information", "Group")); + connect(showGroupInfo, SIGNAL(triggered()), this, SLOT(toggleGroupInfo())); + + KToggleAction* showMimeInfo = actionCollection()->add("show_mime_info"); + showMimeInfo->setText(i18nc("@action:inmenu Additional information", "Type")); + connect(showMimeInfo, SIGNAL(triggered()), this, SLOT(toggleMimeInfo())); + KToggleAction* showPreview = actionCollection()->add("show_preview"); showPreview->setText(i18nc("@action:intoolbar", "Preview")); showPreview->setIcon(KIcon("fileview-preview")); @@ -1261,18 +1286,18 @@ void DolphinMainWindow::setupActions() showHiddenFiles->setShortcut(Qt::ALT | Qt::Key_Period); connect(showHiddenFiles, SIGNAL(triggered()), this, SLOT(toggleShowHiddenFiles())); - QAction* split = actionCollection()->addAction("split_view"); + KAction* split = actionCollection()->addAction("split_view"); split->setShortcut(Qt::Key_F10); updateSplitAction(); connect(split, SIGNAL(triggered()), this, SLOT(toggleSplitView())); - QAction* reload = actionCollection()->addAction("reload"); + KAction* reload = actionCollection()->addAction("reload"); reload->setText(i18nc("@action:inmenu View", "Reload")); reload->setShortcut(Qt::Key_F5); reload->setIcon(KIcon("view-refresh")); connect(reload, SIGNAL(triggered()), this, SLOT(reloadView())); - QAction* stop = actionCollection()->addAction("stop"); + KAction* stop = actionCollection()->addAction("stop"); stop->setText(i18nc("@action:inmenu View", "Stop")); stop->setIcon(KIcon("process-stop")); connect(stop, SIGNAL(triggered()), this, SLOT(stopLoading())); @@ -1285,12 +1310,12 @@ void DolphinMainWindow::setupActions() showFullLocation->setShortcut(Qt::CTRL | Qt::Key_L); connect(showFullLocation, SIGNAL(triggered()), this, SLOT(toggleEditLocation())); - QAction* editLocation = actionCollection()->addAction("edit_location"); + KAction* editLocation = actionCollection()->addAction("edit_location"); editLocation->setText(i18nc("@action:inmenu Navigation Bar", "Edit Location")); editLocation->setShortcut(Qt::Key_F6); connect(editLocation, SIGNAL(triggered()), this, SLOT(editLocation())); - QAction* adjustViewProps = actionCollection()->addAction("view_properties"); + KAction* adjustViewProps = actionCollection()->addAction("view_properties"); adjustViewProps->setText(i18nc("@action:inmenu View", "Adjust View Properties...")); connect(adjustViewProps, SIGNAL(triggered()), this, SLOT(adjustViewProperties())); @@ -1308,7 +1333,7 @@ void DolphinMainWindow::setupActions() QAction* findFile = actionCollection()->addAction("find_file"); findFile->setText(i18nc("@action:inmenu Tools", "Find File...")); findFile->setShortcut(Qt::CTRL | Qt::Key_F); - findFile->setIcon(KIcon("file-find")); + findFile->setIcon(KIcon("edit-find")); connect(findFile, SIGNAL(triggered()), this, SLOT(findFile())); KToggleAction* showFilterBar = actionCollection()->add("show_filter_bar"); @@ -1316,7 +1341,7 @@ void DolphinMainWindow::setupActions() showFilterBar->setShortcut(Qt::CTRL | Qt::Key_I); connect(showFilterBar, SIGNAL(triggered()), this, SLOT(toggleFilterBarVisibility())); - QAction* compareFiles = actionCollection()->addAction("compare_files"); + KAction* compareFiles = actionCollection()->addAction("compare_files"); compareFiles->setText(i18nc("@action:inmenu Tools", "Compare Files")); compareFiles->setIcon(KIcon("kompare")); compareFiles->setEnabled(false); @@ -1390,22 +1415,23 @@ void DolphinMainWindow::setupDockWidgets() terminalDock->hide(); } - QDockWidget *placesDock = new QDockWidget(i18nc("@title:window", "Places")); + QDockWidget* placesDock = new QDockWidget(i18nc("@title:window", "Places")); placesDock->setObjectName("placesDock"); placesDock->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea); - KFilePlacesView *listView = new KFilePlacesView(placesDock); - placesDock->setWidget(listView); - listView->setModel(DolphinSettings::instance().placesModel()); + KFilePlacesView* placesView = new KFilePlacesView(placesDock); + placesDock->setWidget(placesView); + placesView->setModel(DolphinSettings::instance().placesModel()); + placesView->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); placesDock->toggleViewAction()->setText(i18nc("@title:window", "Places")); placesDock->toggleViewAction()->setShortcut(Qt::Key_F9); actionCollection()->addAction("show_places_panel", placesDock->toggleViewAction()); addDockWidget(Qt::LeftDockWidgetArea, placesDock); - connect(listView, SIGNAL(urlChanged(KUrl)), + connect(placesView, SIGNAL(urlChanged(KUrl)), this, SLOT(changeUrl(KUrl))); connect(this, SIGNAL(urlChanged(KUrl)), - listView, SLOT(setUrl(KUrl))); + placesView, SLOT(setUrl(KUrl))); } void DolphinMainWindow::updateHistory() @@ -1469,21 +1495,7 @@ void DolphinMainWindow::updateViewActions() zoomOutAction->setEnabled(view->isZoomOutPossible()); } - QAction* action = 0; - switch (view->mode()) { - case DolphinView::IconsView: - action = actionCollection()->action("icons"); - break; - case DolphinView::DetailsView: - action = actionCollection()->action("details"); - break; - case DolphinView::ColumnView: - action = actionCollection()->action("columns"); - break; - default: - break; - } - + QAction* action = actionCollection()->action(view->currentViewModeActionName()); if (action != 0) { KToggleAction* toggleAction = static_cast(action); toggleAction->setChecked(true);