diff --git a/app/nowdockconfigview.cpp b/app/dockconfigview.cpp
similarity index 81%
rename from app/nowdockconfigview.cpp
rename to app/dockconfigview.cpp
index a65b6f7ba..e67c33b27 100644
--- a/app/nowdockconfigview.cpp
+++ b/app/dockconfigview.cpp
@@ -17,9 +17,9 @@
* along with this program. If not, see .
*/
-#include "nowdockconfigview.h"
-#include "nowdockview.h"
-#include "nowdockcorona.h"
+#include "dockconfigview.h"
+#include "dockview.h"
+#include "dockcorona.h"
#include
#include
@@ -30,11 +30,11 @@
#include
#include
-#include
+#include
namespace Latte {
-NowDockConfigView::NowDockConfigView(Plasma::Containment *containment, NowDockView *dockView, QWindow *parent)
+DockConfigView::DockConfigView(Plasma::Containment *containment, DockView *dockView, QWindow *parent)
: PlasmaQuick::ConfigView(containment, parent), m_containment(containment), m_dockView(dockView)
{
m_deleterTimer.setSingleShot(true);
@@ -54,13 +54,14 @@ NowDockConfigView::NowDockConfigView(Plasma::Containment *containment, NowDockVi
syncSlideEffect();
});
- connect(containment, &Plasma::Containment::immutabilityChanged, this, &NowDockConfigView::immutabilityChanged);
+ connect(containment, &Plasma::Containment::immutabilityChanged, this, &DockConfigView::immutabilityChanged);
- NowDockCorona *corona = dynamic_cast(m_containment->corona());
+ //! NOTE: This is not necesesary if focusOutEvent is implemented
+ /*NowDockCorona *corona = qobject_cast(m_containment->corona());
if (corona) {
- connect(corona, &NowDockCorona::configurationShown, this, &NowDockConfigView::configurationShown);
- }
+ connect(corona, &NowDockCorona::configurationShown, this, &DockConfigView::configurationShown);
+ }*/
/* connect(containment, &Plasma::Containment::immutabilityChanged
, [&](Plasma::Types::ImmutabilityType type) {
@@ -69,27 +70,27 @@ NowDockConfigView::NowDockConfigView(Plasma::Containment *containment, NowDockVi
});*/
}
-NowDockConfigView::~NowDockConfigView()
+DockConfigView::~DockConfigView()
{
}
-void NowDockConfigView::init()
+void DockConfigView::init()
{
setDefaultAlphaBuffer(true);
setColor(Qt::transparent);
rootContext()->setContextProperty(QStringLiteral("dock"), m_dockView);
engine()->rootContext()->setContextObject(new KLocalizedContext(this));
- auto source = QUrl::fromLocalFile(m_containment->corona()->kPackage().filePath("nowdockconfigurationui"));
+ auto source = QUrl::fromLocalFile(m_containment->corona()->kPackage().filePath("lattedockconfigurationui"));
setSource(source);
syncSlideEffect();
}
-inline Qt::WindowFlags NowDockConfigView::wFlags() const
+inline Qt::WindowFlags DockConfigView::wFlags() const
{
return (flags() | Qt::FramelessWindowHint | Qt::WindowStaysOnTopHint) & ~Qt::WindowDoesNotAcceptFocus;
}
-void NowDockConfigView::syncGeometry()
+void DockConfigView::syncGeometry()
{
if (!m_containment || !rootObject())
return;
@@ -137,7 +138,7 @@ void NowDockConfigView::syncGeometry()
}
}
-void NowDockConfigView::syncSlideEffect()
+void DockConfigView::syncSlideEffect()
{
if (!m_containment)
return;
@@ -169,7 +170,7 @@ void NowDockConfigView::syncSlideEffect()
KWindowEffects::slideWindow(winId(), slideLocation, -1);
}
-void NowDockConfigView::showEvent(QShowEvent *ev)
+void DockConfigView::showEvent(QShowEvent *ev)
{
KWindowSystem::setType(winId(), NET::Dock);
setFlags(wFlags());
@@ -183,8 +184,6 @@ void NowDockConfigView::showEvent(QShowEvent *ev)
if (m_containment)
m_containment->setUserConfiguring(true);
- // m_dockView->visibility()->forceShow(true);
- // m_dockView->visibility()->showImmediately();
m_screenSyncTimer.start();
m_deleterTimer.stop();
@@ -192,17 +191,16 @@ void NowDockConfigView::showEvent(QShowEvent *ev)
//trigger showing configuration window through corona
//in order to hide all alternative configuration windows
- NowDockCorona *corona = dynamic_cast(m_containment->corona());
+ //! NOTE: This is not necesesary if focusOutEvent is implemented
+// NowDockCorona *corona = qobject_cast(m_containment->corona());
- if (corona) {
- emit corona->configurationShown(this);
- }
+// if (corona) {
+// emit corona->configurationShown(this);
+// }
}
-void NowDockConfigView::hideEvent(QHideEvent *ev)
+void DockConfigView::hideEvent(QHideEvent *ev)
{
- // m_dockView->visibility()->forceShow(false);
- // m_dockView->visibility()->restore();
m_deleterTimer.start();
if (m_containment) {
@@ -213,27 +211,25 @@ void NowDockConfigView::hideEvent(QHideEvent *ev)
ConfigView::hideEvent(ev);
}
-void NowDockConfigView::focusOutEvent(QFocusEvent *ev)
+void DockConfigView::focusOutEvent(QFocusEvent *ev)
{
- //FIXME: I can understand why we need to hide on focus out
Q_UNUSED(ev);
const auto *focusWindow = qGuiApp->focusWindow();
if (focusWindow && focusWindow->flags().testFlag(Qt::Popup))
return;
-
- // hide();
+ hide();
}
-void NowDockConfigView::configurationShown(PlasmaQuick::ConfigView *configView)
+void DockConfigView::configurationShown(PlasmaQuick::ConfigView *configView)
{
if ((configView != this) && isVisible()) {
hide();
}
}
-void NowDockConfigView::immutabilityChanged(Plasma::Types::ImmutabilityType type)
+void DockConfigView::immutabilityChanged(Plasma::Types::ImmutabilityType type)
{
if (type != Plasma::Types::Mutable && isVisible()) {
hide();
diff --git a/app/nowdockconfigview.h.autosave b/app/dockconfigview.h
similarity index 90%
rename from app/nowdockconfigview.h.autosave
rename to app/dockconfigview.h
index 04ceed6c6..5351919f3 100644
--- a/app/nowdockconfigview.h.autosave
+++ b/app/dockconfigview.h
@@ -36,13 +36,13 @@ class Types;
namespace Latte {
-class NowDockView;
+class DockView;
class DockConfigView : public PlasmaQuick::ConfigView {
Q_OBJECT
public:
- DockConfigView(Plasma::Containment *containment, NowDockView *dockView, QWindow *parent = nullptr);
+ DockConfigView(Plasma::Containment *containment, DockView *dockView, QWindow *parent = nullptr);
~DockConfigView() override;
void init() override;
@@ -56,13 +56,13 @@ protected:
void syncGeometry();
void syncSlideEffect();
-private Q_SLOTS:
+private slots:
void immutabilityChanged(Plasma::Types::ImmutabilityType type);
void configurationShown(PlasmaQuick::ConfigView *configView);
private:
Plasma::Containment *m_containment{nullptr};
- QPointer m_dockView;
+ QPointer m_dockView;
QTimer m_deleterTimer;
QTimer m_screenSyncTimer;
diff --git a/app/nowdockcorona.cpp b/app/dockcorona.cpp
similarity index 84%
rename from app/nowdockcorona.cpp
rename to app/dockcorona.cpp
index 89a88c7ac..689521b1f 100644
--- a/app/nowdockcorona.cpp
+++ b/app/dockcorona.cpp
@@ -19,31 +19,29 @@
* along with this program. If not, see
*/
-#include "nowdockcorona.h"
-#include "nowdockview.h"
-//#include "visibilitymanager.h"
-#include "packageplugins/shell/nowdockpackage.h"
+#include "dockcorona.h"
+#include "dockview.h"
+#include "packageplugins/shell/dockpackage.h"
#include
#include
#include
-#include
-#include
-
#include
#include
#include
+#include
+#include
#include
#include
#include
namespace Latte {
-NowDockCorona::NowDockCorona(QObject *parent)
+DockCorona::DockCorona(QObject *parent)
: Plasma::Corona(parent)
{
- KPackage::Package package(new NowDockPackage(this));
+ KPackage::Package package(new DockPackage(this));
if (!package.isValid()) {
qWarning() << staticMetaObject.className()
@@ -57,7 +55,7 @@ NowDockCorona::NowDockCorona(QObject *parent)
setKPackage(package);
qmlRegisterTypes();
- connect(this, &Corona::containmentAdded, this, &NowDockCorona::addDock);
+ connect(this, &Corona::containmentAdded, this, &DockCorona::addDock);
loadLayout();
@@ -75,7 +73,7 @@ NowDockCorona::NowDockCorona(QObject *parent)
addDock->setShortcutContext(Qt::ApplicationShortcut);*/
}
-NowDockCorona::~NowDockCorona()
+DockCorona::~DockCorona()
{
for (auto c : m_containments)
c->deleteLater();
@@ -83,12 +81,12 @@ NowDockCorona::~NowDockCorona()
qDebug() << "deleted" << this;
}
-int NowDockCorona::numScreens() const
+int DockCorona::numScreens() const
{
return qGuiApp->screens().count();
}
-QRect NowDockCorona::screenGeometry(int id) const
+QRect DockCorona::screenGeometry(int id) const
{
const auto screens = qGuiApp->screens();
@@ -99,7 +97,7 @@ QRect NowDockCorona::screenGeometry(int id) const
return qGuiApp->primaryScreen()->geometry();
}
-QRegion NowDockCorona::availableScreenRegion(int id) const
+QRegion DockCorona::availableScreenRegion(int id) const
{
const auto screens = qGuiApp->screens();
@@ -110,7 +108,7 @@ QRegion NowDockCorona::availableScreenRegion(int id) const
return qGuiApp->primaryScreen()->availableGeometry();
}
-QRect NowDockCorona::availableScreenRect(int id) const
+QRect DockCorona::availableScreenRect(int id) const
{
const auto screens = qGuiApp->screens();
@@ -121,7 +119,7 @@ QRect NowDockCorona::availableScreenRect(int id) const
return qGuiApp->primaryScreen()->availableGeometry();
}
-int NowDockCorona::primaryScreenId() const
+int DockCorona::primaryScreenId() const
{
const auto screens = qGuiApp->screens();
@@ -139,7 +137,7 @@ int NowDockCorona::primaryScreenId() const
return id;
}
-QList NowDockCorona::freeEdges(int screen) const
+QList DockCorona::freeEdges(int screen) const
{
using Plasma::Types;
QList edges{Types::BottomEdge, Types::LeftEdge,
@@ -148,7 +146,7 @@ QList NowDockCorona::freeEdges(int screen) const
//when screen=-1 is passed then the primaryScreenid is used
int fixedScreen = (screen == -1) ? primaryScreenId() : screen;
- for (const NowDockView *cont : m_containments) {
+ for (const DockView *cont : m_containments) {
if (cont && cont->containment()->screen() == fixedScreen)
edges.removeOne(cont->location());
}
@@ -156,7 +154,7 @@ QList NowDockCorona::freeEdges(int screen) const
return edges;
}
-int NowDockCorona::screenForContainment(const Plasma::Containment *containment) const
+int DockCorona::screenForContainment(const Plasma::Containment *containment) const
{
for (auto *view : m_containments) {
if (view && view->containment() && view->containment()->id() == containment->id())
@@ -167,7 +165,7 @@ int NowDockCorona::screenForContainment(const Plasma::Containment *containment)
return -1;
}
-void NowDockCorona::addDock(Plasma::Containment *containment)
+void DockCorona::addDock(Plasma::Containment *containment)
{
if (!containment || !containment->kPackage().isValid()) {
qWarning() << "the requested containment plugin can not be located or loaded";
@@ -182,24 +180,23 @@ void NowDockCorona::addDock(Plasma::Containment *containment)
return;
}
- foreach (NowDockView *dock, m_containments) {
+ foreach (DockView *dock, m_containments) {
if (dock->containment() == containment) {
return;
}
}
- qWarning() << "Adding dock for container...";
+ qDebug() << "Adding dock for container...";
- auto dockView = new NowDockView(this);
+ auto dockView = new DockView(this);
dockView->init();
dockView->setContainment(containment);
dockView->show();
- //dockView->showNormal();
m_containments.push_back(dockView);
}
-void NowDockCorona::loadDefaultLayout()
+void DockCorona::loadDefaultLayout()
{
qDebug() << "loading default layout";
@@ -241,9 +238,9 @@ void NowDockCorona::loadDefaultLayout()
defaultContainment->createApplet(QStringLiteral("org.kde.plasma.analogclock"));
}
-inline void NowDockCorona::qmlRegisterTypes() const
+inline void DockCorona::qmlRegisterTypes() const
{
- constexpr auto uri = "org.kde.nowdock.shell";
+ constexpr auto uri = "org.kde.latte.shell";
constexpr auto vMajor = 0;
constexpr auto vMinor = 2;
diff --git a/app/dockcorona.h b/app/dockcorona.h
new file mode 100644
index 000000000..7a21a02d6
--- /dev/null
+++ b/app/dockcorona.h
@@ -0,0 +1,49 @@
+#ifndef NOWDOCKCORONA_H
+#define NOWDOCKCORONA_H
+
+#include "dockview.h"
+
+#include
+
+namespace Plasma {
+class Corona;
+class Containment;
+class Types;
+}
+
+namespace Latte {
+
+class DockCorona : public Plasma::Corona {
+ Q_OBJECT
+
+public:
+ DockCorona(QObject *parent = nullptr);
+ virtual ~DockCorona();
+
+ int numScreens() const override;
+ QRect screenGeometry(int id) const override;
+ QRegion availableScreenRegion(int id) const override;
+ QRect availableScreenRect(int id) const override;
+
+ QList freeEdges(int screen) const;
+
+ int screenForContainment(const Plasma::Containment *containment) const override;
+
+ void addDock(Plasma::Containment *containment);
+
+public slots:
+ void loadDefaultLayout() override;
+
+signals:
+ void configurationShown(PlasmaQuick::ConfigView *configView);
+
+private:
+ void qmlRegisterTypes() const;
+ int primaryScreenId() const;
+
+ std::vector m_containments;
+};
+
+}
+
+#endif
diff --git a/app/nowdockview.cpp.autosave b/app/dockview.cpp
similarity index 81%
rename from app/nowdockview.cpp.autosave
rename to app/dockview.cpp
index 5383bd86c..8d4fa2b9e 100644
--- a/app/nowdockview.cpp.autosave
+++ b/app/dockview.cpp
@@ -19,9 +19,11 @@
* along with this program. If not, see
*/
-#include "nowdockview.h"
-#include "nowdockconfigview.h"
+#include "dockview.h"
+#include "dockcorona.h"
+#include "dockconfigview.h"
#include "visibilitymanager.h"
+#include "../liblattedock/windowsystem.h"
#include
#include
@@ -29,38 +31,23 @@
#include
#include
#include
-//#include
-#include
-#include
#include
#include
#include
-#include "nowdockcorona.h"
-
namespace Latte {
-NowDockView::NowDockView(Plasma::Corona *corona, QScreen *targetScreen)
+DockView::DockView(Plasma::Corona *corona, QScreen *targetScreen)
: PlasmaQuick::ContainmentView(corona),
m_corona(corona)
{
- KWindowSystem::setType(winId(), NET::Dock);
- KWindowSystem::setState(winId(), NET::SkipTaskbar | NET::SkipPager);
-
setVisible(false);
setTitle(corona->kPackage().metadata().name());
setIcon(QIcon::fromTheme(corona->kPackage().metadata().iconName()));
setResizeMode(QuickViewSharedEngine::SizeRootObjectToView);
setClearBeforeRendering(true);
- /* setFlags(Qt::FramelessWindowHint
- | Qt::WindowStaysOnTopHint
- | Qt::NoDropShadowWindowHint
- | Qt::WindowDoesNotAcceptFocus);*/
-
- // NETWinInfo winfo(QX11Info::connection(), winId(), winId(), 0, 0);
- // winfo.setAllowedActions(NET::ActionChangeDesktop);
if (targetScreen)
adaptToScreen(targetScreen);
@@ -73,7 +60,7 @@ NowDockView::NowDockView(Plasma::Corona *corona, QScreen *targetScreen)
m_lockGeometry.setSingleShot(true);
m_lockGeometry.setInterval(700);
- connect(this, &NowDockView::containmentChanged
+ connect(this, &DockView::containmentChanged
, this, [&]() {
if (!containment())
return;
@@ -85,14 +72,14 @@ NowDockView::NowDockView(Plasma::Corona *corona, QScreen *targetScreen)
}, Qt::DirectConnection);
}
-NowDockView::~NowDockView()
+DockView::~DockView()
{
}
-void NowDockView::init()
+void DockView::init()
{
- connect(this, &NowDockView::screenChanged
- , this, &NowDockView::adaptToScreen
+ connect(this, &DockView::screenChanged
+ , this, &DockView::adaptToScreen
, Qt::QueuedConnection);
@@ -100,18 +87,18 @@ void NowDockView::init()
initWindow();
});
- connect(this, &NowDockView::locationChanged, [&]() {
+ connect(this, &DockView::locationChanged, [&]() {
//! avoid glitches
m_timerGeometry.start();
});
- connect(KWindowSystem::self(), &KWindowSystem::compositingChanged
+ connect(&WindowSystem::self(), &WindowSystem::compositingChanged
, this, [&]() {
emit compositingChanged();
} , Qt::QueuedConnection);
- connect(this, &NowDockView::screenGeometryChanged
- , this, &NowDockView::updateDockPosition
+ connect(this, &DockView::screenGeometryChanged
+ , this, &DockView::updateDockPosition
, Qt::QueuedConnection);
connect(this, SIGNAL(widthChanged(int)), this, SIGNAL(widthChanged()));
@@ -120,9 +107,9 @@ void NowDockView::init()
rootContext()->setContextProperty(QStringLiteral("dock"), this);
engine()->rootContext()->setContextObject(new KLocalizedContext(this));
+ // FIXME: We need find a better solution
// engine()->rootContext()->setContextProperty(QStringLiteral("dock"), this);
- setSource(corona()->kPackage().filePath("nowdockui"));
-
+ setSource(corona()->kPackage().filePath("lattedockui"));
connect(this, SIGNAL(xChanged(int)), this, SLOT(updateDockPositionSlot()));
connect(this, SIGNAL(yChanged(int)), this, SLOT(updateDockPositionSlot()));
@@ -133,17 +120,17 @@ void NowDockView::init()
qDebug() << "SOURCE:" << source();
- initialize();
+ //initialize();
}
-void NowDockView::initialize()
+void DockView::initialize()
{
m_secondInitPass = true;
m_timerGeometry.start();
}
-void NowDockView::initWindow()
+void DockView::initWindow()
{
// m_visibility->updateVisibilityFlags();
@@ -160,7 +147,7 @@ void NowDockView::initWindow()
}
}
-void NowDockView::updateDockPositionSlot()
+void DockView::updateDockPositionSlot()
{
if (!m_lockGeometry.isActive()) {
m_lockGeometry.start();
@@ -168,7 +155,7 @@ void NowDockView::updateDockPositionSlot()
}
//!BEGIN SLOTS
-void NowDockView::adaptToScreen(QScreen *screen)
+void DockView::adaptToScreen(QScreen *screen)
{
setScreen(screen);
@@ -177,27 +164,24 @@ void NowDockView::adaptToScreen(QScreen *screen)
else
m_maxLength = screen->size().width();
-// KWindowSystem::setOnAllDesktops(winId(), true);
-// KWindowSystem::setType(winId(), NET::Dock);
-
if (containment())
containment()->reactToScreenChange();
m_timerGeometry.start();
}
-void NowDockView::addNewDock()
+void DockView::addNewDock()
{
- NowDockCorona *corona = dynamic_cast(m_corona);
+ DockCorona *corona = dynamic_cast(m_corona);
if (corona) {
corona->loadDefaultLayout();
}
}
-void NowDockView::removeDock()
+void DockView::removeDock()
{
- NowDockCorona *corona = dynamic_cast(m_corona);
+ DockCorona *corona = dynamic_cast(m_corona);
if (corona->containments().count() > 1) {
QAction *removeAct = containment()->actions()->action(QStringLiteral("remove"));
@@ -208,24 +192,24 @@ void NowDockView::removeDock()
}
}
-QQmlListProperty NowDockView::screens()
+QQmlListProperty DockView::screens()
{
return QQmlListProperty(this, nullptr, &countScreens, &atScreens);
}
-int NowDockView::countScreens(QQmlListProperty *property)
+int DockView::countScreens(QQmlListProperty *property)
{
Q_UNUSED(property)
return qGuiApp->screens().count();
}
-QScreen *NowDockView::atScreens(QQmlListProperty *property, int index)
+QScreen *DockView::atScreens(QQmlListProperty *property, int index)
{
Q_UNUSED(property)
return qGuiApp->screens().at(index);
}
-void NowDockView::showConfigurationInterface(Plasma::Applet *applet)
+void DockView::showConfigurationInterface(Plasma::Applet *applet)
{
if (!applet || !applet->containment())
return;
@@ -263,7 +247,7 @@ void NowDockView::showConfigurationInterface(Plasma::Applet *applet)
m_configView->requestActivate();
}
-void NowDockView::resizeWindow()
+void DockView::resizeWindow()
{
setVisible(true);
@@ -286,7 +270,7 @@ void NowDockView::resizeWindow()
}
}
-inline void NowDockView::updateDockPosition()
+inline void DockView::updateDockPosition()
{
if (!containment())
return;
@@ -337,7 +321,7 @@ inline void NowDockView::updateDockPosition()
qDebug() << "dock position:" << position;
}
-int NowDockView::currentThickness() const
+int DockView::currentThickness() const
{
if (containment()->formFactor() == Plasma::Types::Vertical) {
return m_maskArea.isNull() ? width() : m_maskArea.width();
@@ -346,9 +330,9 @@ int NowDockView::currentThickness() const
}
}
-bool NowDockView::compositing() const
+bool DockView::compositing() const
{
- return KWindowSystem::compositingActive();
+ return WindowSystem::self().compositingActive();
}
/*Candil::VisibilityManager *NowDockView::visibility()
@@ -356,12 +340,12 @@ bool NowDockView::compositing() const
return m_visibility.data();
}*/
-int NowDockView::maxThickness() const
+int DockView::maxThickness() const
{
return m_maxThickness;
}
-void NowDockView::setMaxThickness(int thickness)
+void DockView::setMaxThickness(int thickness)
{
if (m_maxThickness == thickness)
return;
@@ -371,12 +355,12 @@ void NowDockView::setMaxThickness(int thickness)
emit maxThicknessChanged();
}
-int NowDockView::length() const
+int DockView::length() const
{
return m_length;
}
-void NowDockView::setLength(int length)
+void DockView::setLength(int length)
{
if (m_length == length)
return;
@@ -390,12 +374,12 @@ void NowDockView::setLength(int length)
emit lengthChanged();
}
-int NowDockView::maxLength() const
+int DockView::maxLength() const
{
return m_maxLength;
}
-void NowDockView::setMaxLength(int maxLength)
+void DockView::setMaxLength(int maxLength)
{
if (m_maxLength == maxLength)
return;
@@ -405,12 +389,12 @@ void NowDockView::setMaxLength(int maxLength)
}
-QRect NowDockView::maskArea() const
+QRect DockView::maskArea() const
{
return m_maskArea;
}
-void NowDockView::setMaskArea(QRect area)
+void DockView::setMaskArea(QRect area)
{
if (m_maskArea == area) {
return;
@@ -438,12 +422,12 @@ void NowDockView::setAlignment(Dock::Alignment align)
emit alignmentChanged();
}
*/
-int NowDockView::offset() const
+int DockView::offset() const
{
return m_offset;
}
-void NowDockView::setOffset(int offset)
+void DockView::setOffset(int offset)
{
if (m_offset == offset)
return;
@@ -453,7 +437,7 @@ void NowDockView::setOffset(int offset)
emit offsetChanged();
}
-void NowDockView::updateOffset()
+void DockView::updateOffset()
{
if (!containment())
return;
@@ -468,12 +452,12 @@ void NowDockView::updateOffset()
emit offsetChanged();
}
-VisibilityManager *NowDockView::visibility()
+VisibilityManager *DockView::visibility()
{
return m_visibility;
}
-bool NowDockView::event(QEvent *e)
+bool DockView::event(QEvent *e)
{
emit eventTriggered(e);
@@ -489,7 +473,7 @@ bool NowDockView::event(QEvent *e)
ContainmentView::showEvent(ev);
}*/
-bool NowDockView::containmentContainsPosition(const QPointF &point) const
+bool DockView::containmentContainsPosition(const QPointF &point) const
{
QQuickItem *containmentItem = containment()->property("_plasma_graphicObject").value();
@@ -500,7 +484,7 @@ bool NowDockView::containmentContainsPosition(const QPointF &point) const
return QRectF(containmentItem->mapToScene(QPoint(0, 0)), QSizeF(containmentItem->width(), containmentItem->height())).contains(point);
}
-QPointF NowDockView::positionAdjustedForContainment(const QPointF &point) const
+QPointF DockView::positionAdjustedForContainment(const QPointF &point) const
{
QQuickItem *containmentItem = containment()->property("_plasma_graphicObject").value();
@@ -514,7 +498,7 @@ QPointF NowDockView::positionAdjustedForContainment(const QPointF &point) const
qBound(containmentRect.top() + 2, point.y(), containmentRect.bottom() - 2));
}
-QList NowDockView::freeEdges() const
+QList DockView::freeEdges() const
{
QList edges = m_corona->freeEdges(containment()->screen());
@@ -527,7 +511,7 @@ QList NowDockView::freeEdges() const
return edgesInt;
}
-void NowDockView::saveConfig()
+void DockView::saveConfig()
{
if (!containment())
return;
@@ -545,7 +529,7 @@ void NowDockView::saveConfig()
// writeEntry("alignment", static_cast(m_alignment));
}
-void NowDockView::restoreConfig()
+void DockView::restoreConfig()
{
if (!containment())
return;
diff --git a/app/nowdockview.h b/app/dockview.h
similarity index 96%
rename from app/nowdockview.h
rename to app/dockview.h
index a5c6010b2..92a67de00 100644
--- a/app/nowdockview.h
+++ b/app/dockview.h
@@ -22,8 +22,6 @@
#ifndef NOWDOCKVIEW_H
#define NOWDOCKVIEW_H
-#include
-
#include "plasmaquick/configview.h"
#include "plasmaquick/containmentview.h"
#include "visibilitymanager.h"
@@ -49,7 +47,7 @@ class VisibilityManager;
namespace Latte {
-class NowDockView : public PlasmaQuick::ContainmentView {
+class DockView : public PlasmaQuick::ContainmentView {
Q_OBJECT
Q_PROPERTY(bool compositing READ compositing NOTIFY compositingChanged)
@@ -65,8 +63,8 @@ class NowDockView : public PlasmaQuick::ContainmentView {
Q_PROPERTY(QQmlListProperty screens READ screens)
public:
- NowDockView(Plasma::Corona *corona, QScreen *targetScreen = nullptr);
- virtual ~NowDockView();
+ DockView(Plasma::Corona *corona, QScreen *targetScreen = nullptr);
+ virtual ~DockView();
void init();
@@ -139,7 +137,7 @@ signals:
void visibilityChanged();
void widthChanged();
-public Q_SLOTS:
+public slots:
void updateDockPositionSlot();
void updateAbsDockGeometry();
diff --git a/app/main.cpp b/app/main.cpp
index 3c8dcb02e..9f069c06e 100644
--- a/app/main.cpp
+++ b/app/main.cpp
@@ -1,32 +1,11 @@
-/*
- * Copyright 2014 Bhushan Shah
- * Copyright 2014 Marco Martin
- *
- * This program 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) version 3 or any later version
- * accepted by the membership of KDE e.V. (or its successor approved
- * by the membership of KDE e.V.), which shall act as a proxy
- * defined in Section 14 of version 3 of the license.
- *
- * This program 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
- */
-
-#include "nowdockcorona.h"
+#include "dockcorona.h"
#include
#include
#include
-#include
-#include
+#include
+#include
#include
#include
@@ -62,7 +41,7 @@ int main(int argc, char **argv)
//! set pattern for debug messages
//! [%{type}] [%{function}:%{line}] - %{message} [%{backtrace}]
qSetMessagePattern(QStringLiteral(
- CIGREEN "[%{type} " CGREEN "%{time h:mm:ss.zzzz}" CIGREEN "]" CNORMAL
+ CIGREEN "[%{type} " CGREEN "%{time h:mm:ss.zz}" CIGREEN "]" CNORMAL
#ifndef QT_NO_DEBUG
CIRED " [" CCYAN "%{function}" CIRED ":" CCYAN "%{line}" CIRED "]"
#endif
@@ -72,7 +51,7 @@ int main(int argc, char **argv)
"%{if-critical}\n%{backtrace depth=" DEPTH " separator=\"\n\"}%{endif}" CNORMAL));
// qputenv("QT_QUICK_CONTROLS_1_STYLE", "Desktop");
- Latte::NowDockCorona corona;
+ Latte::DockCorona corona;
return app.exec();
}
diff --git a/app/nowdockcorona.h b/app/nowdockcorona.h
deleted file mode 100644
index f9ad89c2c..000000000
--- a/app/nowdockcorona.h
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * Copyright 2014 Bhushan Shah
- * Copyright 2014 Marco Martin
- *
- * This program 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) version 3 or any later version
- * accepted by the membership of KDE e.V. (or its successor approved
- * by the membership of KDE e.V.), which shall act as a proxy
- * defined in Section 14 of version 3 of the license.
- *
- * This program 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
- */
-
-#ifndef NOWDOCKCORONA_H
-#define NOWDOCKCORONA_H
-
-#include
-
-#include "nowdockview.h"
-
-
-namespace Plasma {
-class Corona;
-class Containment;
-class Types;
-}
-
-namespace Latte {
-
-class NowDockCorona : public Plasma::Corona {
- Q_OBJECT
-
-public:
- NowDockCorona(QObject *parent = nullptr);
- ~NowDockCorona() override;
-
- int numScreens() const override;
- QRect screenGeometry(int id) const override;
- QRegion availableScreenRegion(int id) const override;
- QRect availableScreenRect(int id) const override;
-
- QList freeEdges(int screen) const;
-
- int screenForContainment(const Plasma::Containment *containment) const override;
-
- void addDock(Plasma::Containment *containment);
-
-public slots:
- void loadDefaultLayout() override;
-
-signals:
- void configurationShown(PlasmaQuick::ConfigView *configView);
-
-private:
- void qmlRegisterTypes() const;
- int primaryScreenId() const;
-
- std::vector m_containments;
-};
-
-}
-
-#endif
diff --git a/liblattedock/dock.h b/liblattedock/dock.h
index f331ee044..46fbc4549 100644
--- a/liblattedock/dock.h
+++ b/liblattedock/dock.h
@@ -33,19 +33,6 @@ public:
};
Q_ENUM(Alignment)
-
- enum VisibilityState {
- /*!
- * @brief the dock is visible
- */
- Visible = 1,
-
- /*!
- * @brief the dock is hidden
- */
- Hidden = 0
- };
- Q_ENUM(VisibilityState)
};
}//end of namespace
diff --git a/liblattedock/windowsystem.cpp b/liblattedock/windowsystem.cpp
index 06e6065cf..445ccf77f 100644
--- a/liblattedock/windowsystem.cpp
+++ b/liblattedock/windowsystem.cpp
@@ -7,7 +7,19 @@ namespace Latte {
WindowSystem::WindowSystem(QObject *parent) :
QObject(parent)
{
- connect(KWindowSystem::self(), SIGNAL(compositingChanged(bool)), this, SLOT(compositingChanged(bool)));
+ if (KWindowSystem::isPlatformWayland()) {
+ //! TODO: Wayland compositing
+ } else {
+ compositingChangedProxy(KWindowSystem::self()->compositingActive());
+ connect(KWindowSystem::self(), SIGNAL(compositingChanged(bool))
+ , this, SLOT(compositingChangedProxy(bool)));
+ }
+}
+
+WindowSystem &WindowSystem::self()
+{
+ static WindowSystem wm;
+ return wm;
}
WindowSystem::~WindowSystem()
@@ -16,11 +28,12 @@ WindowSystem::~WindowSystem()
bool WindowSystem::compositingActive() const
{
- return KWindowSystem::compositingActive();
+ return m_enabled;
}
-void WindowSystem::compositingChanged(bool state)
+void WindowSystem::compositingChangedProxy(bool enabled)
{
+ m_enabled = enabled;
emit compositingChanged();
}
diff --git a/liblattedock/windowsystem.h b/liblattedock/windowsystem.h
index fb1c7bba3..4037eb783 100644
--- a/liblattedock/windowsystem.h
+++ b/liblattedock/windowsystem.h
@@ -11,16 +11,21 @@ class WindowSystem : public QObject {
Q_PROPERTY(bool compositingActive READ compositingActive NOTIFY compositingChanged)
public:
- explicit WindowSystem(QObject *parent = Q_NULLPTR);
+ explicit WindowSystem(QObject *parent = nullptr);
+
+ static WindowSystem &self();
~WindowSystem();
bool compositingActive() const;
-Q_SIGNALS:
+signals:
void compositingChanged();
-private Q_SLOTS:
- void compositingChanged(bool state);
+private slots:
+ void compositingChangedProxy(bool enabled);
+
+private:
+ bool m_enabled{false};
};
}//LatteDock namespace