aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/cpaster
diff options
context:
space:
mode:
authorhjk <hjk@qt.io>2021-03-26 17:20:03 +0100
committerhjk <hjk@qt.io>2021-03-29 05:25:38 +0000
commitbff4022e98a98bd125e557c0b6f6ac0b8a45b2a8 (patch)
tree788b80a22f3af222d0f74a6b42d1e0751b9d3e1c /src/plugins/cpaster
parent4465e60afdfb8e45d165d03db88b63270a2d295e (diff)
CodePaster: Some more settings page cleanup
Change-Id: Ieac61eda5081025a3fe3cbbfffbd46d5433d0ebc Reviewed-by: David Schulz <david.schulz@qt.io>
Diffstat (limited to 'src/plugins/cpaster')
-rw-r--r--src/plugins/cpaster/fileshareprotocolsettingspage.cpp46
-rw-r--r--src/plugins/cpaster/fileshareprotocolsettingspage.h2
-rw-r--r--src/plugins/cpaster/settings.cpp65
-rw-r--r--src/plugins/cpaster/settings.h2
4 files changed, 34 insertions, 81 deletions
diff --git a/src/plugins/cpaster/fileshareprotocolsettingspage.cpp b/src/plugins/cpaster/fileshareprotocolsettingspage.cpp
index 5b28fb4722..494ba78f32 100644
--- a/src/plugins/cpaster/fileshareprotocolsettingspage.cpp
+++ b/src/plugins/cpaster/fileshareprotocolsettingspage.cpp
@@ -26,8 +26,6 @@
#include "fileshareprotocolsettingspage.h"
#include "cpasterconstants.h"
-#include <coreplugin/icore.h>
-
#include <utils/layoutbuilder.h>
#include <utils/temporarydirectory.h>
@@ -56,48 +54,30 @@ FileShareProtocolSettings::FileShareProtocolSettings()
// Settings page
-class FileShareProtocolSettingsWidget final : public Core::IOptionsPageWidget
+FileShareProtocolSettingsPage::FileShareProtocolSettingsPage(FileShareProtocolSettings *settings)
{
-public:
- FileShareProtocolSettingsWidget(FileShareProtocolSettings *settings)
- : m_settings(settings)
- {
- FileShareProtocolSettings &s = *settings;
+ setId("X.CodePaster.FileSharePaster");
+ setDisplayName(FileShareProtocolSettings::tr("Fileshare"));
+ setCategory(Constants::CPASTER_SETTINGS_CATEGORY);
+ setSettings(settings);
+
+ setLayouter([&s = *settings](QWidget *widget) {
using namespace Layouting;
- auto label = new QLabel(tr("The fileshare-based paster protocol allows for sharing code"
- "snippets using simple files on a shared network drive. "
- "Files are never deleted."));
+ auto label = new QLabel(FileShareProtocolSettingsPage::tr(
+ "The fileshare-based paster protocol allows for sharing code snippets using "
+ "simple files on a shared network drive. Files are never deleted."));
label->setWordWrap(true);
Column {
Form {
- label, Break(),
+ label, Break(),
s.path,
s.displayCount
},
Stretch()
- }.attachTo(this);
- }
-
- void apply() final
- {
- if (m_settings->isDirty()) {
- m_settings->apply();
- m_settings->writeSettings(Core::ICore::settings());
- }
- }
-
-private:
- FileShareProtocolSettings *m_settings;
-};
-
-FileShareProtocolSettingsPage::FileShareProtocolSettingsPage(FileShareProtocolSettings *s)
-{
- setId("X.CodePaster.FileSharePaster");
- setDisplayName(FileShareProtocolSettingsWidget::tr("Fileshare"));
- setCategory(Constants::CPASTER_SETTINGS_CATEGORY);
- setWidgetCreator([s] { return new FileShareProtocolSettingsWidget(s); });
+ }.attachTo(widget);
+ });
}
} // namespace CodePaster
diff --git a/src/plugins/cpaster/fileshareprotocolsettingspage.h b/src/plugins/cpaster/fileshareprotocolsettingspage.h
index 0e793ec68e..1ee12b5bee 100644
--- a/src/plugins/cpaster/fileshareprotocolsettingspage.h
+++ b/src/plugins/cpaster/fileshareprotocolsettingspage.h
@@ -45,7 +45,7 @@ public:
class FileShareProtocolSettingsPage final : public Core::IOptionsPage
{
public:
- explicit FileShareProtocolSettingsPage(FileShareProtocolSettings *s);
+ explicit FileShareProtocolSettingsPage(FileShareProtocolSettings *settings);
};
} // namespace CodePaster
diff --git a/src/plugins/cpaster/settings.cpp b/src/plugins/cpaster/settings.cpp
index 816e051859..bf6f9f6d47 100644
--- a/src/plugins/cpaster/settings.cpp
+++ b/src/plugins/cpaster/settings.cpp
@@ -26,9 +26,6 @@
#include "settings.h"
#include "cpasterconstants.h"
-#include "pastebindotcomprotocol.h"
-
-#include <coreplugin/icore.h>
#include <utils/layoutbuilder.h>
@@ -80,53 +77,31 @@ Settings::Settings()
// SettingsPage
-class SettingsWidget final : public Core::IOptionsPageWidget
-{
-public:
- SettingsWidget(Settings *settings);
-
-private:
- void apply() final;
-
- Settings *m_settings;
-};
-
-SettingsWidget::SettingsWidget(Settings *settings)
- : m_settings(settings)
-{
- Settings &s = *settings;
- using namespace Layouting;
- const Break nl;
-
- Column {
- Form {
- s.protocols, nl,
- s.username, nl,
- s.expiryDays
- },
- s.copyToClipboard,
- s.displayOutput,
- s.publicPaste,
- Stretch()
- }.attachTo(this);
-}
-
-void SettingsWidget::apply()
-{
- if (m_settings->isDirty()) {
- m_settings->apply();
- m_settings->writeSettings(Core::ICore::settings());
- }
-}
-
SettingsPage::SettingsPage(Settings *settings)
{
setId("A.CodePaster.General");
- setDisplayName(tr("General"));
+ setDisplayName(Settings::tr("General"));
setCategory(Constants::CPASTER_SETTINGS_CATEGORY);
- setDisplayCategory(QCoreApplication::translate("CodePaster", "Code Pasting"));
+ setDisplayCategory(Settings::tr("Code Pasting"));
setCategoryIconPath(":/cpaster/images/settingscategory_cpaster.png");
- setWidgetCreator([settings] { return new SettingsWidget(settings); });
+ setSettings(settings);
+
+ setLayouter([settings](QWidget *widget) {
+ Settings &s = *settings;
+ using namespace Layouting;
+
+ Column {
+ Form {
+ s.protocols,
+ s.username,
+ s.expiryDays
+ },
+ s.copyToClipboard,
+ s.displayOutput,
+ s.publicPaste,
+ Stretch()
+ }.attachTo(widget);
+ });
}
} // namespace CodePaster
diff --git a/src/plugins/cpaster/settings.h b/src/plugins/cpaster/settings.h
index 57046f95c1..26f1aaada1 100644
--- a/src/plugins/cpaster/settings.h
+++ b/src/plugins/cpaster/settings.h
@@ -48,8 +48,6 @@ public:
class SettingsPage final : public Core::IOptionsPage
{
- Q_DECLARE_TR_FUNCTIONS(CodePaster::SettingsPage)
-
public:
SettingsPage(Settings *settings);
};