Compare commits

..

No commits in common. "af89c5bd43bd6d2de501bfef12ba8a7d8b8eef48" and "ccf478c5aa36902ec2ed1d81d266ed4a89c3d612" have entirely different histories.

33 changed files with 355 additions and 481 deletions

View File

@ -91,13 +91,5 @@
<entry name="viewUser" type="Bool"> <entry name="viewUser" type="Bool">
<default>true</default> <default>true</default>
</entry> </entry>
<entry name="showRecentDocuments" type="Bool">
<label>Show recent documents</label>
<default>true</default>
</entry>
<entry name="showDescriptions" type="Bool">
<label>Show application descriptions</label>
<default>true</default>
</entry>
</group> </group>
</kcfg> </kcfg>

View File

@ -56,18 +56,14 @@ Item {
hoverEnabled: true hoverEnabled: true
onClicked: { onClicked: {
if (dashWindow) {
dashWindow.visible = !dashWindow.visible; dashWindow.visible = !dashWindow.visible;
} }
} }
}
Component.onCompleted: { Component.onCompleted: {
dashWindow = Qt.createQmlObject("MenuRepresentation {}", root); dashWindow = Qt.createQmlObject("MenuRepresentation {}", root);
plasmoid.activated.connect(function() { plasmoid.activated.connect(function() {
if (dashWindow) {
dashWindow.visible = !dashWindow.visible; dashWindow.visible = !dashWindow.visible;
}
}); });
} }
} }

View File

@ -56,8 +56,6 @@ KCM.SimpleKCM {
property alias cfg_appsIconSize: appsIconSize.currentIndex property alias cfg_appsIconSize: appsIconSize.currentIndex
property alias cfg_docsIconSize: docsIconSize.currentIndex property alias cfg_docsIconSize: docsIconSize.currentIndex
property alias cfg_displayPosition: displayPosition.currentIndex property alias cfg_displayPosition: displayPosition.currentIndex
property alias cfg_showRecentDocuments: showRecentDocuments.checked
property alias cfg_showDescriptions: showDescriptions.checked
Kirigami.FormLayout { Kirigami.FormLayout {
anchors.left: parent.left anchors.left: parent.left
@ -179,18 +177,6 @@ KCM.SimpleKCM {
model: [i18n("Small"),i18n("Medium"),i18n("Large"), i18n("Huge")] model: [i18n("Small"),i18n("Medium"),i18n("Large"), i18n("Huge")]
} }
CheckBox {
id: showRecentDocuments
Kirigami.FormData.label: i18n("Show recent documents:")
text: i18n("Enable")
}
CheckBox {
id: showDescriptions
Kirigami.FormData.label: i18n("Show descriptions:")
text: i18n("Enable")
}
ComboBox { ComboBox {

View File

@ -1,23 +1,31 @@
import QtQuick import QtQuick
import QtQuick.Layouts import QtQuick.Layouts
import QtQuick.Controls import QtQuick.Controls
import QtCore
import org.kde.plasma.plasmoid import org.kde.plasma.plasmoid
import org.kde.plasma.core as PlasmaCore import org.kde.plasma.core as PlasmaCore
import org.kde.plasma.extras as PlasmaExtras import org.kde.plasma.extras as PlasmaExtras
import org.kde.plasma.private.kicker as Kicker import org.kde.plasma.private.kicker 0.1 as Kicker
import org.kde.coreaddons as KCoreAddons import org.kde.coreaddons 1.0 as KCoreAddons // kuser
import org.kde.plasma.private.shell import org.kde.plasma.private.shell 2.0
import org.kde.kwindowsystem import org.kde.kwindowsystem
import Qt5Compat.GraphicalEffects
import org.kde.kquickcontrolsaddons import org.kde.kquickcontrolsaddons
import org.kde.plasma.components as PlasmaComponents3 import org.kde.plasma.components as PlasmaComponents3
import org.kde.plasma.private.quicklaunch
import org.kde.kirigami as Kirigami import org.kde.kirigami as Kirigami
import org.kde.plasma.private.sessions import org.kde.plasma.plasma5support as P5Support
import org.kde.plasma.private.sessions as Sessions
import org.kde.ksvg as KSvg
import org.kde.kcmutils as KCM
import org.kde.plasma.plasmoid
RowLayout{ RowLayout{
@ -26,51 +34,88 @@ RowLayout{
KCoreAddons.KUser { id: kuser } KCoreAddons.KUser { id: kuser }
Logic { id: logic } Logic { id: logic }
SessionManagement { Sessions.SessionManagement {
id: sessionManager id: sessionManager
} }
RowLayout{ Sessions.SessionsModel {
id: sessionsModel
}
P5Support.DataSource {
id: pmEngine
engine: "powermanagement"
connectedSources: ["PowerDevil", "Sleep States"]
function performOperation(what) {
var service = serviceForSource("PowerDevil")
var operation = service.operationDescription(what)
service.startOperationCall(operation)
}
}
Image { Image {
id: iconUser id: iconUser
source: { source: kuser.faceIconUrl.toString() || "user-identity"
var faceUrl = kuser.faceIconUrl.toString()
if (faceUrl !== "") {
return faceUrl
}
return "user-identity"
}
cache: false cache: false
visible: source !== "" visible: source !== ""
sourceSize.height: 24 sourceSize.height: parent.height * 0.9
sourceSize.width: 24 sourceSize.width: parent.height * 0.9
fillMode: Image.PreserveAspectFit fillMode: Image.PreserveAspectFit
Layout.alignment: Qt.AlignVCenter Layout.alignment: Qt.AlignVCenter
layer.enabled: true
// Crop the avatar to fit in a circle, like the lock and login screens
// but don't on software rendering where this won't render
layer.enabled:true // iconUser.GraphicsInfo.api !== GraphicsInfo.Software
layer.effect: OpacityMask {
// this Rectangle is a circle due to radius size
maskSource: Rectangle {
width: iconUser.width
height: iconUser.height
radius: height / 2
visible: false
}
}
state: "hide"
states: [
State {
name: "show"
when: parent.visible
PropertyChanges { target: iconUser; opacity: 1; }
},
State {
name: "hide"
when: !parent.visible
PropertyChanges { target: iconUser; opacity: 0; }
}
]
transitions: Transition {
PropertyAnimation { properties: "opacity"; easing.type: Easing.InOutQuad; }
}
MouseArea { MouseArea {
cursorShape: Qt.PointingHandCursor
anchors.fill: parent anchors.fill: parent
onClicked: logic.runCommand("systemsettings kcm_users") acceptedButtons: Qt.LeftButton
hoverEnabled: true
cursorShape: Qt.PointingHandCursor
onClicked: KCM.KCMLauncher.openSystemSettings("kcm_users")
} }
} }
PlasmaExtras.Heading { PlasmaExtras.Heading {
wrapMode: Text.NoWrap wrapMode: Text.NoWrap
color: Kirigami.Theme.textColor color: Kirigami.Theme.textColor
level: 3 level: 3
font.bold: true font.bold: true
//font.weight: Font.Bold
text: qsTr(kuser.fullName) text: qsTr(kuser.fullName)
MouseArea {
cursorShape: Qt.PointingHandCursor
anchors.fill: parent
onClicked: logic.runCommand("systemsettings kcm_users")
}
}
} }
PlasmaComponents3.ToolButton { PlasmaComponents3.ToolButton {
MouseArea {
cursorShape: Qt.PointingHandCursor
anchors.fill: parent
onClicked: logic.openUrl("file:///usr/share/applications/org.kde.dolphin.desktop")
}
icon.width: 24 icon.width: 24
icon.height: 24 icon.height: 24
icon.name: "user-home" icon.name: "user-home"
@ -80,14 +125,14 @@ RowLayout{
PlasmaComponents3.ToolTip.timeout: 1000 PlasmaComponents3.ToolTip.timeout: 1000
PlasmaComponents3.ToolTip.visible: hovered PlasmaComponents3.ToolTip.visible: hovered
PlasmaComponents3.ToolTip.text: i18n("User Home") PlasmaComponents3.ToolTip.text: i18n("User Home")
MouseArea {
cursorShape: Qt.PointingHandCursor
anchors.fill: parent
onClicked: logic.openUrl(StandardPaths.writableLocation(StandardPaths.HomeLocation).toString())
}
} }
PlasmaComponents3.ToolButton { PlasmaComponents3.ToolButton {
MouseArea {
cursorShape: Qt.PointingHandCursor
anchors.fill: parent
onClicked: logic.openUrl("file:///usr/share/applications/systemsettings.desktop")
}
icon.width: 24 icon.width: 24
icon.height: 24 icon.height: 24
icon.name: "configure" icon.name: "configure"
@ -96,11 +141,6 @@ RowLayout{
PlasmaComponents3.ToolTip.timeout: 1000 PlasmaComponents3.ToolTip.timeout: 1000
PlasmaComponents3.ToolTip.visible: hovered PlasmaComponents3.ToolTip.visible: hovered
PlasmaComponents3.ToolTip.text: i18n("System Preferences") PlasmaComponents3.ToolTip.text: i18n("System Preferences")
MouseArea {
cursorShape: Qt.PointingHandCursor
anchors.fill: parent
onClicked: logic.runCommand("systemsettings")
}
} }
Item{ Item{
@ -108,6 +148,13 @@ RowLayout{
} }
PlasmaComponents3.ToolButton { PlasmaComponents3.ToolButton {
MouseArea {
cursorShape: Qt.PointingHandCursor
anchors.fill: parent
//onClicked: pmEngine.performOperation("lockScreen")
//enabled: pmEngine.data["Sleep States"]["LockScreen"]
onClicked: sessionManager.lock()
}
icon.width: 24 icon.width: 24
icon.height: 24 icon.height: 24
icon.name: "system-lock-screen" icon.name: "system-lock-screen"
@ -116,15 +163,14 @@ RowLayout{
PlasmaComponents3.ToolTip.timeout: 1000 PlasmaComponents3.ToolTip.timeout: 1000
PlasmaComponents3.ToolTip.visible: hovered PlasmaComponents3.ToolTip.visible: hovered
PlasmaComponents3.ToolTip.text: i18n("Lock Screen") PlasmaComponents3.ToolTip.text: i18n("Lock Screen")
visible: sessionManager.canLock
MouseArea {
cursorShape: Qt.PointingHandCursor
anchors.fill: parent
onClicked: sessionManager.lock()
}
} }
PlasmaComponents3.ToolButton { PlasmaComponents3.ToolButton {
MouseArea {
cursorShape: Qt.PointingHandCursor
anchors.fill: parent
onClicked: sessionManager.switchUser()
}
icon.width: 24 icon.width: 24
icon.height: 24 icon.height: 24
icon.name: "system-switch-user" icon.name: "system-switch-user"
@ -133,14 +179,15 @@ RowLayout{
PlasmaComponents3.ToolTip.timeout: 1000 PlasmaComponents3.ToolTip.timeout: 1000
PlasmaComponents3.ToolTip.visible: hovered PlasmaComponents3.ToolTip.visible: hovered
PlasmaComponents3.ToolTip.text: i18n("Switch User") PlasmaComponents3.ToolTip.text: i18n("Switch User")
MouseArea {
cursorShape: Qt.PointingHandCursor
anchors.fill: parent
onClicked: sessionManager.switchUser()
}
} }
PlasmaComponents3.ToolButton { PlasmaComponents3.ToolButton {
MouseArea {
cursorShape: Qt.PointingHandCursor
anchors.fill: parent
// onClicked: sessionManager.requestShutdown()
onClicked: sessionManager.requestLogoutPrompt()
}
icon.width: 24 icon.width: 24
icon.height: 24 icon.height: 24
icon.name: "system-shutdown" icon.name: "system-shutdown"
@ -149,11 +196,5 @@ RowLayout{
PlasmaComponents3.ToolTip.timeout: 1000 PlasmaComponents3.ToolTip.timeout: 1000
PlasmaComponents3.ToolTip.visible: hovered PlasmaComponents3.ToolTip.visible: hovered
PlasmaComponents3.ToolTip.text: i18n("Shutdown") PlasmaComponents3.ToolTip.text: i18n("Shutdown")
MouseArea {
cursorShape: Qt.PointingHandCursor
anchors.fill: parent
// onClicked: sessionManager.requestShutdown()
onClicked: sessionManager.requestLogoutPrompt()
}
} }
} }

View File

@ -32,15 +32,11 @@ Item {
|| (("hasActionList" in model) && (model.hasActionList === true))) || (("hasActionList" in model) && (model.hasActionList === true)))
property int itemColumns property int itemColumns
property bool handleTriggerManually: false
Accessible.role: Accessible.MenuItem Accessible.role: Accessible.MenuItem
Accessible.name: model.display Accessible.name: model.display
function openActionMenu(x, y) { function openActionMenu(x, y) {
var actionList = []; var actionList = hasActionList ? model.actionList : [];
if (hasActionList && model.actionList !== undefined) {
actionList = model.actionList;
}
Tools.fillActionMenu(i18n, actionMenu, actionList, GridView.view.model.favoritesModel, model.favoriteId); Tools.fillActionMenu(i18n, actionMenu, actionList, GridView.view.model.favoritesModel, model.favoriteId);
actionMenu.visualParent = item; actionMenu.visualParent = item;
actionMenu.open(x, y); actionMenu.open(x, y);
@ -124,7 +120,7 @@ Item {
} else if ((event.key === Qt.Key_Enter || event.key === Qt.Key_Return)) { } else if ((event.key === Qt.Key_Enter || event.key === Qt.Key_Return)) {
event.accepted = true; event.accepted = true;
if (!handleTriggerManually && "trigger" in GridView.view.model) { if ("trigger" in GridView.view.model) {
GridView.view.model.trigger(index, "", null); GridView.view.model.trigger(index, "", null);
root.toggle(); root.toggle();
} }

View File

@ -31,15 +31,11 @@ Item {
|| (("hasActionList" in model) && (model.hasActionList === true))) || (("hasActionList" in model) && (model.hasActionList === true)))
property int itemColumns property int itemColumns
property bool handleTriggerManually: false
Accessible.role: Accessible.MenuItem Accessible.role: Accessible.MenuItem
Accessible.name: model.display Accessible.name: model.display
function openActionMenu(x, y) { function openActionMenu(x, y) {
var actionList = []; var actionList = hasActionList ? model.actionList : [];
if (hasActionList && model.actionList !== undefined) {
actionList = model.actionList;
}
Tools.fillActionMenu(i18n, actionMenu, actionList, GridView.view.model.favoritesModel, model.favoriteId); Tools.fillActionMenu(i18n, actionMenu, actionList, GridView.view.model.favoritesModel, model.favoriteId);
actionMenu.visualParent = item; actionMenu.visualParent = item;
actionMenu.open(x, y); actionMenu.open(x, y);
@ -53,95 +49,64 @@ Item {
} }
} }
property bool showDescriptions: true
RowLayout {
anchors.fill: parent
anchors.leftMargin: Kirigami.Units.largeSpacing
anchors.rightMargin: Kirigami.Units.largeSpacing
spacing: Kirigami.Units.largeSpacing
Kirigami.Icon { Kirigami.Icon {
id: icon id: icon
Layout.preferredWidth: iconSize anchors.verticalCenter: parent.verticalCenter
Layout.preferredHeight: iconSize anchors.left: parent.left
Layout.alignment: Qt.AlignVCenter anchors.leftMargin: Kirigami.Units.largeSpacing
source: model.decoration
width: iconSize
height: width
animated: false animated: false
source: model.decoration
} }
Item {
Layout.fillWidth: true
Layout.fillHeight: true
// List View Layout (itemColumns == 1)
RowLayout {
anchors.fill: parent
visible: itemColumns == 1
spacing: Kirigami.Units.smallSpacing
PlasmaComponents3.Label { PlasmaComponents3.Label {
id: labelList id: label
text: ("name" in model ? model.name : model.display) visible: item.showLabel
// Name takes 65% of space ideally anchors {
Layout.fillWidth: true left: icon.right
Layout.preferredWidth: parent.width * 0.65 leftMargin: Kirigami.Units.largeSpacing
elide: Text.ElideRight right: itemColumns == 2 ? parent.right : desc.left
rightMargin: Kirigami.Units.largeSpacing
verticalCenter: icon.verticalCenter
}
anchors.verticalCenterOffset: itemColumns == 2 ? -Kirigami.Units.largeSpacing : 0
horizontalAlignment: Text.AlignLeft
maximumLineCount: 1 maximumLineCount: 1
elide: Text.ElideMiddle
//wrapMode: Text.Wrap
color: Kirigami.Theme.textColor color: Kirigami.Theme.textColor
font.pointSize: Kirigami.Theme.defaultFont.pointSize font.pointSize: Kirigami.Theme.defaultFont.pointSize
horizontalAlignment: Text.AlignLeft
}
PlasmaComponents3.Label {
id: descList
text: ("description" in model ? model.description : "")
visible: item.showDescriptions && text.length > 0 && text !== model.display
// Description takes 35% of space ideally
Layout.fillWidth: true
Layout.preferredWidth: parent.width * 0.35
Layout.minimumWidth: 0
elide: Text.ElideRight
maximumLineCount: 1
color: colorWithAlpha(Kirigami.Theme.textColor, 0.6)
font.pointSize: Kirigami.Theme.defaultFont.pointSize - 1
horizontalAlignment: Text.AlignRight
}
}
// Grid View Layout (itemColumns == 2)
ColumnLayout {
anchors.fill: parent
visible: itemColumns == 2
spacing: 0
PlasmaComponents3.Label {
id: labelGrid
text: ("name" in model ? model.name : model.display) text: ("name" in model ? model.name : model.display)
Layout.fillWidth: true textFormat: Text.PlainText
elide: Text.ElideRight
maximumLineCount: 1
color: Kirigami.Theme.textColor
font.pointSize: Kirigami.Theme.defaultFont.pointSize
horizontalAlignment: Text.AlignLeft
} }
PlasmaComponents3.Label { PlasmaComponents3.Label {
id: descGrid id: desc
text: ("description" in model ? model.description : "") anchors {
visible: text.length > 0 && text !== model.display top: itemColumns == 2 ? label.bottom: undefined
Layout.fillWidth: true left: itemColumns == 2 ? icon.right : undefined
elide: Text.ElideRight leftMargin: Kirigami.Units.largeSpacing
right: parent.right
rightMargin: Kirigami.Units.largeSpacing
verticalCenter: itemColumns == 2 ? undefined : icon.verticalCenter
}
horizontalAlignment: itemColumns == 2 ? Text.AlignLeft : Text.AlignRight
maximumLineCount: 1 maximumLineCount: 1
color: colorWithAlpha(Kirigami.Theme.textColor, 0.6) elide: Text.ElideMiddle
font.pointSize: Kirigami.Theme.defaultFont.pointSize - 1 //wrapMode: Text.Wrap
horizontalAlignment: Text.AlignLeft
}
}
}
}
property Item currentLabel: itemColumns == 1 ? labelList : labelGrid color: colorWithAlpha(Kirigami.Theme.textColor,0.4)
font.pointSize: Kirigami.Theme.defaultFont.pointSize - 1
text: ("description" in model ? model.description : "")
textFormat: Text.PlainText
}
PlasmaCore.ToolTipArea { PlasmaCore.ToolTipArea {
id: toolTip id: toolTip
@ -149,7 +114,7 @@ Item {
property string text: model.display property string text: model.display
anchors.fill: parent anchors.fill: parent
active: root.visible && currentLabel.truncated active: root.visible && label.truncated
mainItem: toolTipDelegate mainItem: toolTipDelegate
onContainsMouseChanged: item.GridView.view.itemContainsMouseChanged(containsMouse) onContainsMouseChanged: item.GridView.view.itemContainsMouseChanged(containsMouse)
@ -162,7 +127,7 @@ Item {
} else if ((event.key === Qt.Key_Enter || event.key === Qt.Key_Return)) { } else if ((event.key === Qt.Key_Enter || event.key === Qt.Key_Return)) {
event.accepted = true; event.accepted = true;
if (!handleTriggerManually && "trigger" in GridView.view.model) { if ("trigger" in GridView.view.model) {
GridView.view.model.trigger(index, "", null); GridView.view.model.trigger(index, "", null);
root.toggle(); root.toggle();
} }

View File

@ -35,10 +35,7 @@ Item {
Accessible.name: model.display Accessible.name: model.display
function openActionMenu(x, y) { function openActionMenu(x, y) {
var actionList = []; var actionList = hasActionList ? model.actionList : [];
if (hasActionList && model.actionList !== undefined) {
actionList = model.actionList;
}
Tools.fillActionMenu(i18n, actionMenu, actionList, GridView.view.model.favoritesModel, model.favoriteId); Tools.fillActionMenu(i18n, actionMenu, actionList, GridView.view.model.favoritesModel, model.favoriteId);
actionMenu.visualParent = item; actionMenu.visualParent = item;
actionMenu.open(x, y); actionMenu.open(x, y);

View File

@ -37,14 +37,9 @@ FocusScope {
property alias cellHeight: gridView.cellHeight property alias cellHeight: gridView.cellHeight
property int iconSize property int iconSize
property bool forceListDelegate: false
property bool showDescriptions: true
property var horizontalScrollBarPolicy: PlasmaComponents.ScrollBar.AlwaysOff property var horizontalScrollBarPolicy: PlasmaComponents.ScrollBar.AlwaysOff
property var verticalScrollBarPolicy: PlasmaComponents.ScrollBar.AlwaysOff property var verticalScrollBarPolicy: PlasmaComponents.ScrollBar.AlwaysOff
property bool bypassArrowNav: false property bool bypassArrowNav: false
property bool handleTriggerManually: false
onDropEnabledChanged: { onDropEnabledChanged: {
if (!dropEnabled && "dropPlaceHolderIndex" in model) { if (!dropEnabled && "dropPlaceHolderIndex" in model) {
model.dropPlaceHolderIndex = -1; model.dropPlaceHolderIndex = -1;
@ -124,7 +119,7 @@ FocusScope {
if (item) { if (item) {
if (kicker.dragSource.parent === gridView.contentItem) { if (kicker.dragSource.parent === gridView.contentItem) {
if (item !== kicker.dragSource) { if (item !== kicker.dragSource) {
item.GridView.view.model.moveRow(kicker.dragSource.itemIndex, item.itemIndex); item.GridView.view.model.moveRow(dragSource.itemIndex, item.itemIndex);
} }
} else if (kicker.dragSource.GridView.view.model.favoritesModel === itemGrid.model } else if (kicker.dragSource.GridView.view.model.favoritesModel === itemGrid.model
&& !itemGrid.model.isFavorite(kicker.dragSource.favoriteId)) { && !itemGrid.model.isFavorite(kicker.dragSource.favoriteId)) {
@ -183,8 +178,6 @@ FocusScope {
showLabel: showLabels showLabel: showLabels
itemColumns: itemGrid.itemColumns itemColumns: itemGrid.itemColumns
iconSize: itemGrid.iconSize iconSize: itemGrid.iconSize
showDescriptions: itemGrid.showDescriptions
handleTriggerManually: itemGrid.handleTriggerManually
} }
} }
Component{ Component{
@ -193,7 +186,6 @@ FocusScope {
showLabel: itemGrid.showLabels showLabel: itemGrid.showLabels
itemColumns: itemGrid.itemColumns itemColumns: itemGrid.itemColumns
iconSize: itemGrid.iconSize iconSize: itemGrid.iconSize
handleTriggerManually: itemGrid.handleTriggerManually
} }
} }
@ -262,7 +254,7 @@ FocusScope {
keyNavigationWraps: false keyNavigationWraps: false
boundsBehavior: Flickable.StopAtBounds boundsBehavior: Flickable.StopAtBounds
delegate: (itemColumns == 1 && !forceListDelegate) ? aItemGridDelegate : aItemGridDelegate2 delegate: itemColumns == 1 ? aItemGridDelegate : aItemGridDelegate2
highlight: Rectangle { color: Qt.rgba(0.9, 0.9, 0.9, 0.1); radius: 6 } highlight: Rectangle { color: Qt.rgba(0.9, 0.9, 0.9, 0.1); radius: 6 }
highlightFollowsCurrentItem: true highlightFollowsCurrentItem: true
@ -430,7 +422,7 @@ FocusScope {
if (!dragHelper.dragging) { if (!dragHelper.dragging) {
if (pressedItem) { if (pressedItem) {
if (!itemGrid.handleTriggerManually && "trigger" in gridView.model) { if ("trigger" in gridView.model) {
gridView.model.trigger(pressedItem.itemIndex, "", null); gridView.model.trigger(pressedItem.itemIndex, "", null);
root.toggle(); root.toggle();
} }

View File

@ -195,7 +195,7 @@ PlasmaComponents.ScrollView {
width: parent.width width: parent.width
height: count * itemMultiGrid.cellHeight height: count * itemMultiGrid.cellHeight
itemColumns: 2 //itemMultiGrid.itemColumns itemColumns: 3 //itemMultiGrid.itemColumns
cellWidth: itemMultiGrid.cellWidth cellWidth: itemMultiGrid.cellWidth
cellHeight: itemMultiGrid.cellHeight cellHeight: itemMultiGrid.cellHeight

View File

@ -1,25 +0,0 @@
import QtQuick
import org.kde.plasma.plasma5support as Plasma5Support
Item {
Plasma5Support.DataSource {
id: executable
engine: "executable"
connectedSources: []
onNewData: function(source, data) {
disconnectSource(source)
}
}
function openUrl(url) {
if (url.toString().endsWith(".desktop")) {
executable.connectSource("kioclient exec " + url)
} else {
executable.connectSource("xdg-open " + url)
}
}
function runCommand(cmd) {
executable.connectSource(cmd)
}
}

View File

@ -27,13 +27,13 @@ import org.kde.plasma.components as PC3
import org.kde.plasma.extras as PlasmaExtras import org.kde.plasma.extras as PlasmaExtras
import org.kde.plasma.private.kicker as Kicker import org.kde.plasma.private.kicker as Kicker
import org.kde.kquickcontrolsaddons import org.kde.kquickcontrolsaddons
import org.kde.plasma.private.quicklaunch
import org.kde.kirigami as Kirigami import org.kde.kirigami as Kirigami
import org.kde.plasma.plasma5support as Plasma5Support import org.kde.plasma.plasma5support as Plasma5Support
PlasmaCore.Dialog { PlasmaCore.Dialog {
id: root id: root
backgroundHints: PlasmaCore.Types.SolidBackground | PlasmaCore.Types.ConfigurableBackground
objectName: "popupWindow" objectName: "popupWindow"
flags: Qt.WindowStaysOnTopHint flags: Qt.WindowStaysOnTopHint
@ -147,7 +147,7 @@ PlasmaCore.Dialog {
var vertMidPoint = screen.y + (screen.height / 2); var vertMidPoint = screen.y + (screen.height / 2);
var appletTopLeft = parent.mapToGlobal(0, 0); var appletTopLeft = parent.mapToGlobal(0, 0);
var offset = Kirigami.Units.smallSpacing; var offset = Kirigami.Units.smallSpacing * 2;
if (Plasmoid.configuration.displayPosition === 1) { if (Plasmoid.configuration.displayPosition === 1) {
horizMidPoint = screen.x + (screen.width / 2); horizMidPoint = screen.x + (screen.width / 2);
@ -161,8 +161,8 @@ PlasmaCore.Dialog {
vertMidPoint = screen.y + (screen.height / 2); vertMidPoint = screen.y + (screen.height / 2);
x = horizMidPoint - width / 2; x = horizMidPoint - width / 2;
// y = screen.y + screen.height - height - offset - panelH - Kirigami.Units.gridUnit; // y = screen.y + screen.height - height - offset - panelH - Kirigami.Units.gridUnit;
y = screen.y + screen.height - height - offset - panelH - Kirigami.Units.gridUnit / 2; // y = screen.y + screen.height - height - offset - panelH - Kirigami.Units.gridUnit / 2;
//y = screen.y + screen.height - height - offset - panelH - Kirigami.Units.largeSpacing * 1.5; y = screen.y + screen.height - height - offset - panelH - Kirigami.Units.largeSpacing * 1.5;
} }
else { else {
@ -209,8 +209,8 @@ PlasmaCore.Dialog {
Layout.minimumWidth: width Layout.minimumWidth: width
Layout.maximumWidth: width Layout.maximumWidth: width
Layout.minimumHeight: height Layout.minimumHeight: view.height + searchField.height + footer.height + Kirigami.Units.gridUnit * 3
Layout.maximumHeight: height Layout.maximumHeight: view.height + searchField.height + footer.height + Kirigami.Units.gridUnit * 3
focus: true focus: true
onFocusChanged: searchField.focus = true onFocusChanged: searchField.focus = true
@ -427,9 +427,10 @@ PlasmaCore.Dialog {
// PAGE 1 // PAGE 1
// //
Column { Column {
width: view.width // Ensure Column fills SwipeView width: rootItem.widthComputed
height: view.height height: view.height
spacing: Kirigami.Units.largeSpacing spacing: Kirigami.Units.largeSpacing * 2
function tryActivate(row, col) { function tryActivate(row, col) {
globalFavoritesGrid.tryActivate(row, col); globalFavoritesGrid.tryActivate(row, col);
} }
@ -440,7 +441,7 @@ PlasmaCore.Dialog {
height: butttonActionAllApps.implicitHeight height: butttonActionAllApps.implicitHeight
Kirigami.Icon { Kirigami.Icon {
source: 'bookmarks' source: 'favorite'
implicitHeight: Kirigami.Units.iconSizes.smallMedium implicitHeight: Kirigami.Units.iconSizes.smallMedium
implicitWidth: Kirigami.Units.iconSizes.smallMedium implicitWidth: Kirigami.Units.iconSizes.smallMedium
} }
@ -457,14 +458,14 @@ PlasmaCore.Dialog {
Layout.fillWidth: true Layout.fillWidth: true
} }
PC3.ToolButton { AToolButton {
id: butttonActionAllApps id: butttonActionAllApps
icon.name: "go-next" flat: false
iconName: "go-next"
text: i18n("All apps") text: i18n("All apps")
MouseArea { buttonHeight: 25
cursorShape: Qt.PointingHandCursor onClicked: {
anchors.fill: parent view.currentIndex = 1;
onClicked: view.currentIndex = 1;
} }
} }
} }
@ -472,13 +473,7 @@ PlasmaCore.Dialog {
ItemGridView { ItemGridView {
id: globalFavoritesGrid id: globalFavoritesGrid
width: parent.width width: parent.width
height: { height: root.cellSizeHeight * Plasmoid.configuration.numberRows
if (Plasmoid.configuration.showRecentDocuments) {
return root.cellSizeHeight * Plasmoid.configuration.numberRows;
} else {
return view.height - topRow.height - Kirigami.Units.largeSpacing - Kirigami.Units.gridUnit;
}
}
itemColumns: 1 itemColumns: 1
dragEnabled: true dragEnabled: true
dropEnabled: true dropEnabled: true
@ -491,10 +486,8 @@ PlasmaCore.Dialog {
} }
onKeyNavDown: { onKeyNavDown: {
globalFavoritesGrid.focus = false; globalFavoritesGrid.focus = false;
if (Plasmoid.configuration.showRecentDocuments) {
documentsGrid.tryActivate(0, 0); documentsGrid.tryActivate(0, 0);
} }
}
Keys.onPressed: event => { Keys.onPressed: event => {
if (event.key === Qt.Key_Tab) { if (event.key === Qt.Key_Tab) {
event.accepted = true; event.accepted = true;
@ -505,7 +498,6 @@ PlasmaCore.Dialog {
} }
RowLayout { RowLayout {
visible: Plasmoid.configuration.showRecentDocuments
width: parent.width width: parent.width
height: butttonActionAllApps.implicitHeight height: butttonActionAllApps.implicitHeight
@ -527,13 +519,12 @@ PlasmaCore.Dialog {
Layout.fillWidth: true Layout.fillWidth: true
} }
PC3.ToolButton { AToolButton {
id: butttonActionRecentMore id: butttonActionRecentMore
icon.name: "go-next" flat: false
iconName: "go-next"
text: i18n("Show more") text: i18n("Show more")
MouseArea { buttonHeight: 25
cursorShape: Qt.PointingHandCursor
anchors.fill: parent
onClicked: { onClicked: {
executable.checkDolphin(); executable.checkDolphin();
if (executable.dolphinRunning) { if (executable.dolphinRunning) {
@ -547,27 +538,18 @@ PlasmaCore.Dialog {
} }
} }
} }
}
ItemGridView { ItemGridView {
visible: Plasmoid.configuration.showRecentDocuments
id: documentsGrid id: documentsGrid
width: parent.width width: rootItem.widthComputed
height: cellHeight * 3 height: cellHeight * 3
itemColumns: 2 itemColumns: 2
dragEnabled: true dragEnabled: true
dropEnabled: true dropEnabled: true
cellWidth: (width - Kirigami.Units.gridUnit) / 2 cellWidth: rootItem.widthComputed * 0.48
cellHeight: docsIconSize + Kirigami.Units.largeSpacing * 2 cellHeight: docsIconSize + Kirigami.Units.largeSpacing * 2
iconSize: docsIconSize iconSize: docsIconSize
clip: true clip: true
handleTriggerManually: true
onItemActivated: (index, actionId, argument) => {
var url = documentsGrid.currentItem.url.toString();
console.log("Opening URL:", url);
executable.exec("xdg-open '" + url.replace(/'/g, "'\\''") + "'");
root.toggle();
}
onKeyNavUp: { onKeyNavUp: {
globalFavoritesGrid.tryActivate(0, 0); globalFavoritesGrid.tryActivate(0, 0);
documentsGrid.focus = false; documentsGrid.focus = false;
@ -586,20 +568,19 @@ PlasmaCore.Dialog {
// PAGE 2 // PAGE 2
// //
Column { Column {
width: view.width // Ensure Column fills SwipeView width: rootItem.widthComputed
height: view.height height: view.height
spacing: Kirigami.Units.largeSpacing spacing: Kirigami.Units.largeSpacing * 2
function tryActivate(row, col) { function tryActivate(row, col) {
allAppsGrid.tryActivate(row, col); allAppsGrid.tryActivate(row, col);
} }
RowLayout { RowLayout {
id: allAppsTopRow
width: parent.width width: parent.width
height: butttonActionAllApps.implicitHeight height: butttonActionAllApps.implicitHeight
Kirigami.Icon { Kirigami.Icon {
source: 'view-grid' source: 'application-menu'
implicitHeight: Kirigami.Units.iconSizes.smallMedium implicitHeight: Kirigami.Units.iconSizes.smallMedium
implicitWidth: Kirigami.Units.iconSizes.smallMedium implicitWidth: Kirigami.Units.iconSizes.smallMedium
} }
@ -616,29 +597,29 @@ PlasmaCore.Dialog {
Layout.fillWidth: true Layout.fillWidth: true
} }
PC3.ToolButton { AToolButton {
icon.name: 'go-previous' flat: false
iconName: 'go-previous'
text: i18n("Pinned") text: i18n("Pinned")
MouseArea { buttonHeight: 25
cursorShape: Qt.PointingHandCursor mirror: true
anchors.fill: parent onClicked: {
onClicked: view.currentIndex = 0; view.currentIndex = 0;
} }
} }
} }
ItemGridView { ItemGridView {
id: allAppsGrid id: allAppsGrid
width: parent.width width: rootItem.widthComputed
height: view.height - allAppsTopRow.height - Kirigami.Units.largeSpacing - Kirigami.Units.gridUnit height: Math.floor((view.height - topRow.height - Kirigami.Units.largeSpacing) / cellHeight) * cellHeight
itemColumns: 1 itemColumns: 2
forceListDelegate: true
showDescriptions: Plasmoid.configuration.showDescriptions
dragEnabled: false dragEnabled: false
dropEnabled: false dropEnabled: false
cellWidth: width cellWidth: rootItem.widthComputed - Kirigami.Units.gridUnit * 2
cellHeight: root.iconSize + Kirigami.Units.largeSpacing cellHeight: root.iconSize + Kirigami.Units.largeSpacing
iconSize: root.iconSize iconSize: root.iconSize
clip: true
onKeyNavUp: { onKeyNavUp: {
searchField.focus = true; searchField.focus = true;
allAppsGrid.focus = false; allAppsGrid.focus = false;

View File

@ -9,6 +9,9 @@
.pragma library .pragma library
function fillActionMenu(i18n, actionMenu, actionList, favoriteModel, favoriteId) { function fillActionMenu(i18n, actionMenu, actionList, favoriteModel, favoriteId) {
// Accessing actionList can be a costly operation, so we don't
// access it until we need the menu.
var actions = createFavoriteActions(i18n, favoriteModel, favoriteId); var actions = createFavoriteActions(i18n, favoriteModel, favoriteId);
if (actions) { if (actions) {
@ -16,6 +19,7 @@ function fillActionMenu(i18n, actionMenu, actionList, favoriteModel, favoriteId)
var actionListCopy = Array.from(actionList); var actionListCopy = Array.from(actionList);
var separator = { "type": "separator" }; var separator = { "type": "separator" };
actionListCopy.push(separator); actionListCopy.push(separator);
// actionList = actions.concat(actionList); // this crashes Qt O.o
actionListCopy.push.apply(actionListCopy, actions); actionListCopy.push.apply(actionListCopy, actions);
actionList = actionListCopy; actionList = actionListCopy;
} else { } else {
@ -23,10 +27,6 @@ function fillActionMenu(i18n, actionMenu, actionList, favoriteModel, favoriteId)
} }
} }
if (!actionList || actionList.length === 0) {
actionList = [];
}
actionMenu.actionList = actionList; actionMenu.actionList = actionList;
} }
@ -37,8 +37,6 @@ function createFavoriteActions(i18n, favoriteModel, favoriteId) {
if (favoriteModel.activities === undefined || if (favoriteModel.activities === undefined ||
!favoriteModel.activities ||
!favoriteModel.activities.runningActivities ||
favoriteModel.activities.runningActivities.length <= 1) { favoriteModel.activities.runningActivities.length <= 1) {
var action = {}; var action = {};

View File

@ -24,7 +24,6 @@ import org.kde.plasma.plasmoid
import org.kde.plasma.core as PlasmaCore import org.kde.plasma.core as PlasmaCore
import org.kde.plasma.components as PC3 import org.kde.plasma.components as PC3
import org.kde.plasma.plasma5support as Plasma5Support
import org.kde.plasma.private.kicker as Kicker import org.kde.plasma.private.kicker as Kicker
import org.kde.kirigami as Kirigami import org.kde.kirigami as Kirigami
@ -48,10 +47,6 @@ PlasmoidItem {
processRunner.runMenuEditor(); processRunner.runMenuEditor();
} }
function openKMenuEdit() {
executable.exec("kmenuedit");
}
Component { Component {
id: compactRepresentation id: compactRepresentation
CompactRepresentation {} CompactRepresentation {}
@ -172,18 +167,6 @@ PlasmoidItem {
id: processRunner; id: processRunner;
} }
Plasma5Support.DataSource {
id: executable
engine: "executable"
connectedSources: []
onNewData: function(source, data) {
disconnectSource(source);
}
function exec(cmd) {
connectSource(cmd);
}
}
Kicker.WindowSystem { Kicker.WindowSystem {
id: windowSystem id: windowSystem
} }
@ -246,13 +229,7 @@ PlasmoidItem {
text: i18n("Edit Applications…") text: i18n("Edit Applications…")
icon.name: "kmenuedit" icon.name: "kmenuedit"
visible: Plasmoid.immutability !== PlasmaCore.Types.SystemImmutable visible: Plasmoid.immutability !== PlasmaCore.Types.SystemImmutable
onTriggered: { onTriggered: processRunner.runMenuEditor()
if (processRunner && processRunner.runMenuEditor) {
processRunner.runMenuEditor();
} else {
openKMenuEdit();
}
}
} }
] ]

View File

@ -3,23 +3,23 @@
"KPlugin": { "KPlugin": {
"Authors": [ "Authors": [
{ {
"Email": "hello@eisteed.com", "Email": "adhemarks@gmail.com",
"Name": "Eisteed" "Name": "Ademir"
} }
], ],
"BugReportUrl": "https://github.com/kurojs/Menu-11-Enhanced/issues",
"Category": "Application Launchers", "Category": "Application Launchers",
"Description": "Enhanced configurable grid application launcher for Plasma 6.5+", "Description": "Configurable grid of application icons",
"Description[x-test]": "xxCEnhanced configurable grid application launcher for Plasma 6.5+xx", "Description[x-test]": "xxConfigurable grid of application iconsxx",
"EnabledByDefault": true, "EnabledByDefault": true,
"Icon": "start-here-kde", "Icon": "start-here-kde",
"Id": "com.github.adhec.Menu11", "Id": "com.github.adhec.Menu11",
"License": "GPL-2.0+", "License": "GPL-2.0+",
"Name": "Menu 11 Enhanced", "Name": "Menu 11",
"Name[x-test]": "xxMenu 11 Enhancedxx", "Name[x-test]": "xxMenu 11xx",
"Version": "1.1.2", "Website": "https://kde.org/plasma-desktop"
"Website": "https://github.com/kurojs/Menu-11-Enhanced"
}, },
"X-Plasma-API-Minimum-Version": "6.0", "X-Plasma-API-Minimum-Version": "6.0",
"X-Plasma-Provides": ["org.kde.plasma.launchermenu"] "X-Plasma-Provides": [
"org.kde.plasma.launchermenu"
]
} }

View File

@ -8,7 +8,7 @@ Go to `~/.local/share/plasma/plasmoids/com.github.adhec.Menu11/translate/` and r
## New Translations ## New Translations
1. Fill out [`template.pot`](template.pot) with your translations then open a [new issue](https://github.com/kurojs/Menu-11-Enhanced/issues/new), name the file `spanish.txt`, attach the txt file to the issue (drag and drop). 1. Fill out [`template.pot`](template.pot) with your translations then open a [new issue](https://github.com/prateekmedia/Menu11/issues/new), name the file `spanish.txt`, attach the txt file to the issue (drag and drop).
Or if you know how to make a pull request Or if you know how to make a pull request
@ -35,11 +35,11 @@ Or if you know how to make a pull request
## Status ## Status
| Locale | Lines | % Done| | Locale | Lines | % Done|
|----------|---------|-------| |----------|---------|-------|
| Template | 38 | | | Template | 35 | |
| fr | 20/38 | 52% | | fr | 20/35 | 57% |
| ko | 17/38 | 44% | | ko | 17/35 | 48% |
| nl | 13/38 | 34% | | nl | 13/35 | 37% |
| pl | 15/38 | 39% | | pl | 15/35 | 42% |
| pt_BR | 20/38 | 52% | | pt_BR | 20/35 | 57% |
| ru | 38/38 | 100% | | ru | 34/35 | 97% |
| tr | 15/38 | 39% | | tr | 15/35 | 42% |

View File

@ -1,4 +1,4 @@
#!/bin/sh #!/bin/bash
# Version: 6 # Version: 6
# This script will convert the *.po files to *.mo files, rebuilding the package/contents/locale folder. # This script will convert the *.po files to *.mo files, rebuilding the package/contents/locale folder.
@ -8,7 +8,7 @@
DIR=`cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd` DIR=`cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd`
plasmoidName=com.github.adhec.Menu11 plasmoidName=com.github.adhec.Menu11
widgetName="${plasmoidName##*.}" # Strip namespace widgetName="${plasmoidName##*.}" # Strip namespace
website=https://github.com/kurojs/Menu-11-Enhanced website=https://github.com/prateekmedia/Menu11
bugAddress="$website" bugAddress="$website"
packageRoot=".." # Root of translatable sources packageRoot=".." # Root of translatable sources
projectName="plasma_applet_${plasmoidName}" # project name projectName="plasma_applet_${plasmoidName}" # project name

View File

@ -7,8 +7,8 @@
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: dittomenu\n" "Project-Id-Version: dittomenu\n"
"Report-Msgid-Bugs-To: https://github.com/kurojs/Menu-11-Enhanced\n" "Report-Msgid-Bugs-To: https://github.com/prateekmedia/Menu11\n"
"POT-Creation-Date: 2026-01-22 14:15+0500\n" "POT-Creation-Date: 2025-07-13 14:15+0500\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: omano\n" "Last-Translator: omano\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -79,18 +79,6 @@ msgstr ""
msgid "Docs icon size:" msgid "Docs icon size:"
msgstr "" msgstr ""
#: ../contents/ui/ConfigGeneral.qml
msgid "Show recent documents:"
msgstr ""
#: ../contents/ui/ConfigGeneral.qml
msgid "Enable"
msgstr ""
#: ../contents/ui/ConfigGeneral.qml
msgid "Show descriptions:"
msgstr ""
#: ../contents/ui/ConfigGeneral.qml #: ../contents/ui/ConfigGeneral.qml
msgid "Menu position" msgid "Menu position"
msgstr "Position du menu" msgstr "Position du menu"

View File

@ -1,8 +1,8 @@
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: \n" "Project-Id-Version: \n"
"Report-Msgid-Bugs-To: https://github.com/kurojs/Menu-11-Enhanced\n" "Report-Msgid-Bugs-To: https://github.com/prateekmedia/Menu11\n"
"POT-Creation-Date: 2026-01-22 14:15+0500\n" "POT-Creation-Date: 2025-07-13 14:15+0500\n"
"PO-Revision-Date: 2021-09-29 09:43+0900\n" "PO-Revision-Date: 2021-09-29 09:43+0900\n"
"Last-Translator: \n" "Last-Translator: \n"
"Language-Team: \n" "Language-Team: \n"
@ -76,18 +76,6 @@ msgstr ""
msgid "Docs icon size:" msgid "Docs icon size:"
msgstr "" msgstr ""
#: ../contents/ui/ConfigGeneral.qml
msgid "Show recent documents:"
msgstr ""
#: ../contents/ui/ConfigGeneral.qml
msgid "Enable"
msgstr ""
#: ../contents/ui/ConfigGeneral.qml
msgid "Show descriptions:"
msgstr ""
#: ../contents/ui/ConfigGeneral.qml #: ../contents/ui/ConfigGeneral.qml
msgid "Menu position" msgid "Menu position"
msgstr "" msgstr ""

View File

@ -1,4 +1,4 @@
#!/bin/sh #!/bin/bash
# Version: 22 # Version: 22
# https://techbase.kde.org/Development/Tutorials/Localization/i18n_Build_Systems # https://techbase.kde.org/Development/Tutorials/Localization/i18n_Build_Systems
@ -8,7 +8,7 @@
DIR=`cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd` DIR=`cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd`
plasmoidName=com.github.adhec.Menu11 plasmoidName=com.github.adhec.Menu11
widgetName="${plasmoidName##*.}" # Strip namespace widgetName="${plasmoidName##*.}" # Strip namespace
website=https://github.com/kurojs/Menu-11-Enhanced website=https://github.com/prateekmedia/Menu11
bugAddress="$website" bugAddress="$website"
packageRoot=".." # Root of translatable sources packageRoot=".." # Root of translatable sources
projectName="plasma_applet_${plasmoidName}" # project name projectName="plasma_applet_${plasmoidName}" # project name

View File

@ -6,8 +6,8 @@
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: dittomenu\n" "Project-Id-Version: dittomenu\n"
"Report-Msgid-Bugs-To: https://github.com/kurojs/Menu-11-Enhanced\n" "Report-Msgid-Bugs-To: https://github.com/prateekmedia/Menu11\n"
"POT-Creation-Date: 2026-01-22 14:15+0500\n" "POT-Creation-Date: 2025-07-13 14:15+0500\n"
"PO-Revision-Date: 2022-01-01 20:09+0100\n" "PO-Revision-Date: 2022-01-01 20:09+0100\n"
"Last-Translator: Heimen Stoffels <vistausss@fastmail.com>\n" "Last-Translator: Heimen Stoffels <vistausss@fastmail.com>\n"
"Language-Team: \n" "Language-Team: \n"
@ -80,18 +80,6 @@ msgstr ""
msgid "Docs icon size:" msgid "Docs icon size:"
msgstr "" msgstr ""
#: ../contents/ui/ConfigGeneral.qml
msgid "Show recent documents:"
msgstr ""
#: ../contents/ui/ConfigGeneral.qml
msgid "Enable"
msgstr ""
#: ../contents/ui/ConfigGeneral.qml
msgid "Show descriptions:"
msgstr ""
#: ../contents/ui/ConfigGeneral.qml #: ../contents/ui/ConfigGeneral.qml
msgid "Menu position" msgid "Menu position"
msgstr "" msgstr ""

View File

@ -7,8 +7,8 @@
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: dittomenu\n" "Project-Id-Version: dittomenu\n"
"Report-Msgid-Bugs-To: https://github.com/kurojs/Menu-11-Enhanced\n" "Report-Msgid-Bugs-To: https://github.com/prateekmedia/Menu11\n"
"POT-Creation-Date: 2026-01-22 14:15+0500\n" "POT-Creation-Date: 2025-07-13 14:15+0500\n"
"PO-Revision-Date: 2022-04-05 10:40+0100\n" "PO-Revision-Date: 2022-04-05 10:40+0100\n"
"Last-Translator: Krzysztof Korab <korapps@outlook.com>\n" "Last-Translator: Krzysztof Korab <korapps@outlook.com>\n"
"Language-Team: \n" "Language-Team: \n"
@ -79,18 +79,6 @@ msgstr ""
msgid "Docs icon size:" msgid "Docs icon size:"
msgstr "" msgstr ""
#: ../contents/ui/ConfigGeneral.qml
msgid "Show recent documents:"
msgstr ""
#: ../contents/ui/ConfigGeneral.qml
msgid "Enable"
msgstr ""
#: ../contents/ui/ConfigGeneral.qml
msgid "Show descriptions:"
msgstr ""
#: ../contents/ui/ConfigGeneral.qml #: ../contents/ui/ConfigGeneral.qml
msgid "Menu position" msgid "Menu position"
msgstr "" msgstr ""

View File

@ -1,4 +1,4 @@
#!/bin/sh #!/bin/bash
# Version 9 # Version 9
# Requires plasmoidviewer v5.13.0 # Requires plasmoidviewer v5.13.0

View File

@ -7,8 +7,8 @@
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: dittomenu\n" "Project-Id-Version: dittomenu\n"
"Report-Msgid-Bugs-To: https://github.com/kurojs/Menu-11-Enhanced\n" "Report-Msgid-Bugs-To: https://github.com/prateekmedia/Menu11\n"
"POT-Creation-Date: 2026-01-22 14:15+0500\n" "POT-Creation-Date: 2025-07-13 14:15+0500\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -79,18 +79,6 @@ msgstr ""
msgid "Docs icon size:" msgid "Docs icon size:"
msgstr "" msgstr ""
#: ../contents/ui/ConfigGeneral.qml
msgid "Show recent documents:"
msgstr ""
#: ../contents/ui/ConfigGeneral.qml
msgid "Enable"
msgstr ""
#: ../contents/ui/ConfigGeneral.qml
msgid "Show descriptions:"
msgstr ""
#: ../contents/ui/ConfigGeneral.qml #: ../contents/ui/ConfigGeneral.qml
msgid "Menu position" msgid "Menu position"
msgstr "Posição do menu" msgstr "Posição do menu"

View File

@ -7,8 +7,8 @@
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: dittomenu\n" "Project-Id-Version: dittomenu\n"
"Report-Msgid-Bugs-To: https://github.com/kurojs/Menu-11-Enhanced\n" "Report-Msgid-Bugs-To: https://github.com/prateekmedia/Menu11\n"
"POT-Creation-Date: 2026-01-22 14:15+0500\n" "POT-Creation-Date: 2025-07-13 14:15+0500\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: Edward Karate <edward.karate@ya.ru>\n" "Last-Translator: Edward Karate <edward.karate@ya.ru>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -79,18 +79,6 @@ msgstr "Огромный"
msgid "Docs icon size:" msgid "Docs icon size:"
msgstr "Размер знаков документов" msgstr "Размер знаков документов"
#: ../contents/ui/ConfigGeneral.qml
msgid "Show recent documents:"
msgstr "Показать последние документы"
#: ../contents/ui/ConfigGeneral.qml
msgid "Enable"
msgstr "Разрешить"
#: ../contents/ui/ConfigGeneral.qml
msgid "Show descriptions:"
msgstr "Показать описание"
#: ../contents/ui/ConfigGeneral.qml #: ../contents/ui/ConfigGeneral.qml
msgid "Menu position" msgid "Menu position"
msgstr "Положение меню" msgstr "Положение меню"
@ -170,3 +158,77 @@ msgstr "Последние документы"
#: ../contents/ui/MenuRepresentation.qml #: ../contents/ui/MenuRepresentation.qml
msgid "Show more" msgid "Show more"
msgstr "Показать больше" msgstr "Показать больше"
#~ msgid "Ditto Menu"
#~ msgstr "Ditto Menu"
#~ msgid "A configurable launcher menu"
#~ msgstr "Настраиваемое меню приложений"
#~ msgid "On The Current Activity"
#~ msgstr "О текущей деятельности"
#~ msgid "Show In Favorites"
#~ msgstr "Показать в Избранных"
#~ msgctxt "@item:inmenu Open icon chooser dialog"
#~ msgid "Choose..."
#~ msgstr "Выбрать..."
#~ msgid "Show favorites first"
#~ msgstr "Сначала показать избранные"
#~ msgid "Edit Applications..."
#~ msgstr "Редактировать меню..."
#~ msgid "Leave ..."
#~ msgstr "Выход ..."
#~ msgid "Hi, "
#~ msgstr "Привет, "
#~ msgid "Favorites"
#~ msgstr "Избранные"
#~ msgctxt "@action"
#~ msgid "Lock Screen"
#~ msgstr "Заблокировать"
#~ msgid "Behavior"
#~ msgstr "Поведение"
#~ msgid "Show applications as:"
#~ msgstr "Показывать приложения в виде:"
#~ msgid "Name only"
#~ msgstr "Только имя"
#~ msgid "Description only"
#~ msgstr "Только описание"
#~ msgid "Name (Description)"
#~ msgstr "Имя (Описание)"
#~ msgid "Description (Name)"
#~ msgstr "Описание (Имя)"
#~ msgid "Menu position:"
#~ msgstr "Позиция меню"
#~ msgid "Search"
#~ msgstr "Поиск"
#~ msgid "Expand search to bookmarks, files and emails"
#~ msgstr "Расширить поиск по закладкам, файлам и почте"
#~ msgid "Show user icon"
#~ msgstr "Показать иконку пользователя"
#~ msgid "Grid"
#~ msgstr "Сетка"
#~ msgid "Number of columns in grid"
#~ msgstr "Количество колонок в сетке"
#~ msgid "Number of rows in grid"
#~ msgstr "Количество строк в сетке"

View File

@ -1,5 +1,5 @@
# Translation of Menu11 in LANGUAGE # Translation of Menu11 in LANGUAGE
# Copyright (C) 2026 # Copyright (C) 2025
# This file is distributed under the same license as the Menu11 package. # This file is distributed under the same license as the Menu11 package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
# #
@ -7,8 +7,8 @@
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Menu11\n" "Project-Id-Version: Menu11\n"
"Report-Msgid-Bugs-To: https://github.com/kurojs/Menu-11-Enhanced\n" "Report-Msgid-Bugs-To: https://github.com/prateekmedia/Menu11\n"
"POT-Creation-Date: 2026-01-22 14:15+0500\n" "POT-Creation-Date: 2025-07-13 14:15+0500\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -79,18 +79,6 @@ msgstr ""
msgid "Docs icon size:" msgid "Docs icon size:"
msgstr "" msgstr ""
#: ../contents/ui/ConfigGeneral.qml
msgid "Show recent documents:"
msgstr ""
#: ../contents/ui/ConfigGeneral.qml
msgid "Enable"
msgstr ""
#: ../contents/ui/ConfigGeneral.qml
msgid "Show descriptions:"
msgstr ""
#: ../contents/ui/ConfigGeneral.qml #: ../contents/ui/ConfigGeneral.qml
msgid "Menu position" msgid "Menu position"
msgstr "" msgstr ""

View File

@ -7,8 +7,8 @@
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: dittomenu\n" "Project-Id-Version: dittomenu\n"
"Report-Msgid-Bugs-To: https://github.com/kurojs/Menu-11-Enhanced\n" "Report-Msgid-Bugs-To: https://github.com/prateekmedia/Menu11\n"
"POT-Creation-Date: 2026-01-22 14:15+0500\n" "POT-Creation-Date: 2025-07-13 14:15+0500\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -82,18 +82,6 @@ msgstr ""
msgid "Docs icon size:" msgid "Docs icon size:"
msgstr "" msgstr ""
#: ../contents/ui/ConfigGeneral.qml
msgid "Show recent documents:"
msgstr ""
#: ../contents/ui/ConfigGeneral.qml
msgid "Enable"
msgstr ""
#: ../contents/ui/ConfigGeneral.qml
msgid "Show descriptions:"
msgstr ""
#: ../contents/ui/ConfigGeneral.qml #: ../contents/ui/ConfigGeneral.qml
msgid "Menu position" msgid "Menu position"
msgstr "" msgstr ""