<table><tr><td style="">gpark created this revision.<br />gpark added a reviewer: hein.<br />Restricted Application added a project: Plasma.<br />Restricted Application added a subscriber: plasma-devel.<br />gpark requested review of this revision.
</td><a style="text-decoration: none; padding: 4px 8px; margin: 0 8px 8px; float: right; color: #464C5C; font-weight: bold; border-radius: 3px; background-color: #F7F7F9; background-image: linear-gradient(to bottom,#fff,#f1f0f1); display: inline-block; border: 1px solid rgba(71,87,120,.2);" href="https://phabricator.kde.org/D14796">View Revision</a></tr></table><br /><div><strong>REVISION SUMMARY</strong><div><p>finish Hardware section</p>

<p>stash</p>

<p>unset CMAKE_INSTALL_PREFIX</p>

<p>fix install directory</p>

<p>add layout model</p>

<p>make a model for layouts</p>

<p>expand itemmodel with ExpandLayoutListProxyModel</p>

<p>change qml structure</p>

<p>add add layout to list</p>

<p>implement layout selector</p>

<p>remove unnecessary files</p>

<p>remove more unnecessary files</p>

<p>implement save() for next layout shortcut</p>

<p>separate kcmui and daemon</p>

<p>rename main.cpp to kcm_keyboard.cpp</p>

<p>wrap layout list model with proxy</p>

<p>add filter</p>

<p>add fcitx current layout list model</p>

<p>change layout list to im list</p>

<p>implement fcitx currentlayoutslistmodel load()</p>

<p>remove item from original list if it is added</p>

<p>add configure button</p>

<p>change model architecture</p>

<p>Add filter models</p>

<p>improve fcitx support</p>

<p>try to add fcitx im config</p>

<p>move UI models to qml</p>

<p>preserve order of fcitx im config items</p>

<p>Implement move up/move down</p>

<p>change mechanism to uncheck item on close dialog</p>

<p>move file temporarily to apply patch</p>

<p>Apply patch <a href="https://phabricator.kde.org/D13178" style="background-color: #e7e7e7;
          border-color: #e7e7e7;
          border-radius: 3px;
          padding: 0 4px;
          font-weight: bold;
          color: black;text-decoration: none;">D13178</a></p>

<p>fix build system</p>

<p>Change to CamelCase and move save and load to main class</p>

<p>change model structure to incorporate lost layouts</p>

<p>Implement drag-and-drop</p>

<p>fix multi-add</p>

<p>Simplify model structure</p>

<p>emit changed() signal</p>

<p>use proper keysequence widget</p>

<p>use scrollviewkcm</p>

<p>remove tray icons</p>

<p>add icons for buttons</p>

<p>move fcitx to parent dir</p>

<p>fix moving problems</p>

<p>fix updating problems</p>

<p>start working on daemon</p>

<p>formatting</p>

<p>add latin switching</p>

<p>restructure project</p>

<p>Make Input Source detection more IM-agnostic</p>

<p>Fix daemon dbus calls; Implement show/hide</p>

<p>replace first icon of the applet</p>

<p>implement context menu</p>

<p>Implement main shortcut & 3rd level shortcut</p>

<p>add context menu</p>

<p>add advanced tab UI</p>

<p>add advanced functionality</p>

<p>revert back to original daemon</p>

<p>Remove outdated tests</p></div></div><br /><div><strong>REPOSITORY</strong><div><div>R119 Plasma Desktop</div></div></div><br /><div><strong>BRANCH</strong><div><div>new_keyboard_kcm</div></div></div><br /><div><strong>REVISION DETAIL</strong><div><a href="https://phabricator.kde.org/D14796">https://phabricator.kde.org/D14796</a></div></div><br /><div><strong>AFFECTED FILES</strong><div><div>applets/kimpanel/package/contents/ui/CompactRepresentation.qml<br />
applets/kimpanel/package/contents/ui/MainContextMenu.qml<br />
applets/kimpanel/package/contents/ui/main.qml<br />
dataengines/kimpanel/CMakeLists.txt<br />
dataengines/kimpanel/kimpanelagent.cpp<br />
dataengines/kimpanel/kimpanelagent.h<br />
dataengines/kimpanel/kimpaneldataengine.cpp<br />
dataengines/kimpanel/kimpanelstatusbarcontainer.cpp<br />
dataengines/kimpanel/kimpanelstatusbarcontainer.h<br />
kcms/CMakeLists.txt<br />
kcms/keyboard/CMakeLists.txt<br />
kcms/keyboard/Messages.sh<br />
kcms/keyboard/README<br />
kcms/keyboard/TODO<br />
kcms/keyboard/bindings.cpp<br />
kcms/keyboard/bindings.h<br />
kcms/keyboard/config-keyboard.h.cmake<br />
kcms/keyboard/daemon/CMakeLists.txt<br />
kcms/keyboard/daemon/bindings.cpp<br />
kcms/keyboard/daemon/bindings.h<br />
kcms/keyboard/daemon/keyboard.desktop<br />
kcms/keyboard/daemon/keyboard_daemon.cpp<br />
kcms/keyboard/daemon/keyboard_daemon.h<br />
kcms/keyboard/daemon/keyboard_hardware.cpp<br />
kcms/keyboard/daemon/keyboard_hardware.h<br />
kcms/keyboard/daemon/x11_helper.cpp<br />
kcms/keyboard/daemon/x11_helper.h<br />
kcms/keyboard/daemon/xinput_helper.cpp<br />
kcms/keyboard/daemon/xinput_helper.h<br />
kcms/keyboard/daemon/xkb_helper.cpp<br />
kcms/keyboard/daemon/xkb_helper.h<br />
kcms/keyboard/fcitx/fcitxqtdbusaddons_export.h<br />
kcms/keyboard/fcitx/fcitxqtinputmethoditem.cpp<br />
kcms/keyboard/fcitx/fcitxqtinputmethoditem.h<br />
kcms/keyboard/fcitx/fcitxqtinputmethodproxy.cpp<br />
kcms/keyboard/fcitx/fcitxqtinputmethodproxy.h<br />
kcms/keyboard/fcitx/org.fcitx.Fcitx.InputMethod.xml<br />
kcms/keyboard/flags.cpp<br />
kcms/keyboard/flags.h<br />
kcms/keyboard/iso_codes.cpp<br />
kcms/keyboard/iso_codes.h<br />
kcms/keyboard/kcm_add_layout_dialog.cpp<br />
kcms/keyboard/kcm_add_layout_dialog.h<br />
kcms/keyboard/kcm_add_layout_dialog.ui<br />
kcms/keyboard/kcm_keyboard.cpp<br />
kcms/keyboard/kcm_keyboard.desktop<br />
kcms/keyboard/kcm_keyboard.h<br />
kcms/keyboard/kcm_keyboard.ui<br />
kcms/keyboard/kcm_keyboard_widget.cpp<br />
kcms/keyboard/kcm_keyboard_widget.h<br />
kcms/keyboard/kcm_view_models.cpp<br />
kcms/keyboard/kcm_view_models.h<br />
kcms/keyboard/kcmmisc.cpp<br />
kcms/keyboard/kcmmisc.h<br />
kcms/keyboard/kcmmiscwidget.ui<br />
kcms/keyboard/kcmui/CMakeLists.txt<br />
kcms/keyboard/kcmui/abstract_advanced_model.cpp<br />
kcms/keyboard/kcmui/abstract_advanced_model.h<br />
kcms/keyboard/kcmui/advanced_filter_proxy_model.cpp<br />
kcms/keyboard/kcmui/advanced_filter_proxy_model.h<br />
kcms/keyboard/kcmui/advanced_flatten_proxy_model.cpp<br />
kcms/keyboard/kcmui/advanced_flatten_proxy_model.h<br />
kcms/keyboard/kcmui/advanced_model.cpp<br />
kcms/keyboard/kcmui/advanced_model.h<br />
kcms/keyboard/kcmui/hardware_config_model.cpp<br />
kcms/keyboard/kcmui/hardware_config_model.h<br />
kcms/keyboard/kcmui/kcm_keyboard.cpp<br />
kcms/keyboard/kcmui/kcm_keyboard.desktop<br />
kcms/keyboard/kcmui/kcm_keyboard.h<br />
kcms/keyboard/kcmui/keyboard_model_model.cpp<br />
kcms/keyboard/kcmui/keyboard_model_model.h<br />
kcms/keyboard/kcmui/layout_config_model.cpp<br />
kcms/keyboard/kcmui/layout_config_model.h<br />
kcms/keyboard/kcmui/package/contents/ui/Advanced.qml<br />
kcms/keyboard/kcmui/package/contents/ui/FcitxIMConfig.qml<br />
kcms/keyboard/kcmui/package/contents/ui/Hardware.qml<br />
kcms/keyboard/kcmui/package/contents/ui/LayoutPreview.qml<br />
kcms/keyboard/kcmui/package/contents/ui/Layouts.qml<br />
kcms/keyboard/kcmui/package/contents/ui/TriSelector.qml<br />
kcms/keyboard/kcmui/package/contents/ui/XkbLayoutConfig.qml<br />
kcms/keyboard/kcmui/package/contents/ui/main.qml<br />
kcms/keyboard/kcmui/package/metadata.desktop<br />
kcms/keyboard/keyboard.desktop<br />
kcms/keyboard/keyboard_config.cpp<br />
kcms/keyboard/keyboard_config.h<br />
kcms/keyboard/keyboard_daemon.cpp<br />
kcms/keyboard/keyboard_daemon.h<br />
kcms/keyboard/keyboard_hardware.cpp<br />
kcms/keyboard/keyboard_hardware.h<br />
kcms/keyboard/layout_memory.h<br />
kcms/keyboard/layout_memory_persister.cpp<br />
kcms/keyboard/layout_memory_persister.h<br />
kcms/keyboard/layout_tray_icon.cpp<br />
kcms/keyboard/layout_tray_icon.h<br />
kcms/keyboard/layoutmodel/CMakeLists.txt<br />
kcms/keyboard/layoutmodel/fcitx_im_config_model.cpp<br />
kcms/keyboard/layoutmodel/fcitx_im_config_model.h<br />
kcms/keyboard/layoutmodel/input_sources.cpp<br />
kcms/keyboard/layoutmodel/input_sources.h<br />
kcms/keyboard/layoutmodel/layout_list_concat_proxy_model.cpp<br />
kcms/keyboard/layoutmodel/layout_list_concat_proxy_model.h<br />
kcms/keyboard/layoutmodel/layout_list_current_proxy_model.cpp<br />
kcms/keyboard/layoutmodel/layout_list_current_proxy_model.h<br />
kcms/keyboard/layoutmodel/layout_list_filter_disabled_proxy_model.cpp<br />
kcms/keyboard/layoutmodel/layout_list_filter_disabled_proxy_model.h<br />
kcms/keyboard/layoutmodel/layout_list_filter_duplicates_proxy_model.cpp<br />
kcms/keyboard/layoutmodel/layout_list_filter_duplicates_proxy_model.h<br />
kcms/keyboard/layoutmodel/layout_list_filter_source_proxy_model.cpp<br />
kcms/keyboard/layoutmodel/layout_list_filter_source_proxy_model.h<br />
kcms/keyboard/layoutmodel/layout_list_model_base.cpp<br />
kcms/keyboard/layoutmodel/layout_list_model_base.h<br />
kcms/keyboard/layoutmodel/layout_list_model_fcitx.cpp<br />
kcms/keyboard/layoutmodel/layout_list_model_fcitx.h<br />
kcms/keyboard/layoutmodel/layout_list_model_selected.cpp<br />
kcms/keyboard/layoutmodel/layout_list_model_selected.h<br />
kcms/keyboard/layoutmodel/layout_list_model_xkb.cpp<br />
kcms/keyboard/layoutmodel/layout_list_model_xkb.h<br />
kcms/keyboard/layoutmodel/layout_list_models.cpp<br />
kcms/keyboard/layoutmodel/layout_list_models.h<br />
kcms/keyboard/layoutmodel/layout_list_sort_by_priority_proxy_model.cpp<br />
kcms/keyboard/layoutmodel/layout_list_sort_by_priority_proxy_model.h<br />
kcms/keyboard/layoutmodel/layout_list_sort_filter_proxy_model.cpp<br />
kcms/keyboard/layoutmodel/layout_list_sort_filter_proxy_model.h<br />
kcms/keyboard/layoutmodel/layout_list_xkb_expand_proxy_model.cpp<br />
kcms/keyboard/layoutmodel/layout_list_xkb_expand_proxy_model.h<br />
kcms/keyboard/layoutmodel/xkb_layout_config_model.cpp<br />
kcms/keyboard/layoutmodel/xkb_layout_config_model.h<br />
kcms/keyboard/layouts_menu.cpp<br />
kcms/keyboard/layouts_menu.h<br />
kcms/keyboard/pics/CMakeLists.txt<br />
kcms/keyboard/pics/epo.png<br />
kcms/keyboard/preview/TODO<br />
kcms/keyboard/preview/geometry_components.cpp<br />
kcms/keyboard/preview/geometry_components.h<br />
kcms/keyboard/preview/geometry_parser.cpp<br />
kcms/keyboard/preview/geometry_parser.h<br />
kcms/keyboard/preview/kbpreviewframe.h<br />
kcms/keyboard/preview/keyaliases.cpp<br />
kcms/keyboard/preview/keyaliases.h<br />
kcms/keyboard/preview/keyboardlayout.cpp<br />
kcms/keyboard/preview/keyboardlayout.h<br />
kcms/keyboard/preview/keyboardpainter.cpp<br />
kcms/keyboard/preview/keyboardpainter.h<br />
kcms/keyboard/preview/keysym2ucs.cpp<br />
kcms/keyboard/preview/keysym2ucs.h<br />
kcms/keyboard/preview/keysymbols.cpp<br />
kcms/keyboard/preview/keysymbols.h<br />
kcms/keyboard/preview/keysymhelper.cpp<br />
kcms/keyboard/preview/keysymhelper.h<br />
kcms/keyboard/preview/symbol_parser.cpp<br />
kcms/keyboard/preview/symbol_parser.h<br />
kcms/keyboard/tests/CMakeLists.txt<br />
kcms/keyboard/tests/config/base.1.1.xml<br />
kcms/keyboard/tests/config/base.bad.xml<br />
kcms/keyboard/tests/config/base.xml<br />
kcms/keyboard/tests/flags_test.cpp<br />
kcms/keyboard/tests/geometry_parser_test.cpp<br />
kcms/keyboard/tests/iso_codes_test.cpp<br />
kcms/keyboard/tests/keyboard_daemon_test.cpp<br />
kcms/keyboard/tests/layout_memory_persister_test.cpp<br />
kcms/keyboard/tests/xkb_rules_test.cpp<br />
kcms/keyboard/udev_helper.cpp<br />
kcms/keyboard/udev_helper.h<br />
kcms/keyboard/x11_helper.cpp<br />
kcms/keyboard/x11_helper.h<br />
kcms/keyboard/xinput_helper.cpp<br />
kcms/keyboard/xinput_helper.h<br />
kcms/keyboard/xkb_helper.cpp<br />
kcms/keyboard/xkb_helper.h<br />
kcms/keyboard/xkb_rules.cpp<br />
kcms/keyboard/xkb_rules.h<br />
kcms/launch/CMakeLists.txt<br />
kcms/new-keyboard/CMakeLists.txt<br />
kcms/new-keyboard/kcm_new_keyboard.desktop<br />
kcms/new-keyboard/main.cpp<br />
kcms/new-keyboard/main.h<br />
kcms/new-keyboard/package/contents/ui/Advanced.qml<br />
kcms/new-keyboard/package/contents/ui/Hardware.qml<br />
kcms/new-keyboard/package/contents/ui/Layouts.qml<br />
kcms/new-keyboard/package/contents/ui/TriSelector.qml<br />
kcms/new-keyboard/package/contents/ui/main.qml<br />
kcms/new-keyboard/package/metadata.desktop</div></div></div><br /><div><strong>To: </strong>gpark, hein<br /><strong>Cc: </strong>plasma-devel, hein, ragreen, Pitel, ZrenBot, lesliezhai, ali-mohamed, jensreuterberg, abetts, sebas, apol, mart<br /></div>