Review Request 120317: WIP: Config pages without KCMs
Alexander Richardson
arichardson.kde at gmail.com
Wed Oct 15 15:37:28 UTC 2014
> On Okt. 15, 2014, 12:10 nachm., Milian Wolff wrote:
> > project/projectconfigpage.h, line 70
> > <https://git.reviewboard.kde.org/r/120317/diff/5/?file=315378#file315378line70>
> >
> > sorry but I don't understand you - I need more context. What file? Where will it be reused? When?
If we look at the code generated for e.g. the project filter settings:
```
class ProjectFilterSettingsHelper
{
public:
ProjectFilterSettingsHelper() : q(0) {}
~ProjectFilterSettingsHelper() { delete q; }
ProjectFilterSettings *q;
};
Q_GLOBAL_STATIC(ProjectFilterSettingsHelper, s_globalProjectFilterSettings)
ProjectFilterSettings *ProjectFilterSettings::self()
{
if (!s_globalProjectFilterSettings()->q)
qFatal("you need to call ProjectFilterSettings::instance before using");
return s_globalProjectFilterSettings()->q;
}
void ProjectFilterSettings::instance(const QString& cfgfilename)
{
if (s_globalProjectFilterSettings()->q) {
qDebug() << "ProjectFilterSettings::instance called after the first use - ignoring";
return;
}
new ProjectFilterSettings(cfgfilename);
s_globalProjectFilterSettings()->q->read();
}
ProjectFilterSettings::ProjectFilterSettings( const QString& config )
: KDevelop::ProjectConfigSkeleton( config )
{
Q_ASSERT(!s_globalProjectFilterSettings()->q);
s_globalProjectFilterSettings()->q = this;
}
ProjectFilterSettings::~ProjectFilterSettings()
{
s_globalProjectFilterSettings()->q = 0;
}
```
instance will be called with project->developerTempFile() the first time this settings dialog is opened.
If we don't delete it it will always reuse the current instance which still uses the initial project->developerTempFile()
even if we are configuring a different project. Also this ConfigSkeleton remains in memory although we are not using it.
- Alexander
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/120317/#review68438
-----------------------------------------------------------
On Okt. 15, 2014, 1:39 vorm., Alexander Richardson wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://git.reviewboard.kde.org/r/120317/
> -----------------------------------------------------------
>
> (Updated Okt. 15, 2014, 1:39 vorm.)
>
>
> Review request for KDevelop.
>
>
> Repository: kdevplatform
>
>
> Description
> -------
>
> Everything seems to work fine with the converted config pages.
>
> This is a huge diff, should I maybe push my changes to a new branch or to some other repository?
>
>
> Diffs
> -----
>
> project/projectconfigpage.h PRE-CREATION
> project/projectkcmodule.h fe40e9c3ad05963a5c7986110d1d4cb3e3fa5438
> shell/CMakeLists.txt 7847e261f53e4831f7dd662add34a6e6281d5cd4
> shell/configdialog.h PRE-CREATION
> shell/configdialog.cpp PRE-CREATION
> shell/plugincontroller.cpp 9872b4631fdd6c5e586c97ccee598066c0e2deb0
> shell/projectcontroller.h 08cb7cbfec32cac918d674ed9a076ce9286ffd30
> shell/projectcontroller.cpp 6c1c3844800d05911003d47c6408ff34d24d5afd
> shell/settings/CMakeLists.txt 5760ab4cb6a459ec6f1282ae09bb95f5f6e77892
> shell/settings/kcm_kdev_pluginsettings.desktop.cmake 10d126ed24adc10d3e6f7183d7b97677c661287e
> shell/settings/kcm_kdev_uisettings.desktop.cmake 336e233c2cb1570a2d8523680938f1d094a9a915
> shell/settings/pluginpreferences.h 12f9d233d9a06739ff0e460e5c41ff92f9431af3
> shell/settings/pluginpreferences.cpp 776df6360acec177aa6338058ede61ba80fc0b15
> shell/settings/uipreferences.h 34c46f3902cf06156c7f8279e6672ebb7a06a31e
> shell/settings/uipreferences.cpp c8ba26201516241e29f76db4c6e448de787c4704
> shell/uicontroller.h 797fa198ed17608e88f2a9e9a03f8072c5ebf45d
> shell/uicontroller.cpp 0eab47ae515f7832ea8b1833252346cec84c8254
> plugins/projectfilter/projectfilterkcm.cpp 7eaba23ca09bfedb76fde50a4ff02b28b009c31a
> plugins/projectfilter/projectfilterprovider.h cb1fa978e0c40fcf8cf5e3fcaf73294c1b9d314e
> plugins/projectfilter/projectfilterprovider.cpp e22198349f02675572b1396e7a02bac1b43d2eb8
> project/CMakeLists.txt e484a3c3370db2c5a9f600c3af5f0ef9e0ccb39d
> plugins/projectfilter/projectfilterkcm.h 01d143469528117589c86853e5847fad6bc2aaaf
> CMakeLists.txt 6a8987db82b5dd589b01718120c7c8021b91f1c4
> interfaces/CMakeLists.txt 87916216011e4390ba9b637f9ae22fe54f254e86
> interfaces/configpage.h PRE-CREATION
> interfaces/configpage.cpp PRE-CREATION
> interfaces/iplugin.h b101ae46fa430101c21a1c8eb8699674cbb1977b
> plugins/projectfilter/CMakeLists.txt 7fc4226bc253e033633916d058f0fc32a1f4cb6f
> interfaces/iplugin.cpp 1a0677312485ae47747cc3483ce325fe9890af78
> plugins/projectfilter/kcm_kdevprojectfilter.desktop.cmake 2d728b3fcb6b0cd8b6976771a214f270995bc2b7
>
> Diff: https://git.reviewboard.kde.org/r/120317/diff/
>
>
> Testing
> -------
>
> Dialog is shown correctly, apply, okay work correctly.
>
> Not sure why the first title is translated, AFAIK I don't have any KF5 translations installed (but maybe it loads it from my KDE4 installation?)
>
>
> File Attachments
> ----------------
>
> kdev_config_new.png
> https://git.reviewboard.kde.org/media/uploaded/files/2014/09/22/7e219540-1632-4465-9675-ad24a2fde56c__kdev_config_new.png
> kdev_config_new1.png
> https://git.reviewboard.kde.org/media/uploaded/files/2014/09/22/f4f16e26-e6dd-4c98-9969-588342f85f4c__kdev_config_new1.png
> plugin enabled -> entry exists
> https://git.reviewboard.kde.org/media/uploaded/files/2014/09/25/7130af0f-5e23-45cf-b781-ebe318be8369__kdev_config_new2.png
> plugin unloaded -> entry disappears
> https://git.reviewboard.kde.org/media/uploaded/files/2014/09/25/dff38c1f-2b3d-4ab7-a97d-adff0a99bb3d__kdev_config_new3.png
>
>
> Thanks,
>
> Alexander Richardson
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kdevelop-devel/attachments/20141015/80125b44/attachment-0001.html>
More information about the KDevelop-devel
mailing list