D27988: KCM/Compositing: Use KConfig XT in UI

Vlad Zahorodnii <[email protected]>
Newsgroups gmane.comp.kde.devel.kwin
Message-ID <[email protected]>
zzag requested changes to this revision.
zzag added a comment.
This revision now requires changes to proceed.


  Hmm, I cannot test this kcm because it crashes.
  
  name=lldb output
    * thread #1, name = 'kcmshell5', stop reason = signal SIGSEGV: invalid address (fault address: 0x0)
        frame #0: 0x00007fffef767d07 kwincompositing.so`KWinCompositingKCM::load(this=0x00005555555ef6c0) at main.cpp:243:68
       240      m_form.animationDurationFactor->setValue(index);
       241 
       242      m_settings->findItem("Backend")->readConfig(m_settings->config());
    -> 243      m_settings->findItem("GLCore")->readConfig(m_settings->config());
       244      m_backend = m_settings->backend();
       245      if (m_backend == KWinCompositingSetting::EnumBackend::OpenGL) {
       246          m_glCore = m_settings->glCore();
    (lldb) bt
    * thread #1, name = 'kcmshell5', stop reason = signal SIGSEGV: invalid address (fault address: 0x0)
      * frame #0: 0x00007fffef767d07 kwincompositing.so`KWinCompositingKCM::load(this=0x00005555555ef6c0) at main.cpp:243:68
        frame #1: 0x00007fffef7682a2 kwincompositing.so`KWinCompositingKCM::qt_static_metacall(_o=0x00005555555ef6c0, _c=InvokeMetaMethod, _id=0, _a=0x000055555567a478) at main.moc:85:25
        frame #2: 0x00007ffff605daab libQt5Core.so.5`QMetaCallEvent::placeMetaCall(this=0x000055555567a430, object=0x00005555555ef6c0) at qobject.cpp:617:24
        frame #3: 0x00007ffff605e9a5 libQt5Core.so.5`QObject::event(this=0x00005555555ef6c0, e=0x000055555567a430) at qobject.cpp:1314:31
        frame #4: 0x00007ffff6ee188d libQt5Widgets.so.5`QWidget::event(this=0x00005555555ef6c0, event=0x000055555567a430) at qwidget.cpp:9089:30
        frame #5: 0x00007ffff6e92ea5 libQt5Widgets.so.5`QApplicationPrivate::notify_helper(this=0x000055555557ea20, receiver=0x00005555555ef6c0, e=0x000055555567a430) at qapplication.cpp:3671:31
        frame #6: 0x00007ffff6e92c95 libQt5Widgets.so.5`QApplication::notify(this=0x00007fffffffdf70, receiver=0x00005555555ef6c0, e=0x000055555567a430) at qapplication.cpp:3621:31
        frame #7: 0x00007ffff6016ddf libQt5Core.so.5`QCoreApplication::notifyInternal2(receiver=0x00005555555ef6c0, event=0x000055555567a430) at qcoreapplication.cpp:1061:24
        frame #8: 0x00007ffff601783c libQt5Core.so.5`QCoreApplication::sendEvent(receiver=0x00005555555ef6c0, event=0x000055555567a430) at qcoreapplication.cpp:1456:27
        frame #9: 0x00007ffff60185ab libQt5Core.so.5`QCoreApplicationPrivate::sendPostedEvents(receiver=0x0000000000000000, event_type=0, data=0x000055555556c400) at qcoreapplication.cpp:1815:36
        frame #10: 0x00007ffff6017ee4 libQt5Core.so.5`QCoreApplication::sendPostedEvents(receiver=0x0000000000000000, event_type=0) at qcoreapplication.cpp:1674:46
        frame #11: 0x00007ffff60b0164 libQt5Core.so.5`::postEventSourceDispatch(s=0x00005555555e4380, (null)=0x0000000000000000, (null)=0x0000000000000000) at qeventdispatcher_glib.cpp:277:39
        frame #12: 0x00007ffff198c9be libglib-2.0.so.0`g_main_context_dispatch + 638
        frame #13: 0x00007ffff198e831 libglib-2.0.so.0`___lldb_unnamed_symbol354$$libglib-2.0.so.0 + 545
        frame #14: 0x00007ffff198e871 libglib-2.0.so.0`g_main_context_iteration + 49
        frame #15: 0x00007ffff60b08bf libQt5Core.so.5`QEventDispatcherGlib::processEvents(this=0x00005555555e75d0, flags=(i = 36)) at qeventdispatcher_glib.cpp:423:43
        frame #16: 0x00007fffef83242a libQt5XcbQpa.so.5`QXcbGlibEventDispatcher::processEvents(this=0x00005555555e75d0, flags=(i = 36)) at qxcbeventdispatcher.cpp:143:47
        frame #17: 0x00007ffff601347b libQt5Core.so.5`QEventLoop::processEvents(this=0x00007fffffffde30, flags=(i = 36)) at qeventloop.cpp:139:68
        frame #18: 0x00007ffff60137dd libQt5Core.so.5`QEventLoop::exec(this=0x00007fffffffde30, flags=(i = 0)) at qeventloop.cpp:232:22
        frame #19: 0x00007ffff601767e libQt5Core.so.5`QCoreApplication::exec() at qcoreapplication.cpp:1369:36
        frame #20: 0x00007ffff6560bd4 libQt5Gui.so.5`QGuiApplication::exec() at qguiapplication.cpp:1864:34
        frame #21: 0x00007ffff6e8fa27 libQt5Widgets.so.5`QApplication::exec() at qapplication.cpp:2811:33
        frame #22: 0x00007ffff7f7e4d3 libkdeinit5_kcmshell5.so`kdemain + 6435
        frame #23: 0x00007ffff7dd6023 libc.so.6`__libc_start_main + 243
        frame #24: 0x000055555555505e kcmshell5`_start + 46

INLINE COMMENTS

> kwincompositing_setting.kcfg:72-78
>         <entry name="glPlatformInterface" key="GLPlatformInterface" type="String">
>             <default>glx</default>
>             <choices>
>                 <choice name="glx" />
>                 <choice name="egl" />
>             </choices>
>         </entry>

Please remove this entry because it's unused. In general, it would probably be nice to re-introduce the "OpenGL Platform Interface" option. It was originally present in the QML based version of this KCM, but then we switched back to qwidgets. :/

> main.cpp:62
> +    void updateUnmanagedItemStatus();
> +    bool isRunningPlasma() const;
> +    bool compositingRequired() const;

Make it static.

> main.cpp:101
> +    m_form.kcfg_Enabled->setVisible(!compositingRequired());
> +    m_form.kcfg_WindowsBlockCompositing ->setVisible(!compositingRequired());
>  

stray whitespace between "kcfg_WindowsBlockCompositing" and "->". Please remove it.

> main.cpp:243
> +    m_settings->findItem("Backend")->readConfig(m_settings->config());
> +    m_settings->findItem("GLCore")->readConfig(m_settings->config());
> +    m_backend = m_settings->backend();

Maybe `glCore`?

REPOSITORY
  R108 KWin

REVISION DETAIL
  https://phabricator.kde.org/D27988

To: meven, #kwin, ervin, crossi, bport, hchain, zzag
Cc: zzag, kwin, Orage, cacarry, LeGast00n, The-Feren-OS-Dev, cblack, jraleigh, zachus, fbampaloukas, GB_2, mkulinski, ragreen, jackyalcine, iodelay, crozbo, bwowk, ZrenBot, ngraham, alexeymin, himcesjf, lesliezhai, ali-mohamed, hardening, romangg, jensreuterberg, abetts, sebas, apol, ahiemstra, mart
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.