diff --git a/.travis.yml b/.travis.yml index 58aac2fd..ff8caac3 100644 --- a/.travis.yml +++ b/.travis.yml @@ -15,6 +15,32 @@ env: # The next declaration is the encrypted COVERITY_SCAN_TOKEN, created # via the "travis encrypt" command using the project repo's public key - secure: "Hz0hyZv6IxfQGvv+E82BoP4vpRm5iq74bg4I0HLvXRnJjnZxsd3aD2iS+bYYgWD/clGVYttaW8hQoDCe36Pz/QgKDwmJLKcdoWryPpNhaPb1cQhf54vaF6yG1/QsPZMZxvtAvDKGgSHm5fbfi9gU5QXRgV3y1zc8i6g2GyadCfLPAka29gwTB6T0Vg13mjVbSqgYTOwreM+u7thEjzo67jgv7AGjTFMxqrqu33zqa3YDnr31SNnve9BFNTfg3jgQKZ7FyX2gpqSHzrXcFDXQbe6zwNYYDi9ilR7a0RkmqrASMI6ekohMxxP/BJVV68OMDiMjupm48Lk8nNmZ2UeOThdM/C1EpN7NrGEhMtBVloyDnFpDEXJyyY7Fni5dxgNLgH0Q+ojOsKh6nhJkpOwIIw5N99VDa4WXZXEGLHpkJeRc6ADhX0EW07lLLLftkT90jaqt2IKxfvkpPU/HU5UxDjQdZZOX+RYNEIrSe0XIpvkMWPsh16rX/wV/mcgks9BGszRCkLcPSJoVrsbtaVJBbohsbSZS1l1HNcG+CYX12iV+vLmGQ//44Rmcn99yFu46altnWlIG2Mcs3EU1589zodIjWLkLhT3au6ucsqLqsp2hwqiG1dQkkKcoYsx+obgV1mrbcjspJOgKJGJOMAyQwIdPo0V6wrKg74JvJILZlyI=" + matrix: + - QT=5 PPA=ubuntu-sdk-team/ppa + - QT=51 PPA=beineri/opt-qt511-trusty + - QT=52 PPA=beineri/opt-qt521-trusty + - QT=53 PPA=beineri/opt-qt532-trusty + - QT=54 PPA=beineri/opt-qt542-trusty + - QT=55 PPA=beineri/opt-qt551-trusty + - QT=56 PPA=beineri/opt-qt562-trusty + - QT=56 PPA=beineri/opt-qt563-trusty + - QT=57 PPA=beineri/opt-qt571-trusty + - QT=58 PPA=beineri/opt-qt58-trusty + - QT=59 PPA=beineri/opt-qt591-trusty + - QT=510 PPA=beineri/opt-qt-5.10.1-trusty + +matrix: + exclude: + - { os: linux, env: QT=5 PPA=ubuntu-sdk-team/ppa } + - { os: linux, env: QT=51 PPA=beineri/opt-qt511-trusty } + - { os: linux, env: QT=52 PPA=beineri/opt-qt521-trusty } + - { os: linux, env: QT=53 PPA=beineri/opt-qt532-trusty } + - { os: linux, env: QT=54 PPA=beineri/opt-qt542-trusty } + - { os: linux, env: QT=55 PPA=beineri/opt-qt551-trusty } + - { os: linux, env: QT=56 PPA=beineri/opt-qt562-trusty } + - { os: linux, env: QT=56 PPA=beineri/opt-qt563-trusty } + - { os: linux, env: QT=57 PPA=beineri/opt-qt571-trusty } + addons: apt: update: true @@ -39,10 +65,10 @@ addons: before_install: - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then - sudo add-apt-repository -y ppa:beineri/opt-qt-5.10.1-trusty; + sudo add-apt-repository -y ppa:${PPA}; sudo apt-get update; - sudo apt-get install --yes qt510tools build-essential; - sudo ln -s /opt/qt510/lib/* /usr/lib/x86_64-linux-gnu/; + sudo apt-get install --yes qt${QT}tools build-essential; + sudo ln -s /opt/qt${QT}/lib/* /usr/lib/x86_64-linux-gnu/; git clone git://anongit.kde.org/extra-cmake-modules; cd extra-cmake-modules; mkdir extra-cmake-modules-build; @@ -54,4 +80,4 @@ before_install: cd ..; fi; -script: cmake .. -DCMAKE_PREFIX_PATH="/opt/qt510/" && make +script: cmake .. -DCMAKE_PREFIX_PATH="/opt/qt${QT}/" && make \ No newline at end of file diff --git a/BuildOptions.md b/BuildOptions.md index bd18a7c8..9c413db5 100755 --- a/BuildOptions.md +++ b/BuildOptions.md @@ -4,6 +4,7 @@ There are a few application specific options that can be used when running cmake to build antimicro. The following file will attempt to list some of those options and describe their use in the project. + ## Universal Options -DUPDATE_TRANSLATIONS @@ -11,9 +12,19 @@ options and describe their use in the project. Default: OFF. Set updateqm target to call lupdate in order to update translation files from source. + -DTRANS_KEEP_OBSOLETE + +Default: OFF. Do not specify -noobsolete option when calling lupdate +command for qm files. -noobsolete is a method for getting rid of obsolete text entries + + -DWITH_TESTS + +Default: OFF. Allows for the launch of test sources with unit tests + -DUSE_SDL_2 -Default: ON. Compile the program with SDL 2 instead of SDL 1.2. +Default: ON. Compile the program with SDL 2. + ## Linux Options diff --git a/CMakeLists.txt b/CMakeLists.txt index d5f62dcd..20d1e5eb 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -85,13 +85,13 @@ endif(WITH_TESTS) if(UNIX) option(WITH_X11 "Compile with support for X11." ON) - option(WITH_UINPUT "Compile with support for uinput. uinput will be usable to simulate events." OFF) + option(WITH_UINPUT "Compile with support for uinput. uinput will be usable to simulate events." ON) option(WITH_XTEST "Compile with support for XTest. XTest will be usable to simulate events." ON) option(APPDATA "Build project with AppData file support." ON) endif(UNIX) option(UPDATE_TRANSLATIONS "Call lupdate to update translation files from source." OFF) -option(TRANS_KEEP_OBSOLETE "Do not specify -no-obsolete when calling lupdate." OFF) +option(TRANS_KEEP_OBSOLETE "Add -noobsolete option to lupdate command to get rid of old text entries" OFF) if(WIN32) @@ -551,7 +551,7 @@ if(UNIX) endif(USE_SDL_2) elseif (WIN32) if(USE_SDL_2) - + if(SDL2_LIBRARY_DIR AND SDL2_INCLUDE_DIR) list(APPEND LIBS ${SDL2_LIBRARY}) include_directories(${SDL2_INCLUDE_DIR}) @@ -617,11 +617,11 @@ endif(UNIX) # Specify out directory for final executable. if(UNIX) - install(TARGETS antimicro RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}") + install(TARGETS antimicro RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}") install(TARGETS antilib DESTINATION "${CMAKE_INSTALL_LIBDIR}") install(FILES ${antimicro_HEADERS} DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/antimicro") elseif(WIN32) - install(TARGETS antimicro RUNTIME DESTINATION ${CMAKE_INSTALL_PREFIX}) + install(TARGETS antimicro RUNTIME DESTINATION ${CMAKE_INSTALL_PREFIX}) install(TARGETS antilib RUNTIME DESTINATION ${CMAKE_INSTALL_PREFIX} COMPONENT runtime ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" COMPONENT devel @@ -630,47 +630,46 @@ elseif(WIN32) endif(UNIX) if(UNIX) - ecm_install_icons(ICONS src/icons/icons/16x16/actions/16-actions-application_exit.png DESTINATION share/antimicro/icons) - ecm_install_icons(ICONS src/icons/icons/16x16/actions/16-actions-archive_insert.png DESTINATION share/antimicro/icons) - ecm_install_icons(ICONS src/icons/icons/16x16/actions/16-actions-dialog_cancel.png DESTINATION share/antimicro/icons) - - ecm_install_icons(ICONS src/icons/icons/16x16/actions/16-actions-dialog_close.png DESTINATION share/antimicro/icons) - ecm_install_icons(ICONS src/icons/icons/16x16/actions/16-actions-dialog_ok.png DESTINATION share/antimicro/icons) - ecm_install_icons(ICONS src/icons/icons/16x16/actions/16-actions-document_close.png DESTINATION share/antimicro/icons) + ecm_install_icons(ICONS src/icons/icons/16x16/actions/16-actions-application_exit.png DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/antimicro/icons) + ecm_install_icons(ICONS src/icons/icons/16x16/actions/16-actions-archive_insert.png DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/antimicro/icons) + ecm_install_icons(ICONS src/icons/icons/16x16/actions/16-actions-dialog_cancel.png DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/antimicro/icons) - ecm_install_icons(ICONS src/icons/icons/16x16/actions/16-actions-document_open.png DESTINATION share/antimicro/icons) - ecm_install_icons(ICONS src/icons/icons/16x16/actions/16-actions-document_open_folder.png DESTINATION share/antimicro/icons) - ecm_install_icons(ICONS src/icons/icons/16x16/actions/16-actions-document_revert.png DESTINATION share/antimicro/icons) + ecm_install_icons(ICONS src/icons/icons/16x16/actions/16-actions-dialog_close.png DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/antimicro/icons) + ecm_install_icons(ICONS src/icons/icons/16x16/actions/16-actions-dialog_ok.png DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/antimicro/icons) + ecm_install_icons(ICONS src/icons/icons/16x16/actions/16-actions-document_close.png DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/antimicro/icons) - ecm_install_icons(ICONS src/icons/icons/16x16/actions/16-actions-document_revert_small.png DESTINATION share/antimicro/icons) - ecm_install_icons(ICONS src/icons/icons/16x16/actions/16-actions-document_save.png DESTINATION share/antimicro/icons) - ecm_install_icons(ICONS src/icons/icons/16x16/actions/16-actions-document_save_as.png DESTINATION share/antimicro/icons) + ecm_install_icons(ICONS src/icons/icons/16x16/actions/16-actions-document_open.png DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/antimicro/icons) + ecm_install_icons(ICONS src/icons/icons/16x16/actions/16-actions-document_open_folder.png DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/antimicro/icons) + ecm_install_icons(ICONS src/icons/icons/16x16/actions/16-actions-document_revert.png DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/antimicro/icons) - ecm_install_icons(ICONS src/icons/icons/16x16/actions/16-actions-edit_clear.png DESTINATION share/antimicro/icons) - ecm_install_icons(ICONS src/icons/icons/16x16/actions/16-actions-edit_clear_list.png DESTINATION share/antimicro/icons) - ecm_install_icons(ICONS src/icons/icons/16x16/actions/16-actions-edit_delete.png DESTINATION share/antimicro/icons) + ecm_install_icons(ICONS src/icons/icons/16x16/actions/16-actions-document_revert_small.png DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/antimicro/icons) + ecm_install_icons(ICONS src/icons/icons/16x16/actions/16-actions-document_save.png DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/antimicro/icons) + ecm_install_icons(ICONS src/icons/icons/16x16/actions/16-actions-document_save_as.png DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/antimicro/icons) - ecm_install_icons(ICONS src/icons/icons/16x16/actions/16-actions-edit_select.png DESTINATION share/antimicro/icons) - ecm_install_icons(ICONS src/icons/icons/16x16/actions/16-actions-edit_table_delete_row.png DESTINATION share/antimicro/icons) - ecm_install_icons(ICONS src/icons/icons/16x16/actions/16-actions-edit_table_insert_row_below.png DESTINATION share/antimicro/icons) + ecm_install_icons(ICONS src/icons/icons/16x16/actions/16-actions-edit_clear.png DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/antimicro/icons) + ecm_install_icons(ICONS src/icons/icons/16x16/actions/16-actions-edit_clear_list.png DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/antimicro/icons) + ecm_install_icons(ICONS src/icons/icons/16x16/actions/16-actions-edit_delete.png DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/antimicro/icons) - ecm_install_icons(ICONS src/icons/icons/16x16/actions/16-actions-games_config_custom.png DESTINATION share/antimicro/icons) - ecm_install_icons(ICONS src/icons/icons/16x16/actions/16-actions-games_config_options.png DESTINATION share/antimicro/icons) - ecm_install_icons(ICONS src/icons/icons/16x16/actions/16-actions-help_about.png DESTINATION share/antimicro/icons) + ecm_install_icons(ICONS src/icons/icons/16x16/actions/16-actions-edit_select.png DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/antimicro/icons) + ecm_install_icons(ICONS src/icons/icons/16x16/actions/16-actions-edit_table_delete_row.png DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/antimicro/icons) + ecm_install_icons(ICONS src/icons/icons/16x16/actions/16-actions-edit_table_insert_row_below.png DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/antimicro/icons) - ecm_install_icons(ICONS src/icons/icons/16x16/actions/16-actions-text_field.png DESTINATION share/antimicro/icons) - ecm_install_icons(ICONS src/icons/icons/16x16/actions/16-actions-view_fullscreen.png DESTINATION share/antimicro/icons) - ecm_install_icons(ICONS src/icons/icons/16x16/actions/16-actions-view_refresh.png DESTINATION share/antimicro/icons) - ecm_install_icons(ICONS src/icons/icons/16x16/actions/16-actions-view_restore.png DESTINATION share/antimicro/icons) + ecm_install_icons(ICONS src/icons/icons/16x16/actions/16-actions-games_config_custom.png DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/antimicro/icons) + ecm_install_icons(ICONS src/icons/icons/16x16/actions/16-actions-games_config_options.png DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/antimicro/icons) + ecm_install_icons(ICONS src/icons/icons/16x16/actions/16-actions-help_about.png DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/antimicro/icons) + ecm_install_icons(ICONS src/icons/icons/16x16/actions/16-actions-text_field.png DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/antimicro/icons) + ecm_install_icons(ICONS src/icons/icons/16x16/actions/16-actions-view_fullscreen.png DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/antimicro/icons) + ecm_install_icons(ICONS src/icons/icons/16x16/actions/16-actions-view_refresh.png DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/antimicro/icons) + ecm_install_icons(ICONS src/icons/icons/16x16/actions/16-actions-view_restore.png DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/antimicro/icons) - ecm_install_icons(ICONS src/icons/application/16x16/apps/16-apps-com.github.juliagoda.antimicro.png DESTINATION share/icons) - ecm_install_icons(ICONS src/icons/application/24x24/apps/24-apps-com.github.juliagoda.antimicro.png DESTINATION share/icons) - ecm_install_icons(ICONS src/icons/application/32x32/apps/32-apps-com.github.juliagoda.antimicro.png DESTINATION share/icons) - ecm_install_icons(ICONS src/icons/application/48x48/apps/48-apps-com.github.juliagoda.antimicro.png DESTINATION share/icons) - ecm_install_icons(ICONS src/icons/application/64x64/apps/64-apps-com.github.juliagoda.antimicro.png DESTINATION share/icons) + ecm_install_icons(ICONS src/icons/application/16x16/apps/16-apps-com.github.juliagoda.antimicro.png DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/icons) + ecm_install_icons(ICONS src/icons/application/24x24/apps/24-apps-com.github.juliagoda.antimicro.png DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/icons) + ecm_install_icons(ICONS src/icons/application/32x32/apps/32-apps-com.github.juliagoda.antimicro.png DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/icons) + ecm_install_icons(ICONS src/icons/application/48x48/apps/48-apps-com.github.juliagoda.antimicro.png DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/icons) + ecm_install_icons(ICONS src/icons/application/64x64/apps/64-apps-com.github.juliagoda.antimicro.png DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/icons) - install(FILES src/images/profile.jpg src/images/antimicro.png src/images/antimicro_trayicon.png src/images/axis.png src/images/button.png src/images/controllermap.png DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/antimicro/images") + install(FILES src/images/antimicro.png src/images/antimicro_trayicon.png src/images/axis.png src/images/button.png src/images/controllermap.png DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/antimicro/images") install(FILES src/icons/index.theme DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/antimicro/icons/hicolor") install(FILES other/com.github.juliagoda.antimicro.desktop DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/applications") @@ -748,24 +747,24 @@ if(WIN32) ${ICU_IN_DLL} ${ICU_UC_DLL} ) - + # Copy relevant DLL files depending on the chosen architecture. if(TARGET_ARCH STREQUAL "x86_64") find_library( GCC_DLL "libgcc_s_seh-1.dll" ) - + list(APPEND EXTRA_DLL_FILES ${GCC_DLL} "${SDL2_BASE_DIR}/x86_64-w64-mingw32/bin/SDL2.dll" ) else() find_library( GCC_DLL "libgcc_s_dw2-1.dll" ) - + list(APPEND EXTRA_DLL_FILES - ${GCC_DLL} + ${GCC_DLL} "${SDL2_BASE_DIR}/i686-w64-mingw32/bin/SDIRDL2.dll" ) endif(TARGET_ARCH STREQUAL "x86_64") - + # Not a DLL file, but needs to travel with SDL2.DLL list(APPEND EXTRA_DLL_FILES "${SDL2_BASE_DIR}/README-SDL.txt") diff --git a/README.md b/README.md index 2351b3a6..4335859f 100755 --- a/README.md +++ b/README.md @@ -6,6 +6,7 @@ 4. [Build Dependencies](#build-dependencies) a. [Building Under Linux](#building-under-linux) b. [Building Under Windows](#building-under-windows) + c. [Building with Flatpak](#building-with-flatpak) 5. [Testing Under Linux](#testing-under-linux) 6. [Support](#support) 7. [Bugs](#bugs) @@ -180,7 +181,7 @@ when bundling the Window version for other users. * Run "Build All" to have the application and required DLLs installed into the final location that will be ready for distribution. -#### 64-bit Build +##### 64-bit Build * Some additional steps are required in order to compile a 64-bit version of antimicro. The first step is to download a packaged version of Qt, MSYS shell environment, @@ -208,7 +209,7 @@ and have it point to the 64 bit compiled version Qt. Also, make sure to add building the program and copy the proper Qt and SDL DLLs if you perform an **install_dlls**. -#### Building The Windows Installer Package (MSI) +##### Building The Windows Installer Package (MSI) *These instructions have been tested with WiX 3.8* @@ -238,6 +239,82 @@ Notes about the WXS file and the building process: * Built MSI package will be placed in /windows . + +### Building with Flatpak + +#### Additional Dependencies + +* flatpak +* flatbak-builder + + +#### Compilation & Installation + +This tutorial is about installing antimicro with flatpak locally. As first you need a com.github.juliagoda.antimicro.json file, that is placed in main folder. You can for example copy and paste content to local file. Link to raw content of json file is [here](https://raw.githubusercontent.com/juliagoda/antimicro/master/com.github.juliagoda.antimicro.json). + + +1. Download and install Flatpak repo: + +`flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo` + +2. Add a runtime with Qt and all KDE Frameworks 5 + +`flatpak install flathub org.kde.Platform//5.11 org.kde.Sdk//5.11` + +3. Create new directories for building and creating repo + +``` +mkdir build-dir +mkdir repo +``` + +4. Build antimicro + +`flatpak-builder build-dir com.github.juliagoda.antimicro.json` + +5. Test the build of application + +`flatpak-builder --run build-dir com.github.juliagoda.antimicro.json antimicro` + +6. Create repository for application + +`flatpak-builder --repo=repo --force-clean build-dir com.github.juliagoda.antimicro.json` + +7. Add the repository to flatpak locally + +`flatpak --user remote-add --no-gpg-verify antimicro repo` + +8. Install application + +`flatpak --user install antimicro com.github.juliagoda.antimicro` + + +#### Run antimicro + +If you have installed antimicro locally with success, you can run application: + +`flatpak run com.github.juliagoda.antimicro` + + +#### Updating + +To update all your installed applications and runtimes to the latest version, execute: + +`flatpak update` + + +#### Uninstall antimicro + +1. Delete a remote repository + +`flatpak --user remote-delete antimicro` + +2. Delete application + +`flatpak uninstall com.github.juliagoda.antimicro` + + + ## Testing Under Linux If you are having problems with antimicro detecting a controller or diff --git a/Resources.txt b/Resources.txt index 9c69a2cc..c9394ce8 100755 --- a/Resources.txt +++ b/Resources.txt @@ -1,15 +1,96 @@ -Generate GUIDs for use in .wxs files +1) Generate GUIDs for use in .wxs files http://www.guidgen.com/ -Site used to check out the behavior of different easing curves + +2) Site used to check out the behavior of different easing curves http://easings.net/ -Repository of code examples for many different easing curves + +3) Repository of code examples for many different easing curves https://github.com/jesusgollonet/ofpennereasing -Site used to generate acceleration curve images + +4) Site used to generate acceleration curve images http://rechneronline.de/function-graphs/ + + +5) Check GUID of your connected controller, controller name, vendor, product, product version and buttons. + +https://github.com/juliagoda/SDL_JoystickButtonNames + + +6) Check ASCII character + +https://www.tau.ac.il/~flaxer/edu/course/computerappl/ASCII_Characters.htm +http://www.asciitable.com + + +7) Device registers in C + +https://www.embedded.com/design/programming-languages-and-tools/4432746/Device-registers-in-C +https://samypesse.gitbooks.io/how-to-create-an-operating-system/Chapter-8/ + + +8) Regex tutorial  + +https://medium.com/factory-mind/regex-tutorial-a-simple-cheatsheet-by-examples-649dc1c3f285 + + +9) Appveyor documentation and examples + +https://www.appveyor.com/docs/getting-started-with-appveyor-for-linux/ +https://www.appveyor.com/docs/appveyor-yml/ +https://www.appveyor.com/docs/windows-images-software/ +https://github.com/vlc-qt/examples/blob/master/.appveyor.yml +https://github.com/Yubico/yubioath-desktop/blob/master/appveyor.yml + + +10) Appveyor validator (log in needed) + +https://ci.appveyor.com/tools/validate-yaml + + +11) Travis documentation and example + +https://docs.travis-ci.com/user/multi-os/ +https://docs.travis-ci.com/user/installing-dependencies/ +https://www.codementor.io/amratab/travis-ci-integration-for-github-owctkf8js +https://eng.localytics.com/best-practices-and-common-mistakes-with-travis-ci/ +https://github.com/glfw/glfw/blob/master/.travis.yml +https://github.com/qterm/qterm/blob/master/.travis.yml + + +12) Travis validation + +https://support.travis-ci.com/hc/en-us/articles/115002904174-Validating-travis-yml-files + + +13) Hex to string converter + +http://string-functions.com/hex-string.aspx + + +14) Boolean Expressions Simplificator + +https://www.dcode.fr/boolean-expressions-calculator + + +15) Diff online checker - online diff tool to compare text differences between two text files + +https://www.diffchecker.com/diff + + +16) create own icons, fonts, svg + +https://icomoon.io/app/#/select + + +17) Create icon theme + +https://specifications.freedesktop.org/icon-theme-spec/icon-theme-spec-latest.html#install_icons +https://specifications.freedesktop.org/icon-theme-spec/icon-theme-spec-latest.html#example +https://api.kde.org/ecm/module/ECMInstallIcons.html diff --git a/com.github.juliagoda.antimicro.json b/com.github.juliagoda.antimicro.json index 3da903de..1657c033 100644 --- a/com.github.juliagoda.antimicro.json +++ b/com.github.juliagoda.antimicro.json @@ -22,7 +22,7 @@ "config-opts": [ "-DAPPDATA=ON", "-DUSE_SDL_2=ON", - "-DWITH_UINPUT=OFF", + "-DWITH_UINPUT=ON", "-DWITH_XTEST=ON", "-DCMAKE_BUILD_TYPE=Release" ], diff --git a/share/antimicro/translations/CMakeLists.txt b/share/antimicro/translations/CMakeLists.txt index 48f024bb..efcfc09d 100755 --- a/share/antimicro/translations/CMakeLists.txt +++ b/share/antimicro/translations/CMakeLists.txt @@ -7,9 +7,15 @@ file(GLOB_RECURSE antimicro_BASE_FORMS ${PROJECT_SOURCE_DIR}/src/*.ui) if(UPDATE_TRANSLATIONS) - message("Update translations - lupdate ON") + message("Update translations - lupdate ON") + if(TRANS_KEEP_OBSOLETE) + message("getting rid of old text entries: \"lupdate -noobsolete\" ON") QT5_CREATE_TRANSLATION(antimicro_QMFILES ${antimicro_BASE_SOURCES} - ${antimicro_BASE_FORMS} ${antimicro_TRANSLATIONS}) + ${antimicro_BASE_FORMS} ${antimicro_TRANSLATIONS} OPTIONS -Inobsolete) + else() + QT5_CREATE_TRANSLATION(antimicro_QMFILES ${antimicro_BASE_SOURCES} + ${antimicro_BASE_FORMS} ${antimicro_TRANSLATIONS}) + endif(TRANS_KEEP_OBSOLETE) else() QT5_ADD_TRANSLATION(antimicro_QMFILES ${antimicro_TRANSLATIONS}) endif(UPDATE_TRANSLATIONS) diff --git a/src/calibration.cpp b/src/calibration.cpp index e96abdc7..ee501ab6 100755 --- a/src/calibration.cpp +++ b/src/calibration.cpp @@ -33,14 +33,19 @@ Calibration::Calibration(QMap* joysticks, QWidget sumX = 0; sumY = 0; - center_calibrated_x = -1; - center_calibrated_y = -1; - max_axis_val_x = -1; - min_axis_val_x = -1; - max_axis_val_y = -1; - min_axis_val_y = -1; - deadzone_calibrated_x = -1; - deadzone_calibrated_y = -1; + + center_calibrated_x = 0; + center_calibrated_y = 0; + + deadzone_calibrated_x = 0; + deadzone_calibrated_y = 0; + + max_axis_val_x = 0; + min_axis_val_x = 0; + + max_axis_val_y = 0; + min_axis_val_y = 0; + calibrated = false; this->joysticks = joysticks; @@ -84,7 +89,8 @@ Calibration::Calibration(QMap* joysticks, QWidget connect(ui->controllersBox, &QComboBox::currentTextChanged, this, &Calibration::setController); connect(ui->axesBox, static_cast(&QComboBox::currentIndexChanged), this, &Calibration::createAxesConnection); connect(ui->startButton, &QPushButton::clicked, this, &Calibration::startCalibration); - connect(ui->resetBtn, &QPushButton::clicked, [this](bool clicked){ + connect(ui->resetBtn, &QPushButton::clicked, [this](bool clicked) + { resetSettings(false, clicked); }); @@ -115,7 +121,7 @@ void Calibration::resetSettings(bool silentReset, bool) { case QMessageBox::Yes: restoreCalValues(); - + ui->steps->clear(); break; case QMessageBox::No: @@ -123,12 +129,12 @@ void Calibration::resetSettings(bool silentReset, bool) default: break; - } } else { restoreCalValues(); + ui->steps->clear(); } } @@ -136,39 +142,48 @@ void Calibration::restoreCalValues() { sumX = 0; sumY = 0; - center_calibrated_x = -1; - center_calibrated_y = -1; - max_axis_val_x = -1; - min_axis_val_x = -1; - max_axis_val_y = -1; - min_axis_val_y = -1; - deadzone_calibrated_x = -1; - deadzone_calibrated_y = -1; - calibrated = false; + + center_calibrated_x = 0; + center_calibrated_y = 0; + deadzone_calibrated_x = 0; + deadzone_calibrated_y = 0; + + max_axis_val_x = 0; + min_axis_val_x = 0; + max_axis_val_y = 0; + min_axis_val_y = 0; + x_es_val.clear(); y_es_val.clear(); joyAxisX->setAxisCenterCal(center_calibrated_x); joyAxisY->setAxisCenterCal(center_calibrated_y); - joyAxisX->setDeadZone(GlobalVariables::JoyAxis::AXISDEADZONE); - joyAxisY->setDeadZone(GlobalVariables::JoyAxis::AXISDEADZONE); + joyAxisX->setAxisMinCal(min_axis_val_x); joyAxisY->setAxisMinCal(min_axis_val_y); joyAxisX->setAxisMaxCal(max_axis_val_x); joyAxisY->setAxisMaxCal(max_axis_val_y); + + joyAxisX->setDeadZone(GlobalVariables::JoyAxis::AXISDEADZONE); + joyAxisY->setDeadZone(GlobalVariables::JoyAxis::AXISDEADZONE); + joyAxisX->setMaxZoneValue(GlobalVariables::JoyAxis::AXISMAXZONE); joyAxisY->setMaxZoneValue(GlobalVariables::JoyAxis::AXISMAXZONE); + stick->setDeadZone(GlobalVariables::JoyAxis::AXISDEADZONE); stick->setMaxZone(GlobalVariables::JoyAxis::AXISMAXZONE); - calibrated = false; + stick->setCalibrationFlag(false); stick->setCalibrationSummary(QString()); - ui->Informations->setText(QString()); + ui->Informations->clear(); + + calibrated = false; ui->saveBtn->setEnabled(false); ui->resetBtn->setEnabled(false); - update(); ui->stickStatusBoxWidget->update(); + + update(); } /** @@ -229,10 +244,38 @@ void Calibration::startCalibration() break; } } + else + { + center_calibrated_x = 0; + center_calibrated_y = 0; + deadzone_calibrated_x = 0; + deadzone_calibrated_y = 0; + + min_axis_val_x = 0; + min_axis_val_y = 0; + max_axis_val_x = 0; + max_axis_val_y = 0; + + x_es_val.clear(); + y_es_val.clear(); + } if ((joyAxisX != nullptr) && (joyAxisY != nullptr) && confirmed) { + center_calibrated_x = 0; + center_calibrated_y = 0; + deadzone_calibrated_x = 0; + deadzone_calibrated_y = 0; + + min_axis_val_x = 0; + min_axis_val_y = 0; + max_axis_val_x = 0; + max_axis_val_y = 0; + + x_es_val.clear(); + y_es_val.clear(); + stick->setCalibrationFlag(false); calibrated = false; @@ -438,17 +481,24 @@ void Calibration::saveSettings() joyAxisX->setAxisCenterCal(center_calibrated_x); joyAxisY->setAxisCenterCal(center_calibrated_y); + joyAxisX->setDeadZone(deadzone_calibrated_x); joyAxisY->setDeadZone(deadzone_calibrated_y); + stick->setDeadZone(deadzone_calibrated_x); + joyAxisX->setAxisMinCal(min_axis_val_x); joyAxisY->setAxisMinCal(min_axis_val_y); + joyAxisX->setAxisMaxCal(max_axis_val_x); joyAxisY->setAxisMaxCal(max_axis_val_y); + joyAxisX->setMaxZoneValue(max_axis_val_x); joyAxisY->setMaxZoneValue(max_axis_val_y); + stick->setMaxZone(max_axis_val_x); calibrated = true; + stick->setCalibrationFlag(true); stick->setCalibrationSummary(this->text); @@ -652,12 +702,16 @@ void Calibration::createAxesConnection() center_calibrated_x = controlstick->getAxisX()->getAxisCenterCal(); center_calibrated_y = controlstick->getAxisY()->getAxisCenterCal(); + deadzone_calibrated_x = controlstick->getAxisX()->getDeadZone(); deadzone_calibrated_y = controlstick->getAxisY()->getDeadZone(); + min_axis_val_x = controlstick->getAxisX()->getAxisMinCal(); min_axis_val_y = controlstick->getAxisY()->getAxisMinCal(); + max_axis_val_x = controlstick->getAxisX()->getAxisMaxCal(); max_axis_val_y = controlstick->getAxisY()->getAxisMaxCal(); + calibrated = controlstick->wasCalibrated(); text = controlstick->getCalibrationSummary(); @@ -703,10 +757,13 @@ void Calibration::setProgressBars(JoyControlStick* controlstick) axisBarX = new QProgressBar(); axisBarY = new QProgressBar(); + axisBarX->setMinimum(GlobalVariables::JoyAxis::AXISMIN); axisBarX->setMaximum(GlobalVariables::JoyAxis::AXISMAX); + axisBarX->setFormat("%v"); axisBarX->setValue(joyAxisX->getCurrentRawValue()); + axisBarY->setMinimum(GlobalVariables::JoyAxis::AXISMIN); axisBarY->setMaximum(GlobalVariables::JoyAxis::AXISMAX); axisBarY->setFormat("%v"); @@ -757,15 +814,19 @@ void Calibration::setProgressBars(int inputDevNr, int setJoyNr, int stickNr) QLabel *axisLabel = new QLabel(); QLabel *axisLabel2 = new QLabel(); + axisLabel->setText(trUtf8("Axis %1").arg(joyAxisX->getRealJoyIndex())); axisLabel2->setText(trUtf8("Axis %1").arg(joyAxisY->getRealJoyIndex())); axisBarX = new QProgressBar(); axisBarY = new QProgressBar(); + axisBarX->setMinimum(GlobalVariables::JoyAxis::AXISMIN); axisBarX->setMaximum(GlobalVariables::JoyAxis::AXISMAX); + axisBarX->setFormat("%v"); axisBarX->setValue(joyAxisX->getCurrentRawValue()); + axisBarY->setMinimum(GlobalVariables::JoyAxis::AXISMIN); axisBarY->setMaximum(GlobalVariables::JoyAxis::AXISMAX); axisBarY->setFormat("%v"); diff --git a/src/dpadpushbuttongroup.cpp b/src/dpadpushbuttongroup.cpp index ba50a03c..3462296b 100755 --- a/src/dpadpushbuttongroup.cpp +++ b/src/dpadpushbuttongroup.cpp @@ -56,7 +56,7 @@ void DPadPushButtonGroup::generateButtons() dpadWidget = new DPadPushButton(dpad, displayNames, parentWidget()); dpadWidget->setIcon(QIcon::fromTheme(QString::fromUtf8("games_config_options"), - QIcon(":/icons/icons/16x16/actions/16-actions-games_config_options.png"))); + QIcon(":/icons/hicolor/16x16/actions/games_config_options.png"))); connect(dpadWidget, &DPadPushButton::clicked, this, &DPadPushButtonGroup::showDPadDialog); addWidget(dpadWidget, 1, 1); diff --git a/src/images/profile.jpg b/src/images/profile.jpg deleted file mode 100755 index e9880c49..00000000 Binary files a/src/images/profile.jpg and /dev/null differ diff --git a/src/joytabwidget.cpp b/src/joytabwidget.cpp index c9c3e27b..05d34699 100755 --- a/src/joytabwidget.cpp +++ b/src/joytabwidget.cpp @@ -92,13 +92,6 @@ JoyTabWidget::JoyTabWidget(InputDevice *joystick, AntiMicroSettings *settings, Q qDebug() << "themePath: " << themesPaths.at(i); } - QStringList fallbacksPaths = QIcon::fallbackSearchPaths(); - - for (int i = 0; i < fallbacksPaths.count(); i++) - { - qDebug() << "fallbackPath: " << fallbacksPaths.at(i); - } - configBox->setObjectName(QString::fromUtf8("configBox")); configBox->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed); configHorizontalLayout->addWidget(configBox); @@ -110,7 +103,7 @@ JoyTabWidget::JoyTabWidget(InputDevice *joystick, AntiMicroSettings *settings, Q removeButton->setToolTip(trUtf8("Remove configuration from recent list.")); removeButton->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed); removeButton->setIcon(QIcon::fromTheme(QString::fromUtf8("edit_clear_list"), - QIcon(":/icons/icons/16x16/actions/16-actions-edit_clear_list.png"))); + QIcon(":/icons/hicolor/16x16/actions/edit_clear_list.png"))); configHorizontalLayout->addWidget(removeButton); loadButton = new QPushButton(trUtf8("Load"), this); @@ -119,7 +112,7 @@ JoyTabWidget::JoyTabWidget(InputDevice *joystick, AntiMicroSettings *settings, Q loadButton->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed); qDebug() << " Application theme has icon named document_open: " << QIcon::hasThemeIcon("document_open"); loadButton->setIcon(QIcon::fromTheme(QString::fromUtf8("document_open"), - QIcon(":/icons/icons/16x16/actions/16-actions-document_open.png"))); + QIcon(":/icons/hicolor/16x16/actions/document_open.png"))); configHorizontalLayout->addWidget(loadButton); @@ -128,7 +121,7 @@ JoyTabWidget::JoyTabWidget(InputDevice *joystick, AntiMicroSettings *settings, Q saveButton->setToolTip(trUtf8("Save changes to configuration file.")); saveButton->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed); saveButton->setIcon(QIcon::fromTheme(QString::fromUtf8("document_save"), - QIcon(":/icons/icons/16x16/actions/16-actions-document_save.png"))); + QIcon(":/icons/hicolor/16x16/actions/document_save.png"))); configHorizontalLayout->addWidget(saveButton); saveAsButton = new QPushButton(trUtf8("Save As"), this); @@ -136,7 +129,7 @@ JoyTabWidget::JoyTabWidget(InputDevice *joystick, AntiMicroSettings *settings, Q saveAsButton->setToolTip(trUtf8("Save changes to a new configuration file.")); saveAsButton->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed); saveAsButton->setIcon(QIcon::fromTheme(QString::fromUtf8("document_save_as"), - QIcon(":/icons/icons/16x16/actions/16-actions-document_save_as.png"))); + QIcon(":/icons/hicolor/16x16/actions/document_save_as.png"))); configHorizontalLayout->addWidget(saveAsButton); @@ -433,7 +426,7 @@ JoyTabWidget::JoyTabWidget(InputDevice *joystick, AntiMicroSettings *settings, Q stickAssignPushButton = new QPushButton(trUtf8("Stick/Pad Assign"), this); stickAssignPushButton->setObjectName(QString::fromUtf8("stickAssignPushButton")); QIcon icon7(QIcon::fromTheme(QString::fromUtf8("games_config_options"), - QIcon(":/icons/icons/16x16/actions/16-actions-games_config_options.png"))); + QIcon(":/icons/hicolor/16x16/actions/games_config_options.png"))); stickAssignPushButton->setIcon(icon7); horizontalLayout_3->addWidget(stickAssignPushButton); @@ -441,7 +434,7 @@ JoyTabWidget::JoyTabWidget(InputDevice *joystick, AntiMicroSettings *settings, Q gameControllerMappingPushButton = new QPushButton(trUtf8("Controller Mapping"), this); gameControllerMappingPushButton->setObjectName(QString::fromUtf8("gameControllerMappingPushButton")); gameControllerMappingPushButton->setIcon(QIcon::fromTheme(QString::fromUtf8("games_config_options"), - QIcon(":/icons/icons/16x16/actions/16-actions-games_config_options.png"))); + QIcon(":/icons/hicolor/16x16/actions/games_config_options.png"))); gameControllerMappingPushButton->setEnabled(false); gameControllerMappingPushButton->setVisible(false); @@ -460,7 +453,7 @@ JoyTabWidget::JoyTabWidget(InputDevice *joystick, AntiMicroSettings *settings, Q namesPushButton->setToolTip(trUtf8("Toggle button name displaying.")); namesPushButton->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed); namesPushButton->setIcon(QIcon::fromTheme(QString::fromUtf8("text_field"), - QIcon(":/icons/icons/16x16/actions/16-actions-text_field.png"))); + QIcon(":/icons/hicolor/16x16/actions/text_field.png"))); horizontalLayout_3->addWidget(namesPushButton); @@ -475,7 +468,7 @@ JoyTabWidget::JoyTabWidget(InputDevice *joystick, AntiMicroSettings *settings, Q resetButton->setToolTip(trUtf8("Revert changes to the configuration. Reload configuration file.")); resetButton->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed); resetButton->setIcon(QIcon::fromTheme(QString::fromUtf8("document_revert"), - QIcon(":/icons/icons/16x16/actions/16-actions-document_revert.png"))); + QIcon(":/icons/hicolor/16x16/actions/document_revert.png"))); horizontalLayout_3->addWidget(resetButton); @@ -1629,7 +1622,7 @@ void JoyTabWidget::displayProfileEditNotification() int currentIndex = configBox->currentIndex(); configBox->setItemIcon(currentIndex, QIcon::fromTheme("document_save_as", - QIcon(":/icons/icons/16x16/actions/16-document_save_as.png"))); + QIcon(":/icons/hicolor/16x16/actions/document_save_as.png"))); } void JoyTabWidget::removeProfileEditNotification() diff --git a/src/keyboard/virtualkeyboardmousewidget.cpp b/src/keyboard/virtualkeyboardmousewidget.cpp index c73b2412..5b863a6d 100755 --- a/src/keyboard/virtualkeyboardmousewidget.cpp +++ b/src/keyboard/virtualkeyboardmousewidget.cpp @@ -623,7 +623,7 @@ void VirtualKeyboardMouseWidget::setupMouseControlLayout() mouseSettingsPushButton = new QPushButton(trUtf8("Mouse Settings"), this); mouseSettingsPushButton->setIcon(QIcon::fromTheme(QString::fromUtf8("edit_select"), - QIcon(":/icons/icons/16x16/actions/16-actions-edit_select.png"))); + QIcon(":/icons/hicolor/16x16/actions/edit_select.png"))); tempVBoxLayout->addWidget(mouseSettingsPushButton); diff --git a/src/main.cpp b/src/main.cpp index 1374f4ce..3c20e509 100755 --- a/src/main.cpp +++ b/src/main.cpp @@ -305,7 +305,7 @@ int main(int argc, char *argv[]) } mainWindow.removeJoyTabs(); - QObject::connect(&antimicro, &QApplication::aboutToQuit, joypad_worker, &InputDaemon::quit); + QObject::connect(&antimicro, &QApplication::aboutToQuit, joypad_worker.data(), &InputDaemon::quit); QTimer::singleShot(50, &antimicro, &QApplication::quit); int result = antimicro.exec(); diff --git a/src/mainsettingsdialog.cpp b/src/mainsettingsdialog.cpp index 9396e256..cc7caf16 100755 --- a/src/mainsettingsdialog.cpp +++ b/src/mainsettingsdialog.cpp @@ -85,10 +85,10 @@ MainSettingsDialog::MainSettingsDialog(AntiMicroSettings *settings, setAttribute(Qt::WA_DeleteOnClose); ui->profileOpenDirPushButton->setIcon(QIcon::fromTheme("document_open_folder", - QIcon(":/icons/icons/16x16/actions/16-actions-document_open_folder.png"))); + QIcon(":/icons/hicolor/16x16/actions/document_open_folder.png"))); ui->logFilePushButton->setIcon(QIcon::fromTheme("document_open_folder", - QIcon(":/icons/icons/16x16/actions/16-actions-document_open_folder.png"))); + QIcon(":/icons/hicolor/16x16/actions/document_open_folder.png"))); this->settings = settings; this->allDefaultProfile = nullptr; diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 29439770..036b495a 100755 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -86,6 +86,10 @@ MainWindow::MainWindow(QMap *joysticks, { ui->setupUi(this); + setWindowIcon(QIcon::fromTheme(QString::fromUtf8("antimicro"), QIcon(":/images/antimicro.png"))); + (QIcon::fromTheme(QString::fromUtf8("application_exit"), + QIcon(":/icons/hicolor/16x16/actions/application_exit.png"))); + qInstallMessageHandler(MessageHandler::myMessageOutput); ui->stackedWidget->setCurrentIndex(0); @@ -516,26 +520,26 @@ void MainWindow::populateTrayIcon() closeAction = new QAction(trUtf8("&Quit"), trayIconMenu); closeAction->setIcon(QIcon::fromTheme(QString::fromUtf8("application_exit"), - QIcon(":/icons/icons/16x16/actions/16-actions-application_exit.png"))); + QIcon(":/icons/hicolor/16x16/actions/application_exit.png"))); connect(closeAction, &QAction::triggered, this, &MainWindow::quitProgram, Qt::DirectConnection); hideAction = new QAction(trUtf8("&Hide"), trayIconMenu); hideAction->setIcon(QIcon::fromTheme(QString::fromUtf8("view_restore"), - QIcon(":/icons/icons/16x16/actions/16-actions-view_restore.png"))); + QIcon(":/icons/hicolor/16x16/actions/view_restore.png"))); connect(hideAction, &QAction::triggered, this, &MainWindow::hideWindow); restoreAction = new QAction(trUtf8("&Restore"), trayIconMenu); qDebug() << " Application theme has icon named view_fullscreen: " << QIcon::hasThemeIcon("view_fullscreen"); restoreAction->setIcon(QIcon::fromTheme(QString::fromUtf8("view_fullscreen"), - QIcon(":/icons/icons/16x16/actions/16-actions-view_fullscreen.png"))); + QIcon(":/icons/hicolor/16x16/actions/view_fullscreen.png"))); connect(restoreAction, &QAction::triggered, this, &MainWindow::show); updateJoy = new QAction(trUtf8("&Update Joysticks"), trayIconMenu); updateJoy->setIcon(QIcon::fromTheme(QString::fromUtf8("view_refresh"), - QIcon(":/icons/icons/16x16/actions/16-actions-view_refresh.png"))); + QIcon(":/icons/hicolor/16x16/actions/view_refresh.png"))); connect(updateJoy, &QAction::triggered, this, &MainWindow::startJoystickRefresh); @@ -636,7 +640,7 @@ void MainWindow::populateTrayIcon() } newaction->setIcon(QIcon::fromTheme(QString::fromUtf8("document_open"), - QIcon(":/icons/icons/16x16/actions/16-actions-document_open.png"))); + QIcon(":/icons/hicolor/16x16/actions/document_open.png"))); connect(newaction, &QAction::triggered, widget, &JoyTabWidget::openConfigFileDialog); @@ -978,7 +982,7 @@ void MainWindow::joystickTrayShow(QMenu* tempmenu) if (widget->getJoystick()->isDeviceEdited()) { action->setIcon(QIcon::fromTheme(QString::fromUtf8("document_save_as"), - QIcon(":/icons/icons/16x16/actions/16-actions-document_save_as.png"))); + QIcon(":/icons/hicolor/16x16/actions/document_save_as.png"))); } else if (!action->icon().isNull()) @@ -1476,7 +1480,7 @@ void MainWindow::singleTrayProfileMenuShow() if (widget->getJoystick()->isDeviceEdited()) { action->setIcon(QIcon::fromTheme(QString::fromUtf8("document_save_as"), - QIcon(":/icons/icons/16x16/actions/16-actions-document_save_as.png"))); + QIcon(":/icons/hicolor/16x16/actions/document_save_as.png"))); } else if (!action->icon().isNull()) { diff --git a/src/mainwindow.ui b/src/mainwindow.ui index af696010..6d47989c 100755 --- a/src/mainwindow.ui +++ b/src/mainwindow.ui @@ -23,7 +23,7 @@ antimicro - + JoyButtonWidget[isflashing="true"], diff --git a/src/resources.qrc b/src/resources.qrc index 49cd0ca9..70bc08fb 100755 --- a/src/resources.qrc +++ b/src/resources.qrc @@ -1,7 +1,6 @@ icons/index.theme - images/profile.jpg images/antimicro.png images/antimicro_trayicon.png images/axis.png diff --git a/src/resources_windows.qrc b/src/resources_windows.qrc index 1d22cc1a..5451efeb 100755 --- a/src/resources_windows.qrc +++ b/src/resources_windows.qrc @@ -1,7 +1,6 @@ icons/index.theme - images/profile.jpg images/antimicro.png images/antimicro_trayicon.png images/axis.png diff --git a/src/stickpushbuttongroup.cpp b/src/stickpushbuttongroup.cpp index 92462cfd..0f002fea 100755 --- a/src/stickpushbuttongroup.cpp +++ b/src/stickpushbuttongroup.cpp @@ -59,7 +59,7 @@ void StickPushButtonGroup::generateButtons() stickWidget = new JoyControlStickPushButton(stick, displayNames, parentWidget()); stickWidget->setIcon(QIcon::fromTheme(QString::fromUtf8("games_config_options"), - QIcon(":/icons/icons/16x16/actions/16-actions-games_config_options.png"))); + QIcon(":/icons/hicolor/16x16/actions/games_config_options.png"))); connect(stickWidget, &JoyControlStickPushButton::clicked, this, &StickPushButtonGroup::showStickDialog);