Add trash item

This commit is contained in:
cutefishd 2021-05-07 13:36:48 +08:00
parent b8c163aa87
commit 04e5a7ea22
4 changed files with 50 additions and 2 deletions

View file

@ -128,6 +128,31 @@ Item {
}
}
}
DockItem {
id: trashItem
implicitWidth: isHorizontal ? root.height : root.width
implicitHeight: isHorizontal ? root.height : root.width
popupText: qsTr("Trash")
enableActivateDot: false
iconName: trash.count === 0 ? "user-trash-empty" : "user-trash-full"
onClicked: trash.openTrash()
onRightClicked: trashMenu.popup()
FishUI.DesktopMenu {
id: trashMenu
MenuItem {
text: qsTr("Open")
onTriggered: trash.openTrash()
}
MenuItem {
text: qsTr("Empty Trash")
onTriggered: trash.emptyTrash()
}
}
}
}
Connections {

View file

@ -38,6 +38,7 @@ MainWindow::MainWindow(QQuickView *parent)
, m_settings(DockSettings::self())
, m_appModel(new ApplicationModel)
, m_fakeWindow(nullptr)
, m_trashManager(new TrashManager)
{
setDefaultAlphaBuffer(false);
setColor(Qt::transparent);
@ -50,6 +51,7 @@ MainWindow::MainWindow(QQuickView *parent)
engine()->rootContext()->setContextProperty("process", new ProcessProvider);
engine()->rootContext()->setContextProperty("Settings", m_settings);
engine()->rootContext()->setContextProperty("mainWindow", this);
engine()->rootContext()->setContextProperty("trash", m_trashManager);
setSource(QUrl(QStringLiteral("qrc:/qml/main.qml")));
setResizeMode(QQuickView::SizeRootObjectToView);
@ -90,7 +92,8 @@ QRect MainWindow::windowRect() const
int maxLength = isHorizontal ? screenGeometry.width() - m_settings->edgeMargins()
: availableGeometry.height() - m_settings->edgeMargins();;
int appCount = m_appModel->rowCount();
// Add trash item.
int appCount = m_appModel->rowCount() + 1;
int iconSize = m_settings->iconSize();
iconSize += iconSize * 0.1;
int length = appCount * iconSize;

View file

@ -26,6 +26,7 @@
#include "docksettings.h"
#include "applicationmodel.h"
#include "fakewindow.h"
#include "trashmanager.h"
class MainWindow : public QQuickView
{
@ -58,6 +59,7 @@ private:
DockSettings *m_settings;
ApplicationModel *m_appModel;
FakeWindow *m_fakeWindow;
TrashManager *m_trashManager;
};
#endif // MAINWINDOW_H

View file

@ -32,9 +32,27 @@
<context>
<name>ApplicationModel</name>
<message>
<location filename="../src/applicationmodel.cpp" line="282"/>
<location filename="../src/applicationmodel.cpp" line="285"/>
<source>Launcher</source>
<translation></translation>
</message>
</context>
<context>
<name>main</name>
<message>
<location filename="../qml/main.qml" line="136"/>
<source>Trash</source>
<translation></translation>
</message>
<message>
<location filename="../qml/main.qml" line="146"/>
<source>Open</source>
<translation></translation>
</message>
<message>
<location filename="../qml/main.qml" line="151"/>
<source>Empty Trash</source>
<translation></translation>
</message>
</context>
</TS>