add managedLayout to dockView

--this way a dock can belong to specific Layout
and this could be changed runtime in a multi-layout
runtime environment
pull/2/head
Michail Vourlakos 7 years ago
parent f81433be8b
commit 274c6a653d

@ -1272,6 +1272,21 @@ void DockView::setShadow(int shadow)
emit shadowChanged();
}
Layout *DockView::managedLayout() const
{
return m_managedLayout;
}
void DockView::setManagedLayout(Layout *layout)
{
if (m_managedLayout == layout) {
return;
}
m_managedLayout = layout;
emit managedLayoutChanged();
}
void DockView::hideDockDuringLocationChange(int goToLocation)
{
m_goToLocation = static_cast<Plasma::Types::Location>(goToLocation);

@ -23,6 +23,7 @@
#include "plasmaquick/containmentview.h"
#include "plasmaquick/configview.h"
#include "layout.h"
#include "visibilitymanager.h"
#include "../liblattedock/dock.h"
@ -50,6 +51,8 @@ class PlasmaShellSurface;
namespace Latte {
class Layout;
class DockView : public PlasmaQuick::ContainmentView {
Q_OBJECT
Q_PROPERTY(bool alternativesIsShown READ alternativesIsShown NOTIFY alternativesIsShownChanged)
@ -81,6 +84,7 @@ class DockView : public PlasmaQuick::ContainmentView {
Q_PROPERTY(Plasma::FrameSvg::EnabledBorders enabledBorders READ enabledBorders NOTIFY enabledBordersChanged)
Q_PROPERTY(VisibilityManager *visibility READ visibility NOTIFY visibilityChanged)
Q_PROPERTY(Layout *managedLayout READ managedLayout WRITE setManagedLayout NOTIFY managedLayoutChanged)
Q_PROPERTY(QQmlListProperty<QScreen> screens READ screens)
Q_PROPERTY(QRect effectsArea READ effectsArea WRITE setEffectsArea NOTIFY effectsAreaChanged)
@ -169,6 +173,9 @@ public:
VisibilityManager *visibility() const;
Layout *managedLayout() const;
void setManagedLayout(Layout *layout);
QQmlListProperty<QScreen> screens();
static int countScreens(QQmlListProperty<QScreen> *property);
static QScreen *atScreens(QQmlListProperty<QScreen> *property, int index);
@ -241,6 +248,7 @@ signals:
void widthChanged();
void heightChanged();
void localGeometryChanged();
void managedLayoutChanged();
void maxLengthChanged();
void maxThicknessChanged();
void normalThicknessChanged();
@ -308,6 +316,7 @@ private:
QQuickItem *m_appletContainsMethodItem{nullptr};
QPointer<PlasmaQuick::ConfigView> m_configView;
QPointer<VisibilityManager> m_visibility;
QPointer<Layout> m_managedLayout;
QPointer<QScreen> m_screenToFollow;
QString m_screenToFollowId;

@ -27,6 +27,7 @@
#include <QQuickItem>
#include <QMetaMethod>
#include <QTimer>
class DockCorona;
class DockView;

@ -457,6 +457,7 @@ void Layout::addDock(Plasma::Containment *containment, bool forceLoading, int ex
auto dockView = new DockView(m_corona, nextScreen, dockWin);
dockView->init();
dockView->setContainment(containment);
dockView->setManagedLayout(this);
//! force this special dock case to become primary
//! even though it isnt

@ -31,6 +31,7 @@
namespace Latte {
class DockCorona;
class DockView;
//! This class is responsible to hold the settings for a specific layout.
//! It also updates always the relevant layout configuration concerning

@ -46,8 +46,7 @@ Image{
property rect efGeometry
property string layoutColor: universalLayoutManager && universalLayoutManager.currentLayout ?
universalLayoutManager.currentLayout.color : "blue"
property string layoutColor: root.dockManagedLayout ? root.dockManagedLayout.color : "blue"
layer.enabled: true
layer.effect: DropShadow {

@ -244,6 +244,7 @@ DragDrop.DropArea {
property QtObject dock
property QtObject universalSettings
property QtObject universalLayoutManager
property QtObject dockManagedLayout: dock && dock.managedLayout ? dock.managedLayout : null
// TO BE DELETED, if not needed: property int counter:0;

@ -197,8 +197,7 @@ Item {
property alias tasksCount: tasksModel.count
property alias hoveredIndex: icList.hoveredIndex
property QtObject currentLayout : latteDock && latteDock.universalLayoutManager && latteDock.universalLayoutManager.currentLayout ?
latteDock.universalLayoutManager.currentLayout : null
property QtObject currentLayout : latteDock && latteDock.dockManagedLayout ? latteDock.dockManagedLayout : null
property Item latteDock: null
//END Now Dock Panel properties
@ -566,7 +565,7 @@ Item {
&& (latteDock.launchersGroup === Latte.Dock.LayoutLaunchers
|| latteDock.launchersGroup === Latte.Dock.GlobalLaunchers)) {
if (latteDock.launchersGroup === Latte.Dock.LayoutLaunchers) {
tasksModel.launcherList = latteDock.universalLayoutManager.currentLayout.launchers;
tasksModel.launcherList = latteDock.dockManagedLayout.launchers;
} else if (latteDock.launchersGroup === Latte.Dock.GlobalLaunchers) {
tasksModel.launcherList = latteDock.universalSettings.launchers;
}
@ -582,12 +581,12 @@ Item {
onLauncherListChanged: {
if (currentLayout) {
if (latteDock && latteDock.universalLayoutManager
&& latteDock.universalLayoutManager.currentLayout && latteDock.universalSettings
&& latteDock.dockManagedLayout && latteDock.universalSettings
&& (latteDock.launchersGroup === Latte.Dock.LayoutLaunchers
|| latteDock.launchersGroup === Latte.Dock.GlobalLaunchers)) {
if (latteDock.launchersGroup === Latte.Dock.LayoutLaunchers) {
latteDock.universalLayoutManager.currentLayout.launchers = launcherList;
latteDock.dockManagedLayout.launchers = launcherList;
} else if (latteDock.launchersGroup === Latte.Dock.GlobalLaunchers) {
latteDock.universalSettings.launchers = launcherList;
}
@ -626,7 +625,7 @@ Item {
|| latteDock.launchersGroup === Latte.Dock.GlobalLaunchers)) {
if (latteDock.launchersGroup === Latte.Dock.LayoutLaunchers) {
launcherList = latteDock.universalLayoutManager.currentLayout.launchers;
launcherList = latteDock.dockManagedLayout.launchers;
} else if (latteDock.launchersGroup === Latte.Dock.GlobalLaunchers) {
launcherList = latteDock.universalSettings.launchers;
}

Loading…
Cancel
Save