mirror of
https://invent.kde.org/system/dolphin
synced 2024-10-28 03:21:56 +00:00
Improve naming consistency and leave mode on Escape
This commit is contained in:
parent
78cffd2979
commit
2e588733c7
|
@ -167,7 +167,7 @@ DolphinMainWindow::DolphinMainWindow() :
|
||||||
m_actionHandler = new DolphinViewActionHandler(actionCollection(), m_actionTextHelper, this);
|
m_actionHandler = new DolphinViewActionHandler(actionCollection(), m_actionTextHelper, this);
|
||||||
connect(m_actionHandler, &DolphinViewActionHandler::actionBeingHandled, this, &DolphinMainWindow::clearStatusBar);
|
connect(m_actionHandler, &DolphinViewActionHandler::actionBeingHandled, this, &DolphinMainWindow::clearStatusBar);
|
||||||
connect(m_actionHandler, &DolphinViewActionHandler::createDirectoryTriggered, this, &DolphinMainWindow::createDirectory);
|
connect(m_actionHandler, &DolphinViewActionHandler::createDirectoryTriggered, this, &DolphinMainWindow::createDirectory);
|
||||||
connect(m_actionHandler, &DolphinViewActionHandler::setSelectionMode, this, &DolphinMainWindow::slotSetSelectionMode);
|
connect(m_actionHandler, &DolphinViewActionHandler::selectionModeChangeTriggered, this, &DolphinMainWindow::slotSetSelectionMode);
|
||||||
|
|
||||||
m_remoteEncoding = new DolphinRemoteEncoding(this, m_actionHandler);
|
m_remoteEncoding = new DolphinRemoteEncoding(this, m_actionHandler);
|
||||||
connect(this, &DolphinMainWindow::urlChanged,
|
connect(this, &DolphinMainWindow::urlChanged,
|
||||||
|
|
|
@ -376,7 +376,7 @@ void DolphinViewContainer::disconnectUrlNavigator()
|
||||||
void DolphinViewContainer::setSelectionModeEnabled(bool enabled, KActionCollection *actionCollection, SelectionMode::BottomBar::Contents bottomBarContents)
|
void DolphinViewContainer::setSelectionModeEnabled(bool enabled, KActionCollection *actionCollection, SelectionMode::BottomBar::Contents bottomBarContents)
|
||||||
{
|
{
|
||||||
const bool wasEnabled = m_view->selectionMode();
|
const bool wasEnabled = m_view->selectionMode();
|
||||||
m_view->setSelectionMode(enabled);
|
m_view->setSelectionModeEnabled(enabled);
|
||||||
|
|
||||||
if (!enabled) {
|
if (!enabled) {
|
||||||
Q_CHECK_PTR(m_selectionModeTopBar); // there is no point in disabling selectionMode when it wasn't even enabled once.
|
Q_CHECK_PTR(m_selectionModeTopBar); // there is no point in disabling selectionMode when it wasn't even enabled once.
|
||||||
|
@ -396,7 +396,7 @@ void DolphinViewContainer::setSelectionModeEnabled(bool enabled, KActionCollecti
|
||||||
});
|
});
|
||||||
|
|
||||||
m_selectionModeTopBar = new SelectionMode::TopBar(this); // will be created hidden
|
m_selectionModeTopBar = new SelectionMode::TopBar(this); // will be created hidden
|
||||||
connect(m_selectionModeTopBar, &SelectionMode::TopBar::leaveSelectionModeRequested, this, [this]() {
|
connect(m_selectionModeTopBar, &SelectionMode::TopBar::selectionModeLeavingRequested, this, [this]() {
|
||||||
setSelectionModeEnabled(false);
|
setSelectionModeEnabled(false);
|
||||||
});
|
});
|
||||||
m_topLayout->addWidget(m_selectionModeTopBar, positionFor.selectionModeTopBar, 0);
|
m_topLayout->addWidget(m_selectionModeTopBar, positionFor.selectionModeTopBar, 0);
|
||||||
|
@ -410,7 +410,7 @@ void DolphinViewContainer::setSelectionModeEnabled(bool enabled, KActionCollecti
|
||||||
connect(m_selectionModeBottomBar, &SelectionMode::BottomBar::error, this, [this](const QString &errorMessage) {
|
connect(m_selectionModeBottomBar, &SelectionMode::BottomBar::error, this, [this](const QString &errorMessage) {
|
||||||
showErrorMessage(errorMessage);
|
showErrorMessage(errorMessage);
|
||||||
});
|
});
|
||||||
connect(m_selectionModeBottomBar, &SelectionMode::BottomBar::leaveSelectionModeRequested, this, [this]() {
|
connect(m_selectionModeBottomBar, &SelectionMode::BottomBar::selectionModeLeavingRequested, this, [this]() {
|
||||||
setSelectionModeEnabled(false);
|
setSelectionModeEnabled(false);
|
||||||
});
|
});
|
||||||
m_topLayout->addWidget(m_selectionModeBottomBar, positionFor.selectionModeBottomBar, 0);
|
m_topLayout->addWidget(m_selectionModeBottomBar, positionFor.selectionModeBottomBar, 0);
|
||||||
|
|
|
@ -137,7 +137,20 @@ public:
|
||||||
*/
|
*/
|
||||||
void disconnectUrlNavigator();
|
void disconnectUrlNavigator();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets a selection mode that is useful for quick and easy selecting or deselecting of files.
|
||||||
|
* This method is the central authority about enabling or disabling selection mode:
|
||||||
|
* All other classes that want to enable or disable selection mode should trigger a call of this method.
|
||||||
|
*
|
||||||
|
* This method sets the selection mode for the view of this viewContainer and sets the visibility of the
|
||||||
|
* selection mode top and bottom bar which also belong to this viewContainer.
|
||||||
|
*
|
||||||
|
* @param enabled Whether to enable or disable selection mode.
|
||||||
|
* @param actionCollection The collection of actions from which the actions on the bottom bar are retrieved.
|
||||||
|
* @param bottomBarContents The contents the bar is supposed to show after this call.
|
||||||
|
*/
|
||||||
void setSelectionModeEnabled(bool enabled, KActionCollection *actionCollection = nullptr, SelectionMode::BottomBar::Contents bottomBarContents = SelectionMode::BottomBar::Contents::GeneralContents);
|
void setSelectionModeEnabled(bool enabled, KActionCollection *actionCollection = nullptr, SelectionMode::BottomBar::Contents bottomBarContents = SelectionMode::BottomBar::Contents::GeneralContents);
|
||||||
|
/** @see setSelectionModeEnabled() */
|
||||||
bool isSelectionModeEnabled() const;
|
bool isSelectionModeEnabled() const;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -77,7 +77,7 @@ KItemListController::KItemListController(KItemModelBase* model, KItemListView* v
|
||||||
m_longPressDetectionTimer->setInterval(QGuiApplication::styleHints()->mousePressAndHoldInterval());
|
m_longPressDetectionTimer->setInterval(QGuiApplication::styleHints()->mousePressAndHoldInterval());
|
||||||
connect(m_longPressDetectionTimer, &QTimer::timeout, this, [this]() {
|
connect(m_longPressDetectionTimer, &QTimer::timeout, this, [this]() {
|
||||||
if (!m_selectionMode) {
|
if (!m_selectionMode) {
|
||||||
Q_EMIT selectionModeRequested();
|
Q_EMIT selectionModeChangeRequested(true);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -232,7 +232,7 @@ bool KItemListController::singleClickActivationEnforced() const
|
||||||
return m_singleClickActivationEnforced;
|
return m_singleClickActivationEnforced;
|
||||||
}
|
}
|
||||||
|
|
||||||
void KItemListController::setSelectionMode(bool enabled)
|
void KItemListController::setSelectionModeEnabled(bool enabled)
|
||||||
{
|
{
|
||||||
m_selectionMode = enabled;
|
m_selectionMode = enabled;
|
||||||
}
|
}
|
||||||
|
@ -430,6 +430,9 @@ bool KItemListController::keyPressEvent(QKeyEvent* event)
|
||||||
}
|
}
|
||||||
|
|
||||||
case Qt::Key_Escape:
|
case Qt::Key_Escape:
|
||||||
|
if (m_selectionMode && m_selectionManager->selectedItems().count() < 1) {
|
||||||
|
Q_EMIT selectionModeChangeRequested(false);
|
||||||
|
}
|
||||||
if (m_selectionBehavior != SingleSelection) {
|
if (m_selectionBehavior != SingleSelection) {
|
||||||
m_selectionManager->clearSelection();
|
m_selectionManager->clearSelection();
|
||||||
}
|
}
|
||||||
|
|
|
@ -126,7 +126,11 @@ public:
|
||||||
void setSingleClickActivationEnforced(bool singleClick);
|
void setSingleClickActivationEnforced(bool singleClick);
|
||||||
bool singleClickActivationEnforced() const;
|
bool singleClickActivationEnforced() const;
|
||||||
|
|
||||||
void setSelectionMode(bool enabled);
|
/**
|
||||||
|
* Setting the selection mode to enabled will make selecting and deselecting easier by acting
|
||||||
|
* kind of similar to when the Control Key is held down.
|
||||||
|
*/
|
||||||
|
void setSelectionModeEnabled(bool enabled);
|
||||||
bool selectionMode() const;
|
bool selectionMode() const;
|
||||||
|
|
||||||
bool processEvent(QEvent* event, const QTransform& transform);
|
bool processEvent(QEvent* event, const QTransform& transform);
|
||||||
|
@ -213,12 +217,15 @@ Q_SIGNALS:
|
||||||
void escapePressed();
|
void escapePressed();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Is emitted if left click is pressed down for a long time without moving the cursor too much.
|
* Used to request either entering or leaving of selection mode
|
||||||
|
* Leaving is requested by pressing Escape when no item is selected.
|
||||||
|
*
|
||||||
|
* Entering is requested if left click is pressed down for a long time without moving the cursor too much.
|
||||||
* Moving the cursor would either trigger an item drag if the click was initiated on top of an item
|
* Moving the cursor would either trigger an item drag if the click was initiated on top of an item
|
||||||
* or a selection rectangle if the click was not initiated on top of an item.
|
* or a selection rectangle if the click was not initiated on top of an item.
|
||||||
* So long press is only emitted if there wasn't a lot of cursor movement.
|
* So long press is only emitted if there wasn't a lot of cursor movement.
|
||||||
*/
|
*/
|
||||||
void selectionModeRequested();
|
void selectionModeChangeRequested(bool enabled);
|
||||||
|
|
||||||
void modelChanged(KItemModelBase* current, KItemModelBase* previous);
|
void modelChanged(KItemModelBase* current, KItemModelBase* previous);
|
||||||
void viewChanged(KItemListView* current, KItemListView* previous);
|
void viewChanged(KItemListView* current, KItemListView* previous);
|
||||||
|
|
|
@ -52,7 +52,7 @@ BottomBar::BottomBar(KActionCollection *actionCollection, QWidget *parent) :
|
||||||
}
|
}
|
||||||
setVisibleInternal(visible, WithAnimation);
|
setVisibleInternal(visible, WithAnimation);
|
||||||
});
|
});
|
||||||
connect(m_contentsContainer, &BottomBarContentsContainer::leaveSelectionModeRequested, this, &BottomBar::leaveSelectionModeRequested);
|
connect(m_contentsContainer, &BottomBarContentsContainer::selectionModeLeavingRequested, this, &BottomBar::selectionModeLeavingRequested);
|
||||||
|
|
||||||
BackgroundColorHelper::instance()->controlBackgroundColor(this);
|
BackgroundColorHelper::instance()->controlBackgroundColor(this);
|
||||||
}
|
}
|
||||||
|
@ -114,7 +114,7 @@ void BottomBar::slotSplitTabDisabled()
|
||||||
switch (contents()) {
|
switch (contents()) {
|
||||||
case CopyToOtherViewContents:
|
case CopyToOtherViewContents:
|
||||||
case MoveToOtherViewContents:
|
case MoveToOtherViewContents:
|
||||||
Q_EMIT leaveSelectionModeRequested();
|
Q_EMIT selectionModeLeavingRequested();
|
||||||
default:
|
default:
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
@ -100,7 +100,7 @@ Q_SIGNALS:
|
||||||
*/
|
*/
|
||||||
void error(const QString &errorMessage);
|
void error(const QString &errorMessage);
|
||||||
|
|
||||||
void leaveSelectionModeRequested();
|
void selectionModeLeavingRequested();
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
/** Is installed on an internal widget to make sure that the height of the bar is adjusted to its contents. */
|
/** Is installed on an internal widget to make sure that the height of the bar is adjusted to its contents. */
|
||||||
|
|
|
@ -158,7 +158,7 @@ void BottomBarContentsContainer::addCopyContents()
|
||||||
|
|
||||||
// i18n: Aborts the current step-by-step process to copy files by leaving the selection mode.
|
// i18n: Aborts the current step-by-step process to copy files by leaving the selection mode.
|
||||||
auto *cancelButton = new QPushButton(i18nc("@action:button", "Abort Copying"), this);
|
auto *cancelButton = new QPushButton(i18nc("@action:button", "Abort Copying"), this);
|
||||||
connect(cancelButton, &QAbstractButton::clicked, this, &BottomBarContentsContainer::leaveSelectionModeRequested);
|
connect(cancelButton, &QAbstractButton::clicked, this, &BottomBarContentsContainer::selectionModeLeavingRequested);
|
||||||
m_layout->addWidget(cancelButton);
|
m_layout->addWidget(cancelButton);
|
||||||
|
|
||||||
auto *copyButton = new QPushButton(this);
|
auto *copyButton = new QPushButton(this);
|
||||||
|
@ -176,7 +176,7 @@ void BottomBarContentsContainer::addCopyContents()
|
||||||
resetContents(BottomBar::Contents::PasteContents); // resetContents() needs to be connected last because
|
resetContents(BottomBar::Contents::PasteContents); // resetContents() needs to be connected last because
|
||||||
// it instantly deletes the button and then the other slots won't be called.
|
// it instantly deletes the button and then the other slots won't be called.
|
||||||
}
|
}
|
||||||
Q_EMIT leaveSelectionModeRequested();
|
Q_EMIT selectionModeLeavingRequested();
|
||||||
});
|
});
|
||||||
updateMainActionButton(KFileItemList());
|
updateMainActionButton(KFileItemList());
|
||||||
m_layout->addWidget(copyButton);
|
m_layout->addWidget(copyButton);
|
||||||
|
@ -191,7 +191,7 @@ void BottomBarContentsContainer::addCopyLocationContents()
|
||||||
|
|
||||||
// i18n: Aborts the current step-by-step process to copy the location of files by leaving the selection mode.
|
// i18n: Aborts the current step-by-step process to copy the location of files by leaving the selection mode.
|
||||||
auto *cancelButton = new QPushButton(i18nc("@action:button", "Abort Copying"), this);
|
auto *cancelButton = new QPushButton(i18nc("@action:button", "Abort Copying"), this);
|
||||||
connect(cancelButton, &QAbstractButton::clicked, this, &BottomBarContentsContainer::leaveSelectionModeRequested);
|
connect(cancelButton, &QAbstractButton::clicked, this, &BottomBarContentsContainer::selectionModeLeavingRequested);
|
||||||
m_layout->addWidget(cancelButton);
|
m_layout->addWidget(cancelButton);
|
||||||
|
|
||||||
auto *copyLocationButton = new QPushButton(this);
|
auto *copyLocationButton = new QPushButton(this);
|
||||||
|
@ -210,7 +210,7 @@ void BottomBarContentsContainer::addCopyToOtherViewContents()
|
||||||
|
|
||||||
// i18n: Aborts the current step-by-step process to copy the location of files by leaving the selection mode.
|
// i18n: Aborts the current step-by-step process to copy the location of files by leaving the selection mode.
|
||||||
auto *cancelButton = new QPushButton(i18nc("@action:button", "Abort Copying"), this);
|
auto *cancelButton = new QPushButton(i18nc("@action:button", "Abort Copying"), this);
|
||||||
connect(cancelButton, &QAbstractButton::clicked, this, &BottomBarContentsContainer::leaveSelectionModeRequested);
|
connect(cancelButton, &QAbstractButton::clicked, this, &BottomBarContentsContainer::selectionModeLeavingRequested);
|
||||||
m_layout->addWidget(cancelButton);
|
m_layout->addWidget(cancelButton);
|
||||||
|
|
||||||
auto *copyToOtherViewButton = new QPushButton(this);
|
auto *copyToOtherViewButton = new QPushButton(this);
|
||||||
|
@ -228,7 +228,7 @@ void BottomBarContentsContainer::addCutContents()
|
||||||
|
|
||||||
// i18n: Aborts the current step-by-step process to cut files by leaving the selection mode.
|
// i18n: Aborts the current step-by-step process to cut files by leaving the selection mode.
|
||||||
auto *cancelButton = new QPushButton(i18nc("@action:button", "Abort Cutting"), this);
|
auto *cancelButton = new QPushButton(i18nc("@action:button", "Abort Cutting"), this);
|
||||||
connect(cancelButton, &QAbstractButton::clicked, this, &BottomBarContentsContainer::leaveSelectionModeRequested);
|
connect(cancelButton, &QAbstractButton::clicked, this, &BottomBarContentsContainer::selectionModeLeavingRequested);
|
||||||
m_layout->addWidget(cancelButton);
|
m_layout->addWidget(cancelButton);
|
||||||
|
|
||||||
auto *cutButton = new QPushButton(this);
|
auto *cutButton = new QPushButton(this);
|
||||||
|
@ -246,7 +246,7 @@ void BottomBarContentsContainer::addCutContents()
|
||||||
resetContents(BottomBar::Contents::PasteContents); // resetContents() needs to be connected last because
|
resetContents(BottomBar::Contents::PasteContents); // resetContents() needs to be connected last because
|
||||||
// it instantly deletes the button and then the other slots won't be called.
|
// it instantly deletes the button and then the other slots won't be called.
|
||||||
}
|
}
|
||||||
Q_EMIT leaveSelectionModeRequested();
|
Q_EMIT selectionModeLeavingRequested();
|
||||||
});
|
});
|
||||||
updateMainActionButton(KFileItemList());
|
updateMainActionButton(KFileItemList());
|
||||||
m_layout->addWidget(cutButton);
|
m_layout->addWidget(cutButton);
|
||||||
|
@ -261,7 +261,7 @@ void BottomBarContentsContainer::addDeleteContents()
|
||||||
|
|
||||||
// i18n: Aborts the current step-by-step process to delete files by leaving the selection mode.
|
// i18n: Aborts the current step-by-step process to delete files by leaving the selection mode.
|
||||||
auto *cancelButton = new QPushButton(i18nc("@action:button", "Abort"), this);
|
auto *cancelButton = new QPushButton(i18nc("@action:button", "Abort"), this);
|
||||||
connect(cancelButton, &QAbstractButton::clicked, this, &BottomBarContentsContainer::leaveSelectionModeRequested);
|
connect(cancelButton, &QAbstractButton::clicked, this, &BottomBarContentsContainer::selectionModeLeavingRequested);
|
||||||
m_layout->addWidget(cancelButton);
|
m_layout->addWidget(cancelButton);
|
||||||
|
|
||||||
auto *deleteButton = new QPushButton(this);
|
auto *deleteButton = new QPushButton(this);
|
||||||
|
@ -279,7 +279,7 @@ void BottomBarContentsContainer::addDuplicateContents()
|
||||||
|
|
||||||
// i18n: Aborts the current step-by-step process to duplicate files by leaving the selection mode.
|
// i18n: Aborts the current step-by-step process to duplicate files by leaving the selection mode.
|
||||||
auto *cancelButton = new QPushButton(i18nc("@action:button", "Abort Duplicating"), this);
|
auto *cancelButton = new QPushButton(i18nc("@action:button", "Abort Duplicating"), this);
|
||||||
connect(cancelButton, &QAbstractButton::clicked, this, &BottomBarContentsContainer::leaveSelectionModeRequested);
|
connect(cancelButton, &QAbstractButton::clicked, this, &BottomBarContentsContainer::selectionModeLeavingRequested);
|
||||||
m_layout->addWidget(cancelButton);
|
m_layout->addWidget(cancelButton);
|
||||||
|
|
||||||
auto *duplicateButton = new QPushButton(this);
|
auto *duplicateButton = new QPushButton(this);
|
||||||
|
@ -349,7 +349,7 @@ void BottomBarContentsContainer::addMoveToOtherViewContents()
|
||||||
|
|
||||||
// i18n: Aborts the current step-by-step process to copy the location of files by leaving the selection mode.
|
// i18n: Aborts the current step-by-step process to copy the location of files by leaving the selection mode.
|
||||||
auto *cancelButton = new QPushButton(i18nc("@action:button", "Abort Moving"), this);
|
auto *cancelButton = new QPushButton(i18nc("@action:button", "Abort Moving"), this);
|
||||||
connect(cancelButton, &QAbstractButton::clicked, this, &BottomBarContentsContainer::leaveSelectionModeRequested);
|
connect(cancelButton, &QAbstractButton::clicked, this, &BottomBarContentsContainer::selectionModeLeavingRequested);
|
||||||
m_layout->addWidget(cancelButton);
|
m_layout->addWidget(cancelButton);
|
||||||
|
|
||||||
auto *moveToOtherViewButton = new QPushButton(this);
|
auto *moveToOtherViewButton = new QPushButton(this);
|
||||||
|
@ -367,7 +367,7 @@ void BottomBarContentsContainer::addMoveToTrashContents()
|
||||||
|
|
||||||
// i18n: Aborts the current step-by-step process of moving files to the trash by leaving the selection mode.
|
// i18n: Aborts the current step-by-step process of moving files to the trash by leaving the selection mode.
|
||||||
auto *cancelButton = new QPushButton(i18nc("@action:button", "Abort"), this);
|
auto *cancelButton = new QPushButton(i18nc("@action:button", "Abort"), this);
|
||||||
connect(cancelButton, &QAbstractButton::clicked, this, &BottomBarContentsContainer::leaveSelectionModeRequested);
|
connect(cancelButton, &QAbstractButton::clicked, this, &BottomBarContentsContainer::selectionModeLeavingRequested);
|
||||||
m_layout->addWidget(cancelButton);
|
m_layout->addWidget(cancelButton);
|
||||||
|
|
||||||
auto *moveToTrashButton = new QPushButton(this);
|
auto *moveToTrashButton = new QPushButton(this);
|
||||||
|
@ -393,7 +393,7 @@ void BottomBarContentsContainer::addPasteContents()
|
||||||
* So we first have to claim that we have different contents before requesting to leave selection mode. */
|
* So we first have to claim that we have different contents before requesting to leave selection mode. */
|
||||||
auto actuallyLeaveSelectionMode = [this]() {
|
auto actuallyLeaveSelectionMode = [this]() {
|
||||||
m_contents = BottomBar::Contents::CopyLocationContents;
|
m_contents = BottomBar::Contents::CopyLocationContents;
|
||||||
Q_EMIT leaveSelectionModeRequested();
|
Q_EMIT selectionModeLeavingRequested();
|
||||||
};
|
};
|
||||||
|
|
||||||
auto *pasteButton = new QPushButton(this);
|
auto *pasteButton = new QPushButton(this);
|
||||||
|
@ -428,7 +428,7 @@ void BottomBarContentsContainer::addRenameContents()
|
||||||
|
|
||||||
// i18n: Aborts the current step-by-step process to delete files by leaving the selection mode.
|
// i18n: Aborts the current step-by-step process to delete files by leaving the selection mode.
|
||||||
auto *cancelButton = new QPushButton(i18nc("@action:button", "Stop Renaming"), this);
|
auto *cancelButton = new QPushButton(i18nc("@action:button", "Stop Renaming"), this);
|
||||||
connect(cancelButton, &QAbstractButton::clicked, this, &BottomBarContentsContainer::leaveSelectionModeRequested);
|
connect(cancelButton, &QAbstractButton::clicked, this, &BottomBarContentsContainer::selectionModeLeavingRequested);
|
||||||
m_layout->addWidget(cancelButton);
|
m_layout->addWidget(cancelButton);
|
||||||
|
|
||||||
auto *renameButton = new QPushButton(this);
|
auto *renameButton = new QPushButton(this);
|
||||||
|
|
|
@ -78,7 +78,7 @@ Q_SIGNALS:
|
||||||
*/
|
*/
|
||||||
void barVisibilityChangeRequested(bool visible);
|
void barVisibilityChangeRequested(bool visible);
|
||||||
|
|
||||||
void leaveSelectionModeRequested();
|
void selectionModeLeavingRequested();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void addCopyContents();
|
void addCopyContents();
|
||||||
|
|
0
src/selectionmode/selectionmodebottombar.h
Normal file
0
src/selectionmode/selectionmodebottombar.h
Normal file
0
src/selectionmode/selectionmodetopbar.h
Normal file
0
src/selectionmode/selectionmodetopbar.h
Normal file
|
@ -70,7 +70,7 @@ TopBar::TopBar(QWidget *parent) :
|
||||||
m_closeButton->setAccessibleName(m_closeButton->toolTip());
|
m_closeButton->setAccessibleName(m_closeButton->toolTip());
|
||||||
m_closeButton->setFlat(true);
|
m_closeButton->setFlat(true);
|
||||||
connect(m_closeButton, &QAbstractButton::pressed,
|
connect(m_closeButton, &QAbstractButton::pressed,
|
||||||
this, &TopBar::leaveSelectionModeRequested);
|
this, &TopBar::selectionModeLeavingRequested);
|
||||||
|
|
||||||
QHBoxLayout *layout = new QHBoxLayout(contentsContainer);
|
QHBoxLayout *layout = new QHBoxLayout(contentsContainer);
|
||||||
auto contentsMargins = layout->contentsMargins();
|
auto contentsMargins = layout->contentsMargins();
|
||||||
|
|
|
@ -42,7 +42,7 @@ public:
|
||||||
void setVisible(bool visible, Animated animated);
|
void setVisible(bool visible, Animated animated);
|
||||||
|
|
||||||
Q_SIGNALS:
|
Q_SIGNALS:
|
||||||
void leaveSelectionModeRequested();
|
void selectionModeLeavingRequested();
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
/** Calls updateLabelString() */
|
/** Calls updateLabelString() */
|
||||||
|
|
|
@ -173,7 +173,7 @@ DolphinView::DolphinView(const QUrl& url, QWidget* parent) :
|
||||||
connect(controller, &KItemListController::increaseZoom, this, &DolphinView::slotIncreaseZoom);
|
connect(controller, &KItemListController::increaseZoom, this, &DolphinView::slotIncreaseZoom);
|
||||||
connect(controller, &KItemListController::decreaseZoom, this, &DolphinView::slotDecreaseZoom);
|
connect(controller, &KItemListController::decreaseZoom, this, &DolphinView::slotDecreaseZoom);
|
||||||
connect(controller, &KItemListController::swipeUp, this, &DolphinView::slotSwipeUp);
|
connect(controller, &KItemListController::swipeUp, this, &DolphinView::slotSwipeUp);
|
||||||
connect(controller, &KItemListController::selectionModeRequested, this, &DolphinView::selectionModeRequested);
|
connect(controller, &KItemListController::selectionModeChangeRequested, this, &DolphinView::selectionModeChangeRequested);
|
||||||
|
|
||||||
connect(m_model, &KFileItemModel::directoryLoadingStarted, this, &DolphinView::slotDirectoryLoadingStarted);
|
connect(m_model, &KFileItemModel::directoryLoadingStarted, this, &DolphinView::slotDirectoryLoadingStarted);
|
||||||
connect(m_model, &KFileItemModel::directoryLoadingCompleted, this, &DolphinView::slotDirectoryLoadingCompleted);
|
connect(m_model, &KFileItemModel::directoryLoadingCompleted, this, &DolphinView::slotDirectoryLoadingCompleted);
|
||||||
|
@ -283,7 +283,7 @@ DolphinView::Mode DolphinView::viewMode() const
|
||||||
return m_mode;
|
return m_mode;
|
||||||
}
|
}
|
||||||
|
|
||||||
void DolphinView::setSelectionMode(const bool enabled)
|
void DolphinView::setSelectionModeEnabled(const bool enabled)
|
||||||
{
|
{
|
||||||
if (enabled) {
|
if (enabled) {
|
||||||
m_proxyStyle = std::make_unique<SelectionMode::SingleClickSelectionProxyStyle>();
|
m_proxyStyle = std::make_unique<SelectionMode::SingleClickSelectionProxyStyle>();
|
||||||
|
@ -293,7 +293,7 @@ void DolphinView::setSelectionMode(const bool enabled)
|
||||||
setStyle(QApplication::style());
|
setStyle(QApplication::style());
|
||||||
m_view->setStyle(QApplication::style());
|
m_view->setStyle(QApplication::style());
|
||||||
}
|
}
|
||||||
m_container->controller()->setSelectionMode(enabled);
|
m_container->controller()->setSelectionModeEnabled(enabled);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool DolphinView::selectionMode() const
|
bool DolphinView::selectionMode() const
|
||||||
|
|
|
@ -115,7 +115,7 @@ public:
|
||||||
/**
|
/**
|
||||||
* Enables or disables a mode for quick and easy selection of items.
|
* Enables or disables a mode for quick and easy selection of items.
|
||||||
*/
|
*/
|
||||||
void setSelectionMode(bool enabled);
|
void setSelectionModeEnabled(bool enabled);
|
||||||
bool selectionMode() const;
|
bool selectionMode() const;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -609,11 +609,11 @@ Q_SIGNALS:
|
||||||
void goForwardRequested();
|
void goForwardRequested();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Is emitted when the selection mode is requested for the current view.
|
* Used to request either entering or leaving of selection mode
|
||||||
* This typically happens on press and hold.
|
* Entering is typically requested on press and hold.
|
||||||
* @see KItemListController::longPress()
|
* Leaving by pressing Escape when no item is selected.
|
||||||
*/
|
*/
|
||||||
void selectionModeRequested();
|
void selectionModeChangeRequested(bool enabled);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Is emitted when the user wants to move the focus to another view.
|
* Is emitted when the user wants to move the focus to another view.
|
||||||
|
|
|
@ -73,8 +73,8 @@ void DolphinViewActionHandler::setCurrentView(DolphinView* view)
|
||||||
this, &DolphinViewActionHandler::slotZoomLevelChanged);
|
this, &DolphinViewActionHandler::slotZoomLevelChanged);
|
||||||
connect(view, &DolphinView::writeStateChanged,
|
connect(view, &DolphinView::writeStateChanged,
|
||||||
this, &DolphinViewActionHandler::slotWriteStateChanged);
|
this, &DolphinViewActionHandler::slotWriteStateChanged);
|
||||||
connect(view, &DolphinView::selectionModeRequested,
|
connect(view, &DolphinView::selectionModeChangeRequested,
|
||||||
this, [this]() { Q_EMIT setSelectionMode(true); });
|
this, [this](bool enabled) { Q_EMIT selectionModeChangeTriggered(enabled); });
|
||||||
connect(view, &DolphinView::selectionChanged,
|
connect(view, &DolphinView::selectionChanged,
|
||||||
this, &DolphinViewActionHandler::slotSelectionChanged);
|
this, &DolphinViewActionHandler::slotSelectionChanged);
|
||||||
slotSelectionChanged(m_currentView->selectedItems());
|
slotSelectionChanged(m_currentView->selectedItems());
|
||||||
|
@ -435,7 +435,7 @@ void DolphinViewActionHandler::slotViewModeActionTriggered(QAction* action)
|
||||||
void DolphinViewActionHandler::slotRename()
|
void DolphinViewActionHandler::slotRename()
|
||||||
{
|
{
|
||||||
if (m_currentView->selectedItemsCount() == 0) {
|
if (m_currentView->selectedItemsCount() == 0) {
|
||||||
Q_EMIT setSelectionMode(true, SelectionMode::BottomBar::Contents::RenameContents);
|
Q_EMIT selectionModeChangeTriggered(true, SelectionMode::BottomBar::Contents::RenameContents);
|
||||||
} else {
|
} else {
|
||||||
Q_EMIT actionBeingHandled();
|
Q_EMIT actionBeingHandled();
|
||||||
m_currentView->renameSelectedItems();
|
m_currentView->renameSelectedItems();
|
||||||
|
@ -446,22 +446,22 @@ void DolphinViewActionHandler::slotRename()
|
||||||
void DolphinViewActionHandler::slotTrashActivated()
|
void DolphinViewActionHandler::slotTrashActivated()
|
||||||
{
|
{
|
||||||
if (m_currentView->selectedItemsCount() == 0) {
|
if (m_currentView->selectedItemsCount() == 0) {
|
||||||
Q_EMIT setSelectionMode(true, SelectionMode::BottomBar::Contents::MoveToTrashContents);
|
Q_EMIT selectionModeChangeTriggered(true, SelectionMode::BottomBar::Contents::MoveToTrashContents);
|
||||||
} else {
|
} else {
|
||||||
Q_EMIT actionBeingHandled();
|
Q_EMIT actionBeingHandled();
|
||||||
m_currentView->trashSelectedItems();
|
m_currentView->trashSelectedItems();
|
||||||
Q_EMIT setSelectionMode(false);
|
Q_EMIT selectionModeChangeTriggered(false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void DolphinViewActionHandler::slotDeleteItems()
|
void DolphinViewActionHandler::slotDeleteItems()
|
||||||
{
|
{
|
||||||
if (m_currentView->selectedItemsCount() == 0) {
|
if (m_currentView->selectedItemsCount() == 0) {
|
||||||
Q_EMIT setSelectionMode(true, SelectionMode::BottomBar::Contents::DeleteContents);
|
Q_EMIT selectionModeChangeTriggered(true, SelectionMode::BottomBar::Contents::DeleteContents);
|
||||||
} else {
|
} else {
|
||||||
Q_EMIT actionBeingHandled();
|
Q_EMIT actionBeingHandled();
|
||||||
m_currentView->deleteSelectedItems();
|
m_currentView->deleteSelectedItems();
|
||||||
Q_EMIT setSelectionMode(false);
|
Q_EMIT selectionModeChangeTriggered(false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -762,11 +762,11 @@ void DolphinViewActionHandler::slotAdjustViewProperties()
|
||||||
void DolphinViewActionHandler::slotDuplicate()
|
void DolphinViewActionHandler::slotDuplicate()
|
||||||
{
|
{
|
||||||
if (m_currentView->selectedItemsCount() == 0) {
|
if (m_currentView->selectedItemsCount() == 0) {
|
||||||
Q_EMIT setSelectionMode(true, SelectionMode::BottomBar::Contents::DuplicateContents);
|
Q_EMIT selectionModeChangeTriggered(true, SelectionMode::BottomBar::Contents::DuplicateContents);
|
||||||
} else {
|
} else {
|
||||||
Q_EMIT actionBeingHandled();
|
Q_EMIT actionBeingHandled();
|
||||||
m_currentView->duplicateSelectedItems();
|
m_currentView->duplicateSelectedItems();
|
||||||
Q_EMIT setSelectionMode(false);
|
Q_EMIT selectionModeChangeTriggered(false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -790,10 +790,10 @@ void DolphinViewActionHandler::slotProperties()
|
||||||
void DolphinViewActionHandler::slotCopyPath()
|
void DolphinViewActionHandler::slotCopyPath()
|
||||||
{
|
{
|
||||||
if (m_currentView->selectedItemsCount() == 0) {
|
if (m_currentView->selectedItemsCount() == 0) {
|
||||||
Q_EMIT setSelectionMode(true, SelectionMode::BottomBar::Contents::CopyLocationContents);
|
Q_EMIT selectionModeChangeTriggered(true, SelectionMode::BottomBar::Contents::CopyLocationContents);
|
||||||
} else {
|
} else {
|
||||||
m_currentView->copyPathToClipboard();
|
m_currentView->copyPathToClipboard();
|
||||||
Q_EMIT setSelectionMode(false);
|
Q_EMIT selectionModeChangeTriggered(false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -87,8 +87,8 @@ Q_SIGNALS:
|
||||||
*/
|
*/
|
||||||
void createDirectoryTriggered();
|
void createDirectoryTriggered();
|
||||||
|
|
||||||
/** Used to request selection mode */
|
/** Used to request either entering or leaving of selection mode */
|
||||||
void setSelectionMode(bool enabled, SelectionMode::BottomBar::Contents bottomBarContents = SelectionMode::BottomBar::Contents::GeneralContents);
|
void selectionModeChangeTriggered(bool enabled, SelectionMode::BottomBar::Contents bottomBarContents = SelectionMode::BottomBar::Contents::GeneralContents);
|
||||||
|
|
||||||
private Q_SLOTS:
|
private Q_SLOTS:
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in a new issue