diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/dolphincontextmenu.cpp | 12 | ||||
| -rw-r--r-- | src/dolphincontextmenu.h | 2 | ||||
| -rw-r--r-- | src/dolphinmainwindow.cpp | 9 | ||||
| -rw-r--r-- | src/dolphinpart.cpp | 1 | ||||
| -rw-r--r-- | src/dolphintabpage.cpp | 15 | ||||
| -rw-r--r-- | src/dolphintabpage.h | 2 | ||||
| -rw-r--r-- | src/global.cpp | 3 | ||||
| -rw-r--r-- | src/kitemviews/kfileitemmodel.cpp | 13 | ||||
| -rw-r--r-- | src/kitemviews/kitemlistwidget.cpp | 4 | ||||
| -rw-r--r-- | src/kitemviews/private/kbaloorolesprovider.h | 2 | ||||
| -rw-r--r-- | src/panels/places/placesitemlistgroupheader.h | 2 | ||||
| -rw-r--r-- | src/panels/places/placespanel.h | 2 | ||||
| -rw-r--r-- | src/settings/dolphin_generalsettings.kcfg | 4 | ||||
| -rw-r--r-- | src/settings/general/behaviorsettingspage.cpp | 10 | ||||
| -rw-r--r-- | src/settings/general/behaviorsettingspage.h | 1 | ||||
| -rw-r--r-- | src/tests/kfileitemmodeltest.cpp | 2 | ||||
| -rw-r--r-- | src/views/dolphinview.cpp | 13 | ||||
| -rw-r--r-- | src/views/dolphinview.h | 5 | ||||
| -rw-r--r-- | src/views/tooltips/filemetadatatooltip.cpp | 4 |
19 files changed, 75 insertions, 31 deletions
diff --git a/src/dolphincontextmenu.cpp b/src/dolphincontextmenu.cpp index 971ef1e35..ed3f64379 100644 --- a/src/dolphincontextmenu.cpp +++ b/src/dolphincontextmenu.cpp @@ -34,6 +34,7 @@ #include <KIO/EmptyTrashJob> #include <KIO/JobUiDelegate> #include <KIO/Paste> +#include <kio_version.h> #include <KJobWidgets> #include <KMimeTypeTrader> #include <KNewFileMenu> @@ -283,7 +284,7 @@ void DolphinContextMenu::openItemContextMenu() fileItemActions.setItemListProperties(selectedItemsProps); addServiceActions(fileItemActions); - addFileItemPluginActions(); + addFileItemPluginActions(fileItemActions); addVersionControlPluginActions(); @@ -355,7 +356,7 @@ void DolphinContextMenu::openViewportContextMenu() fileItemActions.setItemListProperties(baseUrlProperties); addServiceActions(fileItemActions); - addFileItemPluginActions(); + addFileItemPluginActions(fileItemActions); addVersionControlPluginActions(); @@ -483,8 +484,12 @@ void DolphinContextMenu::addServiceActions(KFileItemActions& fileItemActions) fileItemActions.addServiceActionsTo(this); } -void DolphinContextMenu::addFileItemPluginActions() +void DolphinContextMenu::addFileItemPluginActions(KFileItemActions& fileItemActions) { +#if KIO_VERSION >= QT_VERSION_CHECK(5, 27, 0) + fileItemActions.addPluginActionsTo(this); +#else + Q_UNUSED(fileItemActions); KFileItemListProperties props; if (m_selectedItems.isEmpty()) { props.setItems(KFileItemList() << baseFileItem()); @@ -550,6 +555,7 @@ void DolphinContextMenu::addFileItemPluginActions() addedPlugins << jsonMetadata.pluginId(); } } +#endif } void DolphinContextMenu::addVersionControlPluginActions() diff --git a/src/dolphincontextmenu.h b/src/dolphincontextmenu.h index 419d3f9bd..f67300dc1 100644 --- a/src/dolphincontextmenu.h +++ b/src/dolphincontextmenu.h @@ -126,7 +126,7 @@ private: /** * Adds actions that are provided by a KFileItemActionPlugin. */ - void addFileItemPluginActions(); + void addFileItemPluginActions(KFileItemActions& fileItemActions); /** * Adds actions that are provided by a KVersionControlPlugin. diff --git a/src/dolphinmainwindow.cpp b/src/dolphinmainwindow.cpp index e729ce972..e5103fd42 100644 --- a/src/dolphinmainwindow.cpp +++ b/src/dolphinmainwindow.cpp @@ -50,6 +50,7 @@ #include <KActionMenu> #include <KAuthorized> #include <KConfig> +#include <kconfigwidgets_version.h> #include <kdualaction.h> #include <KJobWidgets> #include <QLineEdit> @@ -868,6 +869,10 @@ void DolphinMainWindow::updateControlMenu() helpMenu->addSeparator(); helpMenu->addAction(ac->action(KStandardAction::name(KStandardAction::ReportBug))); helpMenu->addSeparator(); +#if KCONFIGWIDGETS_VERSION >= QT_VERSION_CHECK(5, 26, 0) + helpMenu->addAction(ac->action(KStandardAction::name(KStandardAction::Donate))); + helpMenu->addSeparator(); +#endif helpMenu->addAction(ac->action(KStandardAction::name(KStandardAction::SwitchApplicationLanguage))); helpMenu->addSeparator(); helpMenu->addAction(ac->action(KStandardAction::name(KStandardAction::AboutApp))); @@ -1125,14 +1130,14 @@ void DolphinMainWindow::setupActions() activateNextTab->setText(i18nc("@action:inmenu", "Activate Next Tab")); activateNextTab->setEnabled(false); connect(activateNextTab, &QAction::triggered, m_tabWidget, &DolphinTabWidget::activateNextTab); - actionCollection()->setDefaultShortcuts(activateNextTab, QApplication::isRightToLeft() ? prevTabKeys : nextTabKeys); + actionCollection()->setDefaultShortcuts(activateNextTab, nextTabKeys); QAction* activatePrevTab = actionCollection()->addAction(QStringLiteral("activate_prev_tab")); activatePrevTab->setIconText(i18nc("@action:inmenu", "Previous Tab")); activatePrevTab->setText(i18nc("@action:inmenu", "Activate Previous Tab")); activatePrevTab->setEnabled(false); connect(activatePrevTab, &QAction::triggered, m_tabWidget, &DolphinTabWidget::activatePrevTab); - actionCollection()->setDefaultShortcuts(activatePrevTab, QApplication::isRightToLeft() ? nextTabKeys : prevTabKeys); + actionCollection()->setDefaultShortcuts(activatePrevTab, prevTabKeys); // for context menu QAction* openInNewTab = actionCollection()->addAction(QStringLiteral("open_in_new_tab")); diff --git a/src/dolphinpart.cpp b/src/dolphinpart.cpp index 332f8e9b9..aa9ab2986 100644 --- a/src/dolphinpart.cpp +++ b/src/dolphinpart.cpp @@ -397,7 +397,6 @@ void DolphinPart::slotOpenContextMenu(const QPoint& pos, KFileItem item(_item); if (item.isNull()) { // viewport context menu - popupFlags |= KParts::BrowserExtension::ShowNavigationItems | KParts::BrowserExtension::ShowUp; item = m_view->rootItem(); if (item.isNull()) item = KFileItem(url()); diff --git a/src/dolphintabpage.cpp b/src/dolphintabpage.cpp index 0382341c8..c674e1eb0 100644 --- a/src/dolphintabpage.cpp +++ b/src/dolphintabpage.cpp @@ -323,6 +323,18 @@ void DolphinTabPage::slotViewUrlRedirection(const QUrl& oldUrl, const QUrl& newU emit activeViewUrlChanged(newUrl); } +void DolphinTabPage::switchActiveView() +{ + if (!m_splitViewEnabled) { + return; + } + if (m_primaryViewActive) { + m_secondaryViewContainer->setActive(true); + } else { + m_primaryViewContainer->setActive(true); + } +} + DolphinViewContainer* DolphinTabPage::createViewContainer(const QUrl& url) const { DolphinViewContainer* container = new DolphinViewContainer(url, m_splitter); @@ -332,5 +344,8 @@ DolphinViewContainer* DolphinTabPage::createViewContainer(const QUrl& url) const connect(view, &DolphinView::activated, this, &DolphinTabPage::slotViewActivated); + connect(view, &DolphinView::toggleActiveViewRequested, + this, &DolphinTabPage::switchActiveView); + return container; } diff --git a/src/dolphintabpage.h b/src/dolphintabpage.h index b46daf350..9d180883a 100644 --- a/src/dolphintabpage.h +++ b/src/dolphintabpage.h @@ -149,6 +149,8 @@ private slots: */ void slotViewUrlRedirection(const QUrl& oldUrl, const QUrl& newUrl); + void switchActiveView(); + private: /** * Creates a new view container and does the default initialization. diff --git a/src/global.cpp b/src/global.cpp index d87a29c7a..3d6d7dd5e 100644 --- a/src/global.cpp +++ b/src/global.cpp @@ -24,9 +24,10 @@ QList<QUrl> Dolphin::validateUris(const QStringList& uriList) { + const QString currentDir = QDir::currentPath(); QList<QUrl> urls; foreach (const QString& str, uriList) { - const QUrl url = QUrl::fromUserInput(str, QString(), QUrl::AssumeLocalFile); + const QUrl url = QUrl::fromUserInput(str, currentDir, QUrl::AssumeLocalFile); if (url.isValid()) { urls.append(url); } else { diff --git a/src/kitemviews/kfileitemmodel.cpp b/src/kitemviews/kfileitemmodel.cpp index 1f94972c2..05f85a633 100644 --- a/src/kitemviews/kfileitemmodel.cpp +++ b/src/kitemviews/kfileitemmodel.cpp @@ -24,6 +24,8 @@ #include "dolphin_generalsettings.h" #include <KLocalizedString> +#include <KUrlMimeData> + #include "dolphindebug.h" #include "private/kfileitemmodelsortalgorithm.h" @@ -265,7 +267,7 @@ QMimeData* KFileItemModel::createMimeData(const KItemSet& indexes) const lastAddedItem = itemData; const KFileItem& item = itemData->item; if (!item.isNull()) { - urls << item.targetUrl(); + urls << item.url(); bool isLocal; mostLocalUrls << item.mostLocalUrl(isLocal); @@ -275,13 +277,7 @@ QMimeData* KFileItemModel::createMimeData(const KItemSet& indexes) const } } - const bool different = canUseMostLocalUrls && mostLocalUrls != urls; - if (different) { - data->setUrls(mostLocalUrls); - } else { - data->setUrls(urls); - } - + KUrlMimeData::setUrls(urls, mostLocalUrls, data); return data; } @@ -2324,4 +2320,3 @@ bool KFileItemModel::isConsistent() const return true; } - diff --git a/src/kitemviews/kitemlistwidget.cpp b/src/kitemviews/kitemlistwidget.cpp index b834e951f..9c31155b3 100644 --- a/src/kitemviews/kitemlistwidget.cpp +++ b/src/kitemviews/kitemlistwidget.cpp @@ -516,10 +516,10 @@ void KItemListWidget::clearHoverCache() void KItemListWidget::drawItemStyleOption(QPainter* painter, QWidget* widget, QStyle::State styleState) { - QStyleOptionViewItemV4 viewItemOption; + QStyleOptionViewItem viewItemOption; viewItemOption.initFrom(widget); viewItemOption.state = styleState; - viewItemOption.viewItemPosition = QStyleOptionViewItemV4::OnlyOne; + viewItemOption.viewItemPosition = QStyleOptionViewItem::OnlyOne; viewItemOption.showDecorationSelected = true; viewItemOption.rect = selectionRect().toRect(); widget->style()->drawPrimitive(QStyle::PE_PanelItemViewItem, &viewItemOption, painter, widget); diff --git a/src/kitemviews/private/kbaloorolesprovider.h b/src/kitemviews/private/kbaloorolesprovider.h index 9673bff4f..a9bd2e8ef 100644 --- a/src/kitemviews/private/kbaloorolesprovider.h +++ b/src/kitemviews/private/kbaloorolesprovider.h @@ -82,7 +82,7 @@ private: QSet<QByteArray> m_roles; QHash<QString, QByteArray> m_roleForProperty; - friend class KBalooRolesProviderSingleton; + friend struct KBalooRolesProviderSingleton; }; #endif diff --git a/src/panels/places/placesitemlistgroupheader.h b/src/panels/places/placesitemlistgroupheader.h index 7daaba602..ec845e0ae 100644 --- a/src/panels/places/placesitemlistgroupheader.h +++ b/src/panels/places/placesitemlistgroupheader.h @@ -33,7 +33,7 @@ public: protected: virtual void paintSeparator(QPainter* painter, const QColor& color) Q_DECL_OVERRIDE; - virtual QPalette::ColorRole normalTextColorRole() const; + virtual QPalette::ColorRole normalTextColorRole() const Q_DECL_OVERRIDE; }; #endif diff --git a/src/panels/places/placespanel.h b/src/panels/places/placespanel.h index 81aeedb28..0c8b5f7f2 100644 --- a/src/panels/places/placespanel.h +++ b/src/panels/places/placespanel.h @@ -52,7 +52,7 @@ protected: virtual void showEvent(QShowEvent* event) Q_DECL_OVERRIDE; public slots: - virtual void readSettings(); + virtual void readSettings() Q_DECL_OVERRIDE; private slots: void slotItemActivated(int index); diff --git a/src/settings/dolphin_generalsettings.kcfg b/src/settings/dolphin_generalsettings.kcfg index 12f158541..c724afcd1 100644 --- a/src/settings/dolphin_generalsettings.kcfg +++ b/src/settings/dolphin_generalsettings.kcfg @@ -62,6 +62,10 @@ <label>Show selection toggle</label> <default>true</default> </entry> + <entry name="UseTabForSwitchingSplitView" type="Bool"> + <label>Use tab for switching between right and left split</label> + <default>false</default> + </entry> <entry name="ShowToolTips" type="Bool"> <label>Show tooltips</label> <default>false</default> diff --git a/src/settings/general/behaviorsettingspage.cpp b/src/settings/general/behaviorsettingspage.cpp index 86a4ad3bb..6d1e8bb10 100644 --- a/src/settings/general/behaviorsettingspage.cpp +++ b/src/settings/general/behaviorsettingspage.cpp @@ -41,7 +41,8 @@ BehaviorSettingsPage::BehaviorSettingsPage(const QUrl& url, QWidget* parent) : m_naturalSorting(0), m_caseSensitiveSorting(0), m_caseInsensitiveSorting(0), - m_renameInline(0) + m_renameInline(0), + m_useTabForSplitViewSwitch(0) { QVBoxLayout* topLayout = new QVBoxLayout(this); @@ -78,11 +79,15 @@ BehaviorSettingsPage::BehaviorSettingsPage(const QUrl& url, QWidget* parent) : // 'Inline renaming of items' m_renameInline = new QCheckBox(i18nc("option:check", "Rename inline"), this); + // 'Use tab for switching between right and left split' + m_useTabForSplitViewSwitch = new QCheckBox(i18nc("option:check", "Use tab for switching between right and left split view"), this); + topLayout->addWidget(viewPropsBox); topLayout->addWidget(sortingPropsBox); topLayout->addWidget(m_showToolTips); topLayout->addWidget(m_showSelectionToggle); topLayout->addWidget(m_renameInline); + topLayout->addWidget(m_useTabForSplitViewSwitch); topLayout->addStretch(); loadSettings(); @@ -95,6 +100,7 @@ BehaviorSettingsPage::BehaviorSettingsPage(const QUrl& url, QWidget* parent) : connect(m_caseInsensitiveSorting, &QRadioButton::toggled, this, &BehaviorSettingsPage::changed); connect(m_caseSensitiveSorting, &QRadioButton::toggled, this, &BehaviorSettingsPage::changed); connect(m_renameInline, &QCheckBox::toggled, this, &BehaviorSettingsPage::changed); + connect(m_useTabForSplitViewSwitch, &QCheckBox::toggled, this, &BehaviorSettingsPage::changed); } BehaviorSettingsPage::~BehaviorSettingsPage() @@ -112,6 +118,7 @@ void BehaviorSettingsPage::applySettings() settings->setShowSelectionToggle(m_showSelectionToggle->isChecked()); setSortingChoiceValue(settings); settings->setRenameInline(m_renameInline->isChecked()); + settings->setUseTabForSwitchingSplitView(m_useTabForSplitViewSwitch->isChecked()); settings->save(); if (useGlobalViewProps) { @@ -141,6 +148,7 @@ void BehaviorSettingsPage::loadSettings() m_showToolTips->setChecked(GeneralSettings::showToolTips()); m_showSelectionToggle->setChecked(GeneralSettings::showSelectionToggle()); m_renameInline->setChecked(GeneralSettings::renameInline()); + m_useTabForSplitViewSwitch->setChecked(GeneralSettings::useTabForSwitchingSplitView()); loadSortingChoiceSettings(); } diff --git a/src/settings/general/behaviorsettingspage.h b/src/settings/general/behaviorsettingspage.h index 6213734f1..96eaf3d64 100644 --- a/src/settings/general/behaviorsettingspage.h +++ b/src/settings/general/behaviorsettingspage.h @@ -65,6 +65,7 @@ private: QRadioButton* m_caseInsensitiveSorting; QCheckBox* m_renameInline; + QCheckBox* m_useTabForSplitViewSwitch; }; #endif diff --git a/src/tests/kfileitemmodeltest.cpp b/src/tests/kfileitemmodeltest.cpp index eba32e1e1..6c45e114b 100644 --- a/src/tests/kfileitemmodeltest.cpp +++ b/src/tests/kfileitemmodeltest.cpp @@ -1674,7 +1674,7 @@ void KFileItemModelTest::testCollapseFolderWhileLoading() const KFileItem fileItemC1 = m_model->fileItem(2); KFileItem fileItemC2 = fileItemC1; QUrl urlC2 = fileItemC2.url(); - urlC2.adjusted(QUrl::RemoveFilename); + urlC2 = urlC2.adjusted(QUrl::RemoveFilename); urlC2.setPath(urlC2.path() + "c2.txt"); fileItemC2.setUrl(urlC2); diff --git a/src/views/dolphinview.cpp b/src/views/dolphinview.cpp index 5466fd38e..4105628ee 100644 --- a/src/views/dolphinview.cpp +++ b/src/views/dolphinview.cpp @@ -75,10 +75,6 @@ #endif #include <KFormat> -namespace { - const int MaxModeEnum = DolphinView::CompactView; -} - DolphinView::DolphinView(const QUrl& url, QWidget* parent) : QWidget(parent), m_active(true), @@ -728,6 +724,15 @@ void DolphinView::stopLoading() bool DolphinView::eventFilter(QObject* watched, QEvent* event) { switch (event->type()) { + case QEvent::KeyPress: + if (GeneralSettings::useTabForSwitchingSplitView()) { + QKeyEvent* keyEvent = static_cast<QKeyEvent*>(event); + if (keyEvent->key() == Qt::Key_Tab && keyEvent->modifiers() == Qt::NoModifier) { + toggleActiveViewRequested(); + return true; + } + } + break; case QEvent::FocusIn: if (watched == m_container) { setActive(true); diff --git a/src/views/dolphinview.h b/src/views/dolphinview.h index d1a5d5005..0b0d8196d 100644 --- a/src/views/dolphinview.h +++ b/src/views/dolphinview.h @@ -546,6 +546,11 @@ signals: */ void goForwardRequested(); + /** + * Is emitted when the user wants to move the focus to another view. + */ + void toggleActiveViewRequested(); + protected: /** Changes the zoom level if Control is pressed during a wheel event. */ virtual void wheelEvent(QWheelEvent* event) Q_DECL_OVERRIDE; diff --git a/src/views/tooltips/filemetadatatooltip.cpp b/src/views/tooltips/filemetadatatooltip.cpp index 8fbca290d..0d58717d4 100644 --- a/src/views/tooltips/filemetadatatooltip.cpp +++ b/src/views/tooltips/filemetadatatooltip.cpp @@ -48,7 +48,7 @@ FileMetaDataToolTip::FileMetaDataToolTip(QWidget* parent) : m_fileMetaDataWidget(0) { setAttribute(Qt::WA_TranslucentBackground); - setWindowFlags(Qt::ToolTip | Qt::FramelessWindowHint); + setWindowFlags(Qt::ToolTip | Qt::FramelessWindowHint | Qt::NoDropShadowWindowHint); // Create widget for file preview m_preview = new QLabel(this); @@ -174,8 +174,6 @@ void FileMetaDataToolTip::paintEvent(QPaintEvent* event) void FileMetaDataToolTip::showEvent(QShowEvent *) { -#pragma message("TODO: port Plasma::WindowEffects::overrideShadow") - //Plasma::WindowEffects::overrideShadow(winId(), true); KWindowEffects::enableBlurBehind(winId(), true, mask()); } |
