Support shortcut keys to adjust desktop icon size
This commit is contained in:
parent
6d82581776
commit
2f4ad13357
6 changed files with 49 additions and 21 deletions
|
@ -4,7 +4,7 @@ Name=File Manager
|
||||||
Name[zh_CN]=文件管理器
|
Name[zh_CN]=文件管理器
|
||||||
GenericName=File Manager
|
GenericName=File Manager
|
||||||
Comment=Cutefish File Manager
|
Comment=Cutefish File Manager
|
||||||
Exec=cutefish-fm %U
|
Exec=cutefish-filemanager %U
|
||||||
MimeType=inode/directory;
|
MimeType=inode/directory;
|
||||||
Icon=file-system-manager
|
Icon=file-system-manager
|
||||||
Categories=FileManager;Utility;Core;Qt;
|
Categories=FileManager;Utility;Core;Qt;
|
||||||
|
|
|
@ -84,7 +84,7 @@ Item {
|
||||||
FolderIconView {
|
FolderIconView {
|
||||||
id: _gridViewBrowser
|
id: _gridViewBrowser
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
model: dirModel
|
model: positioner
|
||||||
|
|
||||||
leftMargin: Meui.Units.largeSpacing
|
leftMargin: Meui.Units.largeSpacing
|
||||||
rightMargin: Meui.Units.largeSpacing
|
rightMargin: Meui.Units.largeSpacing
|
||||||
|
|
|
@ -5,6 +5,7 @@ import QtQuick.Layouts 1.12
|
||||||
import Cutefish.FileManager 1.0 as FM
|
import Cutefish.FileManager 1.0 as FM
|
||||||
import MeuiKit 1.0 as Meui
|
import MeuiKit 1.0 as Meui
|
||||||
|
|
||||||
|
import "../"
|
||||||
import "FolderTools.js" as FolderTools
|
import "FolderTools.js" as FolderTools
|
||||||
|
|
||||||
FocusScope {
|
FocusScope {
|
||||||
|
@ -104,6 +105,10 @@ FocusScope {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
GlobalSettings {
|
||||||
|
id: settings
|
||||||
|
}
|
||||||
|
|
||||||
MouseArea {
|
MouseArea {
|
||||||
id: listener
|
id: listener
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
|
@ -133,6 +138,15 @@ FocusScope {
|
||||||
|
|
||||||
acceptedButtons: Qt.LeftButton | Qt.RightButton
|
acceptedButtons: Qt.LeftButton | Qt.RightButton
|
||||||
|
|
||||||
|
onWheel: {
|
||||||
|
if (wheel.modifiers & Qt.ControlModifier) {
|
||||||
|
if (wheel.angleDelta.y > 0)
|
||||||
|
gridView.increaseIconSize()
|
||||||
|
else
|
||||||
|
gridView.decreaseIconSize()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
onPressed: {
|
onPressed: {
|
||||||
gridView.focus = true
|
gridView.focus = true
|
||||||
gridView.forceActiveFocus()
|
gridView.forceActiveFocus()
|
||||||
|
@ -382,7 +396,7 @@ FocusScope {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
property var iconSize: 150 + Meui.Units.largeSpacing
|
property var iconSize: settings.desktopIconSize + Meui.Units.largeSpacing
|
||||||
|
|
||||||
cellWidth: {
|
cellWidth: {
|
||||||
var extraWidth = calcExtraSpacing(iconSize, gridView.width - leftMargin - rightMargin);
|
var extraWidth = calcExtraSpacing(iconSize, gridView.width - leftMargin - rightMargin);
|
||||||
|
@ -394,6 +408,26 @@ FocusScope {
|
||||||
return iconSize + extraHeight;
|
return iconSize + extraHeight;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function increaseIconSize() {
|
||||||
|
if (iconSize >= settings.maximumIconSize) {
|
||||||
|
iconSize = settings.maximumIconSize
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
iconSize += (iconSize * 0.1)
|
||||||
|
settings.desktopIconSize = iconSize
|
||||||
|
}
|
||||||
|
|
||||||
|
function decreaseIconSize() {
|
||||||
|
if (iconSize <= settings.minimumIconSize) {
|
||||||
|
iconSize = settings.minimumIconSize
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
iconSize -= (iconSize * 0.1)
|
||||||
|
settings.desktopIconSize = iconSize
|
||||||
|
}
|
||||||
|
|
||||||
function calcExtraSpacing(cellSize, containerSize) {
|
function calcExtraSpacing(cellSize, containerSize) {
|
||||||
var availableColumns = Math.floor(containerSize / cellSize);
|
var availableColumns = Math.floor(containerSize / cellSize);
|
||||||
var extraSpacing = 0;
|
var extraSpacing = 0;
|
||||||
|
|
|
@ -15,10 +15,6 @@ Window {
|
||||||
if (visible) updateWindowSize()
|
if (visible) updateWindowSize()
|
||||||
}
|
}
|
||||||
|
|
||||||
Component.onCompleted: {
|
|
||||||
updateWindowSize()
|
|
||||||
}
|
|
||||||
|
|
||||||
function updateWindowSize() {
|
function updateWindowSize() {
|
||||||
if (visible) {
|
if (visible) {
|
||||||
control.width = _mainLayout.implicitWidth + _mainLayout.anchors.leftMargin + _mainLayout.anchors.rightMargin
|
control.width = _mainLayout.implicitWidth + _mainLayout.anchors.leftMargin + _mainLayout.anchors.rightMargin
|
||||||
|
@ -77,6 +73,7 @@ Window {
|
||||||
Layout.alignment: Qt.AlignTop
|
Layout.alignment: Qt.AlignTop
|
||||||
|
|
||||||
onHeightChanged: updateWindowSize()
|
onHeightChanged: updateWindowSize()
|
||||||
|
onImplicitHeightChanged: updateWindowSize()
|
||||||
|
|
||||||
Label {
|
Label {
|
||||||
text: qsTr("Type:")
|
text: qsTr("Type:")
|
||||||
|
|
|
@ -6,4 +6,7 @@ Settings {
|
||||||
property bool showHidden: false
|
property bool showHidden: false
|
||||||
property int width: 1080
|
property int width: 1080
|
||||||
property int height: 645
|
property int height: 645
|
||||||
|
property int desktopIconSize: 128
|
||||||
|
property int maximumIconSize: 256
|
||||||
|
property int minimumIconSize: 128
|
||||||
}
|
}
|
||||||
|
|
|
@ -1648,6 +1648,9 @@ void FolderModel::createActions()
|
||||||
QAction *actOpen = new QAction(tr("&Open"), this);
|
QAction *actOpen = new QAction(tr("&Open"), this);
|
||||||
connect(actOpen, &QAction::triggered, this, &FolderModel::openSelected);
|
connect(actOpen, &QAction::triggered, this, &FolderModel::openSelected);
|
||||||
|
|
||||||
|
QAction *propertiesAction = new QAction(tr("Properties"), this);
|
||||||
|
QObject::connect(propertiesAction, &QAction::triggered, this, &FolderModel::openPropertiesDialog);
|
||||||
|
|
||||||
m_actionCollection.addAction(QStringLiteral("open"), actOpen);
|
m_actionCollection.addAction(QStringLiteral("open"), actOpen);
|
||||||
m_actionCollection.addAction(QStringLiteral("cut"), cut);
|
m_actionCollection.addAction(QStringLiteral("cut"), cut);
|
||||||
m_actionCollection.addAction(QStringLiteral("undo"), undo);
|
m_actionCollection.addAction(QStringLiteral("undo"), undo);
|
||||||
|
@ -1661,6 +1664,7 @@ void FolderModel::createActions()
|
||||||
m_actionCollection.addAction(QStringLiteral("emptyTrash"), emptyTrash);
|
m_actionCollection.addAction(QStringLiteral("emptyTrash"), emptyTrash);
|
||||||
m_actionCollection.addAction(QStringLiteral("new_folder"), newFolderAction);
|
m_actionCollection.addAction(QStringLiteral("new_folder"), newFolderAction);
|
||||||
m_actionCollection.addAction(QStringLiteral("new_documents"), newDocAction);
|
m_actionCollection.addAction(QStringLiteral("new_documents"), newDocAction);
|
||||||
|
m_actionCollection.addAction(QStringLiteral("properties"), propertiesAction);
|
||||||
|
|
||||||
m_newMenu = new KNewFileMenu(&m_actionCollection, QStringLiteral("newMenu"), this);
|
m_newMenu = new KNewFileMenu(&m_actionCollection, QStringLiteral("newMenu"), this);
|
||||||
m_newMenu->setModal(false);
|
m_newMenu->setModal(false);
|
||||||
|
@ -1819,13 +1823,8 @@ void FolderModel::openContextMenu(QQuickItem *visualParent, Qt::KeyboardModifier
|
||||||
menu->addAction(setWallpaper);
|
menu->addAction(setWallpaper);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Properties
|
|
||||||
if (KPropertiesDialog::canDisplay(KFileItemList() << rootItem())) {
|
|
||||||
menu->addSeparator();
|
menu->addSeparator();
|
||||||
QAction *act = new QAction(tr("Properties"), menu);
|
menu->addAction(m_actionCollection.action(QStringLiteral("properties")));
|
||||||
QObject::connect(act, &QAction::triggered, this, &FolderModel::openPropertiesDialog);
|
|
||||||
menu->addAction(act);
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
KFileItemList items;
|
KFileItemList items;
|
||||||
QList<QUrl> urls;
|
QList<QUrl> urls;
|
||||||
|
@ -1875,13 +1874,8 @@ void FolderModel::openContextMenu(QQuickItem *visualParent, Qt::KeyboardModifier
|
||||||
menu->addAction(setAswallpaper);
|
menu->addAction(setAswallpaper);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Properties
|
|
||||||
if (KPropertiesDialog::canDisplay(items)) {
|
|
||||||
menu->addSeparator();
|
menu->addSeparator();
|
||||||
QAction *act = new QAction(tr("&Properties"), menu);
|
menu->addAction(m_actionCollection.action(QStringLiteral("properties")));
|
||||||
QObject::connect(act, &QAction::triggered, this, &FolderModel::openPropertiesDialog);
|
|
||||||
menu->addAction(act);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (visualParent) {
|
if (visualParent) {
|
||||||
|
|
Loading…
Reference in a new issue