add LayoutSettings class and expose classes

pull/1/head
Michail Vourlakos 8 years ago
parent 0b8316e296
commit 1a9ea88bc8

@ -17,6 +17,7 @@ set(lattedock-app_SRCS
globalshortcuts.cpp
universalsettings.cpp
layoutmanager.cpp
layoutsettings.cpp
importer.cpp
main.cpp
)

@ -62,7 +62,7 @@ DockCorona::DockCorona(QObject *parent)
m_screenPool(new ScreenPool(KSharedConfig::openConfig(), this)),
m_globalSettings(new GlobalSettings(this)),
m_globalShortcuts(new GlobalShortcuts(this)),
m_universalSettings(new UniversalSettings(this)),
m_universalSettings(new UniversalSettings(KSharedConfig::openConfig(), this)),
m_layoutManager(new LayoutManager(this))
{
setupWaylandIntegration();
@ -352,6 +352,16 @@ GlobalSettings *DockCorona::globalSettings() const
return m_globalSettings;
}
UniversalSettings *DockCorona::universalSettings() const
{
return m_universalSettings;
}
LayoutManager *DockCorona::layoutManager() const
{
return m_layoutManager;
}
int DockCorona::numScreens() const
{
return qGuiApp->screens().count();

@ -36,6 +36,8 @@
class ScreenPool;
class GlobalSettings;
class GlobalShortcuts;
class UniversalSettings;
class LayoutManager;
namespace KActivities {
class Consumer;
@ -93,6 +95,8 @@ public:
ScreenPool *screenPool() const;
GlobalSettings *globalSettings() const;
UniversalSettings *universalSettings() const;
LayoutManager *layoutManager() const;
KWayland::Client::PlasmaShell *waylandDockCoronaInterface() const;

@ -1,5 +1,5 @@
/*
* Copyright 2016 Smith AR <audoban@openmailbox.org>
* Copyright 2017 Smith AR <audoban@openmailbox.org>
* Michail Vourlakos <mvourlakos@gmail.com>
*
* This file is part of Latte-Dock
@ -21,10 +21,11 @@
#ifndef LAYOUTMANAGER_H
#define LAYOUTMANAGER_H
#include <QObject>
#include "dockcorona.h"
#include "importer.h"
#include <QObject>
namespace Latte {
//! This class is responsible to manipulate all layouts.
@ -37,6 +38,7 @@ public:
~LayoutManager() override;
private:
DockCorona *m_corona{nullptr};
Importer *m_importer{nullptr};
};

@ -0,0 +1,50 @@
/*
* Copyright 2017 Smith AR <audoban@openmailbox.org>
* 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/>.
*/
#include "layoutsettings.h"
#include <QFile>
#include <KSharedConfig>
namespace Latte {
LayoutSettings::LayoutSettings(QObject *parent, KSharedConfig::Ptr config)
: QObject(parent)
{
m_layoutGroup = KConfigGroup(config, "LayoutSettings");
}
LayoutSettings::LayoutSettings(QObject *parent, QString layoutFile )
: QObject(parent)
{
if (QFile(layoutFile).exists()){
KSharedConfigPtr lConfig = KSharedConfig::openConfig(layoutFile);
m_layoutGroup = KConfigGroup(lConfig, "LayoutSettings");
m_layoutFile = layoutFile;
}
}
LayoutSettings::~LayoutSettings()
{
m_layoutGroup.sync();
}
}

@ -0,0 +1,55 @@
/*
* Copyright 2017 Smith AR <audoban@openmailbox.org>
* 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/>.
*/
#ifndef LAYOUTSETTINGS_H
#define LAYOUTSETTINGS_H
#include <QObject>
#include <KConfigGroup>
#include <KSharedConfig>
#include "dockcorona.h"
class DockCorona;
namespace Latte {
//! This class is responsible to hold the settings for a specific layout.
//! It also updates always the relevant layout configuration concerning
//! its general settings (no the containments)
class LayoutSettings : public QObject {
Q_OBJECT
public:
LayoutSettings(QObject *parent, QString layoutFile);
LayoutSettings(QObject *parent, KSharedConfig::Ptr config);
~LayoutSettings() override;
private:
QString m_layoutFile;
DockCorona *m_corona{nullptr};
KConfigGroup m_layoutGroup;
};
}
#endif // LAYOUTSETTINGS_H

@ -22,13 +22,15 @@
namespace Latte {
UniversalSettings::UniversalSettings(QObject *parent)
: QObject(parent)
UniversalSettings::UniversalSettings(KSharedConfig::Ptr config, QObject *parent)
: QObject(parent),
m_universalGroup(KConfigGroup(config, QStringLiteral("UniversalSettings")))
{
}
UniversalSettings::~UniversalSettings()
{
m_universalGroup.sync();
}
}

@ -23,6 +23,9 @@
#include <QObject>
#include <KConfigGroup>
#include <KSharedConfig>
namespace Latte {
//! This class holds all the settings that are universally available
@ -38,8 +41,12 @@ class UniversalSettings : public QObject {
//Q_PROPERTY(QAction *addWidgetsAction READ addWidgetsAction NOTIFY addWidgetsActionChanged)
public:
UniversalSettings(QObject *parent = nullptr);
UniversalSettings(KSharedConfig::Ptr config, QObject *parent = nullptr);
~UniversalSettings() override;
private:
KConfigGroup m_universalGroup;
};
}

Loading…
Cancel
Save