CPaster: Use PagedSettings

Change-Id: I826030f9a691c9e9c929deb1624d9705d3222e23
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
hjk
2023-05-15 16:29:22 +02:00
parent 0672199de8
commit 520412d147
6 changed files with 17 additions and 42 deletions

View File

@@ -6,7 +6,6 @@
#include "cpastertr.h" #include "cpastertr.h"
#include "fileshareprotocolsettingspage.h" #include "fileshareprotocolsettingspage.h"
#include <coreplugin/icore.h>
#include <coreplugin/messagemanager.h> #include <coreplugin/messagemanager.h>
#include <utils/fileutils.h> #include <utils/fileutils.h>
@@ -29,20 +28,13 @@ const char textElementC[] = "text";
namespace CodePaster { namespace CodePaster {
FileShareProtocol::FileShareProtocol() : FileShareProtocol::FileShareProtocol() = default;
m_settingsPage(new FileShareProtocolSettingsPage(&m_settings))
{
m_settings.readSettings(Core::ICore::settings());
}
FileShareProtocol::~FileShareProtocol() FileShareProtocol::~FileShareProtocol() = default;
{
delete m_settingsPage;
}
QString FileShareProtocol::name() const QString FileShareProtocol::name() const
{ {
return m_settingsPage->displayName(); return m_settings.displayName();
} }
unsigned FileShareProtocol::capabilities() const unsigned FileShareProtocol::capabilities() const
@@ -55,9 +47,9 @@ bool FileShareProtocol::hasSettings() const
return true; return true;
} }
Core::IOptionsPage *FileShareProtocol::settingsPage() const const Core::IOptionsPage *FileShareProtocol::settingsPage() const
{ {
return m_settingsPage; return &m_settings;
} }
static bool parse(const QString &fileName, static bool parse(const QString &fileName,

View File

@@ -8,8 +8,6 @@
namespace CodePaster { namespace CodePaster {
class FileShareProtocolSettingsPage;
/* FileShareProtocol: Allows for pasting via a shared network /* FileShareProtocol: Allows for pasting via a shared network
* drive by writing XML files. */ * drive by writing XML files. */
@@ -22,7 +20,7 @@ public:
QString name() const override; QString name() const override;
unsigned capabilities() const override; unsigned capabilities() const override;
bool hasSettings() const override; bool hasSettings() const override;
Core::IOptionsPage *settingsPage() const override; const Core::IOptionsPage *settingsPage() const override;
bool checkConfiguration(QString *errorMessage = nullptr) override; bool checkConfiguration(QString *errorMessage = nullptr) override;
void fetch(const QString &id) override; void fetch(const QString &id) override;
@@ -35,7 +33,6 @@ public:
private: private:
FileShareProtocolSettings m_settings; FileShareProtocolSettings m_settings;
FileShareProtocolSettingsPage *m_settingsPage;
}; };
} // CodePaster } // CodePaster

View File

@@ -15,8 +15,10 @@ namespace CodePaster {
FileShareProtocolSettings::FileShareProtocolSettings() FileShareProtocolSettings::FileShareProtocolSettings()
{ {
setId("X.CodePaster.FileSharePaster");
setDisplayName(Tr::tr("Fileshare"));
setCategory(Constants::CPASTER_SETTINGS_CATEGORY);
setSettingsGroup("FileSharePasterSettings"); setSettingsGroup("FileSharePasterSettings");
setAutoApply(false);
registerAspect(&path); registerAspect(&path);
path.setSettingsKey("Path"); path.setSettingsKey("Path");
@@ -30,18 +32,8 @@ FileShareProtocolSettings::FileShareProtocolSettings()
displayCount.setDefaultValue(10); displayCount.setDefaultValue(10);
displayCount.setSuffix(' ' + Tr::tr("entries")); displayCount.setSuffix(' ' + Tr::tr("entries"));
displayCount.setLabelText(Tr::tr("&Display:")); displayCount.setLabelText(Tr::tr("&Display:"));
}
// Settings page setLayouter([this](QWidget *widget) {
FileShareProtocolSettingsPage::FileShareProtocolSettingsPage(FileShareProtocolSettings *settings)
{
setId("X.CodePaster.FileSharePaster");
setDisplayName(Tr::tr("Fileshare"));
setCategory(Constants::CPASTER_SETTINGS_CATEGORY);
setSettings(settings);
setLayouter([&s = *settings](QWidget *widget) {
using namespace Layouting; using namespace Layouting;
auto label = new QLabel(Tr::tr( auto label = new QLabel(Tr::tr(
@@ -52,12 +44,14 @@ FileShareProtocolSettingsPage::FileShareProtocolSettingsPage(FileShareProtocolSe
Column { Column {
Form { Form {
label, br, label, br,
s.path, br, path, br,
s.displayCount displayCount
}, },
st st
}.attachTo(widget); }.attachTo(widget);
}); });
readSettings();
} }
} // namespace CodePaster } // namespace CodePaster

View File

@@ -5,11 +5,9 @@
#include <coreplugin/dialogs/ioptionspage.h> #include <coreplugin/dialogs/ioptionspage.h>
#include <utils/aspects.h>
namespace CodePaster { namespace CodePaster {
class FileShareProtocolSettings : public Utils::AspectContainer class FileShareProtocolSettings : public Core::PagedSettings
{ {
public: public:
FileShareProtocolSettings(); FileShareProtocolSettings();
@@ -18,10 +16,4 @@ public:
Utils::IntegerAspect displayCount; Utils::IntegerAspect displayCount;
}; };
class FileShareProtocolSettingsPage final : public Core::IOptionsPage
{
public:
explicit FileShareProtocolSettingsPage(FileShareProtocolSettings *settings);
};
} // CodePaster } // CodePaster

View File

@@ -47,7 +47,7 @@ bool Protocol::checkConfiguration(QString *)
return true; return true;
} }
Core::IOptionsPage *Protocol::settingsPage() const const Core::IOptionsPage *Protocol::settingsPage() const
{ {
return nullptr; return nullptr;
} }

View File

@@ -38,7 +38,7 @@ public:
virtual unsigned capabilities() const = 0; virtual unsigned capabilities() const = 0;
virtual bool hasSettings() const; virtual bool hasSettings() const;
virtual Core::IOptionsPage *settingsPage() const; virtual const Core::IOptionsPage *settingsPage() const;
virtual bool checkConfiguration(QString *errorMessage = nullptr); virtual bool checkConfiguration(QString *errorMessage = nullptr);
virtual void fetch(const QString &id) = 0; virtual void fetch(const QString &id) = 0;