first commit for multi on position shortcuts

pull/17/head
Michail Vourlakos 5 years ago
parent 3c73bff0ac
commit f32937ca6d

@ -300,7 +300,7 @@ bool GlobalShortcuts::activateLatteEntry(Latte::View *view, int index, Qt::Key m
bool activation{modifier == static_cast<Qt::Key>(Qt::META)};
bool newInstance{!activation};
int appletId = view->extendedInterface()->appletIdForIndex(index);
int appletId = view->extendedInterface()->appletIdForVisualIndex(index);
bool hasPopUp {(appletId>-1 && view->extendedInterface()->appletIsExpandable(appletId))};
if (view->visibility()->isHidden() && hasPopUp) {

@ -375,7 +375,7 @@ bool ContainmentInterface::showShortcutBadges(const bool showLatteShortcuts, con
return m_showShortcutsMethod.invoke(m_mainItem, Q_ARG(QVariant, showLatteShortcuts), Q_ARG(QVariant, true), Q_ARG(QVariant, showMeta), Q_ARG(QVariant, appLauncherId));
}
int ContainmentInterface::appletIdForIndex(const int index)
int ContainmentInterface::appletIdForVisualIndex(const int index)
{
identifyMainItem();

@ -83,7 +83,7 @@ public:
bool updateBadgeForLatteTask(const QString identifier, const QString value);
int applicationLauncherId() const;
int appletIdForIndex(const int index);
int appletIdForVisualIndex(const int index);
QAbstractListModel *latteTasksModel() const;
QAbstractListModel *plasmaTasksModel() const;

@ -0,0 +1,29 @@
/*
* Copyright 2019 Michail Vourlakos <mvourlakos@gmail.com>
*
* This file is part of Latte-Dock
*
* Latte-Dock is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of
* the License, or (at your option) any later version.
*
* Latte-Dock is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
import QtQuick 2.8
import org.kde.plasma.core 2.0 as PlasmaCore
import org.kde.plasma.plasmoid 2.0
import "./privates" as Ability
Ability.PositionShortcutsPrivate {
}

@ -0,0 +1,115 @@
/*
* Copyright 2020 Michail Vourlakos <mvourlakos@gmail.com>
*
* This file is part of Latte-Dock
*
* Latte-Dock is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of
* the License, or (at your option) any later version.
*
* Latte-Dock is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
import QtQuick 2.7
Item {
objectName: "PositionShortcuts"
property bool unifiedGlobalShortcuts: true
property bool showLatteShortcutBadges: false
property bool showAppletShortcutBadges: false
property bool showMetaBadge: false
property int applicationLauncherId: -1
signal sglActivateEntryAtIndex(int entryIndex);
signal sglNewInstanceForEntryAtIndex(int entryIndex);
//! this is called from globalshortcuts c++ side
function setShowAppletShortcutBadges(showLatteShortcuts, showShortcuts, showMeta, applicationLauncher){
if (latteApplet) {
var base = unifiedGlobalShortcuts ? parabolicManager.pseudoAppletIndex(latteAppletPos) : 1;
latteApplet.setTasksBaseIndex(base - 1);
latteApplet.setShowTaskShortcutBadges(showLatteShortcuts);
}
showLatteShortcutBadges = showLatteShortcuts;
showAppletShortcutBadges = showShortcuts;
showMetaBadge = showMeta;
applicationLauncherId = applicationLauncher;
if (latteApplet) {
latteApplet.parabolicManager.updateTasksEdgesIndexes();
}
}
//! this is called from Latte::View::ContainmentInterface
function activateEntryAtIndex(index) {
if (typeof index !== "number") {
return;
}
if (latteApplet) {
var base = unifiedGlobalShortcuts ? parabolicManager.pseudoAppletIndex(latteAppletPos) : 1;
latteApplet.setTasksBaseIndex(base - 1);
latteApplet.parabolicManager.updateTasksEdgesIndexes();
}
signalActivateEntryAtIndex(index);
}
//! this is called from Latte::View::ContainmentInterface
function newInstanceForEntryAtIndex(index) {
if (typeof index !== "number") {
return;
}
if (latteApplet) {
var base = unifiedGlobalShortcuts ? parabolicManager.pseudoAppletIndex(latteAppletPos) : 1;
latteApplet.setTasksBaseIndex(base - 1);
latteApplet.parabolicManager.updateTasksEdgesIndexes();
}
signalNewInstanceForEntryAtIndex(index);
}
//! this is called from Latte::View::ContainmentInterface
function appletIdForIndex(index) {
if (!root.unifiedGlobalShortcuts || parabolicManager.pseudoIndexBelongsToLatteApplet(index)) {
return -1;
}
for (var i=0; i<layoutsContainer.startLayout.children.length; ++i){
var appletItem = layoutsContainer.startLayout.children[i];
if (appletItem && appletItem.refersEntryIndex(index)) {
return appletItem.applet.id;
}
}
for (var j=0; j<layoutsContainer.mainLayout.children.length; ++j){
var appletItem2 = layoutsContainer.mainLayout.children[j];
if (appletItem2 && appletItem2.refersEntryIndex(index)) {
return appletItem2.applet.id;
}
}
for (var k=0; j<layoutsContainer.endLayout.children.length; ++k){
var appletItem3 = layoutsContainer.endLayout.children[k];
if (appletItem3 && appletItem3.refersEntryIndex(index)) {
return appletItem3.applet.id;
}
}
return -1;
}
}

@ -33,7 +33,6 @@ import org.kde.latte.components 1.0 as LatteComponents
import org.kde.latte.private.app 0.1 as LatteApp
import org.kde.latte.private.containment 0.1 as LatteContainment
import "abilities" as Ability
import "applet" as Applet
import "colorizer" as Colorizer
@ -55,8 +54,6 @@ Item {
signal destroyInternalViewSplitters();
signal emptyAreasWheel(QtObject wheel);
signal separatorsUpdated();
signal signalActivateEntryAtIndex(int entryIndex);
signal signalNewInstanceForEntryAtIndex(int entryIndex);
signal updateEffectsArea();
signal updateIndexes();
@ -241,10 +238,6 @@ Item {
property bool mouseWheelActions: plasmoid.configuration.mouseWheelActions
property bool onlyAddingStarup: true //is used for the initialization phase in startup where there aren't removals, this variable provides a way to grow icon size
property bool shrinkThickMargins: plasmoid.configuration.shrinkThickMargins
property bool showLatteShortcutBadges: false
property bool showAppletShortcutBadges: false
property bool showMetaBadge: false
property int applicationLauncherId: -1
//FIXME: possibly this is going to be the default behavior, this user choice
//has been dropped from the Dock Configuration Window
@ -434,7 +427,6 @@ Item {
property bool dockIsHidden: latteView && latteView.visibility ? latteView.visibility.isHidden : true
property bool titleTooltips: plasmoid.configuration.titleTooltips
property bool unifiedGlobalShortcuts: true
property int tasksCount: latteApplet ? latteApplet.tasksCount : 0
@ -1001,88 +993,6 @@ Item {
titleTooltipDialog.hide(debug);
}
//! this is called from globalshortcuts c++ side
function setShowAppletShortcutBadges(showLatteShortcuts, showShortcuts, showMeta, applicationLauncher){
if (latteApplet) {
var base = unifiedGlobalShortcuts ? parabolicManager.pseudoAppletIndex(latteAppletPos) : 1;
latteApplet.setTasksBaseIndex(base - 1);
latteApplet.setShowTaskShortcutBadges(showLatteShortcuts);
}
showLatteShortcutBadges = showLatteShortcuts;
showAppletShortcutBadges = showShortcuts;
showMetaBadge = showMeta;
applicationLauncherId = applicationLauncher;
if (latteApplet) {
latteApplet.parabolicManager.updateTasksEdgesIndexes();
}
}
//! this is called from Latte::View::ContainmentInterface
function activateEntryAtIndex(index) {
if (typeof index !== "number") {
return;
}
if (latteApplet) {
var base = unifiedGlobalShortcuts ? parabolicManager.pseudoAppletIndex(latteAppletPos) : 1;
latteApplet.setTasksBaseIndex(base - 1);
latteApplet.parabolicManager.updateTasksEdgesIndexes();
}
signalActivateEntryAtIndex(index);
}
//! this is called from Latte::View::ContainmentInterface
function newInstanceForEntryAtIndex(index) {
if (typeof index !== "number") {
return;
}
if (latteApplet) {
var base = unifiedGlobalShortcuts ? parabolicManager.pseudoAppletIndex(latteAppletPos) : 1;
latteApplet.setTasksBaseIndex(base - 1);
latteApplet.parabolicManager.updateTasksEdgesIndexes();
}
signalNewInstanceForEntryAtIndex(index);
}
//! this is called from Latte::View::ContainmentInterface
function appletIdForIndex(index) {
if (!root.unifiedGlobalShortcuts || parabolicManager.pseudoIndexBelongsToLatteApplet(index)) {
return -1;
}
for (var i=0; i<layoutsContainer.startLayout.children.length; ++i){
var appletItem = layoutsContainer.startLayout.children[i];
if (appletItem && appletItem.refersEntryIndex(index)) {
return appletItem.applet.id;
}
}
for (var j=0; j<layoutsContainer.mainLayout.children.length; ++j){
var appletItem2 = layoutsContainer.mainLayout.children[j];
if (appletItem2 && appletItem2.refersEntryIndex(index)) {
return appletItem2.applet.id;
}
}
for (var k=0; j<layoutsContainer.endLayout.children.length; ++k){
var appletItem3 = layoutsContainer.endLayout.children[k];
if (appletItem3 && appletItem3.refersEntryIndex(index)) {
return appletItem3.applet.id;
}
}
return -1;
}
function showTooltipLabel(taskItem, text){
titleTooltipDialog.show(taskItem, text);
}

Loading…
Cancel
Save