Gravatar

gravatarconfiguresettingswidget.cpp
1/*
2 SPDX-FileCopyrightText: 2019-2024 Laurent Montel <montel@kde.org>
3
4 SPDX-License-Identifier: LGPL-2.0-or-later
5*/
6
7#include "gravatarconfiguresettingswidget.h"
8using namespace Qt::Literals::StringLiterals;
9
10#include "gravatarsettings.h"
11#include <Gravatar/GravatarCache>
12#include <KConfigDialogManager>
13#include <KLocalizedString>
14#include <KPluralHandlingSpinBox>
15#include <KSeparator>
16#include <QCheckBox>
17#include <QHBoxLayout>
18#include <QLabel>
19#include <QPushButton>
20#include <QVBoxLayout>
21
22using namespace Gravatar;
23
24GravatarConfigureSettingsWidget::GravatarConfigureSettingsWidget(QWidget *parent)
25 : QWidget(parent)
26{
27 auto topLayout = new QVBoxLayout(this);
28 topLayout->setObjectName("mainlayout"_L1);
29 topLayout->setContentsMargins(0, 0, 0, 0);
30 mUseDefaultPixmap = new QCheckBox(i18n("Use Default Image"), this);
31 mUseDefaultPixmap->setObjectName("kcfg_GravatarUseDefaultImage"_L1);
32 topLayout->addWidget(mUseDefaultPixmap);
33
34 mUseLibravatar = new QCheckBox(i18n("Use Libravatar"), this);
35 mUseLibravatar->setObjectName("kcfg_LibravatarSupportEnabled"_L1);
36 topLayout->addWidget(mUseLibravatar);
37
38 mFallbackGravatar = new QCheckBox(i18n("Fallback to Gravatar"), this);
39 mFallbackGravatar->setObjectName("kcfg_FallbackToGravatar"_L1);
40 topLayout->addWidget(mFallbackGravatar);
41 connect(mUseLibravatar, &QCheckBox::toggled, mFallbackGravatar, &QCheckBox::setEnabled);
42 mFallbackGravatar->setEnabled(false);
43
44 auto cacheSizeLayout = new QHBoxLayout;
45 topLayout->addLayout(cacheSizeLayout);
46 auto lab = new QLabel(i18n("Gravatar Cache Size:"), this);
47 lab->setObjectName("gravatarcachesizelabel"_L1);
48 cacheSizeLayout->addWidget(lab);
49
50 mGravatarCacheSize = new KPluralHandlingSpinBox(this);
51 mGravatarCacheSize->setMinimum(1);
52 mGravatarCacheSize->setMaximum(9999);
53 mGravatarCacheSize->setSuffix(ki18ncp("add space before image", " image", " images"));
54 mGravatarCacheSize->setObjectName("kcfg_GravatarCacheSize"_L1);
55 cacheSizeLayout->addWidget(mGravatarCacheSize);
56 cacheSizeLayout->addStretch();
57
58 auto separator = new KSeparator(this);
59 separator->setObjectName("separator"_L1);
60 topLayout->addWidget(separator);
61
62 auto buttonLayout = new QHBoxLayout;
63 topLayout->addLayout(buttonLayout);
64 mClearGravatarCache = new QPushButton(i18n("Clear Gravatar Cache"), this);
65 mClearGravatarCache->setObjectName("cleargravatarcachebutton"_L1);
66 buttonLayout->addWidget(mClearGravatarCache);
67 buttonLayout->addStretch();
68
69 separator = new KSeparator(this);
70 separator->setObjectName("separator2"_L1);
71 topLayout->addWidget(separator);
72
73 connect(mClearGravatarCache, &QAbstractButton::clicked, this, &GravatarConfigureSettingsWidget::slotClearGravatarCache);
74
75 m_configDialogManager = new KConfigDialogManager(this, GravatarSettings::self());
76}
77
78GravatarConfigureSettingsWidget::~GravatarConfigureSettingsWidget() = default;
79
80void GravatarConfigureSettingsWidget::slotClearGravatarCache()
81{
82 Gravatar::GravatarCache::self()->clearAllCache();
83}
84
85void GravatarConfigureSettingsWidget::slotRestoreDefault()
86{
87 m_configDialogManager->updateWidgetsDefault();
88}
89
90void GravatarConfigureSettingsWidget::save()
91{
92 m_configDialogManager->updateSettings();
93}
94
95void GravatarConfigureSettingsWidget::load()
96{
97 m_configDialogManager->updateWidgets();
98}
99
100#include "moc_gravatarconfiguresettingswidget.cpp"
KLocalizedString KI18N_EXPORT ki18ncp(const char *context, const char *singular, const char *plural)
QString i18n(const char *text, const TYPE &arg...)
void clicked(bool checked)
void toggled(bool checked)
void addLayout(QLayout *layout, int stretch)
QFuture< ArgsType< Signal > > connect(Sender *sender, Signal signal)
void setEnabled(bool)
This file is part of the KDE documentation.
Documentation copyright © 1996-2024 The KDE developers.
Generated on Sat Apr 27 2024 22:06:15 by doxygen 1.10.0 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.