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