┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/dolphincontextmenu.cpp12
-rw-r--r--src/dolphincontextmenu.h2
-rw-r--r--src/dolphinmainwindow.cpp9
-rw-r--r--src/dolphinpart.cpp1
-rw-r--r--src/dolphintabpage.cpp15
-rw-r--r--src/dolphintabpage.h2
-rw-r--r--src/global.cpp3
-rw-r--r--src/kitemviews/kfileitemmodel.cpp13
-rw-r--r--src/kitemviews/kitemlistwidget.cpp4
-rw-r--r--src/kitemviews/private/kbaloorolesprovider.h2
-rw-r--r--src/panels/places/placesitemlistgroupheader.h2
-rw-r--r--src/panels/places/placespanel.h2
-rw-r--r--src/settings/dolphin_generalsettings.kcfg4
-rw-r--r--src/settings/general/behaviorsettingspage.cpp10
-rw-r--r--src/settings/general/behaviorsettingspage.h1
-rw-r--r--src/tests/kfileitemmodeltest.cpp2
-rw-r--r--src/views/dolphinview.cpp13
-rw-r--r--src/views/dolphinview.h5
-rw-r--r--src/views/tooltips/filemetadatatooltip.cpp4
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());
}