Git commit 41cb5c88d9ebe5e1c30bbae5c7ada6df3e705368 by shivam makkar. Committed on 11/10/2014 at 21:37. Pushed by makkar into branch 'andriy/keyboard'. fixed preview for Sun models by adding include in grammar and improved prev= iew implementation M +37 -27 kcms/keyboard/CMakeLists.txt M +2 -3 kcms/keyboard/kcm_add_layout_dialog.cpp M +4 -3 kcms/keyboard/kcm_add_layout_dialog.h M +11 -5 kcms/keyboard/kcm_keyboard_widget.cpp M +14 -0 kcms/keyboard/keyboard_config.cpp M +9 -0 kcms/keyboard/keyboard_config.h M +88 -31 kcms/keyboard/preview/geometry_parser.cpp M +3 -0 kcms/keyboard/preview/geometry_parser.h M +4 -4 kcms/keyboard/preview/kbpreviewframe.cpp M +1 -1 kcms/keyboard/preview/kbpreviewframe.h M +2 -2 kcms/keyboard/preview/keyboardpainter.cpp M +1 -1 kcms/keyboard/preview/keyboardpainter.h M +3 -3 kcms/keyboard/tests/CMakeLists.txt http://commits.kde.org/plasma-desktop/41cb5c88d9ebe5e1c30bbae5c7ada6df3e705= 368 diff --git a/kcms/keyboard/CMakeLists.txt b/kcms/keyboard/CMakeLists.txt index f05be16..6219b3d 100644 --- a/kcms/keyboard/CMakeLists.txt +++ b/kcms/keyboard/CMakeLists.txt @@ -11,9 +11,41 @@ else() endif() = = +###including Preview### +find_package(Boost) +include_directories("preview") + +if(Boost_FOUND) + ADD_DEFINITIONS(-DNEW_GEOMETRY=3D1) + + set(preview_PART_SRCS + preview/geometry_components.cpp + preview/geometry_parser.cpp + ) + = + set(preview_SRCS + preview/geometry_components.cpp + preview/geometry_parser.cpp + preview/kbpreviewframe.cpp + preview/keyboardlayout.cpp + preview/symbol_parser.cpp + preview/keyaliases.cpp + preview/keyboardlayout.cpp + preview/keyboardpainter.cpp + preview/keysymhelper.cpp + preview/keysym2ucs.cpp + ) + + set_source_files_properties(preview/geometry_parser.cpp preview/symbol_= parser.cpp PROPERTIES COMPILE_FLAGS "-fexceptions") +else(Boost_FOUND) + + message("Boost not found, install Boost libraries to enable keyboard geo= metry preview") + +endif(Boost_FOUND) + = -### kded daemon ### = +### kded daemon ### set( kded_keyboard_SRCS keyboard_daemon.cpp layout_memory.cpp @@ -30,6 +62,7 @@ set( kded_keyboard_SRCS layouts_menu.cpp flags.cpp xkb_rules.cpp + ${preview_PART_SRCS} ) = add_library(kded_keyboard MODULE ${kded_keyboard_SRCS}) @@ -75,6 +108,8 @@ set( keyboard_layout_widget_SRCS flags.cpp x11_helper.cpp xkb_helper.cpp + xkb_rules.cpp + ${preview_PART_SRCS} ) = # MODULE? @@ -89,6 +124,7 @@ target_link_libraries(keyboard_layout_widget XCB::XCB XCB::XKB KF5::KDELibs4Support + Qt5::Concurrent ${X11_LIBRARIES} ${X11_Xkbfile_LIB} ) @@ -97,32 +133,6 @@ install( TARGETS keyboard_layout_widget DESTINATION ${P= LUGIN_INSTALL_DIR} ) = = ### kcm keyboard ### -include_directories("preview") - -find_package(Boost) - -if(Boost_FOUND) - ADD_DEFINITIONS(-DNEW_GEOMETRY=3D1) - - set(preview_SRCS - preview/geometry_components.cpp - preview/geometry_parser.cpp - preview/kbpreviewframe.cpp - preview/keyboardlayout.cpp - preview/symbol_parser.cpp - preview/keyaliases.cpp - preview/keyboardlayout.cpp - preview/keyboardpainter.cpp - preview/keysymhelper.cpp - preview/keysym2ucs.cpp - ) - - set_source_files_properties(preview/geometry_parser.cpp preview/symbol_= parser.cpp PROPERTIES COMPILE_FLAGS "-fexceptions") -else(Boost_FOUND) - - message("Boost not found, install Boost libraries to enable keyboard geo= metry preview") - -endif(Boost_FOUND) = = set(kcm_keyboard_PART_SRCS = diff --git a/kcms/keyboard/kcm_add_layout_dialog.cpp b/kcms/keyboard/kcm_ad= d_layout_dialog.cpp index 07d1731..fa31223 100644 --- a/kcms/keyboard/kcm_add_layout_dialog.cpp +++ b/kcms/keyboard/kcm_add_layout_dialog.cpp @@ -28,11 +28,10 @@ #include "ui_kcm_add_layout_dialog.h" = = -AddLayoutDialog::AddLayoutDialog(const Rules* rules_, Flags* flags_, const= QString& model_, bool showLabel, QWidget* parent): +AddLayoutDialog::AddLayoutDialog(const Rules* rules_, Flags* flags_, bool = showLabel, QWidget* parent): QDialog(parent), rules(rules_), flags(flags_), - model(model_), selectedLanguage("no_language") { layoutDialogUi =3D new Ui_AddLayoutDialog(); @@ -168,7 +167,7 @@ void AddLayoutDialog::preview() KeyboardPainter* layoutPreview =3D new KeyboardPainter(); = QString title =3D Flags::getLongText(LayoutUnit(selectedLayout, varian= t), rules); - layoutPreview->generateKeyboardLayout(selectedLayout, variant, model, = title); + layoutPreview->generateKeyboardLayout(selectedLayout, variant, Keyboar= dConfig::geometry, title); layoutPreview->setModal(true); layoutPreview->exec(); = diff --git a/kcms/keyboard/kcm_add_layout_dialog.h b/kcms/keyboard/kcm_add_= layout_dialog.h index a2c0ac5..0ebb925 100644 --- a/kcms/keyboard/kcm_add_layout_dialog.h +++ b/kcms/keyboard/kcm_add_layout_dialog.h @@ -23,7 +23,10 @@ #include = #include "keyboard_config.h" +#ifdef NEW_GEOMETRY #include "preview/keyboardpainter.h" +#include "preview/geometry_components.h" +#endif = class Rules; class Flags; @@ -34,8 +37,7 @@ class AddLayoutDialog: public QDialog Q_OBJECT = public: - AddLayoutDialog(const Rules* rules, Flags* flags, const QString& model, b= ool showLabel, QWidget* parent=3DNULL); - + AddLayoutDialog(const Rules* rules, Flags* flags, bool showLabel, QWid= get* parent=3DNULL); LayoutUnit getSelectedLayoutUnit() { return selectedLayoutUnit; } QString getvariant(QString variant); void accept(); @@ -50,7 +52,6 @@ public Q_SLOTS: private: const Rules* rules; Flags* flags; - const QString& model; Ui_AddLayoutDialog* layoutDialogUi; QString selectedLanguage; QString selectedLayout; diff --git a/kcms/keyboard/kcm_keyboard_widget.cpp b/kcms/keyboard/kcm_keyb= oard_widget.cpp index c3f344b..f115c87 100644 --- a/kcms/keyboard/kcm_keyboard_widget.cpp +++ b/kcms/keyboard/kcm_keyboard_widget.cpp @@ -36,6 +36,7 @@ #include "keyboard_config.h" #ifdef NEW_GEOMETRY #include "preview/keyboardpainter.h" +#include "preview/geometry_components.h" #endif #include "xkb_rules.h" #include "flags.h" @@ -166,6 +167,10 @@ void KCMKeyboardWidget::uiChanged() keyboardConfig->configureLayouts =3D uiWidget->layoutsGroupBox->isChecked= (); keyboardConfig->keyboardModel =3D uiWidget->keyboardModelComboBox->itemDa= ta(uiWidget->keyboardModelComboBox->currentIndex()).toString(); = +#ifdef NEW_GEOMETRY + KeyboardConfig::geometry =3D grammar::parseGeometry(keyboardConfig->ke= yboardModel); +#endif + if( uiWidget->showFlagRadioBtn->isChecked() ) { keyboardConfig->indicatorType =3D KeyboardConfig::SHOW_FLAG; } @@ -231,7 +236,7 @@ void KCMKeyboardWidget::addLayout() return; } = - AddLayoutDialog dialog(rules, keyboardConfig->isFlagShown() ? flags : = NULL, keyboardConfig->keyboardModel, keyboardConfig->isLabelShown(), this); + AddLayoutDialog dialog(rules, keyboardConfig->isFlagShown() ? flags : = NULL, keyboardConfig->isLabelShown(), this); dialog.setModal(true); if( dialog.exec() =3D=3D QDialog::Accepted ) { keyboardConfig->layouts.append( dialog.getSelectedLayoutUnit() ); @@ -373,7 +378,7 @@ void KCMKeyboardWidget::previewLayout(){ QString country=3DuiWidget->layoutsTableView->model()->data(idcountry)= .toString(); QModelIndex idvariant =3D index.sibling(index.row(),2) ; QString variant=3DuiWidget->layoutsTableView->model()->data(idvariant)= .toString(); - QString model =3D keyboardConfig->keyboardModel; + Geometry geometry =3D KeyboardConfig::geometry; = KeyboardPainter* layoutPreview =3D new KeyboardPainter(); const LayoutInfo* layoutInfo =3D rules->getLayoutInfo(country); @@ -383,9 +388,9 @@ void KCMKeyboardWidget::previewLayout(){ break; } } - = + QString title =3D Flags::getLongText( LayoutUnit(country, variant), ru= les ); - layoutPreview->generateKeyboardLayout(country,variant, model, title); + layoutPreview->generateKeyboardLayout(country,variant, geometry, title= ); layoutPreview->setModal(true); layoutPreview->exec(); = @@ -422,8 +427,9 @@ void KCMKeyboardWidget::layoutSelectionChanged() QPair rowsRange( getSelectedRowRange(selected) ); uiWidget->moveUpBtn->setEnabled( ! selected.isEmpty() && rowsRange.first = > 0); #ifdef NEW_GEOMETRY - uiWidget->previewButton->setEnabled( uiWidget->layoutsTableView->selec= tionModel()->selectedRows().size() =3D=3D 1 ); + uiWidget->previewButton->setEnabled( ! selected.isEmpty() && uiWidget= ->layoutsTableView->selectionModel()->selectedRows().size() =3D=3D 1 ); #else + qDebug()<<"SHIT SHIT SHIT"; uiWidget->previewButton->setVisible(false); #endif uiWidget->moveDownBtn->setEnabled( ! selected.isEmpty() && rowsRange.seco= nd < keyboardConfig->layouts.size()-1 ); diff --git a/kcms/keyboard/keyboard_config.cpp b/kcms/keyboard/keyboard_con= fig.cpp index 1d2ee3e..e9d561c 100644 --- a/kcms/keyboard/keyboard_config.cpp +++ b/kcms/keyboard/keyboard_config.cpp @@ -17,6 +17,9 @@ */ = #include "keyboard_config.h" +#ifdef NEW_GEOMETRY +#include "preview/geometry_parser.h" +#endif = #include #include @@ -32,6 +35,10 @@ static const QString CONFIG_GROUPNAME("Layout"); = const int KeyboardConfig::NO_LOOPING =3D -1; = +#ifdef NEW_GEOMETRY +Geometry KeyboardConfig::geometry =3D grammar::parseGeometry("pc104"); +#endif + KeyboardConfig::KeyboardConfig() { setDefaults(); @@ -72,6 +79,9 @@ void KeyboardConfig::setDefaults() showIndicator =3D true; indicatorType =3D SHOW_LABEL; showSingle =3D false; +#ifdef NEW_GEOMETRY + geometry =3D grammar::parseGeometry(keyboardModel); +#endif } = static @@ -95,6 +105,10 @@ void KeyboardConfig::load() = keyboardModel =3D config.readEntry("Model", ""); = +#ifdef NEW_GEOMETRY + geometry =3D grammar::parseGeometry(keyboardModel); +#endif + resetOldXkbOptions =3D config.readEntry("ResetOldOptions", false); QString options =3D config.readEntry("Options", ""); xkbOptions =3D options.split(LIST_SEPARATOR, QString::SkipEmptyParts); diff --git a/kcms/keyboard/keyboard_config.h b/kcms/keyboard/keyboard_confi= g.h index aff49a7..57d2ac1 100644 --- a/kcms/keyboard/keyboard_config.h +++ b/kcms/keyboard/keyboard_config.h @@ -22,6 +22,11 @@ = #include "x11_helper.h" = +#ifdef NEW_GEOMETRY +#include "preview/geometry_components.h" +#include "preview/geometry_parser.h" +#endif + #include #include #include @@ -41,6 +46,10 @@ public: static const int MAX_LABEL_LEN =3D 3; static const int NO_LOOPING; // =3D -1; = +#ifdef NEW_GEOMETRY + static Geometry geometry; +#endif + enum SwitchingPolicy { SWITCH_POLICY_GLOBAL =3D 0, SWITCH_POLICY_DESKTOP =3D 1, diff --git a/kcms/keyboard/preview/geometry_parser.cpp b/kcms/keyboard/prev= iew/geometry_parser.cpp index a16ed49..e7bce1c 100644 --- a/kcms/keyboard/preview/geometry_parser.cpp +++ b/kcms/keyboard/preview/geometry_parser.cpp @@ -472,60 +472,117 @@ Geometry parseGeometry(const QString &model) using boost::spirit::iso8859_1::space; typedef std::string::const_iterator iterator_type; typedef grammar::Geometry_parser Geometry_parser; - Geometry_parser geomertyParser; + Geometry_parser geometryParser; = Rules::GeometryId geoId =3D Rules::getGeometryId(model); QString geometryFile =3D geoId.fileName; QString geometryName =3D geoId.geoName; = - qCDebug(KEYBOARD_PREVIEW) << "looking for model" << model << "geometry= Name" << geometryName << "in" << geometryFile; + qDebug() << "looking for model" << model << "geometryName" << geometry= Name << "in" << geometryFile; = - QString xkbParentDir =3D findGeometryBaseDir(); - geometryFile.prepend(xkbParentDir); - QFile gfile(geometryFile); - - if (!gfile.open(QIODevice::ReadOnly | QIODevice::Text)) { - qCritical() << "Unable to open the file" << geometryFile; - geomertyParser.geom.setParsing(false); - return geomertyParser.geom; - } - - QString gcontent =3D gfile.readAll(); - gfile.close(); - - QStringList gcontentList =3D gcontent.split("xkb_geometry"); - - int current =3D 1; - while (geomertyParser.geom.getName() !=3D geometryName && current < gc= ontentList.size()) { - geomertyParser.geom =3D Geometry(); - QString input =3D gcontentList.at(current); - input.prepend("xkb_geometry"); + QString input =3D getGeometry(geometryFile, geometryName); + if(! input.isEmpty()){ + geometryParser.geom =3D Geometry(); + input =3D includeGeometry(input); std::string parserInput =3D input.toUtf8().constData(); = std::string::const_iterator iter =3D parserInput.begin(); std::string::const_iterator end =3D parserInput.end(); = - bool success =3D phrase_parse(iter, end, geomertyParser, space); + bool success =3D phrase_parse(iter, end, geometryParser, space); = if (success && iter =3D=3D end) { -// qCDebug(KEYBOARD_PREVIEW) << "Geometry parsing succeeded= for" << input.left(20); - geomertyParser.geom.setParsing(true); +// qDebug() << "Geometry parsing succeeded for" << input.le= ft(20); + geometryParser.geom.setParsing(true); + return geometryParser.geom; } else { qCritical() << "Geometry parsing failed for\n\t" << input.left= (30); - geomertyParser.geom.setParsing(false); + geometryParser.geom.setParsing(false); } - - current++; } = - if (geomertyParser.geom.getParsing()) { - return geomertyParser.geom; + if (geometryParser.geom.getParsing()) { + return geometryParser.geom; } = - qCritical() << "Failed to get geometry" << geomertyParser.geom.getName= () << "falling back to pc104"; + qCritical() << "Failed to get geometry" << geometryParser.geom.getName= () << "falling back to pc104"; return parseGeometry("pc104"); } = +QString includeGeometry(QString geometry){ + QStringList lines =3D geometry.split("\n"); + int includeLine =3D -1; + QString includeLineStr; + QString startLine =3D lines[0]; + for(int i =3D 0; i < lines.size(); i++){ + includeLineStr =3D lines[i]; + lines[i] =3D lines[i].remove(" "); + lines[i] =3D lines[i].remove("\r"); + if(lines[i].startsWith("include")){ + includeLine =3D i; + break; + } + } + if(includeLine =3D=3D -1){ + return geometry; + } + geometry =3D geometry.remove(includeLineStr); + lines[includeLine] =3D lines[includeLine].remove("include"); + lines[includeLine] =3D lines[includeLine].remove("\""); + lines[includeLine] =3D lines[includeLine].remove(")"); + if(lines[includeLine].contains("(")){ + QString includeFile =3D lines[includeLine].split("(")[0]; + QString includeGeom =3D lines[includeLine].split("(")[1]; + qDebug() << "looking to include "<< "geometryName" << includeGeom = << "in" << includeFile; + QString includeStr =3D getGeometry(includeFile, includeGeom); + includeStr =3D getGeometryStrContent(includeStr); + geometry =3D geometry.remove(startLine); + geometry =3D geometry.prepend(includeStr); + geometry =3D geometry.prepend(startLine); + includeGeometry(geometry); + + } + return geometry; +} + +QString getGeometryStrContent(QString geometryStr){ + int k =3D geometryStr.indexOf("{"); + int k2 =3D geometryStr.lastIndexOf("};"); + geometryStr =3D geometryStr.mid(k + 1, k2-k-2); + return geometryStr; +} + +QString getGeometry(QString geometryFile, QString geometryName){ + + QString xkbParentDir =3D findGeometryBaseDir(); + geometryFile.prepend(xkbParentDir); + QFile gfile(geometryFile); + + if (!gfile.open(QIODevice::ReadOnly | QIODevice::Text)) { + qCritical() << "Unable to open the file" << geometryFile; + return QString(); + } + + QString gcontent =3D gfile.readAll(); + gfile.close(); + + QStringList gcontentList =3D gcontent.split("xkb_geometry "); + + int current =3D 0; + for(int i =3D 1; i < gcontentList.size(); i++){ + if(gcontentList[i].startsWith("\""+ geometryName + "\"")){ + current =3D i; + break; + } + } + if(current !=3D 0){ + return gcontentList[current].prepend("xkb_geometry "); + } + else + return QString(); +} + + QString findGeometryBaseDir() { QString xkbDir =3D Rules::findXkbDir(); diff --git a/kcms/keyboard/preview/geometry_parser.h b/kcms/keyboard/previe= w/geometry_parser.h index 075a352..f117bf1 100644 --- a/kcms/keyboard/preview/geometry_parser.h +++ b/kcms/keyboard/preview/geometry_parser.h @@ -152,6 +152,9 @@ struct Geometry_parser : qi::grammar { = = Geometry parseGeometry(const QString &model); +QString getGeometry(QString geometryFile, QString geometryName); +QString includeGeometry(QString geometry); +QString getGeometryStrContent(QString geometryStr); QString findGeometryBaseDir(); } = diff --git a/kcms/keyboard/preview/kbpreviewframe.cpp b/kcms/keyboard/previ= ew/kbpreviewframe.cpp index 14ee57a..24f9733 100644 --- a/kcms/keyboard/preview/kbpreviewframe.cpp +++ b/kcms/keyboard/preview/kbpreviewframe.cpp @@ -328,9 +328,9 @@ void KbPreviewFrame::paintEvent(QPaintEvent *) } = // this function draws the keyboard preview on a QFrame -void KbPreviewFrame::generateKeyboardLayout(const QString& layout, const Q= String& layoutVariant, const QString& model) +void KbPreviewFrame::generateKeyboardLayout(const QString& layout, const Q= String& layoutVariant, Geometry geom) { - geometry =3D grammar::parseGeometry(model); + geometry =3D geom; int endx =3D geometry.getWidth(), endy =3D geometry.getHeight(); = QDesktopWidget* desktopWidget =3D qApp->desktop(); @@ -341,10 +341,10 @@ void KbPreviewFrame::generateKeyboardLayout(const QSt= ring& layout, const QString while (scaleFactor*endx + screenWidth/20 > screenWidth) { scaleFactor -=3D 0.2; } - qCDebug(KEYBOARD_PREVIEW) << "scale factor: 2.5 ->" << scaleFactor; + qDebug() << "scale factor: 2.5 ->" << scaleFactor; = setFixedSize(scaleFactor*endx+60, scaleFactor*endy+60); - qCDebug(KEYBOARD_PREVIEW) << screenWidth << ":" << scaleFactor << scal= eFactor*endx+60 << scaleFactor*endy+60; + qDebug() << screenWidth << ":" << scaleFactor << scaleFactor*endx+60 <= < scaleFactor*endy+60; keyboardLayout =3D grammar::parseSymbols(layout, layoutVariant); } = diff --git a/kcms/keyboard/preview/kbpreviewframe.h b/kcms/keyboard/preview= /kbpreviewframe.h index 510f5c7..1c1991b 100644 --- a/kcms/keyboard/preview/kbpreviewframe.h +++ b/kcms/keyboard/preview/kbpreviewframe.h @@ -66,7 +66,7 @@ public: explicit KbPreviewFrame(QWidget *parent =3D 0); virtual ~KbPreviewFrame(); void paintEvent(QPaintEvent * event); - void generateKeyboardLayout(const QString &country, const QString &lay= outVariant, const QString& model); + void generateKeyboardLayout(const QString &country, const QString &lay= outVariant, Geometry geom); int getWidth() const; int getHeight() const; = diff --git a/kcms/keyboard/preview/keyboardpainter.cpp b/kcms/keyboard/prev= iew/keyboardpainter.cpp index 72ec874..46f6fd2 100644 --- a/kcms/keyboard/preview/keyboardpainter.cpp +++ b/kcms/keyboard/preview/keyboardpainter.cpp @@ -55,9 +55,9 @@ KeyboardPainter::KeyboardPainter(): } = = -void KeyboardPainter::generateKeyboardLayout(const QString& layout, const = QString& variant, const QString& model, const QString& title) +void KeyboardPainter::generateKeyboardLayout(const QString& layout, const = QString& variant, Geometry geometry, const QString& title) { - kbframe->generateKeyboardLayout(layout, variant, model); + kbframe->generateKeyboardLayout(layout, variant, geometry); kbframe->setFixedSize(getWidth(),getHeight()); kbDialog->setFixedSize(getWidth(),getWidth()); setWindowTitle(title); diff --git a/kcms/keyboard/preview/keyboardpainter.h b/kcms/keyboard/previe= w/keyboardpainter.h index 19438c1..c51f198 100644 --- a/kcms/keyboard/preview/keyboardpainter.h +++ b/kcms/keyboard/preview/keyboardpainter.h @@ -34,7 +34,7 @@ class KeyboardPainter : public QDialog public: explicit KeyboardPainter(); ~KeyboardPainter(); - void generateKeyboardLayout(const QString& layout, const QString& vari= ant, const QString& model, const QString& title); + void generateKeyboardLayout(const QString& layout, const QString& vari= ant, Geometry geometry, const QString& title); int getHeight(); int getWidth(); = diff --git a/kcms/keyboard/tests/CMakeLists.txt b/kcms/keyboard/tests/CMake= Lists.txt index bd62c7d..b6a25fa 100644 --- a/kcms/keyboard/tests/CMakeLists.txt +++ b/kcms/keyboard/tests/CMakeLists.txt @@ -18,7 +18,7 @@ endmacro(KEYBOARD_DAEMON_UNIT_TESTS) = macro(KEYBOARD_PREVIEW_UNIT_TESTS _testname) include_directories("..") - set(test_SRCS ../preview/${_testname}.cpp ../preview/geomet= ry_components.cpp ../xkb_rules.cpp) + set(test_SRCS ../preview/${_testname}.cpp ../preview/geomet= ry_components.cpp ../preview/geometry_parser.cpp ../xkb_rules.cpp) add_executable(${_testname}_test ${_testname}_test.cpp ${te= st_SRCS}) ecm_mark_nongui_executable(${_testname}_test) ecm_mark_as_test(${_testname}_test) @@ -50,7 +50,7 @@ if(Boost_FOUND) # set_source_files_properties(${preview_SRCS} PROPERTIES COMPILE_FLAGS "-= fexceptions") endif(Boost_FOUND) = -add_executable(flags_test flags_test.cpp ../flags.cpp ../x11_helper.cpp ..= /keyboard_config.cpp ../xkb_rules.cpp) +add_executable(flags_test flags_test.cpp ../flags.cpp ../x11_helper.cpp ..= /keyboard_config.cpp ../xkb_rules.cpp ../preview/geometry_components.cpp ..= /preview/geometry_parser.cpp) ecm_mark_nongui_executable(flags_test) ecm_mark_as_test(flags_test) add_test(kcm-keyboard-flags_test flags_test) @@ -73,7 +73,7 @@ configure_file(${CMAKE_CURRENT_SOURCE_DIR}/config/base.ba= d.xml ${CMAKE_CURRENT_B configure_file(${CMAKE_CURRENT_SOURCE_DIR}/config/base.xml ${CMAKE_CURRENT= _BINARY_DIR}/config/base.xml COPYONLY) = if( X11_XTest_FOUND ) - add_executable(keyboard_daemon_test keyboard_daemon_test.cpp ../keyboar= d_daemon.cpp ../layout_memory.cpp ../layout_memory_persister.cpp ../flags.c= pp ../x11_helper.cpp ../xkb_helper.cpp ../xinput_helper.cpp ../layout_tray_= icon.cpp ../keyboard_config.cpp ../xkb_rules.cpp ../keyboard_hardware.cpp .= ./bindings.cpp ../layouts_menu.cpp ../numlockx.c) + add_executable(keyboard_daemon_test keyboard_daemon_test.cpp ../keyboar= d_daemon.cpp ../layout_memory.cpp ../layout_memory_persister.cpp ../flags.c= pp ../x11_helper.cpp ../xkb_helper.cpp ../xinput_helper.cpp ../layout_tray_= icon.cpp ../keyboard_config.cpp ../xkb_rules.cpp ../keyboard_hardware.cpp .= ./bindings.cpp ../layouts_menu.cpp ../numlockx.c ../preview/geometry_compon= ents.cpp ../preview/geometry_parser.cpp) add_test(kcm-keyboard-keyboard_daemon_test keyboard_daemon_test) ecm_mark_nongui_executable(keyboard_daemon_test) ecm_mark_as_test(keyboard_daemon_test)