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

kalarm

  • sources
  • kde-4.14
  • kdepim
  • kalarm
birthdaydlg.cpp
Go to the documentation of this file.
1 /*
2  * birthdaydlg.cpp - dialog to pick birthdays from address book
3  * Program: kalarm
4  * Copyright © 2002-2012 by David Jarvie <djarvie@kde.org>
5  *
6  * This program is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as published by
8  * the Free Software Foundation; either version 2 of the License, or
9  * (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 along
17  * with this program; if not, write to the Free Software Foundation, Inc.,
18  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
19  */
20 
21 #include "birthdaydlg.h"
22 
23 #include "kalarm.h"
24 #include "alarmcalendar.h"
25 #include "birthdaymodel.h"
26 #include "checkbox.h"
27 #include "editdlgtypes.h"
28 #include "fontcolourbutton.h"
29 #include "kalarmapp.h"
30 #include "latecancel.h"
31 #include "preferences.h"
32 #include "reminder.h"
33 #include "repetitionbutton.h"
34 #include "shellprocess.h"
35 #include "soundpicker.h"
36 #include "specialactions.h"
37 
38 #include <akonadi/control.h>
39 #include <akonadi/entitymimetypefiltermodel.h>
40 
41 #include <klocale.h>
42 #include <kglobal.h>
43 #include <kconfiggroup.h>
44 #include <kmessagebox.h>
45 #include <kstandardaction.h>
46 #include <kactioncollection.h>
47 #include <kdescendantsproxymodel.h>
48 #include <khbox.h>
49 #include <kdebug.h>
50 
51 #include <QAction>
52 #include <QGroupBox>
53 #include <QLabel>
54 #include <QTreeView>
55 #include <QHeaderView>
56 #include <QHBoxLayout>
57 #include <QVBoxLayout>
58 
59 using namespace KCal;
60 
61 
62 BirthdayDlg::BirthdayDlg(QWidget* parent)
63  : KDialog(parent),
64  mSpecialActionsButton(0)
65 {
66  setObjectName(QLatin1String("BirthdayDlg")); // used by LikeBack
67  setCaption(i18nc("@title:window", "Import Birthdays From KAddressBook"));
68  setButtons(Ok | Cancel);
69  setDefaultButton(Ok);
70 
71  connect(this, SIGNAL(okClicked()), SLOT(slotOk()));
72 
73  QWidget* topWidget = new QWidget(this);
74  setMainWidget(topWidget);
75  QVBoxLayout* topLayout = new QVBoxLayout(topWidget);
76  topLayout->setMargin(0);
77  topLayout->setSpacing(spacingHint());
78 
79  // Prefix and suffix to the name in the alarm text
80  // Get default prefix and suffix texts from config file
81  KConfigGroup config(KGlobal::config(), "General");
82  mPrefixText = config.readEntry("BirthdayPrefix", i18nc("@info/plain", "Birthday: "));
83  mSuffixText = config.readEntry("BirthdaySuffix");
84 
85  QGroupBox* textGroup = new QGroupBox(i18nc("@title:group", "Alarm Text"), topWidget);
86  topLayout->addWidget(textGroup);
87  QGridLayout* grid = new QGridLayout(textGroup);
88  grid->setMargin(marginHint());
89  grid->setSpacing(spacingHint());
90  QLabel* label = new QLabel(i18nc("@label:textbox", "Prefix:"), textGroup);
91  label->setFixedSize(label->sizeHint());
92  grid->addWidget(label, 0, 0);
93  mPrefix = new BLineEdit(mPrefixText, textGroup);
94  mPrefix->setMinimumSize(mPrefix->sizeHint());
95  label->setBuddy(mPrefix);
96  connect(mPrefix, SIGNAL(focusLost()), SLOT(slotTextLostFocus()));
97  mPrefix->setWhatsThis(i18nc("@info:whatsthis",
98  "Enter text to appear before the person's name in the alarm message, "
99  "including any necessary trailing spaces."));
100  grid->addWidget(mPrefix, 0, 1);
101 
102  label = new QLabel(i18nc("@label:textbox", "Suffix:"), textGroup);
103  label->setFixedSize(label->sizeHint());
104  grid->addWidget(label, 1, 0);
105  mSuffix = new BLineEdit(mSuffixText, textGroup);
106  mSuffix->setMinimumSize(mSuffix->sizeHint());
107  label->setBuddy(mSuffix);
108  connect(mSuffix, SIGNAL(focusLost()), SLOT(slotTextLostFocus()));
109  mSuffix->setWhatsThis(i18nc("@info:whatsthis",
110  "Enter text to appear after the person's name in the alarm message, "
111  "including any necessary leading spaces."));
112  grid->addWidget(mSuffix, 1, 1);
113 
114  QGroupBox* group = new QGroupBox(i18nc("@title:group", "Select Birthdays"), topWidget);
115  topLayout->addWidget(group);
116  QVBoxLayout* layout = new QVBoxLayout(group);
117  layout->setMargin(0);
118 
119  // Start Akonadi server as we need it for the birthday model to access contacts information
120  Akonadi::Control::start();
121 
122  BirthdayModel* model = BirthdayModel::instance();
123  connect(model, SIGNAL(dataChanged(QModelIndex,QModelIndex)), SLOT(resizeViewColumns()));
124 
125  KDescendantsProxyModel* descendantsModel = new KDescendantsProxyModel(this);
126  descendantsModel->setSourceModel(model);
127 
128  Akonadi::EntityMimeTypeFilterModel* mimeTypeFilter = new Akonadi::EntityMimeTypeFilterModel(this);
129  mimeTypeFilter->setSourceModel(descendantsModel);
130  mimeTypeFilter->addMimeTypeExclusionFilter(Akonadi::Collection::mimeType());
131  mimeTypeFilter->setHeaderGroup(Akonadi::EntityTreeModel::ItemListHeaders);
132 
133  mBirthdaySortModel = new BirthdaySortModel(this);
134  mBirthdaySortModel->setSourceModel(mimeTypeFilter);
135  mBirthdaySortModel->setSortCaseSensitivity(Qt::CaseInsensitive);
136  mBirthdaySortModel->setPrefixSuffix(mPrefixText, mSuffixText);
137  mListView = new QTreeView(group);
138  mListView->setEditTriggers(QAbstractItemView::NoEditTriggers);
139  mListView->setModel(mBirthdaySortModel);
140  mListView->setRootIsDecorated(false); // don't show expander icons
141  mListView->setSortingEnabled(true);
142  mListView->sortByColumn(BirthdayModel::NameColumn);
143  mListView->setAllColumnsShowFocus(true);
144  mListView->setSelectionMode(QAbstractItemView::ExtendedSelection);
145  mListView->setSelectionBehavior(QAbstractItemView::SelectRows);
146  mListView->setTextElideMode(Qt::ElideRight);
147  mListView->header()->setResizeMode(BirthdayModel::NameColumn, QHeaderView::Stretch);
148  mListView->header()->setResizeMode(BirthdayModel::DateColumn, QHeaderView::ResizeToContents);
149  connect(mListView->selectionModel(), SIGNAL(selectionChanged(QItemSelection,QItemSelection)), SLOT(slotSelectionChanged()));
150  mListView->setWhatsThis(i18nc("@info:whatsthis",
151  "<para>Select birthdays to set alarms for.<nl/>"
152  "This list shows all birthdays in <application>KAddressBook</application> except those for which alarms already exist.</para>"
153  "<para>You can select multiple birthdays at one time by dragging the mouse over the list, "
154  "or by clicking the mouse while pressing Ctrl or Shift.</para>"));
155  layout->addWidget(mListView);
156 
157  group = new QGroupBox(i18nc("@title:group", "Alarm Configuration"), topWidget);
158  topLayout->addWidget(group);
159  QVBoxLayout* groupLayout = new QVBoxLayout(group);
160  groupLayout->setMargin(marginHint());
161  groupLayout->setSpacing(spacingHint());
162 
163  // Sound checkbox and file selector
164  QHBoxLayout* hlayout = new QHBoxLayout();
165  hlayout->setMargin(0);
166  groupLayout->addLayout(hlayout);
167  mSoundPicker = new SoundPicker(group);
168  mSoundPicker->setFixedSize(mSoundPicker->sizeHint());
169  hlayout->addWidget(mSoundPicker);
170  hlayout->addSpacing(2*spacingHint());
171  hlayout->addStretch();
172 
173  // Font and colour choice button and sample text
174  mFontColourButton = new FontColourButton(group);
175  mFontColourButton->setMaximumHeight(mFontColourButton->sizeHint().height() * 3/2);
176  hlayout->addWidget(mFontColourButton);
177  connect(mFontColourButton, SIGNAL(selected(QColor,QColor)), SLOT(setColours(QColor,QColor)));
178 
179  // How much advance warning to give
180  mReminder = new Reminder(i18nc("@info:whatsthis", "Check to display a reminder in advance of or after the birthday."),
181  i18nc("@info:whatsthis", "Enter the number of days before or after each birthday to display a reminder. "
182  "This is in addition to the alarm which is displayed on the birthday."),
183  i18nc("@info:whatsthis", "Select whether the reminder should be triggered before or after the birthday."),
184  false, false, group);
185  mReminder->setFixedSize(mReminder->sizeHint());
186  mReminder->setMaximum(0, 364);
187  mReminder->setMinutes(0, true);
188  groupLayout->addWidget(mReminder, 0, Qt::AlignLeft);
189 
190  // Acknowledgement confirmation required - default = no confirmation
191  hlayout = new QHBoxLayout();
192  hlayout->setMargin(0);
193  hlayout->setSpacing(2*spacingHint());
194  groupLayout->addLayout(hlayout);
195  mConfirmAck = EditDisplayAlarmDlg::createConfirmAckCheckbox(group);
196  mConfirmAck->setFixedSize(mConfirmAck->sizeHint());
197  hlayout->addWidget(mConfirmAck);
198  hlayout->addSpacing(2*spacingHint());
199  hlayout->addStretch();
200 
201  if (ShellProcess::authorised()) // don't display if shell commands not allowed (e.g. kiosk mode)
202  {
203  // Special actions button
204  mSpecialActionsButton = new SpecialActionsButton(false, group);
205  mSpecialActionsButton->setFixedSize(mSpecialActionsButton->sizeHint());
206  hlayout->addWidget(mSpecialActionsButton);
207  }
208 
209  // Late display checkbox - default = allow late display
210  hlayout = new QHBoxLayout();
211  hlayout->setMargin(0);
212  hlayout->setSpacing(2*spacingHint());
213  groupLayout->addLayout(hlayout);
214  mLateCancel = new LateCancelSelector(false, group);
215  mLateCancel->setFixedSize(mLateCancel->sizeHint());
216  hlayout->addWidget(mLateCancel);
217  hlayout->addStretch();
218 
219  // Sub-repetition button
220  mSubRepetition = new RepetitionButton(i18nc("@action:button", "Sub-Repetition"), false, group);
221  mSubRepetition->setFixedSize(mSubRepetition->sizeHint());
222  mSubRepetition->set(Repetition(), true, 364*24*60);
223  mSubRepetition->setWhatsThis(i18nc("@info:whatsthis", "Set up an additional alarm repetition"));
224  hlayout->addWidget(mSubRepetition);
225 
226  // Set the values to their defaults
227  setColours(Preferences::defaultFgColour(), Preferences::defaultBgColour());
228  mFontColourButton->setDefaultFont();
229  mFontColourButton->setBgColour(Preferences::defaultBgColour());
230  mFontColourButton->setFgColour(Preferences::defaultFgColour());
231  mLateCancel->setMinutes(Preferences::defaultLateCancel(), true, TimePeriod::Days);
232  mConfirmAck->setChecked(Preferences::defaultConfirmAck());
233  mSoundPicker->set(Preferences::defaultSoundType(), Preferences::defaultSoundFile(),
234  Preferences::defaultSoundVolume(), -1, 0, Preferences::defaultSoundRepeat());
235  if (mSpecialActionsButton)
236  {
237  KAEvent::ExtraActionOptions opts(0);
238  if (Preferences::defaultExecPreActionOnDeferral())
239  opts |= KAEvent::ExecPreActOnDeferral;
240  if (Preferences::defaultCancelOnPreActionError())
241  opts |= KAEvent::CancelOnPreActError;
242  if (Preferences::defaultDontShowPreActionError())
243  opts |= KAEvent::DontShowPreActError;
244  mSpecialActionsButton->setActions(Preferences::defaultPreAction(), Preferences::defaultPostAction(), opts);
245  }
246 
247  KActionCollection* actions = new KActionCollection(this);
248  KStandardAction::selectAll(mListView, SLOT(selectAll()), actions);
249  KStandardAction::deselect(mListView, SLOT(clearSelection()), actions);
250  actions->addAssociatedWidget(mListView);
251  foreach (QAction* action, actions->actions())
252  action->setShortcutContext(Qt::WidgetWithChildrenShortcut);
253 
254  enableButtonOk(false); // only enable OK button when something is selected
255 }
256 
257 /******************************************************************************
258 * Return a list of events for birthdays chosen.
259 */
260 QVector<KAEvent> BirthdayDlg::events() const
261 {
262  QVector<KAEvent> list;
263  QModelIndexList indexes = mListView->selectionModel()->selectedRows();
264  int count = indexes.count();
265  if (!count)
266  return list;
267  QDate today = KDateTime::currentLocalDate();
268  KDateTime todayStart(today, KDateTime::ClockTime);
269  int thisYear = today.year();
270  int reminder = mReminder->minutes();
271  for (int i = 0; i < count; ++i)
272  {
273  const QModelIndex nameIndex = indexes.at(i).model()->index(indexes.at(i).row(), 0);
274  const QModelIndex birthdayIndex = indexes.at(i).model()->index(indexes.at(i).row(), 1);
275  const QString name = nameIndex.data(Qt::DisplayRole).toString();
276  QDate date = birthdayIndex.data(BirthdayModel::DateRole).toDate();
277  date.setYMD(thisYear, date.month(), date.day());
278  if (date <= today)
279  date.setYMD(thisYear + 1, date.month(), date.day());
280  KAEvent event(KDateTime(date, KDateTime::ClockTime),
281  mPrefix->text() + name + mSuffix->text(),
282  mFontColourButton->bgColour(), mFontColourButton->fgColour(),
283  mFontColourButton->font(), KAEvent::MESSAGE, mLateCancel->minutes(),
284  mFlags, true);
285  float fadeVolume;
286  int fadeSecs;
287  float volume = mSoundPicker->volume(fadeVolume, fadeSecs);
288  int repeatPause = mSoundPicker->repeatPause();
289  event.setAudioFile(mSoundPicker->file().prettyUrl(), volume, fadeVolume, fadeSecs, repeatPause);
290  QVector<int> months(1, date.month());
291  event.setRecurAnnualByDate(1, months, 0, KARecurrence::defaultFeb29Type(), -1, QDate());
292  event.setRepetition(mSubRepetition->repetition());
293  event.setNextOccurrence(todayStart);
294  if (reminder)
295  event.setReminder(reminder, false);
296  if (mSpecialActionsButton)
297  event.setActions(mSpecialActionsButton->preAction(),
298  mSpecialActionsButton->postAction(),
299  mSpecialActionsButton->options());
300  event.endChanges();
301  list.append(event);
302  }
303  return list;
304 }
305 
306 /******************************************************************************
307 * Called when the OK button is selected to import the selected birthdays.
308 */
309 void BirthdayDlg::slotOk()
310 {
311  // Save prefix and suffix texts to use as future defaults
312  KConfigGroup config(KGlobal::config(), "General");
313  config.writeEntry("BirthdayPrefix", mPrefix->text());
314  config.writeEntry("BirthdaySuffix", mSuffix->text());
315  config.sync();
316 
317  mFlags = KAEvent::ANY_TIME;
318  if (mSoundPicker->sound() == Preferences::Sound_Beep) mFlags |= KAEvent::BEEP;
319  if (mSoundPicker->repeatPause() >= 0) mFlags |= KAEvent::REPEAT_SOUND;
320  if (mConfirmAck->isChecked()) mFlags |= KAEvent::CONFIRM_ACK;
321  if (mFontColourButton->defaultFont()) mFlags |= KAEvent::DEFAULT_FONT;
322  KDialog::accept();
323 }
324 
325 /******************************************************************************
326 * Called when the group of items selected changes.
327 * Enable/disable the OK button depending on whether anything is selected.
328 */
329 void BirthdayDlg::slotSelectionChanged()
330 {
331  enableButtonOk(mListView->selectionModel()->hasSelection());
332 }
333 
334 /******************************************************************************
335 * Called when the font/color button has been clicked.
336 * Set the colors in the message text entry control.
337 */
338 void BirthdayDlg::setColours(const QColor& fgColour, const QColor& bgColour)
339 {
340  QPalette pal = mPrefix->palette();
341  pal.setColor(mPrefix->backgroundRole(), bgColour);
342  pal.setColor(mPrefix->foregroundRole(), fgColour);
343  mPrefix->setPalette(pal);
344  mSuffix->setPalette(pal);
345 }
346 
347 /******************************************************************************
348 * Called when the data has changed in the birthday list.
349 * Resize the date column.
350 */
351 void BirthdayDlg::resizeViewColumns()
352 {
353  mListView->resizeColumnToContents(BirthdayModel::DateColumn);
354 }
355 
356 /******************************************************************************
357 * Called when the prefix or suffix text has lost keyboard focus.
358 * If the text has changed, re-evaluates the selection list according to the new
359 * birthday alarm text format.
360 */
361 void BirthdayDlg::slotTextLostFocus()
362 {
363  QString prefix = mPrefix->text();
364  QString suffix = mSuffix->text();
365  if (prefix != mPrefixText || suffix != mSuffixText)
366  {
367  // Text has changed - re-evaluate the selection list
368  mPrefixText = prefix;
369  mSuffixText = suffix;
370  mBirthdaySortModel->setPrefixSuffix(mPrefixText, mSuffixText);
371  }
372 }
373 #include "moc_birthdaydlg.cpp"
374 // vim: et sw=4:
FontColourButton::setFgColour
void setFgColour(const QColor &c)
Definition: fontcolourbutton.h:40
FontColourButton::bgColour
QColor bgColour() const
Definition: fontcolourbutton.h:43
FontColourButton::defaultFont
bool defaultFont() const
Definition: fontcolourbutton.h:41
QModelIndex
QWidget
TimePeriod::Days
SoundPicker::sound
Preferences::SoundType sound() const
Returns the selected option.
Definition: soundpicker.cpp:160
SoundPicker::file
KUrl file() const
If the 'file' option is selected, returns the URL of the chosen file.
Definition: soundpicker.cpp:173
QAction::setShortcutContext
void setShortcutContext(Qt::ShortcutContext context)
fontcolourbutton.h
QAbstractItemModel::index
virtual QModelIndex index(int row, int column, const QModelIndex &parent) const =0
QAbstractItemView::setSelectionMode
void setSelectionMode(QAbstractItemView::SelectionMode mode)
QPushButton::sizeHint
virtual QSize sizeHint() const
KDescendantsProxyModel
BirthdaySortModel::setPrefixSuffix
void setPrefixSuffix(const QString &prefix, const QString &suffix)
Definition: birthdaymodel.cpp:93
QVector::append
void append(const T &value)
QPalette::setColor
void setColor(ColorGroup group, ColorRole role, const QColor &color)
QGridLayout::addWidget
void addWidget(QWidget *widget, int row, int column, QFlags< Qt::AlignmentFlag > alignment)
QAbstractItemView::selectionModel
QItemSelectionModel * selectionModel() const
QSortFilterProxyModel::setSourceModel
virtual void setSourceModel(QAbstractItemModel *sourceModel)
FontColourButton::fgColour
QColor fgColour() const
Definition: fontcolourbutton.h:44
date
time_t date() const
specialactions.h
QCheckBox::sizeHint
virtual QSize sizeHint() const
ShellProcess::authorised
static bool authorised()
latecancel.h
BirthdayModel::DateColumn
Definition: birthdaymodel.h:44
QHBoxLayout
alarmcalendar.h
QGridLayout
FontColourButton::setDefaultFont
void setDefaultFont()
Definition: fontcolourbutton.cpp:50
SoundPicker::volume
float volume(float &fadeVolume, int &fadeSeconds) const
Returns the volume and fade characteristics for playing a sound file.
Definition: soundpicker.cpp:182
KDialog
BirthdaySortModel
Definition: birthdaymodel.h:69
birthdaydlg.h
QTreeView::sortByColumn
void sortByColumn(int column, Qt::SortOrder order)
QBoxLayout::addSpacing
void addSpacing(int size)
QAbstractItemView::setSelectionBehavior
void setSelectionBehavior(QAbstractItemView::SelectionBehavior behavior)
checkbox.h
FontColourButton::font
QFont font() const
Definition: fontcolourbutton.h:42
QDate::month
int month() const
QFrame::sizeHint
virtual QSize sizeHint() const
BirthdayModel
Provides the global model for all contacts.
Definition: birthdaymodel.h:39
BirthdayModel::instance
static BirthdayModel * instance()
Returns the global contact model instance.
Definition: birthdaymodel.cpp:53
QGridLayout::setSpacing
void setSpacing(int spacing)
QLabel::setBuddy
void setBuddy(QWidget *buddy)
kalarmapp.h
the KAlarm application object
Reminder::setMinutes
void setMinutes(int minutes, bool dateOnly)
Definition: reminder.cpp:176
EditDisplayAlarmDlg::createConfirmAckCheckbox
static CheckBox * createConfirmAckCheckbox(QWidget *parent)
Definition: editdlgtypes.cpp:271
QBoxLayout::addWidget
void addWidget(QWidget *widget, int stretch, QFlags< Qt::AlignmentFlag > alignment)
SoundPicker::set
void set(Preferences::SoundType type, const QString &filename, float volume, float fadeVolume, int fadeSeconds, int repeatPause)
Initialises the widget's state.
Definition: soundpicker.cpp:210
QGroupBox
QTreeView::resizeColumnToContents
void resizeColumnToContents(int column)
QDate::setYMD
bool setYMD(int y, int m, int d)
BirthdayDlg::BirthdayDlg
BirthdayDlg(QWidget *parent=0)
Definition: birthdaydlg.cpp:62
QDate::day
int day() const
QItemSelectionModel::selectedRows
QModelIndexList selectedRows(int column) const
RepetitionButton::set
void set(const Repetition &)
Definition: repetitionbutton.cpp:62
FontColourButton::setBgColour
void setBgColour(const QColor &c)
Definition: fontcolourbutton.h:39
QItemSelectionModel::hasSelection
bool hasSelection() const
SpecialActionsButton
Definition: specialactions.h:36
QVBoxLayout
QAbstractItemView::setEditTriggers
void setEditTriggers(QFlags< QAbstractItemView::EditTrigger > triggers)
QDate
QAbstractItemView::setTextElideMode
void setTextElideMode(Qt::TextElideMode mode)
QDate::year
int year() const
QTreeView::setAllColumnsShowFocus
void setAllColumnsShowFocus(bool enable)
QString
QColor
SpecialActionsButton::options
KAEvent::ExtraActionOptions options() const
Definition: specialactions.h:44
LateCancelSelector
Definition: latecancel.h:33
QLayout::setMargin
void setMargin(int margin)
BirthdayDlg::slotOk
virtual void slotOk()
Definition: birthdaydlg.cpp:309
reminder.h
QWidget::setFixedSize
void setFixedSize(const QSize &s)
editdlgtypes.h
preferences.h
SoundPicker::repeatPause
int repeatPause() const
Returns pause in seconds between repetitions of the sound file, or -1 if no repeat or 'file' option i...
Definition: soundpicker.cpp:202
repetitionbutton.h
BirthdayModel::NameColumn
Definition: birthdaymodel.h:44
QAbstractButton::setChecked
void setChecked(bool)
QVariant::toDate
QDate toDate() const
QItemSelection
BirthdayDlg::events
QVector< KAEvent > events() const
Definition: birthdaydlg.cpp:260
QTreeView::setSortingEnabled
void setSortingEnabled(bool enable)
QWidget::setWhatsThis
void setWhatsThis(const QString &)
LateCancelSelector::minutes
int minutes() const
Definition: latecancel.cpp:121
QModelIndex::model
const QAbstractItemModel * model() const
QSortFilterProxyModel::setSortCaseSensitivity
void setSortCaseSensitivity(Qt::CaseSensitivity cs)
QVector
BLineEdit
Definition: birthdaydlg.h:77
QModelIndex::data
QVariant data(int role) const
SpecialActionsButton::setActions
void setActions(const QString &pre, const QString &post, KAEvent::ExtraActionOptions)
Definition: specialactions.cpp:63
FontColourButton
Definition: fontcolourbutton.h:32
QLatin1String
QTreeView
QBoxLayout::addStretch
void addStretch(int stretch)
SoundPicker
Definition: soundpicker.h:35
QTreeView::setModel
virtual void setModel(QAbstractItemModel *model)
kalarm.h
QHeaderView::setResizeMode
void setResizeMode(ResizeMode mode)
QAction
QLabel::sizeHint
virtual QSize sizeHint() const
soundpicker.h
RepetitionButton::repetition
Repetition repetition() const
Definition: repetitionbutton.h:54
QTreeView::header
QHeaderView * header() const
Reminder::minutes
int minutes() const
Definition: reminder.cpp:164
Reminder::setMaximum
void setMaximum(int hourmin, int days)
Definition: reminder.cpp:152
indexes
static QMap< Preferences::SoundType, int > indexes
Definition: soundpicker.cpp:45
shellprocess.h
LateCancelSelector::setMinutes
void setMinutes(int Minutes, bool dateOnly, TimePeriod::Units defaultUnits)
Definition: latecancel.cpp:126
QTreeView::setRootIsDecorated
void setRootIsDecorated(bool show)
RepetitionButton
Definition: repetitionbutton.h:45
birthdaymodel.h
QLabel
Preferences::defaultSoundVolume
static float defaultSoundVolume()
Definition: preferences.h:82
SpecialActionsButton::preAction
const QString & preAction() const
Definition: specialactions.h:42
QVariant::toString
QString toString() const
SpecialActionsButton::postAction
const QString & postAction() const
Definition: specialactions.h:43
QPalette
QBoxLayout::setSpacing
void setSpacing(int spacing)
QBoxLayout::addLayout
void addLayout(QLayout *layout, int stretch)
Reminder
Definition: reminder.h:32
This file is part of the KDE documentation.
Documentation copyright © 1996-2020 The KDE developers.
Generated on Mon Jun 22 2020 13:34:51 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

kalarm

Skip menu "kalarm"
  • 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