Akonadi

tagmanagementdialog.cpp
1 /*
2  This file is part of Akonadi
3 
4  SPDX-FileCopyrightText: 2014 Christian Mollekopf <[email protected]>
5 
6  SPDX-License-Identifier: LGPL-2.0-or-later
7 */
8 
9 #include "tagmanagementdialog.h"
10 #include "ui_tagmanagementdialog.h"
11 
12 #include "controlgui.h"
13 #include "monitor.h"
14 #include "tagmodel.h"
15 
16 #include <KConfigGroup>
17 #include <KLocalizedString>
18 #include <KSharedConfig>
19 
20 using namespace Akonadi;
21 namespace
22 {
23 static const char myTagManagementDialogGroupName[] = "TagManagementDialog";
24 }
25 class Akonadi::TagManagementDialogPrivate
26 {
27 public:
28  explicit TagManagementDialogPrivate(QDialog *parent)
29  : q(parent)
30  {
31  }
32 
33  void writeConfig() const;
34  void readConfig() const;
35 
36  Ui::TagManagementDialog ui;
37  QDialog *const q;
38  QDialogButtonBox *buttonBox = nullptr;
39 };
40 
41 void TagManagementDialogPrivate::writeConfig() const
42 {
43  KConfigGroup group(KSharedConfig::openStateConfig(), myTagManagementDialogGroupName);
44  group.writeEntry("Size", q->size());
45 }
46 
47 void TagManagementDialogPrivate::readConfig() const
48 {
49  KConfigGroup group(KSharedConfig::openStateConfig(), myTagManagementDialogGroupName);
50  const QSize sizeDialog = group.readEntry("Size", QSize(500, 400));
51  if (sizeDialog.isValid()) {
52  q->resize(sizeDialog);
53  }
54 }
55 
56 TagManagementDialog::TagManagementDialog(QWidget *parent)
57  : QDialog(parent)
58  , d(new TagManagementDialogPrivate(this))
59 {
60  auto monitor = new Monitor(this);
61  monitor->setObjectName(QStringLiteral("TagManagementDialogMonitor"));
62  monitor->setTypeMonitored(Monitor::Tags);
63 
64  d->ui.setupUi(this);
65  d->ui.tagEditWidget->setModel(new TagModel(monitor, this));
66  d->ui.tagEditWidget->setSelectionEnabled(false);
67 
68  d->readConfig();
69 
71 }
72 
73 TagManagementDialog::~TagManagementDialog()
74 {
75  d->writeConfig();
76 }
77 
78 QDialogButtonBox *TagManagementDialog::buttons() const
79 {
80  return d->buttonBox;
81 }
static void widgetNeedsAkonadi(QWidget *widget)
Disable the given widget when Akonadi is not operational and show an error overlay (given enough spac...
Definition: controlgui.cpp:243
bool isValid() const const
Monitors an item or collection for changes.
Definition: monitor.h:71
static KSharedConfig::Ptr openStateConfig(const QString &fileName=QString())
Helper integration between Akonadi and Qt.
This file is part of the KDE documentation.
Documentation copyright © 1996-2023 The KDE developers.
Generated on Sun Jun 4 2023 03:52:48 by doxygen 1.8.17 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.