1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102
|
/*
SPDX-FileCopyrightText: 2013-2022 Laurent Montel <montel@kde.org>
SPDX-License-Identifier: GPL-2.0-or-later
*/
#include "notesagentsettingsdialog.h"
#include "knotes-version.h"
#include <KAboutData>
#include <KHelpMenu>
#include <KLocalizedString>
#include <KNotifyConfigWidget>
#include <QIcon>
#include <QMenu>
#include <KConfigGroup>
#include <KSharedConfig>
#include <QApplication>
#include <QDialogButtonBox>
#include <QPushButton>
#include <QTabWidget>
#include <QVBoxLayout>
#include <config/notenetworkconfig.h>
NotesAgentSettingsDialog::NotesAgentSettingsDialog(QWidget *parent)
: QDialog(parent)
, mNotify(new KNotifyConfigWidget(this))
, mNetworkConfig(new NoteShared::NoteNetworkConfigWidget(this))
{
setWindowTitle(i18nc("@title:window", "Configure Notes Agent"));
setWindowIcon(QIcon::fromTheme(QStringLiteral("knotes")));
auto mainLayout = new QVBoxLayout(this);
setModal(true);
auto buttonBox = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel | QDialogButtonBox::Help, this);
QPushButton *okButton = buttonBox->button(QDialogButtonBox::Ok);
okButton->setDefault(true);
okButton->setShortcut(Qt::CTRL | Qt::Key_Return);
connect(buttonBox, &QDialogButtonBox::rejected, this, &NotesAgentSettingsDialog::reject);
connect(okButton, &QPushButton::clicked, this, &NotesAgentSettingsDialog::slotOkClicked);
auto tab = new QTabWidget(this);
mNotify->setApplication(QStringLiteral("akonadi_notes_agent"));
tab->addTab(mNotify, i18n("Notify"));
tab->addTab(mNetworkConfig, i18n("Network"));
mNetworkConfig->load();
mainLayout->addWidget(tab);
mainLayout->addWidget(buttonBox);
readConfig();
KAboutData aboutData = KAboutData(QStringLiteral("notesagent"),
i18n("Notes Agent"),
QStringLiteral(KNOTES_VERSION),
i18n("Notes Agent."),
KAboutLicense::GPL_V2,
i18n("Copyright (C) 2013-%1 Laurent Montel", QStringLiteral("2022")));
aboutData.addAuthor(i18n("Laurent Montel"), i18n("Maintainer"), QStringLiteral("montel@kde.org"));
QApplication::setWindowIcon(QIcon::fromTheme(QStringLiteral("knotes")));
aboutData.setTranslator(i18nc("NAME OF TRANSLATORS", "Your names"), i18nc("EMAIL OF TRANSLATORS", "Your emails"));
auto helpMenu = new KHelpMenu(this, aboutData, true);
// Initialize menu
QMenu *menu = helpMenu->menu();
helpMenu->action(KHelpMenu::menuAboutApp)->setIcon(QIcon::fromTheme(QStringLiteral("knotes")));
buttonBox->button(QDialogButtonBox::Help)->setMenu(menu);
}
NotesAgentSettingsDialog::~NotesAgentSettingsDialog()
{
writeConfig();
}
static const char myConfigGroupName[] = "NotesAgentSettingsDialog";
void NotesAgentSettingsDialog::writeConfig()
{
KConfigGroup group(KSharedConfig::openStateConfig(), myConfigGroupName);
const QSize size = group.readEntry("Size", QSize(500, 300));
if (size.isValid()) {
resize(size);
}
}
void NotesAgentSettingsDialog::readConfig()
{
KConfigGroup group(KSharedConfig::openStateConfig(), myConfigGroupName);
group.writeEntry("Size", size());
group.sync();
}
void NotesAgentSettingsDialog::slotOkClicked()
{
mNotify->save();
mNetworkConfig->save();
accept();
}
|