2
* Copyright 2008 Aike J Sommer <dev@aikesommer.name>
4
* This program is free software; you can redistribute it and/or modify
5
* it under the terms of the GNU General Public License as
6
* published by the Free Software Foundation; either version 2,
7
* or (at your option) any later version.
9
* This program is distributed in the hope that it will be useful,
10
* but WITHOUT ANY WARRANTY; without even the implied warranty of
11
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
* GNU General Public License for more details
14
* You should have received a copy of the GNU Library General Public
15
* License along with this program; if not, write to the
16
* Free Software Foundation, Inc.,
17
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
21
#include "dbusapi_configurations.h"
22
#include "configurations.h"
23
#include "configurationsadaptor.h"
30
using namespace Kephal;
32
DBusAPIConfigurations::DBusAPIConfigurations(QObject * parent)
35
new ConfigurationsAdaptor(this);
36
QDBusConnection dbus = QDBusConnection::sessionBus();
38
const bool result = dbus.registerObject("/modules/kephal/Configurations", this);
39
kDebug() << "configurations registered on the bus:" << result;
41
connect(Configurations::self(), SIGNAL(configurationActivated(Kephal::Configuration *)), this, SLOT(configurationActivatedSlot(Kephal::Configuration *)));
42
connect(Configurations::self(), SIGNAL(confirmed()), this, SIGNAL(confirmed()));
43
connect(Configurations::self(), SIGNAL(reverted()), this, SIGNAL(reverted()));
44
connect(Configurations::self(), SIGNAL(confirmTimeout(int)), this, SIGNAL(confirmTimeout(int)));
47
QStringList DBusAPIConfigurations::configurations() {
49
foreach (const QString& name, Configurations::self()->configurations().keys()) {
55
int DBusAPIConfigurations::numAvailablePositions(QString output) {
56
Output * o = Outputs::self()->output(output);
58
m_outputAvailablePositions.insert(output, o->availablePositions());
59
return m_outputAvailablePositions[output].size();
64
QPoint DBusAPIConfigurations::availablePosition(QString output, int index) {
65
if (m_outputAvailablePositions.contains(output)) {
66
return m_outputAvailablePositions[output][index];
71
QStringList DBusAPIConfigurations::alternateConfigurations() {
73
foreach (Configuration * config, Configurations::self()->alternateConfigurations()) {
74
result << config->name();
79
QString DBusAPIConfigurations::activeConfiguration() {
80
Configuration * config = Configurations::self()->activeConfiguration();
82
return config->name();
87
// Not needed. If Configurations provides access to configurations, it should not also provide ways
88
// to temporarily modify the current configuration. This should be done by a config UI.
90
bool DBusAPIConfigurations::move(QString output, QPoint position) {
91
Output * o = Outputs::self()->output(output);
93
return Configurations::self()->move(o, position);
98
bool DBusAPIConfigurations::resize(QString output, QSize size) {
99
Output * o = Outputs::self()->output(output);
101
return Configurations::self()->resize(o, size);
106
bool DBusAPIConfigurations::rotate(QString output, int rotation) {
107
Output * o = Outputs::self()->output(output);
109
return Configurations::self()->rotate(o, (Rotation) rotation);
114
bool DBusAPIConfigurations::changeRate(QString output, double rate) {
115
Output * o = Outputs::self()->output(output);
117
return Configurations::self()->changeRate(o, static_cast<float>(rate));
122
bool DBusAPIConfigurations::reflectX(QString output, bool reflect) {
123
Output * o = Outputs::self()->output(output);
125
return Configurations::self()->reflectX(o, reflect);
130
bool DBusAPIConfigurations::reflectY(QString output, bool reflect) {
131
Output * o = Outputs::self()->output(output);
133
return Configurations::self()->reflectY(o, reflect);
138
bool DBusAPIConfigurations::isModifiable(QString config) {
139
Configuration * c = Configurations::self()->configuration(config);
141
return c->isModifiable();
146
bool DBusAPIConfigurations::isActivated(QString config) {
147
Configuration * c = Configurations::self()->configuration(config);
149
return c->isActivated();
154
void DBusAPIConfigurations::activate(QString config) {
155
Configuration * c = Configurations::self()->configuration(config);
161
int DBusAPIConfigurations::primaryScreen(QString config) {
162
Configuration * c = Configurations::self()->configuration(config);
164
return c->primaryScreen();
169
int DBusAPIConfigurations::screen(QString outputId) {
170
Output * output = Outputs::self()->output(outputId);
172
return Configurations::self()->screen(output);
177
void DBusAPIConfigurations::setPolling(bool polling) {
178
Configurations::self()->setPolling(polling);
181
bool DBusAPIConfigurations::polling() {
182
return Configurations::self()->polling();
185
void DBusAPIConfigurations::configurationActivatedSlot(Kephal::Configuration * configuration) {
186
emit configurationActivated(configuration->name());
189
void DBusAPIConfigurations::confirm() {
190
Configurations::self()->confirm();
193
void DBusAPIConfigurations::revert() {
194
Configurations::self()->revert();
198
#include "dbusapi_configurations.moc"