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

akonadi

  • sources
  • kde-4.12
  • kdepimlibs
  • akonadi
  • contact
  • kcm
kcmakonadicontactactions.cpp
1 /*
2  This file is part of Akonadi Contact.
3 
4  Copyright (c) 2013 Laurent Montel <montel@kde.org>
5  Copyright (c) 2009 Tobias Koenig <tokoe@kde.org>
6 
7  This library is free software; you can redistribute it and/or modify it
8  under the terms of the GNU Library General Public License as published by
9  the Free Software Foundation; either version 2 of the License, or (at your
10  option) any later version.
11 
12  This library is distributed in the hope that it will be useful, but WITHOUT
13  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
14  FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public
15  License for more details.
16 
17  You should have received a copy of the GNU Library General Public License
18  along with this library; see the file COPYING.LIB. If not, write to the
19  Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
20  02110-1301, USA.
21 */
22 
23 #include "kcmakonadicontactactions.h"
24 
25 #include "contactactionssettings.h"
26 
27 #include <QVBoxLayout>
28 
29 #include <kaboutdata.h>
30 #include <kcomponentdata.h>
31 #include <kconfigdialogmanager.h>
32 #include <kpluginfactory.h>
33 #include <klocalizedstring.h>
34 
35 Q_DECLARE_METATYPE(ContactActionsSettings::EnumDialPhoneNumberAction)
36 
37 K_PLUGIN_FACTORY( KCMAkonadiContactActionsFactory, registerPlugin<KCMAkonadiContactActions>(); )
38 K_EXPORT_PLUGIN( KCMAkonadiContactActionsFactory( "kcm_akonadicontact_actions" ) )
39 
40 KCMAkonadiContactActions::KCMAkonadiContactActions( QWidget *parent, const QVariantList& )
41  : KCModule( KCMAkonadiContactActionsFactory::componentData(), parent )
42 {
43  KAboutData *about = new KAboutData( I18N_NOOP( "kcmakonadicontactactions" ), 0,
44  ki18n( "Contact Actions Settings" ),
45  0, KLocalizedString(), KAboutData::License_LGPL,
46  ki18n( "(c) 2009 Tobias Koenig" ) );
47 
48  about->addAuthor( ki18n( "Tobias Koenig" ), KLocalizedString(), "tokoe@kde.org" );
49 
50  setAboutData( about );
51 
52  QVBoxLayout *layout = new QVBoxLayout( this );
53  QWidget *wdg = new QWidget;
54  layout->addWidget( wdg );
55 
56  ui.setupUi( wdg );
57 
58  mConfigManager = addConfig( ContactActionsSettings::self(), wdg );
59 
60  ui.DialPhoneNumberAction->addItem(i18n("Skype"), ContactActionsSettings::UseSkype);
61  ui.DialPhoneNumberAction->addItem(i18n("Ekiga"), ContactActionsSettings::UseEkiga);
62  ui.DialPhoneNumberAction->addItem(i18n("SflPhone"), ContactActionsSettings::UseSflPhone);
63 #ifdef Q_OS_WINCE
64  ui.DialPhoneNumberAction->addItem(i18n("WinCE"), ContactActionsSettings::UseWinCE);
65 #endif
66  ui.DialPhoneNumberAction->addItem(i18n("External Application"), ContactActionsSettings::UseExternalPhoneApplication);
67 
68  connect(ui.DialPhoneNumberAction, SIGNAL(currentIndexChanged(int)), SLOT(slotDialPhoneNumberActionChanged(int)));
69 
70  ui.SendSmsAction->addItem(i18n("Skype"), ContactActionsSettings::UseSkypeSms);
71  ui.SendSmsAction->addItem(i18n("SflPhone"), ContactActionsSettings::UseSflPhoneSms);
72 #ifdef Q_OS_WINCE
73  ui.SendSmsAction->addItem(i18n("WinCE"), ContactActionsSettings::UseWinCESms);
74 #endif
75  ui.SendSmsAction->addItem(i18n("External Application"), ContactActionsSettings::UseExternalSmsApplication);
76  connect(ui.SendSmsAction, SIGNAL(currentIndexChanged(int)), SLOT(slotSmsPhoneNumberActionChanged(int)));
77  load();
78 }
79 
80 void KCMAkonadiContactActions::slotSmsPhoneNumberActionChanged(int value)
81 {
82  ContactActionsSettings::EnumSendSmsAction enumValue = static_cast<ContactActionsSettings::EnumSendSmsAction>(ui.SendSmsAction->itemData(value).toInt());
83  if (enumValue == ContactActionsSettings::UseExternalSmsApplication) {
84  ui.stackedWidget_3->setCurrentIndex(1);
85  } else {
86  ui.stackedWidget_3->setCurrentIndex(0);
87  }
88  emit changed(true);
89 }
90 
91 void KCMAkonadiContactActions::slotDialPhoneNumberActionChanged(int value)
92 {
93  ContactActionsSettings::EnumDialPhoneNumberAction enumValue = static_cast<ContactActionsSettings::EnumDialPhoneNumberAction>(ui.DialPhoneNumberAction->itemData(value).toInt());
94  if (enumValue == ContactActionsSettings::UseExternalPhoneApplication) {
95  ui.stackedWidget_2->setCurrentIndex(1);
96  } else {
97  ui.stackedWidget_2->setCurrentIndex(0);
98  }
99  emit changed(true);
100 }
101 
102 void KCMAkonadiContactActions::load()
103 {
104  mConfigManager->updateWidgets();
105  ContactActionsSettings::EnumDialPhoneNumberAction enumValue = static_cast<ContactActionsSettings::EnumDialPhoneNumberAction>(ContactActionsSettings::self()->dialPhoneNumberAction());
106  const int index = ui.DialPhoneNumberAction->findData(enumValue);
107  ui.DialPhoneNumberAction->setCurrentIndex(index);
108 
109  ContactActionsSettings::EnumSendSmsAction enumValueSms = static_cast<ContactActionsSettings::EnumSendSmsAction>(ContactActionsSettings::self()->sendSmsAction());
110  const int indexSms = ui.SendSmsAction->findData(enumValueSms);
111  ui.SendSmsAction->setCurrentIndex(indexSms);
112 
113 }
114 
115 void KCMAkonadiContactActions::save()
116 {
117  mConfigManager->updateSettings();
118  ContactActionsSettings::EnumDialPhoneNumberAction enumValue = static_cast<ContactActionsSettings::EnumDialPhoneNumberAction>(ui.DialPhoneNumberAction->itemData(ui.DialPhoneNumberAction->currentIndex()).toInt());
119  ContactActionsSettings::self()->setDialPhoneNumberAction(enumValue);
120 
121  ContactActionsSettings::EnumSendSmsAction enumValueSms = static_cast<ContactActionsSettings::EnumSendSmsAction>(ui.SendSmsAction->itemData(ui.SendSmsAction->currentIndex()).toInt());
122  ContactActionsSettings::self()->setSendSmsAction(enumValueSms);
123  ContactActionsSettings::self()->writeConfig();
124 }
125 
126 void KCMAkonadiContactActions::defaults()
127 {
128  mConfigManager->updateWidgetsDefault();
129  const bool bUseDefaults = ContactActionsSettings::self()->useDefaults( true );
130  ui.DialPhoneNumberAction->setCurrentIndex(ContactActionsSettings::self()->dialPhoneNumberAction());
131  ui.SendSmsAction->setCurrentIndex(ContactActionsSettings::self()->sendSmsAction());
132  ContactActionsSettings::self()->useDefaults( bUseDefaults );
133 }
134 
This file is part of the KDE documentation.
Documentation copyright © 1996-2014 The KDE developers.
Generated on Tue Oct 14 2014 23:00:27 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

akonadi

Skip menu "akonadi"
  • Main Page
  • Namespace List
  • Namespace Members
  • Alphabetical List
  • Class List
  • Class Hierarchy
  • Class Members
  • File List
  • Modules
  • Related Pages

kdepimlibs API Reference

Skip menu "kdepimlibs API Reference"
  • akonadi
  •   contact
  •   kmime
  •   socialutils
  • kabc
  • kalarmcal
  • kblog
  • kcal
  • kcalcore
  • kcalutils
  • kholidays
  • kimap
  • kldap
  • kmbox
  • kmime
  • kpimidentities
  • kpimtextedit
  • kresources
  • ktnef
  • kxmlrpcclient
  • microblog

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