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

knotes

  • sources
  • kde-4.14
  • kdepim
  • knotes
  • configdialog
knoteconfigdialog.cpp
Go to the documentation of this file.
1 /*******************************************************************
2  KNotes -- Notes for the KDE project
3 
4  Copyright (c) 1997-2005, The KNotes Developers
5 
6  This program is free software; you can redistribute it and/or
7  modify it under the terms of the GNU General Public License
8  as published by the Free Software Foundation; either version 2
9  of the License, or (at your option) any later version.
10 
11  This program is distributed in the hope that it will be useful,
12  but WITHOUT ANY WARRANTY; without even the implied warranty of
13  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  GNU General Public License for more details.
15 
16  You should have received a copy of the GNU General Public License
17  along with this program; if not, write to the Free Software
18  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
19 *******************************************************************/
20 
21 
22 #include "knoteconfigdialog.h"
23 #include "notes/knote.h"
24 #include "print/knoteprintselectthemecombobox.h"
25 #include "knotedisplayconfigwidget.h"
26 #include "knoteeditorconfigwidget.h"
27 #include "knotecollectionconfigwidget.h"
28 #include "knotesglobalconfig.h"
29 #include "notesharedglobalconfig.h"
30 #include "noteshared/config/noteactionconfig.h"
31 #include "noteshared/config/notenetworkconfig.h"
32 #include "notesharedglobalconfig.h"
33 
34 #include "kdepim-version.h"
35 
36 #include <kapplication.h>
37 #include <kcolorbutton.h>
38 #include <kconfig.h>
39 #include <kfontrequester.h>
40 #include <kiconloader.h>
41 #include <klineedit.h>
42 #include <klocale.h>
43 #include <knuminput.h>
44 #include <kwindowsystem.h>
45 #include <KIcon>
46 #include <KNS3/DownloadDialog>
47 
48 #include <QCheckBox>
49 #include <QGridLayout>
50 #include <QHBoxLayout>
51 #include <QLabel>
52 #include <QVBoxLayout>
53 #include <QWhatsThis>
54 #include <QToolButton>
55 
56 KNoteConfigDialog::KNoteConfigDialog( const QString &title,
57  QWidget *parent )
58  : KCMultiDialog( parent )
59 {
60  setFaceType( KPageDialog::List );
61  setButtons( Default | Ok | Cancel );
62  setDefaultButton( Ok );
63 
64  setCaption( title );
65 #ifdef Q_WS_X11
66  KWindowSystem::setIcons( winId(),
67  qApp->windowIcon().pixmap(
68  IconSize( KIconLoader::Desktop ),
69  IconSize( KIconLoader::Desktop ) ),
70  qApp->windowIcon().pixmap(
71  IconSize( KIconLoader::Small ),
72  IconSize( KIconLoader::Small ) ) );
73 #endif
74  showButtonSeparator( true );
75 
76  addModule( QLatin1String("knote_config_display") );
77  addModule( QLatin1String("knote_config_editor") );
78  addModule( QLatin1String("knote_config_action") );
79  addModule( QLatin1String("knote_config_network") );
80  addModule( QLatin1String("knote_config_print") );
81  addModule( QLatin1String("knote_config_collection") );
82  addModule( QLatin1String("knote_config_misc") );
83  connect( this, SIGNAL(okClicked()), SLOT(slotOk()) );
84 }
85 
86 KNoteConfigDialog::~KNoteConfigDialog()
87 {
88 }
89 
90 void KNoteConfigDialog::slotOk() {
91  NoteShared::NoteSharedGlobalConfig::self()->writeConfig();
92  KNotesGlobalConfig::self()->writeConfig();
93 }
94 
95 
96 extern "C"
97 {
98 KDE_EXPORT KCModule *create_knote_config_display( QWidget *parent )
99 {
100  KComponentData instance( "kcmnote_config_display" );
101  return new KNoteDisplayConfig( instance, parent );
102 }
103 }
104 
105 extern "C"
106 {
107 KDE_EXPORT KCModule *create_knote_config_collection( QWidget *parent )
108 {
109  KComponentData instance( "kcmnote_config_collection" );
110  return new KNoteCollectionConfig( instance, parent );
111 }
112 }
113 
114 extern "C"
115 {
116 KDE_EXPORT KCModule *create_knote_config_editor( QWidget *parent )
117 {
118  KComponentData instance( "kcmnote_config_editor" );
119  return new KNoteEditorConfig( instance, parent );
120 }
121 }
122 
123 extern "C"
124 {
125 KDE_EXPORT KCModule *create_knote_config_action( QWidget *parent )
126 {
127  KComponentData instance( "kcmnote_config_action" );
128  return new NoteShared::NoteActionConfig( instance, parent );
129 }
130 }
131 
132 extern "C"
133 {
134 KDE_EXPORT KCModule *create_knote_config_network( QWidget *parent )
135 {
136  KComponentData instance( "kcmnote_config_network" );
137  return new NoteShared::NoteNetworkConfig( instance, parent );
138 }
139 }
140 
141 extern "C"
142 {
143 KDE_EXPORT KCModule *create_knote_config_print( QWidget *parent )
144 {
145  KComponentData instance( "kcmnote_config_print" );
146  return new KNotePrintConfig( instance, parent );
147 }
148 }
149 
150 extern "C"
151 {
152 KDE_EXPORT KCModule *create_knote_config_misc( QWidget *parent )
153 {
154  KComponentData instance( "kcmnote_config_misc" );
155  return new KNoteMiscConfig( instance, parent );
156 }
157 }
158 
159 
160 KNoteDisplayConfig::KNoteDisplayConfig( const KComponentData &inst, QWidget *parent )
161  :KCModule( inst, parent )
162 {
163  QVBoxLayout *lay = new QVBoxLayout( this );
164  QWidget * w = new KNoteDisplayConfigWidget( true );
165  lay->addWidget( w );
166  lay->addStretch();
167  addConfig( KNotesGlobalConfig::self(), w );
168  load();
169 }
170 
171 void KNoteDisplayConfig::load()
172 {
173  KCModule::load();
174 }
175 
176 void KNoteDisplayConfig::save()
177 {
178  KCModule::save();
179 }
180 
181 KNoteEditorConfig::KNoteEditorConfig( const KComponentData &inst, QWidget *parent )
182  :KCModule( inst, parent )
183 {
184  QVBoxLayout *lay = new QVBoxLayout( this );
185  QWidget * w = new KNoteEditorConfigWidget( true );
186  lay->addWidget( w );
187  lay->addStretch();
188  addConfig( KNotesGlobalConfig::self(), w );
189  load();
190 }
191 
192 void KNoteEditorConfig::save()
193 {
194  KCModule::save();
195 }
196 
197 void KNoteEditorConfig::load()
198 {
199  KCModule::load();
200 }
201 
202 
203 KNoteMiscConfig::KNoteMiscConfig(const KComponentData &inst, QWidget *parent )
204  : KCModule(inst, parent)
205 {
206  QVBoxLayout *topLayout = new QVBoxLayout( this );
207  QWidget * w = new QWidget( this );
208  topLayout->addWidget( w );
209 
210 
211  QVBoxLayout *lay = new QVBoxLayout;
212  w->setLayout(lay);
213 
214  QCheckBox *kcfg_SystemTrayShowNotes = new QCheckBox(i18n("Show number of notes in tray icon"), this);
215 
216  kcfg_SystemTrayShowNotes->setObjectName( QLatin1String("kcfg_SystemTrayShowNotes") );
217  lay->addWidget( kcfg_SystemTrayShowNotes );
218 
219  QHBoxLayout *hbox = new QHBoxLayout;
220  lay->addLayout(hbox);
221  QLabel *label_DefaultTitle = new QLabel( i18n( "Default Title:" ), this );
222  hbox->addWidget( label_DefaultTitle );
223 
224  mDefaultTitle = new KLineEdit( this );
225  label_DefaultTitle->setBuddy( mDefaultTitle );
226  hbox->addWidget( mDefaultTitle );
227 
228  QLabel *howItWorks = new QLabel(i18n( "<a href=\"whatsthis\">How does this work?</a>" ));
229  howItWorks->setContextMenuPolicy(Qt::NoContextMenu);
230  connect( howItWorks, SIGNAL(linkActivated(QString)),SLOT(slotHelpLinkClicked(QString)) );
231  lay->addWidget( howItWorks );
232  addConfig( KNotesGlobalConfig::self(), w );
233  lay->addStretch();
234  load();
235  connect(mDefaultTitle, SIGNAL(textChanged(QString)), SLOT(changed()));
236 }
237 
238 void KNoteMiscConfig::load()
239 {
240  KCModule::load();
241  mDefaultTitle->setText(NoteShared::NoteSharedGlobalConfig::self()->defaultTitle());
242 }
243 
244 void KNoteMiscConfig::save()
245 {
246  KCModule::save();
247  NoteShared::NoteSharedGlobalConfig::self()->setDefaultTitle(mDefaultTitle->text());
248  NoteShared::NoteSharedGlobalConfig::self()->writeConfig();
249 }
250 
251 void KNoteMiscConfig::defaults()
252 {
253  KCModule::defaults();
254  const bool bUseDefaults = NoteShared::NoteSharedGlobalConfig::self()->useDefaults( true );
255  mDefaultTitle->setText(NoteShared::NoteSharedGlobalConfig::self()->defaultTitle());
256  NoteShared::NoteSharedGlobalConfig::self()->useDefaults( bUseDefaults );
257 }
258 
259 void KNoteMiscConfig::slotHelpLinkClicked(const QString &)
260 {
261  const QString help =
262  i18n( "<qt>"
263  "<p>You can customize title note. "
264  "You can use:</p>"
265  "<ul>"
266  "<li>%d current date (short format)</li>"
267  "<li>%l current date (long format)</li>"
268  "<li>%t current time</li>"
269  "</ul>"
270  "</qt>" );
271 
272  QWhatsThis::showText( QCursor::pos(), help );
273 }
274 
275 
276 KNotePrintConfig::KNotePrintConfig(const KComponentData &inst, QWidget *parent )
277  :KCModule( inst, parent )
278 {
279  QVBoxLayout *lay = new QVBoxLayout( this );
280  QWidget * w = new QWidget( this );
281  lay->addWidget( w );
282  QGridLayout *layout = new QGridLayout( w );
283  layout->setSpacing( KDialog::spacingHint() );
284  layout->setMargin( 0 );
285 
286  QLabel *label_PrintAction = new QLabel( i18n( "Theme:" ), this );
287  layout->addWidget( label_PrintAction, 0, 0 );
288 
289  mSelectTheme = new KNotePrintSelectThemeComboBox(this);
290  connect(mSelectTheme, SIGNAL(activated(int)), SLOT(slotThemeChanged()));
291  label_PrintAction->setBuddy( mSelectTheme );
292  layout->addWidget( mSelectTheme, 0, 1 );
293 
294  QToolButton *getNewTheme = new QToolButton;
295  getNewTheme->setIcon(KIcon(QLatin1String("get-hot-new-stuff")));
296  getNewTheme->setToolTip(i18n("Download new printing themes"));
297  connect(getNewTheme, SIGNAL(clicked()), SLOT(slotDownloadNewThemes()));
298  layout->addWidget( getNewTheme, 0, 2 );
299  lay->addStretch();
300  load();
301 }
302 
303 void KNotePrintConfig::slotDownloadNewThemes()
304 {
305  QPointer<KNS3::DownloadDialog> downloadThemesDialog = new KNS3::DownloadDialog(QLatin1String("knotes_printing_theme.knsrc"));
306  if (downloadThemesDialog->exec()) {
307  if (!downloadThemesDialog->changedEntries().isEmpty()) {
308  mSelectTheme->loadThemes();
309  }
310  }
311  delete downloadThemesDialog;
312 }
313 
314 void KNotePrintConfig::slotThemeChanged()
315 {
316  Q_EMIT changed(true);
317 }
318 
319 void KNotePrintConfig::save()
320 {
321  KNotesGlobalConfig::self()->setTheme(mSelectTheme->selectedTheme());
322 }
323 
324 void KNotePrintConfig::load()
325 {
326  mSelectTheme->loadThemes();
327 }
328 
329 void KNotePrintConfig::defaults()
330 {
331  mSelectTheme->selectDefaultTheme();
332  Q_EMIT changed(true);
333 }
334 
335 KNoteCollectionConfig::KNoteCollectionConfig(const KComponentData &inst, QWidget *parent )
336  : KCModule( inst, parent )
337 {
338  QHBoxLayout *lay = new QHBoxLayout;
339  mCollectionConfigWidget = new KNoteCollectionConfigWidget;
340  lay->addWidget(mCollectionConfigWidget);
341  connect(mCollectionConfigWidget, SIGNAL(emitChanged(bool)), this, SLOT(changed()));
342  setLayout(lay);
343  load();
344 }
345 
346 void KNoteCollectionConfig::save()
347 {
348  mCollectionConfigWidget->save();
349 }
350 
351 void KNoteCollectionConfig::load()
352 {
353  //Nothing
354 }
355 
356 
QWhatsThis::showText
void showText(const QPoint &pos, const QString &text, QWidget *w)
QWidget
KNotePrintSelectThemeComboBox::selectedTheme
QString selectedTheme() const
Definition: knoteprintselectthemecombobox.cpp:85
KNoteCollectionConfigWidget
Definition: knotecollectionconfigwidget.h:40
KNoteMiscConfig
Definition: knoteconfigdialog.h:65
KNoteMiscConfig::defaults
virtual void defaults()
Definition: knoteconfigdialog.cpp:251
KNoteDisplayConfigWidget
Definition: knotedisplayconfigwidget.h:28
QGridLayout::addWidget
void addWidget(QWidget *widget, int row, int column, QFlags< Qt::AlignmentFlag > alignment)
knotecollectionconfigwidget.h
KNoteConfigDialog::slotOk
void slotOk()
Definition: knoteconfigdialog.cpp:90
QPointer
KNoteCollectionConfigWidget::save
void save()
Definition: knotecollectionconfigwidget.cpp:282
KNotePrintConfig::load
virtual void load()
Reimplemented from KCModule.
Definition: knoteconfigdialog.cpp:324
QHBoxLayout
KNoteEditorConfig::KNoteEditorConfig
KNoteEditorConfig(const KComponentData &inst, QWidget *parent)
Definition: knoteconfigdialog.cpp:181
KNoteDisplayConfig::load
virtual void load()
Reimplemented from KCModule.
Definition: knoteconfigdialog.cpp:171
QGridLayout
create_knote_config_collection
KCModule * create_knote_config_collection(QWidget *parent)
Definition: knoteconfigdialog.cpp:107
KNoteCollectionConfig::save
virtual void save()
Definition: knoteconfigdialog.cpp:346
create_knote_config_print
KCModule * create_knote_config_print(QWidget *parent)
Definition: knoteconfigdialog.cpp:143
QAbstractButton::setIcon
void setIcon(const QIcon &icon)
KNoteCollectionConfig
Definition: knoteconfigdialog.h:98
KNotePrintConfig::KNotePrintConfig
KNotePrintConfig(const KComponentData &inst, QWidget *parent)
Definition: knoteconfigdialog.cpp:276
QGridLayout::setSpacing
void setSpacing(int spacing)
create_knote_config_editor
KCModule * create_knote_config_editor(QWidget *parent)
Definition: knoteconfigdialog.cpp:116
knoteconfigdialog.h
QLabel::setBuddy
void setBuddy(QWidget *buddy)
QBoxLayout::addWidget
void addWidget(QWidget *widget, int stretch, QFlags< Qt::AlignmentFlag > alignment)
knote.h
KNotePrintSelectThemeComboBox::loadThemes
void loadThemes()
Definition: knoteprintselectthemecombobox.cpp:38
KNoteMiscConfig::save
virtual void save()
Definition: knoteconfigdialog.cpp:244
KNoteDisplayConfig
Definition: knoteconfigdialog.h:45
KNoteDisplayConfig::save
virtual void save()
Definition: knoteconfigdialog.cpp:176
QWidget::setLayout
void setLayout(QLayout *layout)
knoteprintselectthemecombobox.h
KNoteMiscConfig::KNoteMiscConfig
KNoteMiscConfig(const KComponentData &inst, QWidget *parent)
Definition: knoteconfigdialog.cpp:203
knoteeditorconfigwidget.h
KNotePrintSelectThemeComboBox
Definition: knoteprintselectthemecombobox.h:24
KNotePrintConfig
Definition: knoteconfigdialog.h:80
QCheckBox
QObject::setObjectName
void setObjectName(const QString &name)
KNotePrintConfig::defaults
virtual void defaults()
Definition: knoteconfigdialog.cpp:329
KNoteMiscConfig::load
virtual void load()
Reimplemented from KCModule.
Definition: knoteconfigdialog.cpp:238
KNotePrintSelectThemeComboBox::selectDefaultTheme
void selectDefaultTheme()
Definition: knoteprintselectthemecombobox.cpp:90
QVBoxLayout
KNoteEditorConfig::load
virtual void load()
Reimplemented from KCModule.
Definition: knoteconfigdialog.cpp:197
QString
QLayout::setMargin
void setMargin(int margin)
create_knote_config_network
KCModule * create_knote_config_network(QWidget *parent)
Definition: knoteconfigdialog.cpp:134
QToolButton
QWidget::setContextMenuPolicy
void setContextMenuPolicy(Qt::ContextMenuPolicy policy)
create_knote_config_display
KCModule * create_knote_config_display(QWidget *parent)
Definition: knoteconfigdialog.cpp:98
KNoteEditorConfig
Definition: knoteconfigdialog.h:55
KNoteEditorConfigWidget
Definition: knoteeditorconfigwidget.h:30
KNoteConfigDialog::KNoteConfigDialog
KNoteConfigDialog(const QString &title, QWidget *parent)
Definition: knoteconfigdialog.cpp:56
QCursor::pos
QPoint pos()
KNoteCollectionConfig::load
virtual void load()
Reimplemented from KCModule.
Definition: knoteconfigdialog.cpp:351
create_knote_config_misc
KCModule * create_knote_config_misc(QWidget *parent)
Definition: knoteconfigdialog.cpp:152
QLatin1String
QBoxLayout::addStretch
void addStretch(int stretch)
KNotePrintConfig::save
virtual void save()
Definition: knoteconfigdialog.cpp:319
KCMultiDialog
QWidget::setToolTip
void setToolTip(const QString &)
KNoteConfigDialog::~KNoteConfigDialog
~KNoteConfigDialog()
Definition: knoteconfigdialog.cpp:86
KNoteCollectionConfig::KNoteCollectionConfig
KNoteCollectionConfig(const KComponentData &inst, QWidget *parent)
Definition: knoteconfigdialog.cpp:335
QLabel
knotedisplayconfigwidget.h
KNoteDisplayConfig::KNoteDisplayConfig
KNoteDisplayConfig(const KComponentData &inst, QWidget *parent)
Definition: knoteconfigdialog.cpp:160
create_knote_config_action
KCModule * create_knote_config_action(QWidget *parent)
Definition: knoteconfigdialog.cpp:125
KCModule
KNoteEditorConfig::save
virtual void save()
Definition: knoteconfigdialog.cpp:192
QBoxLayout::addLayout
void addLayout(QLayout *layout, int stretch)
This file is part of the KDE documentation.
Documentation copyright © 1996-2020 The KDE developers.
Generated on Mon Jun 22 2020 13:32:28 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

knotes

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

kdepim API Reference

Skip menu "kdepim API Reference"
  • akonadi_next
  • akregator
  • blogilo
  • calendarsupport
  • console
  •   kabcclient
  •   konsolekalendar
  • kaddressbook
  • kalarm
  •   lib
  • kdgantt2
  • kjots
  • kleopatra
  • kmail
  • knode
  • knotes
  • kontact
  • korgac
  • korganizer
  • ktimetracker
  • libkdepim
  • libkleo
  • libkpgp
  • mailcommon
  • messagelist
  • messageviewer
  • pimprint

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