• Skip to content
  • Skip to link menu
KDE API Reference
  • KDE API Reference
  • kdeutils API Reference
  • KDE Home
  • Contact Us
 

kremotecontrol

  • sources
  • kde-4.12
  • kdeutils
  • kremotecontrol
  • kcmremotecontrol
kcmremotecontrol.cpp
Go to the documentation of this file.
1 /*************************************************************************
2  * Copyright (C) 2010 by Michael Zanetti <michael_zanetti@gmx.net> *
3  * *
4  * This program is free software; you can redistribute it and/or *
5  * modify it under the terms of the GNU General Public License as *
6  * published by the Free Software Foundation; either version 2 of *
7  * the License or (at your option) version 3 or any later version *
8  * accepted by the membership of KDE e.V. (or its successor approved *
9  * by the membership of KDE e.V.), which shall act as a proxy *
10  * defined in Section 14 of version 3 of the license. *
11  * *
12  * This program is distributed in the hope that it will be useful, *
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of *
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
15  * GNU General Public License for more details. *
16  * *
17  * You should have received a copy of the GNU General Public License *
18  * along with this program. If not, see <http://www.gnu.org/licenses/>. *
19  *************************************************************************/
20 
21 
22 #include "kcmremotecontrol.h"
23 #include "addaction.h"
24 #include "remote.h"
25 #include "editactioncontainer.h"
26 #include "modedialog.h"
27 #include "profileserver.h"
28 #include "selectprofile.h"
29 #include "dbusinterface.h"
30 #include "model.h"
31 #include "remotelist.h"
32 #include "remotecontrolmanager.h"
33 
34 #include <kremotecontrol-version.h>
35 #include <kconfig.h>
36 #include <kdebug.h>
37 #include <kgenericfactory.h>
38 #include <kaboutdata.h>
39 #include <kmessagebox.h>
40 
41 #include <QtDBus/QDBusInterface>
42 
43 K_PLUGIN_FACTORY( KCMLircFactory, registerPlugin<KCMRemoteControl>();)
44 K_EXPORT_PLUGIN( KCMLircFactory( "kcm_remotecontrol" ) )
45 
46 KCMRemoteControl::KCMRemoteControl(QWidget *parent, const QVariantList &args) :
47  KCModule(KCMLircFactory::componentData(), parent, args)
48 {
49 
50  setAboutData(new KAboutData("kcm_remotecontrol", 0, ki18n("KRemoteControl"), KREMOTECONTROL_VERSION_STRING,
51  ki18n("The KDE Remote Control System"), KAboutData::License_GPL_V2,
52  ki18n("2010 Michael Zanetti, 2010 Frank Scheffold"),
53  ki18n("Use this to configure KDE's remote control system in order to control any KDE application with your remote control."),
54  "http://utils.kde.org/projects/kremotecontrol"));
55  setQuickHelp(i18n("<h1>Remote Controls</h1><p>This module allows you to configure bindings between your remote controls and KDE applications. Simply select your remote control and click Add next to the Actions/Buttons list to create new action for button presses.</p>"));
56 
57  KGlobal::locale()->insertCatalog( QLatin1String( "libkremotecontrol" ));
58 
59  QHBoxLayout *layout = new QHBoxLayout(this);
60  QWidget *widget = new QWidget(this);
61  ui.setupUi(widget);
62  layout->addWidget(widget);
63 
64  // Set up GUI buttons
65  ui.pbAddMode->setIcon(KIcon( QLatin1String( "list-add" )));
66  connect(ui.pbAddMode, SIGNAL(clicked(bool)), SLOT(addMode()));
67 
68  ui.pbRemoveMode->setIcon(KIcon( QLatin1String( "list-remove" )));
69  connect(ui.pbRemoveMode, SIGNAL(clicked(bool)), SLOT(removeMode()));
70 
71  ui.pbAddAction->setIcon(KIcon( QLatin1String( "list-add" )));
72  connect(ui.pbAddAction, SIGNAL(clicked(bool)), SLOT(addAction()));
73 
74  ui.pbRemoveAction->setIcon(KIcon( QLatin1String( "list-remove" )));
75  connect(ui.pbRemoveAction, SIGNAL(clicked(bool)), SLOT(removeAction()));
76 
77  ui.pbEditMode->setIcon(KIcon( QLatin1String( "configure" )));
78  connect(ui.pbEditMode, SIGNAL(clicked(bool)), SLOT(editMode()));
79 
80  ui.pbEditAction->setIcon(KIcon( QLatin1String( "configure" )));
81  connect(ui.pbEditAction, SIGNAL(clicked(bool)), SLOT(editAction()));
82 
83  ui.pbMoveModeUp->setIcon(KIcon( QLatin1String( "arrow-up" )));
84  connect(ui.pbMoveModeUp, SIGNAL(clicked(bool)), SLOT(moveModeUp()));
85 
86  ui.pbMoveModeDown->setIcon(KIcon( QLatin1String( "arrow-down" )));
87  connect(ui.pbMoveModeDown, SIGNAL(clicked(bool)), SLOT(moveModeDown()));
88 
89  ui.pbMoveActionUp->setIcon(KIcon( QLatin1String( "arrow-up" )));
90  connect(ui.pbMoveActionUp, SIGNAL(clicked(bool)), SLOT(moveActionUp()));
91 
92  ui.pbMoveActionDown->setIcon(KIcon( QLatin1String( "arrow-down" )));
93  connect(ui.pbMoveActionDown, SIGNAL(clicked(bool)), SLOT(moveActionDown()));
94 
95  ui.pbCopyAction->setIcon(KIcon( QLatin1String( "edit-copy" )));
96  connect(ui.pbCopyAction, SIGNAL(clicked(bool)), SLOT(copyAction()));
97 
98  ui.pbAutoPopulate->setIcon(KIcon( QLatin1String( "tools-wizard" )));
99  connect(ui.pbAutoPopulate, SIGNAL(clicked(bool)), SLOT(autoPopulate()));
100 
101  // Create RemoteModel
102  m_remoteModel = new RemoteModel(m_remoteList, ui.tvRemotes);
103  ui.tvRemotes->setModel(m_remoteModel);
104  connect(ui.tvRemotes->selectionModel(), SIGNAL(selectionChanged(QItemSelection,QItemSelection)), SLOT(modeSelectionChanged(QItemSelection)));
105  connect(ui.tvRemotes, SIGNAL(doubleClicked(QModelIndex)), SLOT(editMode()));
106  // QueuedConnection needed because the model itself may has some slots queded and refreshing the model before that breaks logic
107  connect(m_remoteModel, SIGNAL(modeChanged(Mode*)), SLOT(actionDropped(Mode*)), Qt::QueuedConnection);
108 
109  // Create ActionModel
110  m_actionModel = new ActionModel(ui.tvActions);
111  ui.tvActions->setModel(m_actionModel);
112  connect(ui.tvActions->selectionModel(), SIGNAL(selectionChanged(QItemSelection,QItemSelection)), SLOT(actionSelectionChanged(QItemSelection)));
113  connect(ui.tvActions, SIGNAL(doubleClicked(QModelIndex)), SLOT(editAction()));
114 
115  // connect ShowTrayIcon checkbox
116  connect(ui.cbTrayIcon, SIGNAL(clicked(bool)), SLOT(changed()));
117 
118  connect(RemoteControlManager::notifier(), SIGNAL(statusChanged(bool)), SLOT(addUnconfiguredRemotes()));
119  connect(RemoteControlManager::notifier(), SIGNAL(remoteControlAdded(QString)), SLOT(addUnconfiguredRemotes()));
120 }
121 
122 KCMRemoteControl::~KCMRemoteControl() {
123  foreach(Remote *remote, m_remoteList){
124  delete remote;
125  }
126 }
127 
128 void KCMRemoteControl::addAction() {
129  Remote *remote = m_remoteModel->remote(ui.tvRemotes->currentIndex());
130 
131  AddAction addActionDialog;
132  Action *newAction = addActionDialog.createAction(remote->name());
133  if(newAction != 0){
134  Mode *mode = m_remoteModel->mode(ui.tvRemotes->currentIndex());
135  mode->addAction(newAction);
136  updateActions(mode);
137  emit changed(true);
138  }
139 }
140 
141 void KCMRemoteControl::removeAction() {
142  Mode *mode = m_remoteModel->mode(ui.tvRemotes->selectionModel()->currentIndex());
143  Action *action = m_actionModel->action(ui.tvActions->selectionModel()->currentIndex());
144 
145  mode->removeAction(action);
146  updateActions(mode);
147  emit changed(true);
148 }
149 
150 void KCMRemoteControl::editAction() {
151  Action *action = m_actionModel->action(ui.tvActions->selectionModel()->currentIndex());
152  Remote *remote = m_remoteModel->remote(ui.tvRemotes->selectionModel()->currentIndex());
153  Mode *mode = m_remoteModel->mode(ui.tvRemotes->selectionModel()->currentIndex());
154 
155  QPointer<EditActionContainer> editActioncontainer = new EditActionContainer(action, remote->name());
156  if(editActioncontainer->exec()) {
157  updateActions(mode);
158  emit changed(true);
159  }
160  delete editActioncontainer;
161 }
162 
163 void KCMRemoteControl::copyAction() {
164  Action *action = m_actionModel->action(ui.tvActions->selectionModel()->currentIndex());
165  Mode *mode = m_remoteModel->mode(ui.tvRemotes->selectionModel()->currentIndex());
166  Action *newAction = action->clone();
167  mode->addAction(newAction);
168  updateActions(mode);
169  ui.tvActions->selectionModel()->setCurrentIndex(m_actionModel->find(newAction), QItemSelectionModel::Rows | QItemSelectionModel::SelectCurrent);
170  editAction();
171  emit changed(true);
172 }
173 
174 void KCMRemoteControl::moveActionUp() {
175  Mode *mode = m_remoteModel->mode(ui.tvRemotes->selectionModel()->currentIndex());
176  Action *action = m_actionModel->action(ui.tvActions->selectionModel()->currentIndex());
177  mode->moveActionUp(action);
178  updateActions(mode);
179  emit changed(true);
180 }
181 
182 void KCMRemoteControl::moveActionDown() {
183  Mode *mode = m_remoteModel->mode(ui.tvRemotes->selectionModel()->currentIndex());
184  Action *action = m_actionModel->action(ui.tvActions->selectionModel()->currentIndex());
185  mode->moveActionDown(action);
186  updateActions(mode);
187  emit changed(true);
188 }
189 
190 void KCMRemoteControl::autoPopulate() {
191  Mode *mode = m_remoteModel->mode(ui.tvRemotes->selectionModel()->currentIndex());
192  Remote *remote = m_remoteModel->remote(ui.tvRemotes->selectionModel()->currentIndex());
193  QPointer<SelectProfile> autoPopulateDialog = new SelectProfile(remote, this);
194  if(autoPopulateDialog->exec()){
195  Profile *profile = autoPopulateDialog->getSelectedProfile();
196  foreach(const RemoteControlButton &button, RemoteControl(remote->name()).buttons()){
197  ProfileActionTemplate actionTemplate = profile->actionTemplateByButton(button.name());
198  if(!actionTemplate.buttonName().isEmpty()){
199  mode->addAction(actionTemplate.createAction(button));
200  }
201  }
202  }
203  delete autoPopulateDialog;
204  updateActions(mode);
205  emit changed(true);
206 
207 }
208 
209 void KCMRemoteControl::addMode() {
210  Remote *remote = m_remoteModel->remote(ui.tvRemotes->selectionModel()->currentIndex());
211  kDebug() << "current selected remote:" << remote;
212 
213  QPointer<ModeDialog> modeDialog = new ModeDialog(remote);
214  if(modeDialog->exec()){
215  m_remoteModel->refresh(m_remoteList);
216  foreach(const Mode *mode, remote->allModes()){
217  kDebug() << "Created Mode" << mode->name();
218  }
219  updateModes();
220  emit changed(true);
221  }
222  delete modeDialog;
223 }
224 
225 void KCMRemoteControl::editMode() {
226  Remote *remote = m_remoteModel->remote(ui.tvRemotes->selectionModel()->currentIndex());
227  Mode *mode = m_remoteModel->mode(ui.tvRemotes->selectionModel()->currentIndex());
228  kDebug() << "current selected remote:" << remote << "and mode:" << mode;
229 
230  QPointer<ModeDialog> modeDialog = new ModeDialog(remote, mode);
231  if(modeDialog->exec()){
232  m_remoteModel->refresh(m_remoteList);
233  updateModes();
234  emit changed(true);
235  }
236  delete modeDialog;
237 }
238 
239 void KCMRemoteControl::removeMode() {
240  QModelIndex currentIndex = ui.tvRemotes->selectionModel()->currentIndex();
241  Remote *remote = m_remoteModel->remote(currentIndex);
242  Mode *mode = m_remoteModel->mode(currentIndex);
243  if(remote && remote->allModes().contains(mode)){
244  // If the master mode is selected the we should remove the whole remote
245  if(mode == remote->masterMode()){
246  if(KMessageBox::questionYesNo(this, i18n("Are you sure you want to remove this remote and all of its modes and actions?"), i18n("Remove remote")) == KMessageBox::Yes) {
247  m_remoteList.remove(m_remoteList.indexOf(remote));
248  m_remoteModel->clear(); // Clear the models before deleting the remote!!!
249  m_actionModel->clear();
250  delete remote;
251  addUnconfiguredRemotes(); // Just in case we removed a physically available remote (shouldn't happen). This also refreshes the modeModel
252  } else {
253  return; // User cancelled
254  }
255  } else {
256  if((mode->actions().count() > 0) &&
257  (KMessageBox::questionYesNo(this, i18n("Are you sure you want to remove this mode and all contained actions?"), i18n("Remove mode")) != KMessageBox::Yes)) {
258  return; // User cancelled
259  }
260  remote->removeMode(mode);
261  updateModes();
262  ui.tvRemotes->selectionModel()->setCurrentIndex(m_remoteModel->find(remote->masterMode()), QItemSelectionModel::Rows | QItemSelectionModel::SelectCurrent);
263  }
264  emit changed(true);
265  }
266 }
267 void KCMRemoteControl::moveModeUp() {
268  QModelIndex currentIndex = ui.tvRemotes->selectionModel()->currentIndex();
269  Remote *remote = m_remoteModel->remote(currentIndex);
270  Mode *mode = m_remoteModel->mode(currentIndex);
271  remote->moveModeUp(mode);
272  updateModes();
273  emit changed(true);
274 }
275 
276 void KCMRemoteControl::moveModeDown() {
277  QModelIndex currentIndex = ui.tvRemotes->selectionModel()->currentIndex();
278  Remote *remote = m_remoteModel->remote(currentIndex);
279  Mode *mode = m_remoteModel->mode(currentIndex);
280  remote->moveModeDown(mode);
281  updateModes();
282  emit changed(true);
283 }
284 
285 void KCMRemoteControl::updateModes() {
286  Mode *mode = m_remoteModel->mode(ui.tvRemotes->selectionModel()->currentIndex());
287  m_remoteModel->refresh(m_remoteList);
288  ui.tvRemotes->expandAll();
289  ui.tvRemotes->resizeColumnToContents(0);
290  if(mode){
291  ui.tvRemotes->selectionModel()->setCurrentIndex(m_remoteModel->find(mode), QItemSelectionModel::Rows | QItemSelectionModel::SelectCurrent);
292  }
293  modeSelectionChanged(ui.tvRemotes->selectionModel()->selection());
294 
295  if(!m_remoteList.isEmpty()){
296  ui.lNoRemotesWarning->setMaximumSize(0,0);
297  ui.tvRemotes->setEnabled(true);
298  ui.tvActions->setEnabled(true);
299  ui.lRemotes->setEnabled(true);
300  } else {
301  ui.lNoRemotesWarning->setMaximumSize(32767, 32767);
302  ui.tvRemotes->setEnabled(false);
303  ui.tvActions->setEnabled(false);
304  ui.lRemotes->setEnabled(false);
305  }
306 }
307 
308 void KCMRemoteControl::updateActions(Mode *mode) {
309  Action *oldAction = m_actionModel->action(ui.tvActions->selectionModel()->currentIndex());
310  m_actionModel->refresh(mode);
311  ui.tvActions->resizeColumnToContents(0);
312  if(oldAction){
313  ui.tvActions->selectionModel()->setCurrentIndex(m_actionModel->find(oldAction), QItemSelectionModel::Rows | QItemSelectionModel::SelectCurrent);
314  }
315  actionSelectionChanged(ui.tvActions->selectionModel()->selection());
316 }
317 
318 void KCMRemoteControl::modeSelectionChanged(const QItemSelection& selection) {
319  const QModelIndexList indexes = selection.indexes();
320  QModelIndex index;
321  if(!indexes.isEmpty()) {
322  index = indexes.at(0);
323  }
324  if(index.isValid()){
325  // Enable Add and Edit buttons only if remote is available
326  bool selectedRemoteAvailable = m_remoteModel->remote(index)->isAvailable();
327  ui.pbAddMode->setEnabled(selectedRemoteAvailable);
328  ui.pbEditMode->setEnabled(selectedRemoteAvailable);
329  ui.pbAddAction->setEnabled(selectedRemoteAvailable);
330  ui.pbAutoPopulate->setEnabled(selectedRemoteAvailable);
331 
332  // Only enable the remove mode button if a non-Master mode is selected,
333  // or if the Remote is not available in in the system
334  if((m_remoteModel->mode(index) != m_remoteModel->remote(index)->masterMode())
335  || (!m_remoteModel->remote(index)->isAvailable())){
336  ui.pbRemoveMode->setEnabled(true);
337  } else {
338  ui.pbRemoveMode->setEnabled(false);
339  }
340 
341  } else {
342  ui.pbAddMode->setEnabled(false);
343  ui.pbEditMode->setEnabled(false);
344  ui.pbAddAction->setEnabled(false);
345  ui.pbAutoPopulate->setEnabled(false);
346  ui.pbRemoveMode->setEnabled(false);
347  }
348 
349  Mode *mode = m_remoteModel->mode(index);
350  if(mode){
351 
352  Remote *remote = m_remoteModel->remote(index);
353  if(mode == remote->masterMode()){
354  ui.lActions->setText(i18n("Configured actions for %1:", remote->name()));
355  } else {
356  ui.lActions->setText(i18n("Configured actions for %1 in mode %2:", remote->name(), mode->name()));
357  }
358 
359  if(remote->allModes().indexOf(mode) > 1){
360  ui.pbMoveModeUp->setEnabled(true);
361  } else {
362  ui.pbMoveModeUp->setEnabled(false);
363  }
364 
365  if((remote->allModes().indexOf(mode) < (remote->allModes().count() - 1)) && (mode != remote->masterMode())){
366  ui.pbMoveModeDown->setEnabled(true);
367  } else {
368  ui.pbMoveModeDown->setEnabled(false);
369  }
370 
371  updateActions(mode);
372  }
373 }
374 
375 void KCMRemoteControl::actionSelectionChanged(const QItemSelection& selection) {
376  const QModelIndexList indexes = selection.indexes();
377  QModelIndex index;
378  if(!indexes.isEmpty()) {
379  index = indexes.at(0);
380  }
381  if(index.isValid()){
382  // Enable Add and Edit buttons only if remote is available
383  bool selectedRemoteAvailable = m_remoteModel->remote(ui.tvRemotes->selectionModel()->currentIndex())->isAvailable();
384  ui.pbRemoveAction->setEnabled(selectedRemoteAvailable);
385  ui.pbEditAction->setEnabled(selectedRemoteAvailable);
386  ui.pbCopyAction->setEnabled(selectedRemoteAvailable);
387  if(index.row() > 0){
388  ui.pbMoveActionUp->setEnabled(true);
389  } else {
390  ui.pbMoveActionUp->setEnabled(false);
391  }
392  if(index.row() < (m_actionModel->rowCount() - 1)){
393  ui.pbMoveActionDown->setEnabled(true);
394  } else {
395  ui.pbMoveActionDown->setEnabled(false);
396  }
397  } else {
398  ui.pbRemoveAction->setEnabled(false);
399  ui.pbEditAction->setEnabled(false);
400  ui.pbCopyAction->setEnabled(false);
401  ui.pbMoveActionUp->setEnabled(false);
402  ui.pbMoveActionDown->setEnabled(false);
403  }
404 }
405 
406 void KCMRemoteControl::addUnconfiguredRemotes() {
407  // Check if there are Remotes available in the system but not yet in m_remoteList
408  foreach(const QString &remoteName, RemoteControl::allRemoteNames()){
409  if(!m_remoteList.contains(remoteName)){
410  Remote *remote = new Remote(remoteName);
411  m_remoteList.append(remote);
412  }
413  }
414  updateModes();
415 }
416 
417 void KCMRemoteControl::load() {
418  m_remoteList.loadFromConfig(QLatin1String( "kremotecontrolrc" ));
419 
420  addUnconfiguredRemotes();
421 
422 /* if(!m_remoteList.isEmpty()){
423  QModelIndex firstItem = m_remoteModel->find(m_remoteList.first()->masterMode());
424  ui.tvRemotes->selectionModel()->setCurrentIndex(firstItem, QItemSelectionModel::SelectCurrent | QItemSelectionModel::Rows);
425  }*/
426 
427  // Check if the daemon module is running
428  if(!m_remoteList.isEmpty()){ // No need to run the daemon if we have no remote controls
429  kDebug() << "remotes found... checking for kded module";
430  if(!DBusInterface::getInstance()->isKdedModuleRunning()) {
431  kDebug() << "kded module not running";
432  if(!DBusInterface::getInstance()->loadKdedModule()){
433  KMessageBox::error(this, i18n("The remote control daemon failed to load. Your remote controls will not work."), i18n("Failed to load daemon"));
434  }
435  }
436  }
437 
438  KConfig config(QLatin1String( "kremotecontrolrc" ));
439  KConfigGroup globalGroup = KConfigGroup(&config, "Global");
440  ui.cbTrayIcon->setChecked(globalGroup.readEntry("ShowTrayIcon", true));
441 }
442 
443 void KCMRemoteControl::save() {
444  m_remoteList.saveToConfig(QLatin1String( "kremotecontrolrc" ));
445 
446  KConfig config(QLatin1String( "kremotecontrolrc" ));
447  KConfigGroup globalGroup = KConfigGroup(&config, "Global");
448  globalGroup.writeEntry("ShowTrayIcon", ui.cbTrayIcon->isChecked());
449  globalGroup.sync(); // Sync the config before requesting the daemon to update.
450 
451  DBusInterface::getInstance()->reloadRemoteControlDaemon();
452 
453  // If there are no remotes configured it makes no sense to have the daemon running. stop it
454  if(m_remoteList.isEmpty()){
455  if(DBusInterface::getInstance()->isKdedModuleRunning()){
456  DBusInterface::getInstance()->unloadKdedModule();
457  }
458  }
459 }
460 
461 void KCMRemoteControl::actionDropped(Mode* mode) {
462  ui.tvRemotes->selectionModel()->setCurrentIndex(m_remoteModel->find(mode), QItemSelectionModel::Rows | QItemSelectionModel::SelectCurrent);
463  updateActions(mode);
464  emit changed(true);
465 }
466 
467 #include "kcmremotecontrol.moc"
ActionModel::action
Action * action(const QModelIndex &index) const
Definition: model.cpp:816
selectprofile.h
ProfileActionTemplate
Definition: profileactiontemplate.h:31
AddAction::createAction
Action * createAction(const QString &remote)
Definition: addaction.cpp:48
Remote::name
QString name() const
Definition: remote.cpp:247
Mode::actions
QVector< Action * > actions() const
Definition: mode.cpp:89
dbusinterface.h
RemoteModel::remote
Remote * remote(const QModelIndex &index) const
Definition: model.cpp:636
Profile::actionTemplateByButton
ProfileActionTemplate actionTemplateByButton(const QString &buttonName) const
Definition: profile.cpp:80
RemoteControl::allRemoteNames
static QStringList allRemoteNames()
Get the Names of the available remotes in the system.
Definition: remotecontrol.cpp:37
Remote::removeMode
void removeMode(Mode *mode)
Remove the given Mode from this Remote and delete it.
Definition: remote.cpp:280
addaction.h
ActionModel
Definition: model.h:175
QWidget
Mode
Definition: mode.h:31
Mode::moveActionUp
void moveActionUp(Action *action)
Definition: mode.cpp:73
KCMRemoteControl::~KCMRemoteControl
~KCMRemoteControl()
Definition: kcmremotecontrol.cpp:122
KCMRemoteControl
Definition: kcmremotecontrol.h:38
DBusInterface::getInstance
static DBusInterface * getInstance()
Definition: dbusinterface.cpp:50
Mode::removeAction
void removeAction(Action *action)
Remove the given action from this mode and delete it.
Definition: mode.cpp:68
model.h
Mode::moveActionDown
void moveActionDown(Action *action)
Definition: mode.cpp:81
RemoteList::contains
bool contains(const QString &remoteName) const
Definition: remotelist.cpp:33
RemoteModel::refresh
void refresh(const RemoteList &remoteList)
Definition: model.cpp:622
Action::clone
virtual Action * clone() const =0
kremotecontrol-version.h
profileserver.h
DBusInterface::reloadRemoteControlDaemon
void reloadRemoteControlDaemon()
Definition: dbusinterface.cpp:290
Remote::allModes
QVector< Mode * > allModes() const
Definition: remote.cpp:269
RemoteList::saveToConfig
void saveToConfig(const QString &configName)
Definition: remotelist.cpp:43
Action
Definition: action.h:30
modedialog.h
remotelist.h
RemoteModel::mode
Mode * mode(const QModelIndex &index) const
Definition: model.cpp:646
ModeDialog
Definition: modedialog.h:52
RemoteList::loadFromConfig
void loadFromConfig(const QString &configName)
Definition: remotelist.cpp:74
RemoteControl
Definition: remotecontrol.h:35
DBusInterface::isKdedModuleRunning
bool isKdedModuleRunning()
Definition: dbusinterface.cpp:550
RemoteControlButton::name
QString name() const
Retrieves the name of the Button.
Definition: remotecontrolbutton.cpp:315
RemoteModel
Definition: model.h:146
RemoteControlManager::notifier
KREMOTECONTROL_EXPORT Notifier * notifier()
Definition: remotecontrolmanager.cpp:37
ProfileActionTemplate::buttonName
QString buttonName() const
Definition: profileactiontemplate.cpp:103
EditActionContainer
Definition: editactioncontainer.h:29
KCMRemoteControl::save
virtual void save()
Definition: kcmremotecontrol.cpp:443
RemoteModel::find
QModelIndex find(Mode *mode) const
Definition: model.cpp:656
SelectProfile
Definition: selectprofile.h:46
ActionModel::find
QModelIndex find(Action *action) const
Definition: model.cpp:823
Mode::addAction
void addAction(Action *action)
Add the given Action to the Mode.
Definition: mode.cpp:64
remotecontrolmanager.h
Remote::moveModeUp
void moveModeUp(Mode *mode)
Definition: remote.cpp:251
remote.h
editactioncontainer.h
Remote::masterMode
Mode * masterMode() const
Definition: remote.cpp:300
KCMRemoteControl::load
virtual void load()
Definition: kcmremotecontrol.cpp:417
DBusInterface::unloadKdedModule
bool unloadKdedModule()
Unloads the kremotecontrol kded module and sets autoLoading to false.
Definition: dbusinterface.cpp:574
ProfileServer::profile
Profile * profile(const QString &profileId)
Definition: profileserver.cpp:93
ActionModel::refresh
void refresh(Mode *mode)
Definition: model.cpp:791
Profile
Definition: profile.h:26
kcmremotecontrol.h
ProfileActionTemplate::createAction
ProfileAction * createAction(const RemoteControlButton &button) const
Definition: profileactiontemplate.cpp:107
Mode::name
QString name() const
Definition: mode.cpp:36
RemoteControlButton
Definition: remotecontrolbutton.h:30
Remote::isAvailable
bool isAvailable() const
Definition: remote.cpp:355
KCModule
Remote
Definition: remote.h:32
KREMOTECONTROL_VERSION_STRING
#define KREMOTECONTROL_VERSION_STRING
Definition: kremotecontrol-version.h:61
AddAction
Definition: addaction.h:29
Remote::moveModeDown
void moveModeDown(Mode *mode)
Definition: remote.cpp:260
This file is part of the KDE documentation.
Documentation copyright © 1996-2014 The KDE developers.
Generated on Tue Oct 14 2014 23:07:43 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

kremotecontrol

Skip menu "kremotecontrol"
  • Main Page
  • Namespace List
  • Namespace Members
  • Alphabetical List
  • Class List
  • Class Hierarchy
  • Class Members
  • File List
  • File Members

kdeutils API Reference

Skip menu "kdeutils API Reference"
  • ark
  • filelight
  • kcalc
  • kcharselect
  • kdf
  • kfloppy
  • kgpg
  • kremotecontrol
  • ktimer
  • kwallet
  • superkaramba
  • sweeper

Search



Report problems with this website to our bug tracking system.
Contact the specific authors with questions and comments about the page contents.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal