From 82247ac648036b3c45d96858f2c15b8db024429c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?O=C4=9Fuzhan=20=C4=B0nan?= Date: Wed, 23 Aug 2017 14:49:45 +0300 Subject: [PATCH] stacer native --- .gitignore | 4 + LICENSE | 21 + README.md | 133 +++ Stacer.pro | 5 + deploy.sh | 53 ++ icons/hicolor/128x128/apps/stacer.png | Bin 0 -> 17734 bytes icons/hicolor/16x16/apps/stacer.png | Bin 0 -> 1451 bytes icons/hicolor/256x256/apps/stacer.png | Bin 0 -> 27479 bytes icons/hicolor/32x32/apps/stacer.png | Bin 0 -> 3007 bytes icons/hicolor/64x64/apps/stacer.png | Bin 0 -> 7478 bytes install.sh | 34 + screenshots/Screenshot-2.0.0-1.png | Bin 0 -> 22638 bytes screenshots/Screenshot-2.0.0-10.png | Bin 0 -> 13865 bytes screenshots/Screenshot-2.0.0-11.png | Bin 0 -> 18831 bytes screenshots/Screenshot-2.0.0-12.png | Bin 0 -> 32576 bytes screenshots/Screenshot-2.0.0-13.png | Bin 0 -> 6201 bytes screenshots/Screenshot-2.0.0-2.png | Bin 0 -> 9783 bytes screenshots/Screenshot-2.0.0-3.png | Bin 0 -> 12535 bytes screenshots/Screenshot-2.0.0-4.png | Bin 0 -> 13322 bytes screenshots/Screenshot-2.0.0-5.png | Bin 0 -> 14254 bytes screenshots/Screenshot-2.0.0-6.png | Bin 0 -> 12093 bytes screenshots/Screenshot-2.0.0-7.png | Bin 0 -> 12997 bytes screenshots/Screenshot-2.0.0-8.png | Bin 0 -> 15003 bytes screenshots/Screenshot-2.0.0-9.png | Bin 0 -> 25280 bytes screenshots/header.png | Bin 0 -> 36969 bytes stacer-core/Info/cpu_info.cpp | 96 ++ stacer-core/Info/cpu_info.h | 29 + stacer-core/Info/disk_info.cpp | 31 + stacer-core/Info/disk_info.h | 37 + stacer-core/Info/memory_info.cpp | 53 ++ stacer-core/Info/memory_info.h | 42 + stacer-core/Info/network_info.cpp | 43 + stacer-core/Info/network_info.h | 33 + stacer-core/Info/process.cpp | 146 ++++ stacer-core/Info/process.h | 80 ++ stacer-core/Info/process_info.cpp | 56 ++ stacer-core/Info/process_info.h | 30 + stacer-core/Info/system_info.cpp | 104 +++ stacer-core/Info/system_info.h | 47 + stacer-core/Tools/package_tool.cpp | 168 ++++ stacer-core/Tools/package_tool.h | 51 ++ stacer-core/Tools/service_tool.cpp | 104 +++ stacer-core/Tools/service_tool.h | 40 + stacer-core/Utils/command_util.cpp | 57 ++ stacer-core/Utils/command_util.h | 24 + stacer-core/Utils/file_util.cpp | 84 ++ stacer-core/Utils/file_util.h | 32 + stacer-core/Utils/format_util.cpp | 31 + stacer-core/Utils/format_util.h | 28 + stacer-core/stacer-core.pro | 57 ++ stacer-core/stacer-core_global.h | 12 + stacer.desktop | 8 + stacer/Managers/app_manager.cpp | 126 +++ stacer/Managers/app_manager.h | 59 ++ stacer/Managers/info_manager.cpp | 121 +++ stacer/Managers/info_manager.h | 54 ++ stacer/Managers/tool_manager.cpp | 110 +++ stacer/Managers/tool_manager.h | 41 + stacer/Pages/Dashboard/circlebar.cpp | 70 ++ stacer/Pages/Dashboard/circlebar.h | 37 + stacer/Pages/Dashboard/circlebar.ui | 89 ++ stacer/Pages/Dashboard/dashboard_page.cpp | 198 +++++ stacer/Pages/Dashboard/dashboard_page.h | 55 ++ stacer/Pages/Dashboard/dashboard_page.ui | 264 ++++++ stacer/Pages/Dashboard/linebar.cpp | 23 + stacer/Pages/Dashboard/linebar.h | 24 + stacer/Pages/Dashboard/linebar.ui | 167 ++++ stacer/Pages/Processes/processes_page.cpp | 229 +++++ stacer/Pages/Processes/processes_page.h | 50 ++ stacer/Pages/Processes/processes_page.ui | 217 +++++ stacer/Pages/Resources/history_chart.cpp | 103 +++ stacer/Pages/Resources/history_chart.h | 46 + stacer/Pages/Resources/history_chart.ui | 52 ++ stacer/Pages/Resources/resources_page.cpp | 165 ++++ stacer/Pages/Resources/resources_page.h | 40 + stacer/Pages/Resources/resources_page.ui | 57 ++ stacer/Pages/Services/service_item.cpp | 37 + stacer/Pages/Services/service_item.h | 33 + stacer/Pages/Services/service_item.ui | 171 ++++ stacer/Pages/Services/services_page.cpp | 52 ++ stacer/Pages/Services/services_page.h | 36 + stacer/Pages/Services/services_page.ui | 304 +++++++ stacer/Pages/Settings/settings_page.cpp | 60 ++ stacer/Pages/Settings/settings_page.h | 34 + stacer/Pages/Settings/settings_page.ui | 105 +++ stacer/Pages/StartupApps/startup_app.cpp | 84 ++ stacer/Pages/StartupApps/startup_app.h | 51 ++ stacer/Pages/StartupApps/startup_app.ui | 177 ++++ stacer/Pages/StartupApps/startup_app_edit.cpp | 117 +++ stacer/Pages/StartupApps/startup_app_edit.h | 46 + stacer/Pages/StartupApps/startup_app_edit.ui | 115 +++ .../Pages/StartupApps/startup_apps_page.cpp | 90 ++ stacer/Pages/StartupApps/startup_apps_page.h | 39 + stacer/Pages/StartupApps/startup_apps_page.ui | 243 ++++++ .../SystemCleaner/system_cleaner_page.cpp | 315 +++++++ .../Pages/SystemCleaner/system_cleaner_page.h | 64 ++ .../SystemCleaner/system_cleaner_page.ui | 636 ++++++++++++++ stacer/Pages/Uninstaller/uninstaller_page.cpp | 120 +++ stacer/Pages/Uninstaller/uninstaller_page.h | 44 + stacer/Pages/Uninstaller/uninstallerpage.ui | 292 +++++++ stacer/app.cpp | 116 +++ stacer/app.h | 62 ++ stacer/app.ui | 322 +++++++ stacer/main.cpp | 72 ++ stacer/stacer.pro | 100 +++ stacer/static.qrc | 63 ++ stacer/static/font/Ubuntu-R.ttf | Bin 0 -> 353824 bytes stacer/static/languages.json | 9 + stacer/static/logo.png | Bin 0 -> 27479 bytes stacer/static/themes.json | 4 + stacer/static/themes/default/img/app.svg | 65 ++ stacer/static/themes/default/img/asc.svg | 55 ++ stacer/static/themes/default/img/back.svg | 44 + stacer/static/themes/default/img/c_cache.png | Bin 0 -> 3239 bytes stacer/static/themes/default/img/c_crash.png | Bin 0 -> 3193 bytes stacer/static/themes/default/img/c_logs.png | Bin 0 -> 3142 bytes .../static/themes/default/img/c_package.png | Bin 0 -> 2517 bytes stacer/static/themes/default/img/c_trash.png | Bin 0 -> 4127 bytes stacer/static/themes/default/img/check.svg | 4 + stacer/static/themes/default/img/checkbox.svg | 81 ++ .../themes/default/img/clean-active.svg | 185 ++++ stacer/static/themes/default/img/clean.svg | 185 ++++ stacer/static/themes/default/img/collapse.svg | 73 ++ .../static/themes/default/img/down-arrow.svg | 45 + stacer/static/themes/default/img/dsc.svg | 55 ++ stacer/static/themes/default/img/edit.svg | 65 ++ stacer/static/themes/default/img/fit.svg | 73 ++ stacer/static/themes/default/img/loading.gif | Bin 0 -> 7205 bytes stacer/static/themes/default/img/loadings.gif | Bin 0 -> 9826 bytes .../static/themes/default/img/not-found.svg | 58 ++ stacer/static/themes/default/img/package.svg | 98 +++ stacer/static/themes/default/img/power.svg | 56 ++ stacer/static/themes/default/img/refresh.svg | 54 ++ .../static/themes/default/img/right-arrow.svg | 45 + stacer/static/themes/default/img/run.svg | 58 ++ .../static/themes/default/img/scan-active.svg | 157 ++++ stacer/static/themes/default/img/scan.svg | 157 ++++ .../static/themes/default/img/scanLoading.gif | Bin 0 -> 54933 bytes stacer/static/themes/default/img/search.svg | 67 ++ stacer/static/themes/default/img/service.svg | 93 ++ .../default/img/sidebar-icons/cleaner.svg | 145 ++++ .../themes/default/img/sidebar-icons/dash.png | Bin 0 -> 2141 bytes .../default/img/sidebar-icons/process.png | Bin 0 -> 1215 bytes .../default/img/sidebar-icons/resources.png | Bin 0 -> 1364 bytes .../default/img/sidebar-icons/services.svg | 93 ++ .../default/img/sidebar-icons/settings.svg | 56 ++ .../img/sidebar-icons/startup-apps.png | Bin 0 -> 2256 bytes .../img/sidebar-icons/startup-apps.svg | 105 +++ .../default/img/sidebar-icons/uninstaller.png | Bin 0 -> 2239 bytes stacer/static/themes/default/img/trash.svg | 76 ++ stacer/static/themes/default/img/un-check.svg | 62 ++ .../static/themes/default/img/un-checkbox.svg | 83 ++ stacer/static/themes/default/style/style.qss | 817 ++++++++++++++++++ stacer/static/themes/default/style/values.ini | 22 + stacer/static/themes/light/img/app.svg | 65 ++ .../static/themes/light/img/clean-active.svg | 185 ++++ stacer/static/themes/light/img/clean.svg | 185 ++++ stacer/static/themes/light/img/down-arrow.svg | 45 + stacer/static/themes/light/img/edit.svg | 65 ++ stacer/static/themes/light/img/loading.gif | Bin 0 -> 8353 bytes stacer/static/themes/light/img/package.svg | 98 +++ .../static/themes/light/img/right-arrow.svg | 45 + .../static/themes/light/img/scan-active.svg | 157 ++++ stacer/static/themes/light/img/scan.svg | 158 ++++ .../static/themes/light/img/scanLoading.gif | Bin 0 -> 60782 bytes stacer/static/themes/light/style/style.qss | 817 ++++++++++++++++++ stacer/static/themes/light/style/values.ini | 16 + translations/stacer_en.ts | 453 ++++++++++ translations/stacer_es.ts | 453 ++++++++++ translations/stacer_fr.ts | 453 ++++++++++ translations/stacer_hi.ts | 453 ++++++++++ translations/stacer_pt.ts | 453 ++++++++++ translations/stacer_sv.ts | 453 ++++++++++ translations/stacer_tr.ts | 453 ++++++++++ 174 files changed, 16422 insertions(+) create mode 100644 .gitignore create mode 100644 LICENSE create mode 100644 README.md create mode 100644 Stacer.pro create mode 100755 deploy.sh create mode 100644 icons/hicolor/128x128/apps/stacer.png create mode 100644 icons/hicolor/16x16/apps/stacer.png create mode 100644 icons/hicolor/256x256/apps/stacer.png create mode 100644 icons/hicolor/32x32/apps/stacer.png create mode 100644 icons/hicolor/64x64/apps/stacer.png create mode 100755 install.sh create mode 100644 screenshots/Screenshot-2.0.0-1.png create mode 100644 screenshots/Screenshot-2.0.0-10.png create mode 100644 screenshots/Screenshot-2.0.0-11.png create mode 100644 screenshots/Screenshot-2.0.0-12.png create mode 100644 screenshots/Screenshot-2.0.0-13.png create mode 100644 screenshots/Screenshot-2.0.0-2.png create mode 100644 screenshots/Screenshot-2.0.0-3.png create mode 100644 screenshots/Screenshot-2.0.0-4.png create mode 100644 screenshots/Screenshot-2.0.0-5.png create mode 100644 screenshots/Screenshot-2.0.0-6.png create mode 100644 screenshots/Screenshot-2.0.0-7.png create mode 100644 screenshots/Screenshot-2.0.0-8.png create mode 100644 screenshots/Screenshot-2.0.0-9.png create mode 100644 screenshots/header.png create mode 100644 stacer-core/Info/cpu_info.cpp create mode 100644 stacer-core/Info/cpu_info.h create mode 100644 stacer-core/Info/disk_info.cpp create mode 100644 stacer-core/Info/disk_info.h create mode 100644 stacer-core/Info/memory_info.cpp create mode 100644 stacer-core/Info/memory_info.h create mode 100644 stacer-core/Info/network_info.cpp create mode 100644 stacer-core/Info/network_info.h create mode 100644 stacer-core/Info/process.cpp create mode 100644 stacer-core/Info/process.h create mode 100644 stacer-core/Info/process_info.cpp create mode 100644 stacer-core/Info/process_info.h create mode 100644 stacer-core/Info/system_info.cpp create mode 100644 stacer-core/Info/system_info.h create mode 100644 stacer-core/Tools/package_tool.cpp create mode 100644 stacer-core/Tools/package_tool.h create mode 100644 stacer-core/Tools/service_tool.cpp create mode 100644 stacer-core/Tools/service_tool.h create mode 100644 stacer-core/Utils/command_util.cpp create mode 100644 stacer-core/Utils/command_util.h create mode 100644 stacer-core/Utils/file_util.cpp create mode 100644 stacer-core/Utils/file_util.h create mode 100644 stacer-core/Utils/format_util.cpp create mode 100644 stacer-core/Utils/format_util.h create mode 100644 stacer-core/stacer-core.pro create mode 100644 stacer-core/stacer-core_global.h create mode 100644 stacer.desktop create mode 100644 stacer/Managers/app_manager.cpp create mode 100644 stacer/Managers/app_manager.h create mode 100644 stacer/Managers/info_manager.cpp create mode 100644 stacer/Managers/info_manager.h create mode 100644 stacer/Managers/tool_manager.cpp create mode 100644 stacer/Managers/tool_manager.h create mode 100644 stacer/Pages/Dashboard/circlebar.cpp create mode 100644 stacer/Pages/Dashboard/circlebar.h create mode 100644 stacer/Pages/Dashboard/circlebar.ui create mode 100644 stacer/Pages/Dashboard/dashboard_page.cpp create mode 100644 stacer/Pages/Dashboard/dashboard_page.h create mode 100644 stacer/Pages/Dashboard/dashboard_page.ui create mode 100644 stacer/Pages/Dashboard/linebar.cpp create mode 100644 stacer/Pages/Dashboard/linebar.h create mode 100644 stacer/Pages/Dashboard/linebar.ui create mode 100644 stacer/Pages/Processes/processes_page.cpp create mode 100644 stacer/Pages/Processes/processes_page.h create mode 100644 stacer/Pages/Processes/processes_page.ui create mode 100644 stacer/Pages/Resources/history_chart.cpp create mode 100644 stacer/Pages/Resources/history_chart.h create mode 100644 stacer/Pages/Resources/history_chart.ui create mode 100644 stacer/Pages/Resources/resources_page.cpp create mode 100644 stacer/Pages/Resources/resources_page.h create mode 100644 stacer/Pages/Resources/resources_page.ui create mode 100644 stacer/Pages/Services/service_item.cpp create mode 100644 stacer/Pages/Services/service_item.h create mode 100644 stacer/Pages/Services/service_item.ui create mode 100644 stacer/Pages/Services/services_page.cpp create mode 100644 stacer/Pages/Services/services_page.h create mode 100644 stacer/Pages/Services/services_page.ui create mode 100644 stacer/Pages/Settings/settings_page.cpp create mode 100644 stacer/Pages/Settings/settings_page.h create mode 100644 stacer/Pages/Settings/settings_page.ui create mode 100644 stacer/Pages/StartupApps/startup_app.cpp create mode 100644 stacer/Pages/StartupApps/startup_app.h create mode 100644 stacer/Pages/StartupApps/startup_app.ui create mode 100644 stacer/Pages/StartupApps/startup_app_edit.cpp create mode 100644 stacer/Pages/StartupApps/startup_app_edit.h create mode 100644 stacer/Pages/StartupApps/startup_app_edit.ui create mode 100644 stacer/Pages/StartupApps/startup_apps_page.cpp create mode 100644 stacer/Pages/StartupApps/startup_apps_page.h create mode 100644 stacer/Pages/StartupApps/startup_apps_page.ui create mode 100644 stacer/Pages/SystemCleaner/system_cleaner_page.cpp create mode 100644 stacer/Pages/SystemCleaner/system_cleaner_page.h create mode 100644 stacer/Pages/SystemCleaner/system_cleaner_page.ui create mode 100644 stacer/Pages/Uninstaller/uninstaller_page.cpp create mode 100644 stacer/Pages/Uninstaller/uninstaller_page.h create mode 100644 stacer/Pages/Uninstaller/uninstallerpage.ui create mode 100644 stacer/app.cpp create mode 100644 stacer/app.h create mode 100644 stacer/app.ui create mode 100644 stacer/main.cpp create mode 100644 stacer/stacer.pro create mode 100644 stacer/static.qrc create mode 100644 stacer/static/font/Ubuntu-R.ttf create mode 100644 stacer/static/languages.json create mode 100644 stacer/static/logo.png create mode 100644 stacer/static/themes.json create mode 100644 stacer/static/themes/default/img/app.svg create mode 100644 stacer/static/themes/default/img/asc.svg create mode 100644 stacer/static/themes/default/img/back.svg create mode 100644 stacer/static/themes/default/img/c_cache.png create mode 100644 stacer/static/themes/default/img/c_crash.png create mode 100644 stacer/static/themes/default/img/c_logs.png create mode 100644 stacer/static/themes/default/img/c_package.png create mode 100644 stacer/static/themes/default/img/c_trash.png create mode 100644 stacer/static/themes/default/img/check.svg create mode 100644 stacer/static/themes/default/img/checkbox.svg create mode 100644 stacer/static/themes/default/img/clean-active.svg create mode 100644 stacer/static/themes/default/img/clean.svg create mode 100644 stacer/static/themes/default/img/collapse.svg create mode 100644 stacer/static/themes/default/img/down-arrow.svg create mode 100644 stacer/static/themes/default/img/dsc.svg create mode 100644 stacer/static/themes/default/img/edit.svg create mode 100644 stacer/static/themes/default/img/fit.svg create mode 100644 stacer/static/themes/default/img/loading.gif create mode 100644 stacer/static/themes/default/img/loadings.gif create mode 100644 stacer/static/themes/default/img/not-found.svg create mode 100644 stacer/static/themes/default/img/package.svg create mode 100644 stacer/static/themes/default/img/power.svg create mode 100644 stacer/static/themes/default/img/refresh.svg create mode 100644 stacer/static/themes/default/img/right-arrow.svg create mode 100644 stacer/static/themes/default/img/run.svg create mode 100644 stacer/static/themes/default/img/scan-active.svg create mode 100644 stacer/static/themes/default/img/scan.svg create mode 100644 stacer/static/themes/default/img/scanLoading.gif create mode 100644 stacer/static/themes/default/img/search.svg create mode 100644 stacer/static/themes/default/img/service.svg create mode 100644 stacer/static/themes/default/img/sidebar-icons/cleaner.svg create mode 100644 stacer/static/themes/default/img/sidebar-icons/dash.png create mode 100644 stacer/static/themes/default/img/sidebar-icons/process.png create mode 100644 stacer/static/themes/default/img/sidebar-icons/resources.png create mode 100644 stacer/static/themes/default/img/sidebar-icons/services.svg create mode 100644 stacer/static/themes/default/img/sidebar-icons/settings.svg create mode 100644 stacer/static/themes/default/img/sidebar-icons/startup-apps.png create mode 100644 stacer/static/themes/default/img/sidebar-icons/startup-apps.svg create mode 100644 stacer/static/themes/default/img/sidebar-icons/uninstaller.png create mode 100644 stacer/static/themes/default/img/trash.svg create mode 100644 stacer/static/themes/default/img/un-check.svg create mode 100644 stacer/static/themes/default/img/un-checkbox.svg create mode 100644 stacer/static/themes/default/style/style.qss create mode 100644 stacer/static/themes/default/style/values.ini create mode 100644 stacer/static/themes/light/img/app.svg create mode 100644 stacer/static/themes/light/img/clean-active.svg create mode 100644 stacer/static/themes/light/img/clean.svg create mode 100644 stacer/static/themes/light/img/down-arrow.svg create mode 100644 stacer/static/themes/light/img/edit.svg create mode 100644 stacer/static/themes/light/img/loading.gif create mode 100644 stacer/static/themes/light/img/package.svg create mode 100644 stacer/static/themes/light/img/right-arrow.svg create mode 100644 stacer/static/themes/light/img/scan-active.svg create mode 100644 stacer/static/themes/light/img/scan.svg create mode 100644 stacer/static/themes/light/img/scanLoading.gif create mode 100644 stacer/static/themes/light/style/style.qss create mode 100644 stacer/static/themes/light/style/values.ini create mode 100644 translations/stacer_en.ts create mode 100644 translations/stacer_es.ts create mode 100644 translations/stacer_fr.ts create mode 100644 translations/stacer_hi.ts create mode 100644 translations/stacer_pt.ts create mode 100644 translations/stacer_sv.ts create mode 100644 translations/stacer_tr.ts diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..9b2e52e --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +Stacer.pro.user* +dist/ +build/ +#*.AppImage diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..cad9d18 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2017 Oguzhan Inan + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/README.md b/README.md new file mode 100644 index 0000000..995d9af --- /dev/null +++ b/README.md @@ -0,0 +1,133 @@ + +

+ +

+

+ Linux System Optimizer and Monitoring +

+ +

+ + Awesome + + + Download Stacer + + + Platform (GNU/Linux) + +

+ +

+ + + +

+ +## Reviews +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+ +### Required Packages +- curl +- systemd + +## Distribution independent installation + +- Install + + Run `bash -c "$(wget https://gitlab.com/oguzhaninan/Stacer-Develop/raw/master/install.sh -O -)"` + +- Uninstall + + Run `sudo bash uninstal-stacer` + +### Debian x64 + +1. Download `stacer_1.0.8_amd64.deb` from the [Stacer releases page](https://github.com/oguzhaninan/Stacer/releases). +2. Run `sudo dpkg -i stacer*.deb` on the downloaded package. +3. Launch Stacer using the installed `stacer` command. + +### Fedora x64 + +1. Download `stacer_1.0.8_amd64.rpm` from the [Stacer releases page](https://github.com/oguzhaninan/Stacer/releases). +2. Run `sudo rpm --install stacer*.rpm` on the downloaded package. +3. Launch Stacer using the installed `stacer` command. + +## Build from source + +1. `git clone https://github.com/oguzhaninan/Stacer.git` +2. `cd Stacer` +3. `./deploy.sh` + +## Screenshots + +

+ +

+ +

+ +

+ +

+ +

+ +

+ +

+ +

+ +

+ +

+ +

+ +

+ +

+ +

+ +

+ +

+ +

+ +

+ +

diff --git a/Stacer.pro b/Stacer.pro new file mode 100644 index 0000000..1abee39 --- /dev/null +++ b/Stacer.pro @@ -0,0 +1,5 @@ +TEMPLATE = subdirs + +SUBDIRS += \ + stacer-core \ + stacer diff --git a/deploy.sh b/deploy.sh new file mode 100755 index 0000000..1d2088c --- /dev/null +++ b/deploy.sh @@ -0,0 +1,53 @@ +#!/bin/bash + +P_DIR=$(pwd) +DIST_DIR=dist +BUILD_DIR=build + +#export PATH=/qt/path/gcc_64/bin:$PATH +#export QTDIR=/qt/path/gcc_64 +export QT_PLUGIN_PATH=$QTDIR/plugins +export LD_LIBRARY_PATH=$QTDIR/lib + +#clean +rm -rf dist + +mkdir -p $DIST_DIR/$BUILD_DIR +cd $DIST_DIR/$BUILD_DIR + +#build +$QTDIR/bin/qmake -spec linux-g++ "CONFIG += release" $P_DIR/Stacer.pro && make + +cd $P_DIR/$DIST_DIR/$BUILD_DIR/stacer-core && make +cd $P_DIR/$DIST_DIR/$BUILD_DIR/stacer && make + +mkdir $P_DIR/$DIST_DIR/$BUILD_DIR/stacer/lib + +cp $P_DIR/$DIST_DIR/$BUILD_DIR/stacer-core/libstacer-core.so.1.0.0 $P_DIR/$DIST_DIR/$BUILD_DIR/stacer/lib/libstacer-core.so.1 + +cd $P_DIR +lrelease stacer/stacer.pro + +mkdir $P_DIR/$DIST_DIR/$BUILD_DIR/stacer/translations + +mv $P_DIR/translations/*.qm $P_DIR/$DIST_DIR/$BUILD_DIR/stacer/translations + +rm -rf $P_DIR/$DIST_DIR/$BUILD_DIR/stacer-core + +find $P_DIR/$DIST_DIR/$BUILD_DIR/stacer \( -name "moc_*" -or -name "*.o" -or -name "qrc_*" -or -name "Makefile*" -or -name "*.a" -or -name "*.h" \) -exec rm {} \; + +cd $P_DIR/$DIST_DIR/$BUILD_DIR/stacer && +cp $P_DIR/stacer/static/logo.png stacer.png && +cp $P_DIR/stacer.desktop stacer.desktop + +cd $P_DIR + +if [ "$1" == "appimage" ]; then + linuxdeployqt $DIST_DIR/$BUILD_DIR/stacer/stacer -no-translations -appimage +else + linuxdeployqt $DIST_DIR/$BUILD_DIR/stacer/stacer -no-translations +fi + +rm $P_DIR/$DIST_DIR/$BUILD_DIR/stacer/{AppRun,.DirIcon} + + diff --git a/icons/hicolor/128x128/apps/stacer.png b/icons/hicolor/128x128/apps/stacer.png new file mode 100644 index 0000000000000000000000000000000000000000..2abbaf68219742a947d2048bcfcabf1a9fe0fc96 GIT binary patch literal 17734 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 literal 0 HcmV?d00001 diff --git a/icons/hicolor/16x16/apps/stacer.png b/icons/hicolor/16x16/apps/stacer.png new file mode 100644 index 0000000000000000000000000000000000000000..073fb3b11002f2c7ef31922764e3df5522df1c43 GIT binary patch literal 1451 zcmZ`(XIPV06uvmXt*vd1+M#W+wm?XL5}}A72_zsZ5EFJnNPq-nMFJFLg@}w00un+9 zGY~{jKm>(WK|yhV18^XU8tQ;bpt4$!^hSU5@kh^d?m6Fk-uJ!t`JQhab8)g;zh>JS z0Kj?z9!rFMlV+`24(o1%jc%~52()&z2B0x#?ILX@#5?GCq9Xuty8uYy0q_qTCA|XR zFbaS%Dgfq%0Bi{_ZgaH&VA+Jr0e2h}sMSj_UOyk2o10asRBE+)c4m5NYHDtFW_D(# z?R@LI#fAB~xwjK9A@w0ts>z<-{_4|h`DOK@(z>#fEge^SUyY5wXBTe|Jj|3Rl7*$0 zdTv3lTD{nP{Z1%P#7Yn}w|A+R7NKnL!SJP?K6o)RGo4pbnAJsKYAzJBZP`MIKsI=)akIXMOGBTtomcLz1+E-m&C zJ`Cli`Gv$??zsuEdgOzaTgxFG5%tA(G@bpG~hkafp{2a=Ic+ zUSe^OZEWvvPGniK5>08`eZEnAS#{~zHdcJLk2H@e&3B=5F^&Ny4*sUjO#8TOXTI1u zInO&TD^*;cQ(j9?$z(Q{nUMmG@qQ-uRAT}aY>9#?EW`Up%bVIl60$wA zGst2A8s}|{_l0R>=ZkTqa|-0?_2-YCY=za6o1Q3;CJSX0vA|cDZQ&Gvw)H~Wdc&%V zu_yS3$j)_EUhI)~TuUgZjL$3-%4#SDSzdw+GkYou>w&_0!m4XZFeLg&yRUW*40Q|) zB_FSd;pgQ@tI6qnvN+4YiezX*exDS>{bVHG3!lobx_kSc@&z>_IY}T%$Pfn{;WL_K z7$OyEMM7Htm-<%j)+|n9aitxFC2wpE=BAMaN4*Pk44v8fRwR8(;)m3;B))VW-u=ijQD8V=q)4`LCCkG*IJctYqJ0=ae&z0mK;T04e#7XgC z#WEw4d{{9^OIJ!j6vmcfVCjOibTP$|UHwAgBW7E1bKx8B!676dJ6VYZMI#sGblZpd0d|HFzDq|A8lP zXDxpRJFGU1c`gBh)!}%LC;)WGnx)mZ*b4#B;Sd~gI?q;ZUbkT_-D{WxJ=+ObYj;Gy z)+R00l4g%jKHdD;=U;3=Y~8jD!sRQrfBBV%rn@7Le#Sg8$kc7FSvAC=}$4`49A z*WI-W{IEMPD44|#2|W}R9ufKDPe4yUigP%c8xtG%Yka~H10*m^OiE5k<)!hDrXS15 z%t8Tlwjf8CE6U41ULY=%6d3_yX|b%Nw5+_MQeIW9s4)RQpQt@qSAXhsLu1pK=CduP z0MmNzd|Uf(zhAi6(Rt}|*B)TjedTJ;wd*%-_V(Snedn$@_{E}sVDR4k2M>oH4L^Re z*Ancr8hQHcxpMT67cXDE9<$yLR@-242!fzttL6l^FeZmfi(~*Umx~NO#EzoV Y!Wqc0$Uy0Y#WpAc1e_E0)P8Epzw4}~mH+?% literal 0 HcmV?d00001 diff --git a/icons/hicolor/256x256/apps/stacer.png b/icons/hicolor/256x256/apps/stacer.png new file mode 100644 index 0000000000000000000000000000000000000000..716367c37462425db20bb0e8522b51157aa79d01 GIT binary patch literal 27479 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 literal 0 HcmV?d00001 diff --git a/icons/hicolor/64x64/apps/stacer.png b/icons/hicolor/64x64/apps/stacer.png new file mode 100644 index 0000000000000000000000000000000000000000..a41bbe5fb046128097b6897860d24f7bbec69bb6 GIT binary patch literal 7478 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 literal 0 HcmV?d00001 diff --git a/install.sh b/install.sh new file mode 100755 index 0000000..cf50728 --- /dev/null +++ b/install.sh @@ -0,0 +1,34 @@ +#!/bin/bash + +APPIMAGE_FILE= +DESKTOP_FILE= +ICON= + +cd /tmp + +wget $APPIMAGE_FILE +wget $DESKTOP_FILE +wget $ICON + +sudo mv *.AppImage /usr/bin/stacer +sudo chmod 755 /usr/bin/stacer + +sudo mv stacer.desktop /usr/share/applications/ +cp /usr/share/applications/stacer.desktop ~/Desktop + +sudo mv stacer.png /usr/share/icons/hicolor/128x128/apps/ + +# uninstall file +sudo touch /usr/bin/uninstall-stacer +sudo bash -c "echo -e '#!/bin/bash + +sudo rm -f /usr/bin/stacer \\ +/usr/share/applications/stacer.desktop \\ +/usr/share/icons/hicolor/128x128/apps/stacer.png + +rm -f /usr/bin/uninstall-stacer + +echo Successfully uninstalled ' > /usr/bin/uninstall-stacer" + +echo "Successfully installed" + diff --git a/screenshots/Screenshot-2.0.0-1.png b/screenshots/Screenshot-2.0.0-1.png new file mode 100644 index 0000000000000000000000000000000000000000..7994f2b1fcc55ec1ba40ddb7df453ed2288fe913 GIT binary patch literal 22638 zcmb6AbyS0d!E^|_p@i-HJLZrKu?Q|goy+T3yTb_tq#M&!hH}N z9wOX_CtmVU(}&8ffsV1p6MzthkUT9Tb3{ftq0Qa>{r#Umf8r3;|Eh%lAw?U-?9Y*6 zFVjk!#Oz{6pfSS`L0Qe{&yb+R{IhZ(`%~G_UHUa6=GTy+1TxMR8f0cqP ze4=NSPj#QW%4))Fy`$cU+OmVh4XiyZ-Ct@M+xtXkafv8OsT+o+mhgzkvjD|eL6UxP z2=|w1_I|Ozm~IgTh`OP*`HLVM&j?|8Er_|ZVCt9OzkdV86uAXuc6N3>BQngK0$f9r z9sT1t1SHqjH=atX%WE4;sp^U5d=<(Vf13Q6|5ZOI{-cVX1+Rqa-v0i~9A;^GW$V|r ziKD+F#H@E<$jIJz{@ZtPW!)bOiy_H{F9H+9a({?q%?Kn8ws(J2fIedbiUmd_fTT4l zYZ_YLcNUkUp1Xyr=vzm920zS7KuYzQOGs*V{>0QwPv1Zp5-kFs6Mj9FQ&fR&Y_WXd z4G>eda}TH&cLYf&fBO8T?R~qpsiUY8w5hf2bxvV*T@yUNU4xX&+}M;%BUAIUv$Lb4V`L2)YGM->o6G^= zeZs~W9UJE@Z1Bv|T1^woCnrVYd{UFTNKO+}mw|z$;ziA*1(j{=9jipG6;#xI zWQ+VN6lUcFI61o-7@4HIiuJ~el=a_-goV5Mg=y%TXsSvN{4?}4GmmWcpZUBx(L;b39HZQX$3^HJWH^&cHXgaJP(D$|$@glCx^kwwz{uB*?2 z9gOD0Z2;c6?^ZrJQe1giOnp-*yC={E{&Mm>K9NiCo;zlwU7vzeb^w`_Ph*%O0_5b; zKv?UfB!MYW^l(mlnELL}|C+-7*OZ(X<|@Y%bhD}(!54r7A4PQ3POmp`-G`~|x>$b2 zh0CUcoxr#+=n|r*kRM5Sa=ge$59TEp#Lz;qVALWHuv3-Y&jACJQeVocigAaE*14M< z5Tyq}?X3viK&7|OrD}!&o_V>sa zXDp#pT zuNZ7Kh-`Hz!tmpuD_CAC{Y=qzPPp`i#ppc_MqB=wPdx{x{~bXJ+QArG!F3M8bV|S) z95WJ5qlS!ZCWpX~JkSno^I8%8{mZf_`cb~|D{#ow?wu>*mCXT zKn-gHA$rPWd52}|19&!5v5I3p##IMoWFL1+2;M-|?XHrmX-zE2aR>HJ){FTJb$RU# z-fQ@s+?TlHeF5dmd65mI;Ni14jVBOq$JX8f_9kFi9mmtUggD zck)qw`L7&gU24la>pncT>i`2>EK(d{Vd&pC)MOui*`~3*u8*%)$epFe&$UP`&iM4bcxp1>2fkN9JHWl}FJGKJ3lwbUbJBcM`c}+kDx3ZLT>>Cjq9y zMgm=oxsrLtxgQeuvJZeTRP_Nd->kMuP=3uL+wOs;eWvj!?17fe?}LxOa>#8ELA`pA z|3XceFLb0RvKLx*%P?X!{xFlSMDxH$*-X7lZB*Xg$zPYpr2UW?iyq84l~QbL?>|+g z1LnDYKh>5Y4@GMKW*-MU$qaQQ?4u0xi;_%4?6^3%G4LZ zFbfGd2311rbFY3m0B7NaAk~1`2!U?C%mFSkqq4E^SiR}&%BFwKS9BZ_a5E#QJrns> z6+o!r**k5M?{Rx9y>U%3D~0K5Kv__)q_qa_VR zPYkO)Q7yCiai*i}9si+9Q3Hd6eDO)$9R%Jz^_5Pg0m@(4PS_+)2OFS~vy?R7%X>_p7n*W=`|GQjPQFN_yo8)`}o_%INer zTjhvwgsN_i&8$t1?*OOu^oMv`J0iIR3@VxcL8Cn8pq*^ z<3ZsqVdD^&C;oK`U8MGu7YN>bWijrxE@HS>_XqY$lzfe~mu;QW(hgXMpn9coJlbQW z!_AEV;-lWDX~0hCoaCWH=nIH~)7=2IE(Dx4pkI5iY!!7(C)J0_kjj(?{xV|G|4F_d zLhNpyP7_&Qixtc{KS)-)@hSW#@4@dcKaW%eRB@&&jLk17nIi7E551;;ysoYOY3zYY zJ4($hPMq98b{yi=COXhm}A z=qESR(VJkAG8zGFORA{%%})&X5Qvy3oaD*ox>)n>mHxxMMLS9@i&*9_Ppcw3j9CCxorg7{I&tcq*k`_OON15fK=d%o^$my#C{;Ci{qQ`@H@ zXUB>wYO{kTqlJs*%%4v41X2*OmKt=+p@{h;SYI2UrQA}P37M~NHLlhNj^W#S`*jeP zXy;{3^>M@-zJOj|VIw!A1E1z%$ZxtkX6-Id&(sp@DE{!XV)jjTyLFI6^1DmsVM()* zMj<;@IPCCo5u+1F5*krTJX5{dODVXc1I*PIz`HL;xXKzP9+aE>%%^GNb&1}hex$NA zpwE`jjrjS;(83&Vui>x5<)G@{GH2lJnF+6cP_F$$wORWnW0mtX@MeYWKN#LbE4aW7#j_+bgjKP88V@$w3|8K^B^$dk5?x!4WsFCLrl&oUO$ME*6*Q>Yj`XVaa zw2DJ`SqPhfn*6o&>`{|^k_-xwZ^Z)2+h6f5K0P*YxKyIfR3kQpg3Ne|RrcU3yGA)D z#1QHT^fWPXuAW=_=8sD7>+bN;*=FCDraSR?V>~$tKC}uoUPoxZeiQMM)-rbJiBLZi z*i*qOk=xbw(8%c~eZT@zK~2?=Z|uoXF^`N!>n~ShYa7?8@^YIC0Rf(XZr?n3jM1uD&I}9*$JZMj7*-NHNZhWoc zaM*X9%td>uaMJRwUv!9X3cBIhv1kO^@V_D9G!BZznk~n>A;*_;_ouugIJOeRA9w)x zAZ@1p!J1F~8)qWvdfLsJuuhdnOv0nHyq_Pv(FE#e5(}AT_c_5{mdJm+Fo}>|31@wy zv`mb*`b--q5j>A$H5zRwsVEZEA-)IiIobAPBHH+S$<6hzm|3go1m8Xi3+K@RJKf;m z=Mj3_M`?VIaB-s$*a?zh_Zb;+JV3&Gj(0z>Y^-MGHA_xn^F&#zG1Z73$izRh4I*|a&LqxsXrh=c z88r$6v&*8*DT%_Cw~t)Cd$VTDpp{FYMu8l>Sh(n^Fn;5#fFg_d=K}%|y^5|#TC}3( zmpo-X*r~8aI{Z^j$!E$%5Sxq~+bha^P7pF8#@3<#yMjMOT8~&pmk$bvnMSIbFf-N=H|sa?T}cB_KqoYJW&wuy z70{{Jw#?G-)E5FV`p-~NV3l5Urmua38<{&9VPG-UEGAit{e5jXv8gy3P7hcMNjckf zZj@ZcM4C;g42Y#@XtM7g(LC*U<7wNOJK+O=5*81l`|Nm#0uP=rE~^&W>=|{@X1N!V4`f zH2$(VQow`lxDm&K{jt`(7OxO_A2io4kHww92g=WPTv5kelfH~tsFz9FFz%O2)@8yi zRL#H=is3cE(VdRC9#q<7(uWa`v8>v~%If^R7GHRytIS+OV$IUs=b1ftPr`r=iB*1& zr*6o0cyZq`nQc7!@6pOO*PvbOYRyWy^_wmAwkL?rv?1Cn-`Ny&WNn6nJZQpNGJK;Ol=VGk>+_b*q zvy`9LG?)(Of+BRD^41yt81{4Rd;g&A2gnbyuEcXRyd!J8{-Lxj&05KO5PTI+>6i8S z`t+mM7jL&-Xn3SJaX{AR*X-6}!~u#^HzGnWH_lf?xN`(MA|V&-3}p*(S83G(f21`U zro?&HpCNNl+2tXybJ;tNBC}ShnvXx>qDgr#nW(GiTtDdd76lF;RKLg0<1TjoKdR=i zH%hyAz^LqCrZVHS%M4=OluJXY5BfGm6CbKAjjO0+E1c8WR4o4;awWl)rz(TTl+I_% zHuv1aVLy-mEJ#o)^L^0&t@2jc=y}9r<&@PcAQaFqE~BCATUT=g#?Nmg`kTfYf@fP6 zRG7P=E8}5kqd;UAtq6Ufr%DVmjQ$2FD>DH92gT z0W81V=*xHQEh>^{-CG=BVS-PZ6fu!mU<6)R;gh>xRexkwk2d38XoKP(!#}GtR0u1! z5jRL;wc3fAM4tBLZZmj!HWEsb^@uaJ;=us+0OvQ2*UTyS)qqXQC za;ZGKHC%QhMRsnU8C)XNS~cWgz;7H{w(wjKU0facPF_B_*aU!5$}vGGPpzdMcA%bR zr6+`YD3sQG7_ zi&?4;T4a5km1zR7G9o_pwO&^A*gHlYOw8*ugEdZ7zi5z9*1gm3)pPDZW=OT2ec#~B zY^lR@2gN9UP82{kpi{lO^4?Z1tt zN#i?e$Hs54O{KcdTPV%`;7N5+8sf2;n9&+qc1&y2snB=1^b;DV+P5^eoF%YFd{=$s zsY3tJraZPly>oBea=f_6Uq3sNpFZX6>iUn&`O+745bbXa4TdalsA={c2T^YiAO!0c zGc+dEs5Z+t0db-rbd=9{rEGU1PRoFDyX7g*xL^*-N&7W}S40uNsA%|0XQeg8%HG`; z5s9+gW3{-qc|9>Vr_86ZFI5m1mOXF4o(Z*;@+49%^`Nw$aHt;-bw#{D$s0dTAO57Y znJ_+gqRjiCYY~4H+uh$Mg#AYe`}Hr1+ML40AmkJX9`*h?6Uq!|JTb)el3bnJC$!MK zE@I+FvWK{JXtXjy;@WhG_~=!~s4%Hip8 zB}Q8V%OWK!?h}=_(EhS*#y>FulzcwZ=M0|MsT{&@j6bjCAO`zc00yB~nGc<_Aw4)$ z;Q`y<=$aXDHXuKK742ZLeT%3(J{3^~?qULXr`Oi*xD23u71|YQeHy^k8!)Kv^KFg& zF`|eZkrL>Jll0d&2j?xGU@B(<88$ttRUm~XI+5wz_Ee+Y{KaV~f?NgAgM~1`r9{whRW^4$A%@kO(FlRa z|M2Wkm_~x>*zZ-8ko0OAr#<4#buQWFP3W3rFi}#@aYtGhPHWN~mv3px?z>7IG8~}f zx^PZ7vAkjg8wgJxG3pmWz9pqNa5xysWCoNV8IIYiS=)BS0b03R++#Vtfcq6zNI{~DWYd2Nk?R-A4^!watQ@e zsm8D^ggMsU7}M2$VKUfrHGhbXG=;;HoruIJeiJ(zlLj6V>_(ViP1S?@rNP`LZVy=! zRELG(zUZR}BK|BZn+vVEqa4G1K(VbrOl_-j+A0kEMM8A>5lr}g%<8jmV&x2%8Pn zs;n=$I}y4r9|7hc#rP}FutRe4fjQE62RX-BxUc6)u>g-is1)Ul2~D(9DgL%3t6Q(WQ-M z4MTOw*^e5#1LwI04ap#lE|1L(owkI6ObhTy$K*MKIvOaJCQam$ZUn~$Ei{rDV% ztk8OxUCpl;CNZ;~lu2)91Mv^AvBHzx;<^3%7GT#gh|RL>MCsB74TP<0|&|yT^C5=}Qku1JJrK ztpQHhLK0h1M99CpA$t0+N!=DrVXN;RTq&oVihdj%KW3a7(NWbcXNs=A^%?%%t(DRn z*`|`z6xZ{3+sob1O|k(Iu%}?KG0Sg~1gjfTjQ!5Ccf;)v9jivvKor&;-(ecKcR)bt zqr;Q{+q3GfJh{fkTo5Sol|4|S*e(6>D1S~NHt9pKG@7*#=zuT<`jfnF^#W*K8{b){ z)y(At&eK=c+m#?AeD=?hN3wZdLw0p+!p%f6wEZfEFA`0Dea(K7u)ajap>AfF2s`A; zArbZwaoRySfKUW64BrN!!^j6$zQV#yr7)+oB%|4DYY5lBn<))+4tqpTPUNeZ2n(ix z*l9(k&z$wCTg+TWV8cjznBG30xy-@BPoyw6ELI3<@<6nyc|>_EFN8%jNv-;?6_BIW z;G^i5%E>MC(hpSCV*f05jN?3S=f*(spKVYZ)V-YlY*@hhLd$hRkp-gA40uNFazw_= zZ7bi%XH+FqJ~;i2l$1|a2@@WxMPz?iRq9D;^7ZW3wO(>lEFEe^ou5`YB46~MlXTtW z8^A}>nzA{&lwV^$lh%rUd)XIp-4VR0xpb&VZPb9%-kdf2(0Dt0MjgT}`He>rF(M^` zC%MC5F8tAYaqVoNdt$BM?G3I1q{rJVFmg4T>e~n%nYW3P8_FO!m`oDN-MpF>J)!@oy&)5GOGX92@quG9h zjS_oUaD~FD$)XE!^>xzeSDwT>jZer{opfAALAO**f&TB_sI;k@JxUz@+?D0ZeXk0? zhAul-qdI?7tIjem=s;5JdBCaNLmIG*{55zkZcn^v2if-&f>W52q(mq{)eEd5t`M<# zFklrf$s01U-vfLSO~!5}*h$Tc|5K+)1dd0?f{6qG^xh>l?MG{mpjEI#1f(a%QGA+? ztkZQ1mnKd*{&%?-N*F5q33>7)^eKm*t=SQP5N6%lDsOh)T3h69-%{ z4qm?#feJIf!F=S*M|i^~*D;NpW|S;BfzMmwd&VRHk$C%&}yA# zqk#T|jNMC#VlJQ1tJ_kft=lBAl#yDg4^-InsnOWgC6S3c5d+YK(E!iL-|PFwld^4? zdg*3#rM!f5V$toYyj`AcxqvacOh3Iz0k0TwwRCsI(%aUsCdVB*nvNVZ^3VOga=%5~ zjVH!}DySxnp+xy9{b+P}f@Q}}6dV5dbd{Eh!-RrM)j9WI&2cKHc_HGq=t2d)>Yw_mb3r@qmjl|0AKt&aH^wJSA4){OW%Fw6KPI(YeaCodT>_6$; zpvKEye~?j@GWJZG2QmJ0ffs}PPyB{?iMWRzBuDN)nAZ{4p}L!C8`6{8Yv%`LnH!r- zDh&B>?waw(B0BQKd*hy3{Wi9~n7TC;Qw8*2ol8aZ zZP>!=H5+i9%!Q^Ez$rp5f~phM?Yq6D*&`4c;IKr}|Ylou3BM4vTuTXUVTxa?tTk-RSmzKvc8m{ zm6X3_keP_%`&r z^v zsX&}~BaCn-Yh4!9W~=^gsyp8Ysu}~LH}L+(`@Jv(pdPc~ zJc$8rRTug{g^K6v@c8@ax;2#M^i62Arn%{(Rd&WG_`H4@Q8E5a<9nT>roqfWHGvHe zSmac|MS{ynN7ivWQKea2TLhN98iiR%G%G7NxtTzP1(^p zxN1=vyXr$F7BgXo?b5?%z|C5-l-4SvvsO#y3T%E&|Gs)}DlXftwHNv!)WrEEx_^?J zc49d%1O`269?h1mq_3ShFsNJi#cRu|orOxzB8DuIjTx7)Q5QqbGUIE7GXVKVAbST@ zSLw>^>}V)`4-$fiWsAvBrgpN`t`>I?3Pyt_Hu`w9J;y}vxk-8PWDUW_cas1e$!REdz!h|ZQpSa`{q z>;>g<`A}QLE?VCBfT_LLU?^dEmMsSN?QBqAi}~3eWJjX)Hr#OivL{H*~H3KJ5 z6id^W{|Q$W={MEn&|7eL?|XLt2UcI`?Jb|b>Agw=oZWg)_1Z*G?{04zT>EXqEjm$G zvEySMF>Cl)h;U6Z>?IKs?6f7oi&@f(=P*L7&opsW@)*1hQ7WZhn&Jujr7&Abu+`hw zm|X%zJQ>gjycVFtBKIR7OTYNUg6JIB?rU27QX{ZFfpO^Ym z_bd}+%MT>oCDKVC`73bI;;u^Dp{EYO{!m6!{Vw`(OvYMv;hKOf-mw0+muF1hA$te` z=>-Uxr8%IzR{Ytd#}xuU^)2>rIt|+=F}uSf`Qgtnk412Eb1MQM88yaI7A6O$Dy&NX26w% zL*cQfYOCb{;3+T5r4+<1TAUVRvR=DI#uMxItB*w2|7i=wxU)pdpz5&3(UUb{8ng`n z?v_XYw+9fk_A4JEu6YJ6e}}; z8t5d86Rrm&dX4b~X*0#~XPTEVEy$un6y14&bl7vq=N%T9k)~4--c%NG?6?K$=LpV8 zV=m07sFu$X2)Xbc^6Ozee~8uGLrq?8^bI*o>Bc5|RBrKDPT^}3=Y!kkIkf1i^2yfL zb@pi8edhOakuJ{A$fJo|?d(F9Pg&J~ui{zWXC@LP+I*W18m#DD?T!dO3Cy-Bhgp(OQ6zYsCK_15+ zCSAWBTm)9r9BH6|$_H)E<@h~*G3Xil~F{*I92-92? zwKDd``to~Nu5r#ovz3$}jKyB3`P&cOzyc}s2Iv0Ni(Agchen3;Q!$fTZxeVz*k*bgVe!YenO zhd%fK376Ny?OfnaUh42Edg*RnYHg74xg*Yh4{kmoEnF4ErCI|YE@hxQFOXQ^e&_7i z@7(y=u^s=v{ZzulT8y898#@NG!EQrn|JL1gPI43%J-tEVw+NV2&qF^XVuXxe|+ZB z)WA_`?w^lKV;U_#(vUFqysa4=XDeZ&JV^x-Dsg=ag$HgtI;erhx6@c_Oc zKQAf)&LW3&E*;w)VGbF{znW#36e_#|OgX zU^M>QhbX<(fK!W}uBW>LRNU* zjGt*es_ZwV(Q9P$!|+-foj2v)w_rn2IepOUSDr-+3Hf$bYg^7VT~%8U6i)hm=NE9! zN~_HIwR$GP})qG|!mz(iY}K z6Yt($ZAD>}K_Htd_ozLuJU7|uTh=>&f&>2m7Ma7b0!Gf!4Y>(US`HF!+Of(ky?tS> zO$e^F=C@2s^J0n2(i&IVyR~4c3cP2*!I6K*1{4M5pYUm({SwPq(DbgNkY7BJL_v zP7S31xCMQ+c^LawERGsT6)bsfp+x^&8$(=QsDo5h>r_H1Dd)D1Rd6mo?mKK!zi z#TWVw|E|#|JSE?I0hQwsb-9L9nKX>Vt!BV2`qWw}c=Z|2cUedRz`ENrNSXGuXUrXl zX1$B-Rzq%m%BO!)a8sokF0EmYTa=AJH~mwFu`8CBZ;;;uH}T%ikY~h#+k6+712Thg zEy%b7#oZaAx=NE6KQlhW2P+C@5e3`#aUpy1%_p@tXabs&;&!_fjht1l4ol&CEmMF| z0+^V^Lb~s`(7OFA6&T%7B@&*trfaPxW*D|#!u3EUHG8cve zNpfFrbn1d8G3zDB+UU2qk0W(0pVE*>7F)wiLjPXBgbD2d%N&0VM{&1hAbWO{J%iwT z>EREV*F`Rs_0wrCeOIjX0&eeQ1FJ*_Tc0f)n+TCjH#)T4hpi*+Lary6K*jh<9t(P) zN#2-`$VqP-{bDiSQo3f(TQgWU^>LUzrk5|uV`!$$5%u)p4NdbSQnqqv<<;9)ovYch z*~b7t)Ho9{KUTpoLgkJ0`&Li^!a`yVRRDtk9{ZMeI zj`hd7=L@qDdc5hJp?iE@Je!0MOD{Yf`O^`Wt>gCL3zCN!{QrHOR{GIh^o=L>Vc+fD zw3Gj>LMNG+L!s76?8Tl8{+8l9LD%?(U9*xK^p9rRl16BVL?fkN?J=44a|#@Vkf$={ zGfL%zw?)N2K77rCJ|0YvV>= zvPPq(ZHaTH=p5&2D=UK8bf=3P`RCr-ScBBh8Vx5%J?R3#V3W+(&lcH;$1vjo;liS2 zN!VL;OPx4%^3wvjcX(pU184n&3ubNwbC3WkeWHcwk_@U-{>r#27W;RmYVl7 zo}3tN8PB{WgvGLJ=)-I#SkZPXAX|ryCf-ud>q9P@^eC| zaSLD!0>k&jS2lq<)pjz=>FhB(MUR%8JNXeH{T#8)Q1!BH)X8`zA|A<-5gBZMbp|eT zjO!d4RI`{eEIZ%l`kr9}jng^MB!OFdPVqn<3E%z)bmMks4Ca0Oy-{ zHV~%k#6xUZ$?pO$OSP+aRH=5Jsod_(vM85h$cAy5={{&!VQHk0Y4`hV?fKkt)54jg zl#rjhX);H}(@@d?LS!!CnlpG;%DYzWl1ZZ#OqltX~Dw+PmDd)8FQvo&3U zftX}1oPtXjGa+9z0#{J^mYmnRKfT zcHQ$wS2wo%VS#>sSTVj&)Ug&L34EvRq@#`2?@P--J>b#?a&?kONWCeL_zxFUj{Ntv zJt(;S>p9MS+mE?Z(tB98>eUmZj+-R~_)K!JIo;X^JoMId!tJ|R0S#Q%7z=#6lR73x zczsPMm#1;BWeYaRuCAts+QM}94Enj|_fyTv2%{n+0arcc+3We3G7@$)*^%4vX3lq8 z*joxX6RkY#<$CKts%87!<^-3{| z*l0orn0En&l;&r~{1^Db-ADe9mxR59ad9^K2a&5UU@<}iEcI~SHjelU(XLWyz#Cr0 zFT-R!v=^L9EwZ67)u6-ue>+qW*ZaAdBIv$zc+bmgU1SQb^qt&Yt9%KesBcn1H8u|J z@62(ECf6UpX3w%_6Od^L#erK9olvrc(eJS5WL^$En6Ta#JwpuC-bbvuX+odXBc`?3 zZnfn7UzNl_ez@)1|2WY-U}Xp!{S;md{qa^E(~F(mb@Y>(mo@4a%YMI{Qn9SBYNjk5 zrQtn+_FhVGY3R*ha-#Rmzr|~YrYbJl(SEy>812j}r9dCpR|OKSxtXlda<+ex*`BUp z1mrLZ?Cg0B3S!tj{EirSUVQi$*-8aNzh942=SAyu+|n;h7|Rn70yD7c&0}$YrK+Pl z`w}ZAJb}b4x=n@0Ol$yg+*bh3z12Q&OGZ3~rh04_RJV*AkR}tTV#4{V0!|P6S$-*E zlVM+yULE)=h;E5ad{uVD? z4|l4)9vX|-G0(z?FHv%n~s zgUt-K`EBS76L==gi?Xq%g}1=b>}PZ$FQKA8DYTx?)FbnQIp!V{feUj7CcO#+q zfVCkYD9(pJ%Mxo;Ob328caMbPouJnm=qHRR48g;OY;9($!C)Ew+HPb@3al98rg%+3 zlh}0@rz49CaHp7u{BR^Kw$InUf^tX}VnFQL$#?#+_Ll4I^N4FVDfA+_h8uS-(qdfZ zXmPOM5pSg5M}Ip-J%T=W4v+(u@=#h&SQ&KmnaVN%AKT;WJF>OLb(t^B_#@ii2L^~X zry)gwZ;;av=aE^6VJ6k>FtYf1yCyPZm}4k`B^HrmN?3#mIJRVf3!*2t9OS@HZD%=Y zuvS=M#c(J|;mGHpbh=qmtnulP%u($8&$bOB^%@b=g0Xj&F4RVu{oF*b%KLnT|9!EV zeX)mSgIXp@?k&GeGq|zRWDqdlInt>%`k10Q6X8=Kg(kg{15dE?lw0BFaK8N5^*b)D zAaA{$cOcYC8#&68~cpu#fMrJ@3rjW8bob;~DZ zwW{D1oBGyNPLDh3xS{oAK^yaqNnvyTEZ0}X!+V;llk(zGes?i|_0yVd)`t`PZNUL+ z;X@gHuk#ODE2T=io&T=#4tYKl$-jZ$-9FY<0a_4vTUJ6!`yZ}82>8POaBlZ#%k<`r z;@5k^HauY!t?H;{+V4%j8oWs?gzCKFBy^FIexfK0SnKfcvCl``Na0cvl)wL_U+Hx&S#|sv${U0W{bjry%L%P%WwUQ zG0UYj)?vG-llY}yp{IB5@KjIs4CeTmSELSt>`ZS6nkY&$Kz8$#^kA#! z9M2lm-v^0k5Lm7qa1~86`77RjAztRZ9^{uL z_!9QSPELu`9jX7^CDZ~|@3-WhrHUc?kt^;$#Djtmt4gD2lpxPuSNr4&G*ZJeDm44 z@)CIOmzjKUwjRtuEI35E@)BN-(W*n z!#R2jy#)X%@9NA>Kr9sVLswo+$Dg=;0oj1WV|3a0_EEEM-4A9 z6895esQX2(LgY->cvqxX$tgIK=}Hg+O8P3u$><5&9}{)!7y`@4AhR)F-`2j%EmjBu zq&vNg&k_Mx4PVLTE+Sjca!j5v9!z{9)F+Sz){C7ljafG5Hk~Y~hQYh;klPjHu=eH9 z?cLBRE~pN2+iU;JlS5XnYaVT~2twYraqv@zkQe?+u%g<9N=Jv}fOl$*-dic}UB@4vf5Kh+su4co^p-S^g|@Y-ES21KTX`FOCwf_oz3CMJ4vnYs&>kDo_f6^i`3 z4YuCzykl*(iN#DmxF|f4ZJ0*QQA8v_^+Pdcc2)1@Gy3VC+t9n7&|xBPvnSnu>*}3! zs5lAbw2z>T{ekT@R>^<8PMW0x>FKxr8SnzB^3OkDG*XJ4^_S*84jxB_x~+S*>i-8G zy-4lX$!U_ukThT#rjRf(AiG|kpjQz#DYuLq*aDgU{XQXto^C}9 zwl;+h@qBHPXtYPitC{{Niny|ibf<<#m7PWoX+QY)|D9~x9H^wEt*%|R!V%}RQ=xuJ zy=pGtn?Zl-AG|7VJ92%xr|$%YsXYwPqpyN{&<34ts$Vybvq69^ZLrHcx5~SeYz?4> zDQWuq0f#@~A8Px-jeImtZ;zEOmGF;JX)9YQI}sMMOe#PB@PUk#+|dKI zZ&+%)Kjd0Loql<35Ox+lq_Qb9N^m1-grn{6F`0i&Y3qUf-p>-AsgkZL@; zi!R$sYj#5I2bv}Aj8GxfV=+TdG-20IT|YK#+nSK{e|+-zNtxq!uF5+yGT=v^FpeM5 zO@Il9yJtS4I|O*XLg=iC&4l#pJa>M}8nRVjyGt z-ichg%G|Rdjl&XV8DhN9!WYMQ!o=}EQBt0HcW7e|`o0o+VyFWYf5>ukC-YjMaoKxm ze37P+{`3sgq}qt6r+Z5^_plgNcxQmaE3(rNLf}X_HWnDJ$u%v)SHvVSmG09#X}|a3 zi!J9kI6;{7f56|hCu|Gg5Qk=}H)7HWJ|P6L3_9~El0c2d3fKYnJV~Nd=PLu6N3Och zafJ#e-o2U=PF>I@1PY4~J`*2%niegWSzlMTAeL`Q5|5m}Z*k@57ZY z)9Fc;@5m44L13rpRgIMGImRCjY!B}KuHELXZ%zX0AbYC-ru7}R+6$+N>v;_;|9t?+ zQO13-Xt5Nd>&E=n6ZZBxGgg|s-#a$>Va^(LcFXG9$Z)J?Xn(4ag0_k9Vhbj;ZGOW7 zG!FjVnR~oP>XETWM_ML_^#hB6c-@{2CgV;8KJIV%KSYR~D35OhuOTaU{g~SA)N6Lj z7c@W}9_5UFd9u!NCGU1Of^PyE@PQ>k;LhNi(`q+%r%eWVU@a3WBPOld%^v$Ib3p=A zo<=Es_weTZ>XosnCTKpJYz@ienhd%r+mfiY-eu1j=QkGG?z7rs_H)%up}&OM*CA;| z*RoS~@ta3?S=h88Ooa%xLxz#jrUpbRy>|LJ`<9f1j7=iP4v4c0X?3P_@%;dxKN+VT zuq!K#K7Vtook^9Pk%75AjO5o&R@c(pyBv;^E#-~moY7z+Me|PH`RTktsaHZRqhQ`2 z?CwKXpAMh>i`Nct-Phl9f1OwqcK_-P9x!WX8hO`oc)(A++Uq-{Prcf6v>d$J!}S1} z$Zv{0rp3yfoULhB}DiCg2ZuFtzN%#Wm z$FtwGu?Xz|BA89o?Z$6v=icBl3Z#0aTISX1+s?(6`#7@5$X91?*#T56xfrS6V`%CI z-v2P0c_Yn8(=gf%t2|jd3;`O4mar3QYU*BV5X_=twfeqR*NNOrG7uquOVu_OEpby{XOmy(&-zfi8JJzE*;F8e${P zFR>&m-fHUN)Mul&rj*ONYV^gcx~@N~e|qi>n-Wv4$v_x0%zcc5r_7>_W9)Y+kT|CU zrOyXkWWwy4zSLFknO_ki`xc`!L<#(0Vzu?Hk`V^5`dWPc-%<~oTVT|E?ZL^E(*1H4 zJY`J}_YND#h(%?5d5*Nt4z-(_M{y21vV;IhAHGe|d{}dyGdO`;SM5pZ3>DbXx@p_R z{|CeWm}$;`)esJ}Xi4N5q_aPFfw$eW!D zZ+jFB2&&Z|I;KNQDAqT%dDfAb3{+udeHbL5RGa(1%DC#NsGILiNw;(eNG=V6gwnZ7 zEgu$Qe)ln_zzx9|J@^F8PH*Ua2=XYSlPbI*C^ znKSdJaE@{3$#AGW90LsiYe%^X5!K)^lvQEKtT0Ay3=XcQ#^NMzwKHK9bHQMZhM7)K z`Ltu^0T(gzMA>U+PWaDwGw(&^ANFi7{R?tEPFv+}R|TC`iNF@PR!si>jNTKu%k1i2 z&8BM0V_00>VD1f&y-ZeH!?7|eluQGWZu$tux3t&TH`?FOKIC2wp9;1A3pSyh;XSVE zO;c?ntnn7c=Mf+H0c2U=#~R{u*6ZQ*ODuq^8Vq|c-sssDG+bkP1taO9X-57F%3^%{ zy@IHr-eq437MFe);j~-}CKpRbAT`1z>*OA^<98Lz!aIG6-_f?~2)d?4fGFqdxR?{^ z?!?Y?Tt>p#=dx$2)(?a1*WxsWl5Hco=T*6f>IL&&b#t5-qBzCWX#B52DDXu=?*-|8 zcu1xyxY*^`3KZ%{dehWQ+~BNAPp=eybPbr&({^e4nr;`91IQO9k0ZZyEqOb=AWEd$ zUGmb75^u?dkv^#QKx(**duZy$rK#e$fN*-kTj$EXA0vz!96BXb++MPEyV#i-H8~nc8HG#m6|V-#_jlF00+; zN+fZn@OvfV=v-v|j7P0Uo_mD#Dw1we`KV9t!p=DUTj=M1Hkmk1stxiPuptWk7SWfi z5Ioyt!du!vX<7m&7h6wpwKw_R_Q!oWlUfR^mPz5YrYLnYE5b(i19$>3ds?Sw8V-n7 zrt0&z%M8$sixE+Tb211zYPz*TJsV3A?+DvCw$@NDa#Fv6@T<3MlyYiDtImV1we6%k zYqs*RL5?kEqjDqndk*|I=`?=E@-p8gONf+z-V5A1r*<#f2u4K$e4JMX_eS&WsBQ=t zlZsY`7Nq0248cX z<*jciHqEMrY}5m^D_0^BcK=g?;0PZX6s+iD>`5v>0NU}?u2hVnS>r+z1EXuHKqw`5 zn;L`$g=ptO->_-=#USqAilOgiys;xR0H-uOlJT9zem&S;21`;OafZ|<-5XQt#1 z+;L6IEoe7LKM8dBX0DkE@ZbF)rjJIgMpAt)%DCqvaQW%A-&KiLIV$Fj10j{Jb}Pl; z_|9{s>xDAE13Yf+%DW^hF_h>@CgYu&3q&oT=Lb{ExYQ^0oHd zg>@=;2{xNr15&PQG+A%@{AAfCahzWca>7A0p^8jH>bNEvGc!1+o|H|cu=tE%OMwhu zL1VegSi{0BHxwc`(=1`q7>ASL-J7r<>bueMl*PhGTD)-6{dwR_)&Y<54G2f+$oAxtY@|k(GX5RcH(}v1f|%=RAZ3+ z{KHCF3_laUY%+3qh=2Ieb85Li`}2HP22Cb)=35WAS`aylo{QG`vndNzeD|lF8P3{Q zlc=g0Oho!+%Qu$_Bu`%ud?${}0v@-nnhWPcm@!8f|2i1$koo4sI!{mX=AjF5mAB~+ zDqPH0V^gt}h&{E>1hNRgnA|7ydzrHBMQlO2_(BN<#Sq)fZXU>xen?}(qj;AT!SB5_Qx&+!@Pb zugn{0P|4_1f7P3}mLQ3^N%B%r@b0qvEWMLYy~4=t_fV<06G?P5^o~n{d`f_oobKlA zLw!}2MHX3t^BjV+t%n5AbKGruEy*CfT3N*sjBpP*;dPGzs?Hp1a&VC)5$(`P2^|=@ ziiX6$i7L6z#}&)vRftvWrv9E9oy73Ow`DY%PdUHi#p+;ch1y4%FvPWS8gZxQF z3pJ&UPL@Vz+%K6~2N%Vi^2QLvHJhX+5T4T0S`5=oD{$YxQxEh^K6xceMdz5}+qBOs zDRW4ivR?^ot`MgV`6V?VuIRl7TGsd?dzuqJwLkZR?o|ker*$v|Agjd z$>Y?^0^*uOi?5U*KUfRKo>jV@D{BsRmdt5~O7uf7wh$VGy?DY$c6_DXHK}%7n$Wrp(xS|NHqU3v-FsZ< zpqMSdjXcxTC_M*C`n7>D)o@!l$BP4=gSRwj>MbIjaPD7+(AK1~v$W8W%Vc?&qLJ37 z7;PKwU-Q&mWrCW{hI#CmqRCnZ>*8&)Y9);Y5tC+8_vBE@2jG%A?2GNM(@h{Ax|~;1 z^qj~k7m z#sC>*Y9&$R%FNjl_nvs51wX%L(CQ@6!#pNNU$xH*vAoTs4SxM5`+zH14^+WJXR1fQ z22qieU`#6Sv7>)r)9~8ZemMl@+K*#1%#oJ)n;bg<4=>TL9b(dn+*ts0ekX+9tnv_= zq#J3Fa%~oOw7RCvqJD-96+tB?Sa&$5U&_!8!M7mgZu9kkSh6ie?*84=K*c#dgnXV?zc2bpB5Bs-2+;(me_m__XFC{BqY&o% zGqQ|WKq2&3zcO32|HU5xKot?Tk*rr~9rjDtX6^FN!CXEHacKLm zj0`{cY$gDOSoyCxC1XI=#j?KogQ*a0LA64~d3*QoX%ptrY6WB6OcUZ47do%SywZJ& zMRUiq%^}F{Nx)$wy=OSWZNm+n=)G>;9U8EdyGIr!hZa{P{@c$}_S#BC1LUck(NO5Z z#HBI`$Ox)&mH_Jo^jZ-53`Wzyz|j6oa+dVeULyJ3Cn{1FRC1JbHo$)U)? zBzr!V=7>C;k@qS)H!(iP30Ki~Z)W(oywA@rFLK(}J@7C2FocWJPg+6wLtLwFE9hSCi%P$7H^+$4CT4UHjA#_GQ??1MugZzFki%rmDVc{FUFH5pabAhV1A>0?ojVLw%P z_49~oF}8v8ZuQTiu&oRg#aQxx#vIjU;msKW(qH)xIS{o#j8kcso zcveb((YdilYqhx7FD{?%5~Uy23Pw4W1EB4f#bR7&vx{zkXwV!7n?S563^)qmrUFR= zP>B3}$A8dx6c$C(163p-4QPSRb5+QtT;d)jNFxPu50?C`8CVdNKY>#*}OaoSu#FY>^Gcv@Mu{rD>a<`s9X3fz4qr5$sf|-6#4i z=?I>k#7}xvm$`d7-Knofj=|7~21S zqM%WTDXSel2?peF{YI$hj&uf!2Nbi71K9BesR3&k^FLzR6VMV#+QMkl+6d)r9$v5< z`bCCYC|_HQW^SR1?Vzw192RjztGkVy(8(rr1?R~d0Hy{ce}nDsR$tea|0dSMUNtW` zBV$Hsuw3 zUF5=^Lv|~NN((kS6CL0Z@PF|b^F&YGl6?5`1CXgGPcStN2BleC|BPP(5-JCMk1vA>@l9&( zDuEB`!OUg3s94vVy!6@mq{ToH;_8a95psa;1@8A^Aj^fpv^zpz;v)AEU4&8aFSv6R zs%uefJ^ptWW6|}2L}lqxzm!|bn(~2S^G}g8%Ywp4XQW9Gj9B16KUadggdnKh4Yjmm zb%>m$cc*USnHMfd184ECJt(JW5eC#>*%)2&Ckld6SX9yCjH{+H+^!pp!068fBJV>fU0Ll0UOM+=&n8H0@nWy#{-O?x@=n=jQIM)kl zjU^m$f5&cZ1fau}B&Ev_&Y-d$rjiq{X&b@M1Q}>ni-|iP;bKVRen8`$@D##T0uSz@ z8gKHzcVuN%4#=!!iPbK04DhdeKEg4KIxq#0iTC|0<{qxF`2CCFcbP-&E~z~8-=ul{ zMOj=`bJf!*O)2MmIg0z3fn^)t-af7A`inwm`&++kopRE4LDN1a6 z6>9avCaaM*j~0bA<*sin40$4;jq6UuaXvo>PCD29WA3)oYbSc|7eV6SLPW#G@S>rV zZu-Hs8Gn;Qh8glR>rMs=DMhAU(Jm-hLTdQozR|Ka4y43W%rPBz*C~y5KSSaVCd&F{ z(eoIC6ZF+J@mYKr{@eD+IWjIOZR|LCskC?@bTmZNy*TTQ;Qgj3>)u(%)Cd@u zW`qW$RJ`~SlNJwUn5<2v%W6Hn*dhtpS()S4w#|<@lk6m{?qmyt6M_MDYqFucpD>B? z7DojkMeGa>H*lFU&I1%k|~M?p;6GT~~{s5|4- z5(W;85oX?}5&QgEuVk1b*t_|bnqBGoWyKo|P0?9&AZ7UCO~Mz|NS?~%`Y5#v6+KpB z+??DwcpcDN>%vM1!Os(=oSDgnVj@gm%D_KMF7G#`m>g1lLXkJCn%NDGn1fW@#JZY- z9t~23gKsH@zg_b4cOMMkP0ef9)^%8aZBTo>tA#^3#K`b`v>6k|=1`uR_bNk%#lneCg?{*YVXzrILut-7v-QF2FPL4qf;feZcbQAzQXhmkD8u;J zmeE1{joezrjY!dLpeBnPP!zC+FcTd|s8)JHL>QeQB`_Iu7TE*z^;gpFHUzvB0VhHi r=L5xb7XT>&ZUu<|rgcEF`-H9{19i=53KiIYgmJ(c`s#J6Ht_!g;#Gcf literal 0 HcmV?d00001 diff --git a/screenshots/Screenshot-2.0.0-10.png b/screenshots/Screenshot-2.0.0-10.png new file mode 100644 index 0000000000000000000000000000000000000000..36bcf0e317d064344e89841de2de1a64677bfef7 GIT binary patch literal 13865 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 literal 0 HcmV?d00001 diff --git a/screenshots/Screenshot-2.0.0-12.png b/screenshots/Screenshot-2.0.0-12.png new file mode 100644 index 0000000000000000000000000000000000000000..f022a71745ecfe2d31af78b1d2562174ae71f124 GIT binary patch literal 32576 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 X^P26g`f(dD?~lBUigcBvN$~#x>;)#) literal 0 HcmV?d00001 diff --git a/screenshots/Screenshot-2.0.0-13.png b/screenshots/Screenshot-2.0.0-13.png new file mode 100644 index 0000000000000000000000000000000000000000..ad145df3f2b402c0786b7d8a315aba00461aa36b GIT binary patch literal 6201 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 Pqc{K!-Ros)_d@;$UNvQ) literal 0 HcmV?d00001 diff --git a/screenshots/Screenshot-2.0.0-2.png b/screenshots/Screenshot-2.0.0-2.png new file mode 100644 index 0000000000000000000000000000000000000000..261632b75449120c910438fe5ce2dd42ea1acd7a GIT binary patch literal 9783 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�}{LhCNq$9z+K?pzO&%NPES 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 literal 0 HcmV?d00001 diff --git a/screenshots/Screenshot-2.0.0-4.png b/screenshots/Screenshot-2.0.0-4.png new file mode 100644 index 0000000000000000000000000000000000000000..accb97886611cb2487c9ab3fc88f9152c0fee6cc GIT binary patch literal 13322 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 literal 0 HcmV?d00001 diff --git a/screenshots/Screenshot-2.0.0-6.png b/screenshots/Screenshot-2.0.0-6.png new file mode 100644 index 0000000000000000000000000000000000000000..f15ad1e3c545823d2f0b20a5c8af2a2b0799d24e GIT binary patch literal 12093 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 literal 0 HcmV?d00001 diff --git a/screenshots/Screenshot-2.0.0-7.png b/screenshots/Screenshot-2.0.0-7.png new file mode 100644 index 0000000000000000000000000000000000000000..61a9e759bd49d7c421894be5fa09a76186d18c3a GIT binary patch literal 12997 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

wBoK;4uFQ=qOEUjv?+F)vpZ_ss+Ug9-g_ zm{k^9+Bu@WTwA;P0ES2GuSc}DYJcW`9*C3$|3Lq_kJ<=}j5+1Un* z3df`hWRe&sJBzTB3ykb(kKhn^ zO|10Id3sRYKSyse)w@Y;nv1aZQ?XuiRwc^sX+UIhdtIoCVBnbwo6s^|0fGLeKbI?g zjoHa-F~;qujquP5j+k!YCO&mhPadf0NM7X9aBT)66HZywB4c9}k7p@@DeM+Lx_EAU z8=&93GRZ1GUi+*UY`6@Uh{bq!+rFs0-@!(GR$z28^u^;rUi0tNd%7od8sA&oM4+XL zS#!UI29XBXcLS-%>c5bDiO=X>fHUjRq_41ysoe&jb&}qj0D)G-hQ^PLUsOhaK!a!&rw#;6R{dt{l{%=*j5^XM0T<^&p*-hY~%C70mF z?G)JB>U%(Q%iwLI!o+(1|4rln$@be0cKx3W|Np4^^X@HkSv!?F4!v^$QI~24$!o8T zkFiZ&TwdQf@Yi%{sWmlZC5AUD7C9P&qm8PKiLlUsPhVudhXZbEt2ZZ57n}|s`ei2s0*a? z{%%cz%<4|g6KdZqNSH)Mq0r=C^3SP+tL@hy-?e}YBz9shy@6`_C?}!$_Si@$Y^LF> zL<58X0}p*MTt8bpp$Y&k-`rry3N&yP0C@cPamU~8?QAeaILx%ECX5rRrMD~XA9_qc z^*O7%M>c$Yke=`jK9dJ(xdEc+5 z+0rTvLZF{v^o%OpN*o#W7B0A#r=MT#!hKSei;N0`OZfTz7-;%Y>H#6>L3Ss2i1~U8 zK)187yqoTZ0�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 R&>x)wAgVelwMw>8{}=lF`?~-D literal 0 HcmV?d00001 diff --git a/screenshots/Screenshot-2.0.0-9.png b/screenshots/Screenshot-2.0.0-9.png new file mode 100644 index 0000000000000000000000000000000000000000..7e7d2bc822613ceb17992f09806dd997e9e0a3d4 GIT binary patch literal 25280 zcmb5VbyQqYvoF|q@DMb(L*wqQjY9_l!97TDclY4#)=1;7!QI^(0!YKl-e7s&-ZVs`fs$Yu7m)p{gv4jzWk6007YCKvG};0PgJv%kU2Fjq>p&iuvv4 zud1TDGzF^=5e+NuM`Bt&5R$>m+1c6a>uXR_F%`S$>FMd=(UDhBmm9}#gWv-67uB^CM>4xK&y-F<^%3YuER*2dN@U|n+? zSKoxR918~zT29fWmDQ@ouA;K4;__N`1IwwIxzX_{b`iOWshQB|q=lvBvg <>{- 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 JRP{y3{{Z0fE9?LO literal 0 HcmV?d00001 diff --git a/screenshots/header.png b/screenshots/header.png new file mode 100644 index 0000000000000000000000000000000000000000..329a4f5dcfb5cdeed1586575361cb78c27be602c GIT binary patch literal 36969 zcmXt91ymeOv&Eg@?h-UWaMz&0WpQ_RUp%-w!GpWIyE_CA?(S}Hlkfc;V43FhYAF?p0k*`v$CD3vzvjV37DIk8>5A-m6MTyy$Pe8qgnbnA3hiu zDVUU~u!?)e>6%*x*8J1s)s)kIBf}Rl>rkbEfPio!h3dS}G|6y;HcOFk<_Wz>W@L;6 zyUxO&y5)$t(rlJ0SQfL2&*$qbPFWiy59hU~>%b=artYi(zezEuaNv<;0TRnypDhKGu|4BK7vFQXHiH6-)> z3wBi#zB!7UT4LXVdlsK-Xnk|j2-E1QhMu%dr1LNDTxLiZ^Q;3SK)xgTSxL-Y7a3?)NixAm$z62Y|culSF?cN{jbN)3Xcqiz95aTYC33e0;WtNvp* znL`em()x16c|Yt4ha3ot5TA4JIpV$IiIPyjP!3a{UWyjxq_0&4s7lS)xQTFA_2py6 zvsD9`m>DE;yu-19Vg0_Cc$#))zaw%6OG`E<&Cf?+^~06Bj1ER&g*4VS63cG>O>U$z zBh6UQm%pjZYAU>-UhDVM%IFt5%mO<%?=Y{#2 zfFTI^W|~DQST|?nJDDz_cxvYT#(*x?GIs)X+U z`<@y135<^)T0sd;`Ea5wiM)MG2V;XOly;(fV;=E;%;}AMM?0klDC3*Jb{q-I0=zyK zNAhKG24C+k3i)PGkLb8+8e6{ep>qc4W>QOKok-r$Z6B05QXeg(i(`7ojrFGdFmHT2 z;zLgR z+@V+M0;jtc!hLd?7;Jr{TS=V_gvCM6p=UIJziTQIx~_bFZ;?pR^c zLhnDVy2z(ij)$>Y5Z(*5_J7suA0B*yE;HrC+r@ z-1owm$kXaf@=8v?evv!mqw!+UjKmq1B>mR-L$2j`5XUze&IcvxSm=-e;e>_y&%-Mj zC6Y2?cUmpVhc=BYJnVYJvK=Kj?%&G#a2&fR>&_lV6O{e34B9GbK`7cu?lmDdVv zS)3)8A6P^~HU%e+`^?-PUi&#T_aWNMeisN9*Y(pXy~*bu}g#b;DV5pN*%Lu zGOXi2;zpE8S;%$e<{xpB-!dT=vpy|K{DHc~+A_x__hSG55sP5vcn3b10CMz19J$VA z7wfg@Bp;QfX#5B)mfWaQAqi|!9B=J;YVMjWY8pJ!utRzHXv!O2O_8Hnl_C1b>UE_C z`7;VH!?PgwgZ#`TBZ!()GhROrr#OnQL<+yA@>PzffHoNM{{f_oi?!0XIRW*2AelqX z^4YG(w-jGFBZF*oxkWy|X~|+n&v*^MI|v>llaWu4Rjv^y|T|+*iueb_Xj=y;k^9Uj8qihf^gm zA{h5OqLHfj9B9dXhZFKggkN>Vwh^DO`J6MNH|hSPxzn^;^)OgWyj0$}_cghgce_sO z@!kF@p{`UbU(y)xDf{;EDVn*ewhB?z9rGwO^pUYw(~yn1t2? zKJe-9WzG|kHH?ZSwP8JFvvxM%m1Yo265T7Iaz@yV($(vX%dog(RwI%RM*Gq;n&GZp z-9~{#LT_R?(vJU##pJ4Ia968l&4DMj8T&ul)Er5q_JMlNw$9kY_N%T1qF zEpsGJ5*w>MyQPayQ1D5m4hE>6ah)g2ax2SxC${=*XC*uvsw-n+>{IzgBxNz9u$OZIWm7d~!QJBUsVNu`zaLurvL|p_XI0f?P`F9n{n7Uo9^4LVQ z4z5K_B3-dpFF*%mEa8w{LsrJnZ7vqK(b9}&tQ82+aZFE1HD-?cak|dTdeBrL8y*cH zKwjW&c4t_m;rIKNB%2hHoM*E}?Ktx-LTvw~5V|dGw60ed>jp{D>Yic=rfPMi6f1X(v<|!#uCHt&YR|{DcNT;fvtq;VP7>&2 z6b#p>*Kj^g2l!HY_Io%p@I})-h`0q-OMi5FiMFpQ!h)jV5dh#9Y=6fq&%S%eMP~tc zk9A=N0!cEN7VdLSH3r81TjO3d#qt~OYp(W*N8`$B=2j`u5UpRw!^P?q^e>o594Zx+ zg&BkYk`aOyjE?+WCk{5xY7=iI;)19PD{FlUGrnQ`ewu9GzYH=2qMqGjP7N;QdC?Sm zj=?N4x;(6B@D5?*Jyk_jun3i14@F`*nG}??Q5M&hEYqZp6+Ty?M20YnYiFmqA*!R2 z1*2^1mv}VOeXZtVQpTCAny)yT4Mt+dTwkHsV1!zb{R#p)!+sWRUy>%(wtQZepgMuZ zC5MjYNh(hax%q59aiRT%eOs}jx3nK!V6;lfwzbP z$)EM~KOpv&AZJ1hv3LrFo*FX4@R{i_(j)=sVNSMWayT6_uw};)nD(7^Vm_Fu<%>9U zU2A^Aw-0fSZw3;uAjr;X41|Z%(5-tAW1!{KYjKL?WUyYH*V=Q5NLg@-{t3*Ct_z_( zCA~FYdPk>xLC6|?3H@WqFg4_rY!k69f&B7aNUuMugboM%TP@*}WqWvvTe#*PBlCUG zet$ll8YHq7QK{Ii`~>fMxs_b2IlNi%Y+cWOh+o99-Pa@4c-XWAGsXgt4x=rb0`tD1 zOs^W|&obZur?>KI6w5tjO71DWH$-a*9gLu=xZ-nUYD`>pjcZ3#V*k9p0trpqBqG~) z24h&7=zoUd$o3V#79|Vk)=X@Vr_401{r3tNC^7Qn5%U9?A7lG2+fliYYo=$ z%Nr&pcS5%);6nP^ueY6CRt;;&<@mh`?KzI6<%0>dSt4{Hc9`wWImUc_CtAR_Zm)*U0e%4%lc;j&+=dLcH@Tft|q>l8msD^S@)3*S{{g-C64BScAp4%GThd6g)A)a z@`kbot_vbkAD-zSeQu~=kUYpDms|P*Ls374Sd6t;i|E4boPEDA1X;19x4~}-RgV;y zQkfcNvF?_J7C}{X#YA%TCS0a zEJM`}XptZ2Amv`oUKE~u16ZQ%A__dfm}kj)F##$+sQ^YbH)qv@1j5Hn|-uL05N>6T)pK!!_&hz6gTS#As; zz0gXWcvDKq*wV4-5i5Aub1J21|L0b@%c zltGJw`Ss@x*LATG8k%?%f5eYx6yve|2_#;g4x(<&G3t{=w6H;3_I;Uf>F?aHp<9X0 zCxg@k3uuqDa=6^V?~o{_W62Y#*w{l3_gtDw8r8MY5|>DJO;mM{M773?y%rK0^qBh^ zV0Y#!;EKk47!Ab*MPY%>n!~NQdJQ#>QquG!4ckezEh z5^cLes3_m$epI&MyppoAtj0qYlrR|0h-koPlFpEeB3@ZL^`>Ak#0}$_0M4WNGB=&Q z&CI6#I{kCP^)$g0NR(rFjR)e})8&X3CtcH?Ka1-1_KdK|xT2KkCVkHhkHX!J6p$!%`M=oRjmCH!R6PCutx}_Q(UJNwX!XU*=~INDdsChOImp`TWb~vOtKYr5W`qv- z$1suUXYGTMRmcZ!z)E=4;mU2QyR`BH>$IG+!j7e)nK{D$pk|XvYbEO8P*u~cx>_M{ z0MkKGEW(TyJpzU3*=nQXW1Ix@^>5b0^$yrLNlYW8GF8Td`Q5uk*%-sco<5ncU)*O7zjb31L4&R@iO@b*d?W<V+ zQp^XI+kb=QttaGOm+g?_~8@+QH&BrAAK+J#C@z6==du^^X0!6R( zB~M~X*IKJb;X%OThVg76O1I;|bh;G6nK-Rg)_|7*wn@kCDu;pB6J)z?APs6ls-?Y%D7c{OfIS2{C~OV5yq9dY>|j%6LB zq!ye(OL#}%M6Q|-3e8xtuPc^|(#c_UD`NyO7*ca&K#RsvyU7`u2FR_`Mh&~uv56P3 zSs`dP+`pdIMICmGe+4i^v{*?)-%hIDsm?Q;kwk$!u?ipH7e8y80qhYiZ}55^@znLW z;%>BE9+x2L9J->;?$tQZ2|Vy<|CrPwwAUAm7PuExNn%LntT9;AykBdQ&-1cDt#%nR zjpp~kgtPwh2#=_j`He2g_&g(p`@Ub1(6j$5huunlx|1$doaE)z_2&%N1^4m>>y5^w zUp*?_o!Q$H+*S75hcy}e@8qILV<}$-H5W0rxqxW_03oQG&|EdnKb6xFLVDpUhl}w^ z*Y-J+i?oq5sOEj=YQ?p4n9WjKN5%0F$1%n95p-ssH{(n*rA@3GpF{NVrw(^_P57ec zzigO^tIxg9fTT}-=AJYT>)V1LctCD(gNv14`LjE844=K*nuza$ri#JQ_5-UR{Q}Im z#~!q$o?nGlUA)AHHxp>!`62l8M%uGSo`CjIhVPoQo04rEa1LF z{W_!v2vOr+k9xQk8C5%6z{p;go^bgC4gVHy*9+=W6tS^0*0zDt{RvFoP-dYEm~^$G z!n&JNoupbk^ZMb;*>PKSj0QLZ^JIRG^Bd2)Yy0EkW0U1Zt?`We=m8KNFqF`BUhKTk zLTuP6{8S4d9X@?v#X{A(IB*^y(}9OOzD9%)RQ6wbTC#pxAXZD4w|ORoWAT8FqQm7F zPWro`aEQu4M!MV$h53V#nr$}w;LjU@1wq~(XM4WFgN+Yvx-|wWpMr~9@ z@I{|%KcVk>RW8u@#*22|h=z0hJnbrbaE)X?QqVm`AX=LJv7H>1I;znY1~{YyOf+ul z^Bpml@f-cWR0}}hL1to4x-Ko&7MpWYBP=--G=$f|V?gmCO3#Nxz>{dh%_EDAz_-Df zGlzBr!!k8p{=?rIRhPz-WK81qXDaN)=&ZZ6n`~b18FnjP#b}Zas&fL}8;eJZ~7`)k%g_ck( zhw$D`gIb-4=Ar}eE$t?YjQx#{1n@tas{l^@(nv4NE8j&e;v?A)wFlz~113;rHGZsFR z{OTPatVUaI6ijYZBmR@mtK3spM=qLc8?UQ8LIJzLS&N~`9w@i{Ys~$2P-S(qv z6g@2agmy=JP~>os%uM-@iJhb`)Gv{0VsY<;3)oku=jevEPy!>hR_gVEOigZl|H}DX za+*VGLM)|pCN?Zz4j?rox}hf0C!1_!0g$uBF90%{+wcW@&HIkr?i21$go~it+|!w` z(s3HE6+JuAu~}Jx()`~W%{B7KLPPnjn&e5|CzXnw`kxWWeXB8vgu1t@!}!S;fnLg& zYE$Crlv+K{dr`ojb?jc+bSpNKlBn7 zRsWbSDm5rw(i#0$!>#)E?woSH22h@_uD?1}qhX>d8p};K#bH1phI|tLG0~CthL`SV zhF>TzlMs`;=ZgKcQ4y}xS3j5d07jKFxj0cGFX8NiEUL9BNbJt7yM+iX<=?L5QYfKq z!Na~ZG>Op%bnSXYY#_k^oum0lnmDFJXf%6Ay1}Dde^RLmPKizIXf&DGnT!xpbdA*< z97@7(SOEyZ66z_HDpMMtALSfv0UqS z_V}V{s|O*@@rSy!D-v+H;$EQANE3^2h6XA%b8)NYQ0daLYC6B#k^*RNDE4~TgcpgL6toDwRI%Lfr zY2QedD!U|;uVCLP!>CwO^FM=VBd#I|TtE_Z*bwPo;h`(`;TVg4KzAG2Ry9dA0yyhm zs0+$P_0?%m)La9Yd2q~|f8`V(+th?_PIH;kC868V1s+oJ6U=u(zJaUUE#!{0)|w#T}bmlb6vqm$67 z(yhi;Z}MenGX}2IpUH0M=5moOjSWHjS#=cWZ`KDE7Lhg;s8gSWHMQex5>wcG7+cLG z#&*mX>hg%TM+*6~h{$#4!d6BY)r5KzZq?B;#dq);Mxov|4plqFJT95?_Vw83Jd$n` zYk9RxIt&GH%8u`Zx~vZr;z-UcGumDaJqB5`IArf={GNg8rN`sJ>_pY5p_ zItBex%1J18zFmfJ_wjL?@kHfroctY8Ess(qC;W=LrS5#T>r3u>!x`~NqwTP*GzD<$ zfjAqI%Jsar8ksxD$OR~-8Q+}fvh@JDCE3mwrg?n`yn!wmztYXxv;HZ&hy>i<+?sF$F^KIeLZ%@*I~cY+lZ0Cv}5yz_#FPWw4|u*|i& zX?__eZir&Y)C#|_0Xm~x=q(xGAb zPD}3(t>JoxK|k7cX=s?%fAdz-)*hbE(o8SfmuhuoP1+#jzNim zPH?5Q`_&*kH;hY-juL*!@=ur3J|K5oA-jQ7Jiwmded9 zRIS#?#L}bBjf?$ZBtXQ|vr>0dfpV>R0qAhF6z+&I8s>65J@W|YoFjx0!gwOaT8qJ1 zi5h=5Ov_kKHu}mFRbnW%n^yi3I7g19vEcb%26aFv_*$obwrjhb7)a2p>5H{I=u!L@ zNowRT;1R7!e~73$4mmyBZ9U!8%UatyOu%H2^760#U?*lMPL@4KhW zxLmFn(s!YRwH#1VW4KJ(9&@(bbf7&9%5T%zJGKQtkE166cYRFL4D-ED7A zdK&eaF4&U7tF(9Jktn|D@~B=UXpr2#TK$-E+`s>V}3fTu}#u8V=z}!0aJDTrHBKJ-m6ndd zT8O9^sKHrUYIXTWbYb0_gDNJ*+-OrJB1*$R+w+rXAV7sq4B&zc8jXYl%=4NyW1xKx zkC1#42or6+S_?&u7=R1;R!ql!#Z{v6?3Hz(s2Q)TCI*nAQtroq&z*q-)l*7KEz9X3 zFtM=6dgTsQ*PutZ{5PJf*6hpk0dpc3=X_HN+A4tu1=&HJ7s?49=irzFhM{PsWmcDw zImI-=2OjEHC1KQX0e-c%1=dxiRB#Y{Q+fH#p`zqcx)_BhR^DnyU zhhJ5jR-0b$@oI_HH*^n9uIWB!1vW{3TyV)E0IPjbE*V7mmas!)0s2~P(E)RGHRg#| zW-)tp7?Wh!QQ()SH%tx}-(nm-GJOrk7HlXJq_(f1{}u< zePFsN9Z4m0*GZ?Oo!UVbcd#^Lr=M2Q#+cScyF3kMZh3tmX|*T?+WWzN*VR?&e1`KM zW-p8D0}t;k;LzsoVw;-0NY>B+6aG})RM&WN#VQRg64k$o=NsjNY^6+#$aa8W1ajC%17~T zAezKXof!(T=P9k)lRc=2p6`{t@wVrhT%|3xA@Jff0Z^OG1LFC1-JG{N!`_|snGIzR zc%w}0&U5Z7Yby2cGw`n80<(rRilX-G4zl|;&R>hlyqqC)s`#fIGI)kQ1(r>r%Ml=$ z5racMpiK&(N0Ss2uB-iY&t*AAeOy?cZrh~r&9J7@{Tlr-nKps(;hmLKwpeRD@EyDJ zMqq(1{Q786wp_O@3)-$rnlDQ~yW`>bFg8=J(roG+G#o8S(~nmaEh@_Oa;tplo!vkn zkR!1iZ5y9${ilEBjzGQ52Qt0M8u}Md1JADOMF1xQNX6gkW|Y0&!R4|G-~RG0;mkx& zL5SdRo@(Ubv_(#w_QXa~rP;Urd93B;9QM#{6C8>ER3A)*;bg(LcXZy$-RNB_kiwvM z3zhX87&<4O-5Y;d@)< zLELCOfy6p_-k>V&cd_z@FP?S|yb_0}ww`x~lPh=G_8Wby+!y6FgnZS42btW#cpsiW zqX;-JRAOH?vb|#3?B4j@HlBgOL_Rd+B8p!|yNG=<)`551k4C{x`#)#Au8+juc~8W? ze-95G$h|$Q)608tomg>ES^Pb1*5&Pgt92MhO*{sQv4h$$oLcu07S&44G5V@0qkAi- zmZRX4;>yY`5L_!xb}qP(8T4AhN#T}?9->p2#sqZ-Y*^2YcHt?S?;g5#N5=#tV$P4k zUAPFhoN%JdwpK5$M>AR~O)3)Xb*e$lamUy{PN=&5I*`e~9><;@@lixhp7NS;d0iPd zKRMXPTr^_D4AGt>dtW*Y-*7#Q*Lbx$U`VT#8?W%A)S8^APCIXXLQ@#HK@vw&)ghbo zpN%(+52Iw7@<_Ou#2>>EV9m1U8Xt37-_4klFR0INW<0ByyV%(Ql=(a7R2I{~z^yjg z9b6S<@7&;IhA;})_HL=Z6wd^dK;$AXF&My`l6`x&d9X0e~SLMi*0Tm*WaOUD-62Y zR{92^Sc)VI2)j+oWhz7fyEHK2>GA0=2k3UVmec8}BxV)xrha$Wv3nn97kvNh+v&n% z*Oi`C@UjE2;@aKxcOJt8Lm_7KGiU34My}9_9$8LEOiGHEEO^|VljXbaugmZ`mL$%4 zVq0xgGx*^bzfDxv&7|8HAa>zBockbP4C3U1fq`Pp_z}#h@ibW}2j(!*a84Y?TpnWi zm@`y&i^=p1ZdXiL;%Y&#oYkIz$ZM$F{T8jMutfG zrm8*|(>ZKR4-LM#UoRh=JYVwaXeoXP&c43#&i(*iVS#dTRr?iH=LLqkv_l8NaDEt0 zwZ)AoSflOgMnz%}B!zWnCCmBekmstZWRKwS4p=~7$o<19+7yUcv> zxV!VHuFHv0b==pQJ>dS+zFut6KxB)Nd&9dzp3`Q( zU~xU4idX`m(X^$k3p66O;`9<>Ni|&8iokbKT(0*(v>Vq71xSP7Ba!WyJd~X}U$6)U zUhRXRsnw0zgLt4h=JJ4k&8J$a+ZVq_|CeWe#3Up~d=7Js!nh@-J>b z5Z<5kEvp>czdxHF2c8g>1ClG$#q=RL?3UAPOEBQdS$wy0`7PgKH1QuR^b%k$MdDf) zax42EAWN-gPe!cQYm*ia7oOr?^VKNOejhLpF2B{sZr?MJ=Ax$~u-}+C!i%fg{RJ7}njn9Pk~cLH zwx`Pvk~I{aHm8_>lPdN=ooI6dUsl1aI6%hS(>w3hl!RyJm`AndoRwp2e;1FaG^ZY`-T~ce$iGx{&f;Gg&;g+b02*-M`B_?sGp-y_ zDrU1UKab7SN={A+!wggMQ6#zJkwjDk4nRzOnOPxqLcxC2bw)hqo{05fgmHPuv-Ho3 zKt7i!`u48}EyJ}aJa>sys3QBx(dH?|^1d94P14r^lGG&$g_(E|(WKLT?j?g!4ht}# zNrD_egcaM^j3b5$#e4)*lsW4-JpUF_{$QBSk3;Y$Vi2)_p5|QFnzQn657?ZXB|YJh z;Hs6rY~k0EUmV@fQu#h6{fI40YmCDyV0Uk~*=H_HrgZE0V8UR==VDBOCG=3Oz#3^q z*^M8pwSOH-P(Re_2{>*NK+GLiV!W zyr2Q|%(>OFPy_p8RMN0Ce$mlbke63NcU)ARk81RlDzPLMR}F7jdA`vZN`ON$M^#Eb zYPQE<+4({3qzIK6mnjfFXm+jsPlvkw-}M7aN!L3Mlt~o3j+}KwTdPxgpGyLq%`E6$ zpoIjJd~R^Ujo06~fd~NU*zf0uhVxP-4Nx5L!gOoo=m>2<2b2UKyoBS|hg?kvK`8|{ zCh@Pj(Iw=W3x8v=t|*-GjTO}|tYPeF{2t|!qhp2f;CS4!OTXe`4sZRqArKkDTHy!o z51jDkbB#7`bnbB_b!(0>X`4o_+4Q)k;Bm~4^!!4 z%L#Z8p}OQ1OX<>y>%`eP!j4-B51q3-*8`z*lCjn&o-}FYjGh>|1o;w!9b_n+Xwq}U zCS~RMTdn<-D{)|~^NDu*ddFd*{Mm1nxeB|?c0|jFc`G#L9Q)RSrL~BPtyXeC z;8-g9ZDE>{9sf4(W~jm`jqqQ~Ix&`hkNvI>nXN#%zy9okT?*wB-YtKAucMtt&#%t! zzXHZY=<;Alom0A`;<@RX(t^XjrZewu&@TDABf~E30ztd~ z+F>VDUOunRBl4x;*^^MVnHuEf;rTN|D!)GevC(!A30H4E>2#@R!%;rhJ*7Dc*KZ%g z>6~A2{`@8B^iaVS))ooWcP;0nE*P{Sw!vnWglAlezZs;HQhu*QsLDv3yva*Z28TBm zyIy@dhwIigGZW|XOXfkS0bG}IzqO}6Wt_DetJ$si3{-5GTZ3Hd_?hrB2>SSkg-Gmo z*JWEq*&1QL>~i6=EOtnBGZl2jPFE#lwan(s*ySq^Jr9v^qfd^|L7g zZ=TLUvZo&)Vu=&!loZ>m+yFJ=o+Bh945#g3tI1nd52^>3rP$qn{A6$@%+9Kn_j%^9fLt4;BMuY7t~)W z?$S>sao_I)@00M!onGq1i;6`KbU9?& z*mbo79+9kGx57qq<+Wu;5@_M~t94#~m+gD=7F2H`aUU}Ci7Xjz>5j0$lK)1o9sBf* z6%^qo*tFP^Sy{k(XM-Jg+eQv9Y{|J0C85a1N>EwY7Up8FRE@-8p)t}?zRbWQLKEH3e*@pa3rF}V?2Hq$BhO>pFAHn>5 z(HKgBL(ih4;tTc|nmUtpa9$e8?0m7F+4BR&;k0IGwrJ|T{brK)4{)RFeu)`vLEc4s z!xRllI8wMBRY_}UY&@SlmCZ%v1WRHLS^yws6n(J0aB2(@ zmdJ4Y)o||-xSlFY;Lj`OoK=b&yCY2Rr?jb{_z^@#F-UmR^G72alOq5DzM0yMAkXZ}?XJ7=3HTTlq?8Ztk9!p&9&??L9 z-O2KOpqo8lFWeay)*}YTkUXOcvm=E48ib$M&4&)WJ>vtRawHQgb>ZQe9dd_YttuqtUY4@64X042SQc^Wl){7`LDdo*zZ3TS9l%r-Sr(XYOz__ zbWpNBld$hM<-X5#_jLQyZhRnKK8XyX!MC14PS7c=6d>w(cEujphBaEgIk;Z(#pHyL zOn$s>A0QF9QqD*k7rmV<+AUFN3C=?A-W#Yye{R)vt{W`7|c{}EL4P*R(mv$ z-2J3vKga?tp^&`-WCoh~)dj^!3(Gbl(D9p%C%_RJDiE#kRRzFUc0T#2`)Y0EP~U~) z+kyEpneJQ%F@2eE4Mw9759Fkd2nH`USdE9S6D;oX{hJQTmJ$ZO+XW$amyKah`Vduv zflM4x*lKqXR3&lB_5B5z$MJXQO16Nf)qOgfyUfFdAQhF#dn#^lj-|>(2=2v*$&H!K zBzhs9^KNk-_;$%|E#P9}2~&UbQZcW5c%&F%_|*ha*Q@p21BQg(^MZ5}0uA^pyqsl0 z;B}@qWzp<~u=dF9c7)o1o8o52RlW}c`vUZV#@V3rcZn=E;m9ViP%w-aBB#;cdv=|d zwl-1&zK)SA?7dy7ZXL_gPDkvlfitws))k$|wV_q_Pkbo}S^5J5tR z*Ii8Ii&ZYr$NWhrS(W^1Z!bRGXn7$Pp-zzv z#DhTnkyji6Yr5pgnUD83`0_owkLDz@Z=beqYl^_C56_x-#IjdJ%5?Zj zE6!A|%!ioK$zk}uEd^FDfV8M{iXVsR8|DI{0bkR(jT51Q>C=5N*GnSIZ+444+Fubr z%PYtR4E9PDX>~ui2IG;JeW#9q%mMI0t2Iet~9UEJ}f%jAnjI{ z51To(S`a`pxEa)&T3K|)E}na@8%e5*OOSu8dAO2xmvDrA!N@1an0WhxRAvo!y6s{* z!E>HzX%9VGlG7>`688rqOmOU;&V;xi4|bn2Sm-OvBXPICM9e8hts~Q+`HZIytlxW| z1Or5i>2d&0Hp2JDHDj+%4M8I@pWNW=-|u`N7haZY)E(7BGNt2?;H`J)MpqNL+RMqF z+t9Y;V@fAby4+ssY|5Z(7gt|*f2d2VPaSM-O%Q5HF^4TjO7*d!xQ0SJGSmhkoQf(* z@W*{QK~eGk17tM5_x$V=)B1|rqZDl5RiQ>h(IUrEM0fXAURK%c_RS)LS8M6J8EQ}4 z3VtUFDo2h~w@$+g=6g;s^OK+hZo8q_!+^q~%jvH?36gV-4kE6a#>HaNP<3AW$6~FB zSJ3msdUM6TMM2-D;2IcS3@+d9>bQ@HL-t%;Ebvo9{iZTMTq9iHb&uEUL4qZ-i(B3> zmy?B?vUHz`8j9$@(OB&b#HyO~AZn9n@XKF(Hoxg@hRec{>sme;77iuHWs1D&O>OFx zs*kGTm!ygZMAz_INVnesf|HiZerWSIiPyF|3Q4xc$T5t{x!!w z|63d7nK>4G!Nq_|u8p3pv8h9Rv4uuTRwa${lle)CERiz&Byk8%I4C031#h&i`>fRF zZ;gp&wkub}0OO<3Rpk(t8@IuI1~=2cDCD@SODIw%fgUZAg@*p0&Oyo(etEX!C!*Dd zEyDxYSBG4j#%me{-l!8xu@Cu8A~64)UxGPUCy7Xe9M4uX58&P`>B(Rh;NS|u!#0q? zF=>e>?mdwM2PVTxKe6Ow2X_a-C8FA)ACVP)lZv@Dyxzoq6X$rM5=hvfb@5d@x8vzp zZ=&ePil^Svq49}~jj`BUDLFj4XGJD}OjWb#j< zH%K46L5g-tbN~VH9qTYPO{ptp8(SengTJ$1t1GX;tEbjGp4RMaw^uH7AiH@lI{U1g zT+7C+;wPM;Eu;;RawL(M(9cv@f8jET(kKPuSgr<`dzyY}iuV#Aw;$ZZG$TAUdjc4n zij1wAwY$2OX3imPY#fy3)icWP1i^_#%z97rD)tmHR@yhqPUTs`zw-YUtJVEqFMuWb z1P9t<2}kzTs5@D^B$_VQY#74U5%#e{J{*SS4sd2=oJU#brbYcl_HnM2fv!k>s#9>Y zIIigvm*H)-7cA^(MT0L++*mCoTAs}C>)Ve#L_IHzUmLJx@`_wkPMZ`RBJ6J|4DLs_ zpAk(_0P_h#S@#e((A`uRBiYc&!rcrmWW6r_CJJXCb*2*tq&mM;W&~q>Aefp4v)Y|| zPKBj$#s$Xb6nyoCsUkKW@R)PCPQ*&&6qayy53=ICm3*pGieEc*!|igfKgTYLonEzm zR>>dc?k*gE_f`^fSnBJzCvkCXgOvdd#@ODDVN%&I?oxR+W4KP|@~ zu4M%TaZnTHvp*kZIl?`hDl`yGet}Kj2@*EPFBrL_&^DVPy{FNF5XDPt?K4_O!Ae?O zmH_wv@$}B|kv+lsaJbpn+GwMVwXu_p&51Y0#Z+%ns{X0p1?K?n_q_@8kl|E4C7D|zoOc8DgC9(xN|Gp%w`GI~GfLzh+;@V+t-0CH%N5ksg>~_LAhy|C0i)vH>b>@cLD(%e1N3Cs zCt>8!a%O5`NA>G>NGB}MM9t}I3xq~OfqruhGg2x%_e$&6Q#irrOTcgY_JWF z+T3IsrC#dpeWZu2RW6zJMiX zRjAXMk}SK~7Fio|LFdq5wcV4kp;0nqsgL(?vu$SDq;R25n(y^~>l<7WLs~qO+3ZKj zXXY^S*7tYYhtq*V0aH47!T^K?u1?=A`G!E?^Mp;Z{V1pxF3X2 znJOvCZ;}t-LO~fHq~$^<2Lf`!ZN*Xb(DJexIPE_SmgTtX+Vr2Rg=$=5`m)#at zZtmcsa7jmzhhVtmqeaSQ5fRSB4l&slcEBhDm>cXm*gnfmy{T|Q>l}O%LzR;V_xhPr z|M5~a5%SlRxBcKrac)_Ptu|Dye8`c>BpHQC59+zzm;nIBunCOhThUZ@O_-Pv$>%Ut ztkxGD3unDh&uWf)@(*c9E3Vow-@ke2sIh53zD0&KRcEP@u?YiKR1OVvrh|8w*7`Nd zaefi%Dwflnl4ervF6<||V^2tqVK1+d1N`X|_MngeC5wSSGcU;S!VW+b3VTOmT;tiCp zH?Cu7q}Rz=PvksJ$VYw>4nj=N2pV3QsU{M`Om)NXYP2C%`0_?2Aj&V50inS@A%0{p zjenCU&M1k%Lh33eo4_X?mV#G6X$YbsU%T>mZMikoLUSa8OEOfyN{R2tN$Axn@wdK~ z<6DXPuLv>x+O_1%Jy2d`KJq4)@_O3`s^>SltTwm-5Hw|7c%Aa~OH5d)>MJWD!se;} zVypAK{-Q&+@Vw5T$!*^R4TW-WEor_!r_$e_`l98vwAKrxH3#6JHTxe% z8D&6|pLU^%5i9N{9;!y0p$!|^j32O;VYjGwf1b1MqWHafB|v76k(M|K5gz{I{pnp9 zm<*h${hrbZh9erjUJb+?aY-nlHx(natUby*xzTs|fWN%-hMyl6m zefbtbjnjlc$hm_}Js6GQ1?J*wmGY{ZV+;fmd+X_ew8~qzdJeX78#E#=pI!}gA9z7+ zdA#MfKS%0`oBXJ@(7%1|pn3nBHZDvr#RiWVZ=_RcVfO{ELxhH39hL|${^ek#)J|IQ zO=@mGX%rV6?t-7rVcq+LKfi4lv?(q8Hr(F_$J#mVpCM1@`+U}=r2wOB71I6gQ#h-& zBPd2yT~XJOb!b&(Ty+N?qo43qP3aFV?9y)IY9+hz(HA5mOGBYW067nHa8lGZ+h0tU zW1YR364Zn2^^X1x38(wnR^~AJr-k~smpKyu*FyDj+f$CiM!*oTmoDycj&Zg5Rsm*i zPY9*AXY?=-Imj#-QWYFrS5Y)&=7R*D*)In%+xySCn0_O9LFoNVw)Nx9TD0OyCqL&P zi6o2el3<>}44phq4^pru8D@)~8;QyS&?_>Z$qNeeIl7kvG^8VNySy9G9rhV_K} zgNbQ~(GV$CY^VQTFaB-*VFLU9Dl7xKKrOKo-p4xtac})tUP+TDQlBm_{vw@OEaTP$ z^UW%t+=peFIPaaCm*#CJuYEn6;JIbFC(Si4CVF-lx}1>$ zW%)&}3DdVX02zy*g2Z+GuK~i=UG`*R?o?)YoKIsQpxeF#`1z*=Q3Px zCelpoB=Y~nXN0~aVmVAucl_J5t5;$HG#`3O>uq0OL)vd%6rPU8kd5$Qt}4WZhT3m! z9U{C(7A@OU9a<|G%vLc&+dmV{_C>FB0GvmG)gj`>SW zlr_7}SJYaM2CK@{q~3csg+>CIxarM`pWg&tOC+$7esGtzq=X1Oz@U~kk+fT^)WwAH zAm`XD`snSog&yw@J6lrEDU&XG-bzU5ZRY7n6?A^{!O_c9qse9U0%Kb(@%nf*c%v_N zE7TzMlfL(ph6f{PuO0V_WP zSYn%1RhKjvM#f+XvD|Z@z-p-yQjJc1kVU!3-fvCfJqApg?o^TE58>OhOuc_td(@j@ zh9`SSbKo1hY7^FPWeG9j6tw60J@G%+OuU{Aiq;ZjwTFoRDQ0tom^*Xi0jn=u-(H2w zd>1+hcgugrUDv{~a=B(kLeD5m0}r%pTv9GURVJ8XQ^|y8bYPU4i8dz&4iXzVtdG8d*qvMGqTt zE$p#+OOXL83bjp@b*s0QYfEv}(XaGR=S8h8G*>jsOwsamT>xhWR8|sYlJAP za$FrhqJWI&6{2urL2xZF_7~@c9_(J$Ix^ooOW!s$mT8AFGn?5j)NuDk zm(z||ZT%g>lf-9XmtC~)7M+1cI;XZ)D3whAeu~X+ay%o{y#0Rnd^A>VGiK?0-NAj8 zD>jt{ViMg=TYm+sYI`Dbj}Qg`jX3#ESUWlkRQO1QAs92GEKNr=AVVid#MJTE$|pY- z1X})aNi#V;md8MQYyQ|CqZ{GcDId6h&FnZ*u3fW@{4u6?7A%aePF8)3n%kNcnh)<- zcJYfleMsOEvK{V2K^wGb>7fou>I8GkOJo%*5xKB;l38{T+HcC&{UR#Pk$ss(UI=~i z;Mr)$Hdf^qt)V{=?Cb|uE1Ql>B%4%@*;(Q9=6`<2r(S{Cf-b!GJPq@vJ|$GZgsZ%D8%Nm|;UEX8Tx*1#zhlNZL;HP>I`pe6 z^9)j@%Kw6gUss;|8?z{|rJwpT`MVh2vj_kuhgJ@k{kn2ONs z$}!D$ySp+uXChX&*_NV8Yw*-=36j^iK;cuu#r_ieJD;09Z+lAhf(+yTT%MtbOdd`Q zq%J`+x?0s85@80j=Gj7O`wzflVtG1)Msuk6>9S7PBInKbHH5KdmxIxaj|U{Rmzylm zq90*ch2!UR)g|hL3M?!inercY!1pv0CL^b_dFvG;Lo zL(Eb;r$`BCvZU>2Wa{8M+7(o;tz;~k8SdjQojG>p77^yO&{>+kf6iOj%dE{SwG{K8 ziPr${QBqD&f?fBTKbG)jvV3!jxeK8rUN}c}K^FQ_yEeK!y7_T-Nat-Y$6-V?4gEdn z&(0FwsIb3h_2l^IXE}+pZx&`E%y-gOVau1l3SO7(--64Q_F5=0koYAG?M`4&mMzL> zVANo1ZpK7(ka5|q9GZLIAW>U@t%o8|>cz+ANx9KW06s2hSw+G z1`5U@wte#22VxSccoB+dWV|Fg3&TVRaoDSl;@-7J#YDW)N|`z_;Zv+oHGg6A z*p&IHDXKv>;e1fhua*$#+4CBJ5j`YI;Ru+E2t2u4rm0OP=8D!vr{zkUc~gD;VT$o} zim?n+IH-g4!=Ro}H%4-!@`i?>A=SV;5aL8*do|YR4c4xj>z4F!N@`|Jq&Hm;i4m1I z$pBv7?;u+PER%+%7S+$h>e_Hv0(Wloxz(svfW5ISKdfnr7qctt@ykNUV|} zmDgsS(J})UHneHlVoF1+PB=mx5;$*Icwz?pX0!9a>@(HKlN-@GHO@yZ1oAe_(vvn? zUQauL)^F~3SeR#b$>+OZ8*<;GGp5I|4B%rW)-?lNTd?tmZE^dC9Y}In-7*l7Fl&Xk|tQ=$$ItZ@1EQOyn%lYoyluLpFc< z*Zs;e{uw*2M$HU=hbRY zvH#CZJDMM}&tVe|t&EoY-bWVIgK9Ea^0#n``<&M|C*PE%>QGq6c**ZI&C`9J_DWP$ z7E=Z@xsE?kc{&rYaKlw!7LvdI1Mf(7bqr)?|3P+#tV+U;^t{=46^A zT&w5Szr0(X=lLk%sdMR-I|OI}`vWZ1GzO{Kd2CjGzr$;NDs>Af`A5-VY42`Vm> zl@h;Mpd?4vYuN*x1?T==AzR07ZictA!pmcfcUL4@V;DKWOh5U18EQOGiOk$=1ajco zg)t9vBC{L#hwk@@lyJ~f?eSLNv#DdcR101q4`usxV0N5SnFmYFBJW8bvw zVBTty0nH-`TCE|_Ksp+m8{ck{1RF_glXWDdZiZ=r+TP(2*G~n;iGg8U^R`pTvaPwf z86OFFupPe0xF)z*euyIGe?^L(yC0o}wcXGo7-5{aH29W28usvj6i<%VZaJoW#uyt~ zZEr9$;u0b(X1P`yfEIKj@tP87jM{U}VbYV_zC967v{`Sc8i&ccw-cZ3Ykc z-C?clqKdesY%F=ANA;6hT9mVN@~$4j!EGlw{0^xt8T55}S(MCmF5i%bx3H0gkncq& z#OK0;4X0fSad=5?g)4?m^`$Z+I8zH{rUwNYu<9LihA)Tv*2e$DY*OsM~!WLH|0wy{qj z?v-1Nv$c4(cup`P``d}r*>C5>L;YQ_AXEL|f!x}E;3FM*R{;lgKPdig$AS0l zaaRODIx5g0SbEP$p?VoiA@Ha<@9AX%c5Vl*AgwCIAmnRkok_37>;35IFA#>_Gep*x zqrZvYr*S9@j{|8*Xg){Ew-L`a`U|R8eC`I5Pyoaxo^~|mFySFP>uL>_5oGqBrXfmJ zr3*_Ng;-1oLujPSz=cJ`zQjD~CgWGUg*f|UIV~-%xF2F0)$7=nq!|tp_3`ZyPa#EN z$ZW+ntW2=l^>eyXrnj??9R?CE7%(1UHbJ&&)fq;kOUA8)RCC$(X zT>|o+m}7}#j=}wN6E`kD$laZP`(s)^HQ)$5b}@Ft9zy$f7iILHJk-kD&`%WX@X@D} z>;@Te>?v)s=`_Fyf621>s#V>>>;wU@Fm8b^aV*?NJH$c0Awsr4C3vvh!?SOEFD;tN zmUA%A8)!;v{scR0XqDT{h3L(XX*ds;09%yX^Jr`Tbi%tzI1ON=5vJ{TD*OeF0=tnw z>%<;$P=*Apa`8-nYxC44ldOT|;mTr%`GN5lIV!oKT+6j(EjN|{aS@E;PcV*D%owkr zY^BIcHNqazT7^Gl7K_x2YewgF<&;f+=Zzq^C~qB!HTAN^?WU)YDRvpB2Nu!;uYRyY zAGh<&Rf5_87H0{t8Mw;tfQf>Qom?<5vg==!E@(lrG~_FxgO(h98einHM~^jB3Jak? z1B;>heQo18I)#G`Yi+sgu4j6HO|Tn<5k=q{7N3rQWAzwJ0H;t*DB)j<9iozcu$oD7 ztw{N@2>=CXNz497O0S=?Eu2}vcBhrlwanb{(6UM~*3^oec{R@;cZfh%{fe$Yb z-RjiL61g)^U1Bzix#<^THp7a!`(q}}u`i6Jp`|~EHbrY`NCF>^TLRy3?r+*u&Y|Ej zediDLH3P<|EY`QDWq^n7#jd@iW<|CoK_4T24SW;qm<>*1+qrsYv4NztN;Ff+DV4HS zl$Gh*NFZq9we;tTq?atQFpDuzOwuG+cz!uZRW{}hIQ5wg!ui!$HJ#m}VWS4`3b4#j zcm_+WhC-2wi0=4i>Ikh^1ree5!A^~l4VJpI<`P8|1|1*lq<*?Gkr$c5#BS64Jes${ zU@w~;7$A4G9S#4Jk)}&QwYy)yP^$wB4j7W>dPUxDPn+ZSnHaE|w&o!_Rdi_Hqm1*U ze5tSn^F0l{5lq-X1vE@HelM3v^?YVkjr$>lG+wuYUlyuCY+6rem&M!H#Z%PpxVn+B ztqHexc2)BiUL1lHWZ$D(8X@?E(9(@--kX{`j}8>d>?k9ML-4(zBb)s490{R{u@e}` zOYaKe9?LjZK--J>L?!1GE8rg-^{~f^ZIu*9Df}%_9UafXhJlVqJ_W3}b768+l1??n z#0`QvqQakZDK-a}5dRjLIj`FLn${bz8X6s!n)pGKU$K{Xw%DPxkoIA3YwFzmL;Q~8 zrU)Q2+SK@c0xE|cB`Tles@ks7_Qv*78z3_bIO_Xl6N0tT3Ks^b=i%H6(TYV4oC*Ed0+hPb#i)y0Icz*h8 zj@F_YZwbXYwo_8GASwR6a5R^sdL*2gUM=*YYN5+K_Dj}|tmrG#MB_jmm|G2QYWu@& z4IqFPF|L5#RXz#}2GN9Zc)*7o!}R-2B7j?%0}mw2rqDrz_AK6B_sD8V1GpxcG8`Gt zpIv)Z=fcr~jZ#yH*?X~JLy^(t+)NFBV)!ZgA002p77wOTz)4k%M+awTywj7Mix($i z+odQYT2eVLJ7_(wHc{wIjJh4J99H?Jaxi`E)L3uJ9v$25V z4jpwH=`Hnr5oa6^0#71Dv%;#D27`A#q9q;n$oyag^XT(=?Dn^IMnB)e9!u4`6HQ3>>`G8 zt|Il*djOres{FmP>@(Cwlx+vqU39y+AJfhhQ`oFwkg>W`!`afw?tZIL3@AoFG6Ugh#r?WIKYKIH^~J9hx9~8_wSK=3_sef7^ADRp7bxI=V4G5R z=FhKQze`0#J@^3l3LiG;U!=jf4}L`Wk}GF#&Zp>+*YmtLSj~woE`ThEPGccBs0;D= z%uQ@Pj3dK$KDYI79!=G98X361TFU0`bmmU}>n0)X3W`7?F6qb}O=hmNI^tz}yuP5G zU+kbFv3*@zpRQr-yukRJ*6D`dFM{Mso5V*0^U*0XyO&+b-ZHaAP%PM}#FY9|_3 z<>t7AV9+>(Mx*D~HdfblJ=Z&evc4+44BW2Cw}))gzK7W~@-kol+lZ`!SMk#eh;+7? z1A@)5oS!k**Fl!K5rK^|2fl=xG+814UF8Dx1J?U_&ft8lDH;)v{rco+Y`M|igtSHA zrvRv{;!OYf-3GdHdHyU-~}$kz|v_#|W~`2aS*6z{2lq@*1u& zFatQ&yowuwIM~6zOC=`0;-b-NkKI!e$vuSYOCDZ@yiw7DkuXHB6-8GO`I|>PkOWc4Uh$o=-lvZ5e?k-x^^O+J(kf6$< z`0U)AdY6@D#~-_m)_7Jdr~k(VaNO(B`H0IEiZ~i%KfV#n zG*Dxn{g%+s4HlQ!AXfACtv0 zqYkd3ib*pdZ(Sv&%SA}^gLyA5-)M)xHOS{^&l<2p4l$oy$rs~dcjqfe|^IP8GhwifA7 z0{0Y`cfW%o0ZTMXw&WXdlG)SGNjhJnzD>KHMRCbZ$f8hRR|n()jDgwxHd#;w#4`Ij z#k`$Y`_*3vdY_q~Ww;lWDq%yIv!O4*eOte4v%@iE2B$}2sRk2+pzq2iP}tn)!~ zzFr6_1Lpf(b!p{XNk}p+E}EK1$u}HPNQEd?wv`N#*X{l%N=UmvtJ8((P*f%uC_9@5 z`>zYQdw96(HG9`Vp?62`Bf%OcxjO_h-!%>BZ?kEjp-4ItZNlfQUS}?DbnnR(unXw# zBtVdao|T*g4*&uT^wuWHhQ(FRV7l2dN{!Z)Jfa%nD>$CC zSj2G<4c)E{`xc@5Rrwazj>(K)45*1fc@v?1^QFIjWI<*i{Jj2MgUBfS5EwDDqV6~V zqO@!wHvgo4du(OEW_8+iwhis8Ga7Tbcwm1vJ76DAd4SlmS{HY7X#%lhFJHlxfJ42ZFXEEe#4(4mulhSF@G5Z{0$^;| zcrw&KCzQV293&K8ot=jCY4PpdC1!2E%hN8n)|gcT?0t`9W~ADo(2Vpmd^ldUq`}6| z%IH~?`5{hFr9^d8EuROOnQQox5Wv{4t}dv5!u|naj_k0~As%x}@V9o=Y{K-AegZ$( ztPu&By~G>ar_47YQQwN`-diwR&u0gz=;#i5w%(J%>01(#zaHQyG8mIgvR%_o=Bf^+ zyx(=Ac%3M%yLf}c!r(f&52Rn8h`MR2J7fg~1eID+Bp+;+rQ5sjCUB73T8+ zpEDVX`uZ_crAUvouJUVnBh*d70wg@x6DK`*02f5@Q1X27D9p#q$vZS}K@YcUVdi~D znp_H$Cebg%HNrhBfh7i=1`hlE0(StY7@5G@Z+jS{OgrEZLgFgc6C~xU!p!XeXXS!v zGEgd-kQax^11B|AC?$c{H(nM;2=q&hWjd(XqgBVrw<5W=pbTjEk-v2TncU8~z=dDb zIjRPMIWBE7!B)Y1sU=9FSG>z(aIlT3BoSf=fFqAg#Cq3Uw$Vq$+y==Lr<6O^XmEqq zU{}_y@C&2?w`Jgk7H=AvQxCOLxMJfmWw3J>tWCp=uXV+5c3c(6d0?iiYDh!tZ!M2; zq2jXB#v4Nn?K#;^b62h1*C*E^)hyHU&MNtHkf8d-;eI%e1sR0{RjlcUb?%i#Rh*o+ ziF2BKdAEQQjsjrcNni6-PO7ESi-pXnyFM2faGcg{S=Zp;;8U5-h}LaB9t;bJL;!#o zDwC|9R1=S2Yj#WH)qA|v1PHV$#YZdPvGe*4|0&l)kZecbuH|JpkRIq?+7qV^4!c&P zU(Q%!zIUTkxj$GS$mr%Iij!Tc9Hi-O#1dPRS;8YJ{331)T@b+N4m%Uw7rld1;>D$} zI6Iv;J865`LMdJzJs__u@MSD)eEe;TZeM&oo~;^Q+q#@jh%8da^mbFvGFm*RW!n3A zI+Wn-l5%|PgD#eY0nR}b7jK2Mi$vqY|*w|*i`xC?RJ!vS*1uZ1SXQ@haEQwB2qh$#u*iz_*?ailNb)e1x{*R=I|7Pk4 zw;-P~zWYoVSwOjsyogN{z)>7A z4lE%y1&{vJ{l;>}t)7;uV^9ymACAFL5 zV99wYnY0^JGBBX5&Sr*Wvg=r%KGh9WqSkt+sq2NIs_XH`=;&A~lL3~2n3$r+)mB&b zQC7But!+H)3R>C*9^D_z;H{{W!29_2l&X#9Z)VbD}wdowI9GnK9eT}q*M$~%1C&s+Z(M1C7m>c)w>RF?i*)F>M5fK|7xm$H|O;1~lF z8C+Z88)P*olz<&F>IwZ4u5F#U+16lWv1UA##q05YqbO<=X}I=yK|4Be5W(EpH$ssq zz=40LQ{6fFo&i0k0MI!fvCcdj-2Pw*OLf z!Gg}Wm$%op1MkXw6LG8rd!EbKXJGphi-w@CticiA5t=3bD-BDMT#rQqfu4(jr+@dD zlq@pv+^AYeC6O(%%%I8#OjJKgL`vAI(fBz#oW`-~H8O6SR+-+qeXh}m3<0l8>%K8e z3pN2FCj#)C*=sL+>gfQ{OY*KhFejz#txXD_3S6%GePTBZnmnJ6f5phD9Td)QyIY@{fGdn0=>%{AalL%XJDD{vuZ=Kr)|NyV z5T+_M&@MVdGcNFNv{jDJ)cuo*K5C}^3T!Cp0I{!|MMfBEtgfa)$h`%x2wP6F_z?PR z`=(fz<2-8a%farP-t1@xMp3a zpYi5Z3Ez7qhL_X+!AyB4Fabl!b)) z{?)NxW$V&v3M2+hAp}T7DolSs0s1|A?OOPxWHtun;0@BObfR;PcNX33%E6cM+rvTL z?VwxVAj?U}sA#JE{g(1W*umEK44Lk!ysrTx&(Ao5?);fAEiL>$;Dxy47+J0%MZ#s> z$?VZj6*f%2#8Kdap2~r8ow+|+nMDg9P(qlogAXAZh8v%6eir z&>qEJLNm7kjZe$`w|il7;+o88=H0D0T>nVzvh1^pe}djjEF`}P^eAk6@tb-PxdpKN zds~?pFNwiSw4NI%4&ub&ARZ>}7dc=F99|i}AC&WO@LXW*J0#H6rA76fqMLJ;{gas) z9v&_wCEvMZy!N9!76Oe1slcLoA_-GZh3! zxyV}HdAZN}AHCacNU5Q=N~lAxJ-x@JU*^u_UFOp}ip*HNu_IeO5hAGhf14px?&uON z7Jd>GPJUoBBMGnM607{9l4=a#JvHl|00B^@%FzR-N4wzEBqXqVaR0tFUDRCcS?>lW z^fvn~1%im$*5Dfkp_IS3*gCLpGZKK=#hsu|w++Dc1u^*HGtY=sn6z37t`Me2y6P>` zBPq6y4fd$@I{EM1kQBi*(pA_n-u6c3cZcfzavYs2N@)UJoFGX2&a~N03=hPhsaJJ# z^{xy?bpNYb?k`&4M5}=sE^Z$PH^3OziX|iThw>%C7NNG>AV|Tp!PP#sKNu|n0}GTY~FjsQ$bxm3PlL`Ci28@Qft?du;+F>+be@e2is zHc>c>S#~%ocSemw`Ex(Lap0vhJR+CCgc=L)vQzVVGk^n%yW@6p!zpEyM@ z`GX{AVe{r8uR`HCI9ZQRKUNjZu6tHBpbL1QbS#-%-tgj|7E=ZC}MKgXl06veL;lB z?9f$}38|%P7Zg)|zNdwf-u4CUDqN+JQ-W{R`|0~wZj@CPI!QT;e-I#}8BlP;cNmi} zdl@?}CedITt<*@x4Z>AwWAx!z^IV!6ct9aZMrq{>anT+doWA>CotmeH4>FZ}150P^)cP_%DS~p;P2n5rV zM4)x9TA~io(|?slcxZG|)kthixKnj!USmDh;MRad70!caA>_V6CzhT=BI!{Tm<%Pw z#M)OePx^XMg8(Iy@9xf8$>$grbFWE3p?L*X2g0shUvxrc|7$>BeN$_|1fp78STzgm z(hx0~IxG2EQ$<9R0_e+<)$8A{`prlGr=uVk@qd~=b0tY%%r;M;!GA6#)1*m~v+X+2 zsthM#yDSN$B>t~Sl{3+~`01rcg;sl5G$xLWM^t;bRF!i~e8;Q*3*8TroBwNtsBdpN z-Whtw9@E;k{fo=`a=JwcB&BYXBSb71SY@ag2l~gS z#42J`6YRB)UeUBeK!No|{)e*uzs5<4F;d&N3GX_igC-^!aniGuyROqFvnpRIg8l!u zWEC+zV3K?FKA<#&iUr^)DtYaiQ2xI-XFVsA^71KVw1PZhFSQsuJ92G=rKF?LGE7$_W^<>wu%qV z8%M6?C6vW=o04qQaqaAA4%STRvUj7;NM@_k4K-b`n2cA20gyUWn>Ehma;YzevKu z!!_Ha{_hiFaEO5-&Fg79?xa~MoE^6w08d;pR%4~!^spyM?SxUMDxZI-;#_5OA-O)^ z-DG%I*g~jzV-_z1r8EVFQ&>(g>L?l4V!?ZI62Bd22x3zHDbo{0H>Bl5Dvj#oMYbNZp6sdD? zS=q*Ke~z2Us^zLJtg=~&2ZI(q9vk23e>?$40iKBh^l7Ik;v=M4<~2}$tfVyXWd+5a zy`}$)G%G!`p;kfsR;I*UXwi;-V*f9$Z+4%aUq_@|$l!zJ-U%vsq{Ip0;>oHcK3OGL z31km*PBVb0FDIva7_Rvs-fr8&6z3adH7%irw@;2iyS9HK z*b)*xo~fsB<$p&7S~fYUf&vTp`T|{@860j<)?Mt`@{|tUL%2absqqwb=2O~9bUHJB zycI^eU!Z>&lhq%22`tw|4O_Q1&=N+EP@xaj8XVE9c+?-}L`_H&4TtPSAAG#DB&haJ zeqYmY;USdGv_aEsy4pWmFxPD3hKWR7RmXJxas)h;pI-f(RBXBq;q7~>Z}mO9&;VC3 z!tLeD3D-M5=$?Ck>P<`r15bzys}j=JS-Za<0Y9<$$X-;FF7pl`%pqkR|9g`EYg4TcHuYUYGcqz7&-!3nK_9H&-;-;(aNo)Y&HVdA=n!sP zDhMaO$~pa%&<1pLdsA_r8^SV2jtVLz=yqxnd zw;O5l;-czJcYkU*Or{zZAsaq&6W#Xs4K%*_Zg#l;e(1HwVSNX!hri{T^X>h3^2uf+ ze6cM4P}?20?W42oPMH)#PF-1;F5_^rj%Q!jmRIrxH(sUpOqaEFRmVHY=X(<_>)K`8 zkxCSi8w;3Mb~I8c)jFu#7OVIp8?#K6klvpg)l3Nahi^%iYb|e|Uu8>9Q!L9uKTvsds#9z$=^G zx+ZQnr>nsSRqfuJAwn5-SI#f5H(om|1`!mi&Pz$zbcf%Vn2F~MG)JXJpFK#%D;bxrwx^r`W@0tfF%Y02)X{ZI<~$<+9h^%hdhL_j<1mCzx>Yf7zp z9~I?#_b9;pWsQi4gq1w7OgF}JfV}-~=Z~FTvOcRkhs@l5o_*2w-Al@ym0@Iq<`TV@ zGo6%(bA1jIGpbs^j*jJulJ`TivuELOTO%c=Uy!fm=mvb zgJ|ZBQf9H~uss)lQxTX(>h6NJLIK^~L-~`sIZ-K3b4;GEDi)Ql>@$VaZnm)O6<+~S1#tKy$g7C$1EmU#%U8?X0mn`x;~*XiH%B-iqq;k4MQ4X0t? z%zip#(7)ni*QQ7vmgWz8uU5UgIHc3^JPFitei?ZGyy;p>k1;~x3e)-6|4)0RC2M+}^o&1uvcL9IzWJsbdy+Z}BYyZ$&=gK;^uoL|maEUmuLDZJ9t(3TjhR z({;8F>UTZ{@0Yi6(WlR8;#3!2!dsQ9vX#fzbJzAICTyQE2CiUj-qw0=Z}o}Kuu;j+ z+j|6*o}-7`F`}&jcJsw0^Ct7;$@k;Q^yAqU=C9W&{LwL*yEOuJh-eJ?sy#HC|1D0Q zQn)&6 zJ=i*)GG^UV$d}Eb#aVAK2bhWP*Y50fRW^_V9 z8NS}+SfBj$a5A_LSgN{C6}8iOlO3V)ju#u@L7O@uIr(n?Yk~v^Zmva1EQ*sW-bBYG z5HX#Nd8eS(<7@Gxf?-);XHbUjUeyx(Ql%>a>I>XX9iQrdQJwU5+_gpsl5eJEw+z#G zKB4}iS#hIpq)MI^Quc?Dkw>cqCp?xn=%~%msqdi1F+4HRiEFaMOwQnj4r#wu zg!EcGU+tURa8I$B#hK*WQ*PHrw%^LWq7Ic9JhPsFB#CcUAPurr{_1q$&2oF%iCoee zyzF>$*}Hh6q^H+&hJ;@(xS{xcTmruSnXgmlsObsc1Dh{u^VQL0-J;Tv2ovUowrx4U9cVO#pOi1{>FuRz z9?uq@bhffgRe{FzG5MBK6uNcPcg6`n#{#PvJ91Yvp}ErPNzvwXWqKcR^V(hj1p!ht z!4sN51r4ziC~;V*=7&}q*V`3u#<$F;Qa&x=>o<@0*Uq*V;|DHnmjnJ~;KXZQq(|x( z>p$UGM5rGo20T{BGf?lJZkOI7cwGl_a-T$Hl088(>n<0{iV)x`)im2P#aTiCDu!y^ z+k*I$*;3M?p#r5L7L`gm-K$PC$){x0>o@aNCBSCdlfuN2-Vj0Gh(SF{Y?}FWle1h^ zsvGgtxLYdc)dHV4^!1AekIPrbe&u_RD-k`E?!@b#PW6tc1OcBpibx7pR^xT2-Ty@a zjcMWt#L6TC%J-nFn#`ev6C3WU4uk(U0~E2g3Yrk&y37{SkNEl_s69}p$i!$1a}K;* z)=d-h#Z-^r05a$QQcA-y=|vmd8AYlfvn=YU4hH?+*OO1Jm@Pe5f9J!6FkZ_~v18?8 zqz0Ki9WQZ0yS6+uEI866RZM|sr4(go5;u69TfZ<-y4ft~HNFzdJsO~;=k^yht#;d# zisUs~v&*Y8MNK7Ot2;lxB?15i&z@RNC*%QrdVFcwpuC7(o$8K5Y9cye0Av4|b;nr0 zE$Eu`trm0SJ3ftJ_2O*B`iVN)L$8=V%em@bIB+*N#bX?fyBykXAC|3-Cw~|*K;}VL zc?cQog7=U?H12o+`p`8K6|dKO2S2K4F)Lq(e|S`hKxx)6Rocoq~v;VgF%c}K_|pU#$>IDbPr9ve^o zf%hO1FeisQ1v>GEHD6@nkLDZgDT*?ZCNiGvmph8JzyI=Qj>^;RYkEkCp3LMzLkMF0 zaql>Pz4x+FeMP$c#KiGIN%(oUmDZ6(Un_Ao?W^;(PyfvXVYee1OF=^TMQoS?p55kqO4AJKV+6x;sPJdaNN5$^ekf zV>4ldU9&&Ou!6>`0=Rke&~lkfwODRW?Tt(qhkbsz59j$jE8a4h+SDH%r5V<|k;#7) z4!F<%#(1)ip2~aW?`9igYDxeKKx6CB>L}QEf~-mq7XSdj3^M)cxc+?A^5FKEoM=Dq z<7Khd>EDaEML3y#K5YBf)mzB#it;x})I6VNV>|Z!+7Ir@vnO+x=(hjOw$cz6F6#gmdKaIs13<_F%*LbHB-lHV(-HFN@ zR(EupHpFx^@Gf5RIi;BBKXzrG!TM7F0$lzsemmZ!?QnlG?!Vqaz-RPfmgUc^y@(YE z0|P?_!McLV2BOTD1?V`u)Zt#9Z*^`DW>&2)SeGqN!RH(Q(H+=s=XBoVPS`ibxv$2} zFD~1J)n8xiE?-Wpp9h4ze^v^?04>&fZiIrbhasPCj=jJ9_M&jtSN}TL#{4Ik4Bjpj zpks0GBV*v)rDPnAlV?bR`cGIn2x=SeE`XQw%pMV9NpVDaq>P7`V4&0u)g;B@U8 zoD9wokfjwD-_|h0r-_-}^!elDis+pR zHWM-|r6T>yOOQBIE-STKet!?h*D)yO;8wQaZ9UA_tF)Fh{4cf6#|%cq`o29~0FO$Z zK2+o<%JygWdx&=@qkr<(3yFbfblJ-1_?-9NR(03toVTYR_{Uql{Sy5o-xWkvyYY{7 zc5BljqvXXLhc7P>CF0NHGrB9k2@^#&V^}utJQ=?haStv&YmN@7Q64e3 z(}nTOQ1;DaFnlWSlV=pKn+YVVBv2Thx!`?D6}2q>^fQ{?7=|QMP~K%wOPKo#k+~$a={{FGETa(1#VC zPCS22Il$GrCDTvo3uWaO}8>-BTO zNn_Z(cVDCUA)nXFbyr->fWE!?-J?&{Bu_9zn0Cd*3_I><9(?#QHgAn2aX4=15K>YC zyz-wp%y{W_zWRC%$$2D!k1I8ueSrIVQ9TYex-wrdxx zY6`#1&CAHj&I7W-Dwi2pB?_YG{Pimq#(Z06@-q} zA3dTw<4Eox5)_Y$nONuGa=?rjF`P5M^BsEk?gc<$Q4#OVdzT@D2Q%f&Giu~6yzl}Z zf8t3B3Ysi$>Cy^_&?pqmh^!VZCuK*)rMY%(C5kVKY(fE8O6q@opz)TQk?^>|K?^|ZA@>!BzW zH)@3zL0S<-ih_cGfFy(^34}m`Aqyi22!udbGBcUE_w65(gaCtt5R$Y!pT9C^?!9@F z+$8t8_kDj)5*;Gja=f^NJBJR&THXVkDna=zYw(M4BG z#}0IL#`5Rcp_e4~?$M1yM~-sxRB&pQ!)|BtgnO}DZM?f=8Ge6&p4}2y|J9bNg~!$H z%+6t3`YvWX{|xIkrgG-&Ioe0Iy=*&xsP>WEH6n@drcD?N&i z3;V9lE=0ADq|kkk4w3D+|DL-zdh7&UI>!*^a8Ts_hCaQzGx5iF^Va;ubdBpwZ08ut z$~+_v?oWQ9o6>3tSibUd7A;xM)Q2b1yjcWA?t}E}(=+5atX3-n`rSsmwyo*vjHOS{ zTbVugA64%+ZPJ7x18-+r#;(hvcRNP4=l=0ySi2#G__$c&<6_CnFC<_Xj2ktKl(cmE z^zOlJx;y&|i#SnSLbHf)?jJuEkHPgJTl&w|26U8S>_;AH%JU#VcTDNLJevz92eXsnW;En-(>C!2NZV65j;=8cwiw%u7 z+WuVJFI^UGc?$?R6R1L#Y4?w1QL|$;J+2fW7c2%`N-;sBgYhxSviNE{DX2biwd0kx zGn7#^bxK3y`pc*&K?kc^({GOk3PNtDiLSi(F${m>`Wi%y?cJNh`~~mw`{$qIyJN@s z^|QYrJw2U>h;Zh;^A012C6k)AjgOWsYv`fgv`(EaW!IkE%la{#C@x`FcJ4+0s5(VQ z;r04hx_lMKi%&A=?FIbk?$PAs7xMYKjrBcraf2A9NnXJL2K9FVP;%-th3?pOMv`>LK(=RQv25iU{Qe6U_vg=-@xshGj2W4Xt5*+fHY?jQve=rwlYn86 zzAKx6VUV4(kJ!%93>!KKkJrcAjj3!%NxSI08<{+WtUbAuoIXP+K3_TMJ9p!$NI^18 zGdNb84Z|=A3k&1x{37-jgucOXy7UY)UVfADV@J}f`z<)^4pO(KvpsVcpxBlfyvdrg zFOM#rqe&hz5TDP-`c0{P`BmCQ>tjUC`Fy@$Qd2@ar%sph{ESz~D>y*wRxJq&b1^XAx7gj|zuicnJY^P{CMMqJ5vV=eWWe%CUbE=LN9o3$0 z3C@sdXG$sd?JuNbRC}VLf;ZYc9uLQhPqKI4e%iHb!^k^_V45agpO@5anY{GZx!g4( z8G!kVm$ETs8!eheP+U@i*XzR{C?_w!hyndB6ct;xXH*p+hH0{D?FNnGG)B*e#Y{KQG7zx)Q7S$pdKhgnCwEe7=B zdx{T*-fV=0-OIeNYl>dH>H1@L?K8B!sVv6;Gtz?`aeWh~D6JL(DEOdy zV?L)V=|h5jK(HuFVqwnJQNV#1_{IDF&?Hk*x?{xqGRO?i~p-<->=S7s9k zacA;cSgdwzO|LDH#unBTi&gH8i0kL~o=4aAuA)*nnuc8JcGC+F59h5}e`NW}HLO}I zMQ%+PppPniW@w%DqTI!D^qn(9BQS?Y755ZKt%FR_(>A z>l|*4h3j*t024q38xdYkv9ju8tsf^uVH)t+rV=bZP_VYL_z?eloK7dRU!Da(bWAi; zraVg5_;~J2PUh}$;{bSK+Ejk}$mE6`rVyf$YTLRco6~l%Eu%(Ly@jY#7K;V1uRPcv zMv9MyqgkxO91ql{_y8$DE}}H=ReO2W=~tCZ%`7S|^3i&FoGbZ4s?@}Z)_7OaETA$k zIlr~l8!{>DMyOc8UYT7N9oHvm@TJ?dwt7ASRXOcyu+x<^d-(9-Rkxty`z4K1T2*#c zH#KVJjUBbPkph7LcDo%-a9;LPKcB|?ix)BXjn{~5*A~+>aX1{5`^v9+EFr|r=g{G! zEL`$2#g|0q3Q-?S)8vEYD@os(-Oxk1iK#ctc*kSRQ?-7qC-WSt@!CC~Gzm0)M?)a4 zjcvWVhWoj*Q@6+UNt&S)F9J;!dbQJ)oT1R)>itJ=*HD=l}D`}@j#b{FxpsGVU zGu+uJJL+}(qD~z=bcnfc|D6%ThjaMIVJ1(Sgwq*^VHm9VbR|Va2Z)S}aNG1VWmRgcmT12hLFR&)V!P|;PrXxEmE_`XAjYi)fWbOMT44Y8H&M}YHM z^E-ET>g)AAeo^;UefBx4*L(pAI>p5B;DiZyJYHU%^E!n^h1l&5e6omB2qAanltbz6gER?%_!Qt#plJ2P|4GFfDpBfSE|F3GAf>oa+1xqv}Nx>40g`{AK#^Rb&uzJs36KFZ$)xg3g>*{hG z@?TyE(Wq$CKwGR=-%yC}rK`;#t>x~f0ZK0V#PzG}Twm+`O{1a{sSwwp7UyBx+~+$0=cy#gb+dq zA%v(mQh*2{gb+dqA?l43AVLTsgb+fAdLsph5JCtcgbWvg2LI@#*5JHH0^IyARA{}NNE}{Sc002ovPDHLkV1jr%pf&&i literal 0 HcmV?d00001 diff --git a/stacer-core/Info/cpu_info.cpp b/stacer-core/Info/cpu_info.cpp new file mode 100644 index 0000000..0da2ac6 --- /dev/null +++ b/stacer-core/Info/cpu_info.cpp @@ -0,0 +1,96 @@ +#include "cpu_info.h" + +CpuInfo::CpuInfo() +{ } + +quint8 CpuInfo::getCpuCoreCount() +{ + static quint8 count = 0; + + if (! count) + { + QStringList cpuinfo = FileUtil::readListFromFile(PROC_CPUINFO); + + if (! cpuinfo.isEmpty()) + count = cpuinfo.filter(QRegExp("^processor")).count(); + } + + return count; +} + +QList CpuInfo::getCpuPercents() +{ + QList cpuTimes; + + QList cpuPercents; + + QStringList times = FileUtil::readListFromFile(PROC_STAT); + + if (! times.isEmpty()) + { + /* user nice system idle iowait irq softirq steal guest guest_nice + cpu 4705 356 584 3699 23 23 0 0 0 0 + . + cpuN 4705 356 584 3699 23 23 0 0 0 0 + + The meanings of the columns are as follows, from left to right: + - user: normal processes executing in user mode + - nice: niced processes executing in user mode + - system: processes executing in kernel mode + - idle: twiddling thumbs + - iowait: waiting for I/O to complete + - irq: servicing interrupts + - softirq: servicing softirqs + - steal: involuntary wait + - guest: running a normal guest + - guest_nice: running a niced guest + */ + + for (int i = 0; i < CpuInfo::getCpuCoreCount()+1; ++i) + { + QStringList n_times = times.at(i).split(QRegExp("\\s+")); + n_times.removeFirst(); + foreach (QString t, n_times) + cpuTimes << t.toDouble(); + + cpuPercents << getCpuPercent(cpuTimes, i); + + cpuTimes.clear(); + } + } + + return cpuPercents; +} + +int CpuInfo::getCpuPercent(QListcpuTimes, int processor) +{ + const int N = getCpuCoreCount()+1; + + static QVector l_idles(N); + static QVector l_totals(N); + + double idle, total, + idle_delta, total_delta; + + int utilisation = 0; + + if (cpuTimes.count() > 0) { + + idle = cpuTimes.at(3) + cpuTimes.at(4); // get (idle + iowait) + foreach (double t, cpuTimes) total += t; // get total time + + idle_delta = idle - l_idles[processor]; + total_delta = total - l_totals[processor]; + + if (total_delta) + utilisation = 100 * ((total_delta - idle_delta) / total_delta); + + l_idles[processor] = idle; + l_totals[processor] = total; + } + + if (utilisation > 100) utilisation = 100; + else if (utilisation < 0) utilisation = 0; + + return utilisation; +} diff --git a/stacer-core/Info/cpu_info.h b/stacer-core/Info/cpu_info.h new file mode 100644 index 0000000..0b26d48 --- /dev/null +++ b/stacer-core/Info/cpu_info.h @@ -0,0 +1,29 @@ +#ifndef CPUINFO_H +#define CPUINFO_H + +#include +#include +#include + +#include "Utils/file_util.h" + +#define PROC_CPUINFO "/proc/cpuinfo" +#define PROC_STAT "/proc/stat" + +#include "stacer-core_global.h" + +class STACERCORESHARED_EXPORT CpuInfo : public QObject +{ + Q_OBJECT + +public: + CpuInfo(); + + quint8 getCpuCoreCount(); + QList getCpuPercents(); + +private: + int getCpuPercent(QListcpuTimes, int processor = 0); +}; + +#endif // CPUINFO_H diff --git a/stacer-core/Info/disk_info.cpp b/stacer-core/Info/disk_info.cpp new file mode 100644 index 0000000..2f2872c --- /dev/null +++ b/stacer-core/Info/disk_info.cpp @@ -0,0 +1,31 @@ +#include "disk_info.h" +#include + +DiskInfo::DiskInfo() +{ + +} + +QList DiskInfo::getDisks() const +{ + return disks; +} + +void DiskInfo::updateDiskInfo() +{ + try { + QStringList result = CommandUtil::exec("df -Pl").split("\n"); + + foreach(QString line, result.filter(QRegExp("^/"))) + { + Disk disk; + disk.size = line.split(QRegExp("\\s+")).at(1).toLong() << 10; + disk.used = line.split(QRegExp("\\s+")).at(2).toLong() << 10; + disk.free = line.split(QRegExp("\\s+")).at(3).toLong() << 10; + + disks << disk; + } + } catch (QString &ex) { + qCritical() << ex; + } +} diff --git a/stacer-core/Info/disk_info.h b/stacer-core/Info/disk_info.h new file mode 100644 index 0000000..6676c0e --- /dev/null +++ b/stacer-core/Info/disk_info.h @@ -0,0 +1,37 @@ +#ifndef DISKINFO_H +#define DISKINFO_H + +#include +#include "Utils/command_util.h" +#include "Utils/file_util.h" + +#define PROC_MOUNTS "/proc/mounts" + +class Disk; + +#include "stacer-core_global.h" + +class STACERCORESHARED_EXPORT DiskInfo : public QObject +{ + Q_OBJECT + +public: + DiskInfo(); + + QList getDisks() const; + void updateDiskInfo(); + +private: + QList disks; +}; + +class Disk { +public: + Disk() {} + + quint64 size; + quint64 free; + quint64 used; +}; + +#endif // DISKINFO_H diff --git a/stacer-core/Info/memory_info.cpp b/stacer-core/Info/memory_info.cpp new file mode 100644 index 0000000..32149e8 --- /dev/null +++ b/stacer-core/Info/memory_info.cpp @@ -0,0 +1,53 @@ +#include "memory_info.h" + +MemoryInfo::MemoryInfo(): + memTotal(0), + memAvailable(0), + memUsed(0) +{ } + +void MemoryInfo::updateMemoryInfo() +{ + QStringList lines = FileUtil::readListFromFile(PROC_MEMINFO) + .filter(QRegExp("^MemTotal|^MemAvailable|^SwapTotal|^SwapFree")); + + #define getValue(l) lines.at(l).split(QRegExp("\\s+")).at(1).toLong() << 10; + memTotal = getValue(0); + memAvailable = getValue(1); + swapTotal = getValue(2); + swapFree = getValue(3) + #undef getValue + + memUsed = (memTotal - memAvailable); + swapUsed = (swapTotal - swapFree); +} + +quint64 MemoryInfo::getSwapUsed() const +{ + return swapUsed; +} + +quint64 MemoryInfo::getSwapFree() const +{ + return swapFree; +} + +quint64 MemoryInfo::getSwapTotal() const +{ + return swapTotal; +} + +quint64 MemoryInfo::getMemUsed() const +{ + return memUsed; +} + +quint64 MemoryInfo::getMemAvailable() const +{ + return memAvailable; +} + +quint64 MemoryInfo::getMemTotal() const +{ + return memTotal; +} diff --git a/stacer-core/Info/memory_info.h b/stacer-core/Info/memory_info.h new file mode 100644 index 0000000..a73469f --- /dev/null +++ b/stacer-core/Info/memory_info.h @@ -0,0 +1,42 @@ +#ifndef MEMORYINFO_H +#define MEMORYINFO_H + +#include + +#include +#include "Utils/file_util.h" + +#define PROC_MEMINFO "/proc/meminfo" + +#include "stacer-core_global.h" + +class STACERCORESHARED_EXPORT MemoryInfo : public QObject +{ + Q_OBJECT + +public: + MemoryInfo(); + + void updateMemoryInfo(); + + quint64 getMemTotal() const; + quint64 getMemAvailable() const; + quint64 getMemUsed() const; + + quint64 getSwapTotal() const; + quint64 getSwapFree() const; + quint64 getSwapUsed() const; + +private: + // memory + quint64 memTotal; + quint64 memAvailable; + quint64 memUsed; + + // swap + quint64 swapTotal; + quint64 swapFree; + quint64 swapUsed; +}; + +#endif // MEMORYINFO_H diff --git a/stacer-core/Info/network_info.cpp b/stacer-core/Info/network_info.cpp new file mode 100644 index 0000000..c7e7ecb --- /dev/null +++ b/stacer-core/Info/network_info.cpp @@ -0,0 +1,43 @@ +#include "network_info.h" + +NetworkInfo::NetworkInfo() +{ + QStringList lines = FileUtil::readListFromFile(PROC_NET_ROUTE); + + if(lines.count() > 2) + defaultNetworkInterface = lines + .at(2) + .split(QRegExp("\\s+")) + .first(); + else + defaultNetworkInterface = ""; + + rxPath = QString("/sys/class/net/%1/statistics/rx_bytes") + .arg(defaultNetworkInterface); + + txPath = QString("/sys/class/net/%1/statistics/tx_bytes") + .arg(defaultNetworkInterface); +} + +QString NetworkInfo::getDefaultNetworkInterface() const +{ + return defaultNetworkInterface; +} + +quint64 NetworkInfo::getRXbytes() +{ + quint64 rx = FileUtil::readStringFromFile(rxPath) + .trimmed() + .toLong(); + + return rx; +} + +quint64 NetworkInfo::getTXbytes() +{ + quint64 tx = FileUtil::readStringFromFile(txPath) + .trimmed() + .toLong(); + + return tx; +} diff --git a/stacer-core/Info/network_info.h b/stacer-core/Info/network_info.h new file mode 100644 index 0000000..430d0dc --- /dev/null +++ b/stacer-core/Info/network_info.h @@ -0,0 +1,33 @@ +#ifndef NETWORK_INFO_H +#define NETWORK_INFO_H + +#include +#include + +#include "Utils/file_util.h" +#include "Utils/command_util.h" + +#define PROC_NET_ROUTE "/proc/net/route" + +#include "stacer-core_global.h" + +class STACERCORESHARED_EXPORT NetworkInfo : public QObject +{ + Q_OBJECT + +public: + NetworkInfo(); + + QString getDefaultNetworkInterface() const; + + quint64 getRXbytes(); + quint64 getTXbytes(); + +private: + QString defaultNetworkInterface; + + QString rxPath; + QString txPath; +}; + +#endif // NETWORK_INFO_H diff --git a/stacer-core/Info/process.cpp b/stacer-core/Info/process.cpp new file mode 100644 index 0000000..6c758e3 --- /dev/null +++ b/stacer-core/Info/process.cpp @@ -0,0 +1,146 @@ +#include "process.h" + +Process::Process() +{ + +} + +pid_t Process::getPid() const +{ + return pid; +} + +void Process::setPid(const pid_t &value) +{ + pid = value; +} + +quint64 Process::getRss() const +{ + return rss; +} + +void Process::setRss(const quint64 &value) +{ + rss = value; +} + +double Process::getPmem() const +{ + return pmem; +} + +void Process::setPmem(double value) +{ + pmem = value; +} + +quint64 Process::getVsize() const +{ + return vsize; +} + +void Process::setVsize(const quint64 &value) +{ + vsize = value; +} + +QString Process::getUname() const +{ + return uname; +} + +void Process::setUname(const QString &value) +{ + uname = value; +} + +double Process::getPcpu() const +{ + return pcpu; +} + +void Process::setPcpu(double value) +{ + pcpu = value; +} + +QString Process::getCmd() const +{ + return cmd; +} + +void Process::setCmd(const QString &value) +{ + cmd = value; +} + +QString Process::getStartTime() const +{ + return startTime; +} + +void Process::setStartTime(const QString &value) +{ + startTime = value; +} + +QString Process::getState() const +{ + return state; +} + +void Process::setState(const QString &value) +{ + state = value; +} + +QString Process::getGroup() const +{ + return group; +} + +void Process::setGroup(const QString &value) +{ + group = value; +} + +int Process::getNice() const +{ + return nice; +} + +void Process::setNice(int value) +{ + nice = value; +} + +QString Process::getCpuTime() const +{ + return cpuTime; +} + +void Process::setCpuTime(const QString &value) +{ + cpuTime = value; +} + +QString Process::getSession() const +{ + return session; +} + +void Process::setSession(const QString &value) +{ + session = value; +} + +QString Process::getSeat() const +{ + return seat; +} + +void Process::setSeat(const QString &value) +{ + seat = value; +} diff --git a/stacer-core/Info/process.h b/stacer-core/Info/process.h new file mode 100644 index 0000000..0b4e3a7 --- /dev/null +++ b/stacer-core/Info/process.h @@ -0,0 +1,80 @@ +#ifndef PROCESS_H +#define PROCESS_H + +#include + +#include +#include "Utils/file_util.h" + +// defines +#define PROC_PID_CMD "/proc/%1/comm" +#define PROC_PID_STATUS "/proc/%1/comm" + +#include "stacer-core_global.h" + +class STACERCORESHARED_EXPORT Process { + +public: + Process(); + + pid_t getPid() const; + void setPid(const pid_t &value); + + quint64 getRss() const; + void setRss(const quint64 &value); + + double getPmem() const; + void setPmem(double value); + + quint64 getVsize() const; + void setVsize(const quint64 &value); + + QString getUname() const; + void setUname(const QString &value); + + double getPcpu() const; + void setPcpu(double value); + + QString getStartTime() const; + void setStartTime(const QString &value); + + QString getState() const; + void setState(const QString &value); + + QString getGroup() const; + void setGroup(const QString &value); + + int getNice() const; + void setNice(int value); + + QString getCpuTime() const; + void setCpuTime(const QString &value); + + QString getSession() const; + void setSession(const QString &value); + + QString getSeat() const; + void setSeat(const QString &value); + + QString getCmd() const; + void setCmd(const QString &value); + +private: + pid_t pid; + quint64 rss; + double pmem; + quint64 vsize; + QString uname; + double pcpu; + QString startTime; + QString state; + QString group; + int nice; + QString cpuTime; + QString session; + QString seat; + QString cmd; +}; + + +#endif // PROCESS_H diff --git a/stacer-core/Info/process_info.cpp b/stacer-core/Info/process_info.cpp new file mode 100644 index 0000000..1d98d65 --- /dev/null +++ b/stacer-core/Info/process_info.cpp @@ -0,0 +1,56 @@ +#include "process_info.h" + +ProcessInfo::ProcessInfo() +{ + +} + +void ProcessInfo::updateProcesses() +{ + processList.clear(); + + try { + + QStringList columns = { "pid", "rss", "pmem", "vsize", "uname", "pcpu", "start_time", + "state", "group", "nice", "cputime", "session", "seat", "cmd"}; + + QStringList lines = CommandUtil::exec("ps", {"ax", "-eo", columns.join(","), "--no-headings"}) + .trimmed() + .split("\n"); + + if (! lines.isEmpty()) { + foreach (QString line, lines) { + QStringList procLine = line.trimmed().split(QRegExp("\\s+")); + + if (procLine.count() >= columns.count()) { + Process proc; + + proc.setPid(procLine.at(0).toLong()); + proc.setRss(procLine.at(1).toLong() << 10); + proc.setPmem(procLine.at(2).toDouble()); + proc.setVsize(procLine.at(3).toLong() << 10); + proc.setUname(procLine.at(4)); + proc.setPcpu(procLine.at(5).toDouble()); + proc.setStartTime(procLine.at(6)); + proc.setState(procLine.at(7)); + proc.setGroup(procLine.at(8)); + proc.setNice(procLine.at(9).toInt()); + proc.setCpuTime(procLine.at(10)); + proc.setSession(procLine.at(11)); + proc.setSeat(procLine.at(12)); + proc.setCmd(procLine.at(13)); + + processList << proc; + } + } + } + + } catch (QString &ex) { + qCritical() << ex; + } +} + +QList ProcessInfo::getProcessList() const +{ + return processList; +} diff --git a/stacer-core/Info/process_info.h b/stacer-core/Info/process_info.h new file mode 100644 index 0000000..d3c857e --- /dev/null +++ b/stacer-core/Info/process_info.h @@ -0,0 +1,30 @@ +#ifndef PROCESS_INFO_H +#define PROCESS_INFO_H + +#include +#include + +#include +#include +#include "process.h" + +#define PROC_PID_CMD "/proc/%1/comm" + +#include "stacer-core_global.h" + +class STACERCORESHARED_EXPORT ProcessInfo : public QObject +{ + Q_OBJECT + +public: + ProcessInfo(); + QList getProcessList() const; + +public slots: + void updateProcesses(); + +private: + QList processList; +}; + +#endif // PROCESS_INFO_H diff --git a/stacer-core/Info/system_info.cpp b/stacer-core/Info/system_info.cpp new file mode 100644 index 0000000..54bd439 --- /dev/null +++ b/stacer-core/Info/system_info.cpp @@ -0,0 +1,104 @@ +#include "system_info.h" + +SystemInfo::SystemInfo() : + info(new QSysInfo) +{ + QStringList lines = FileUtil::readListFromFile(PROC_CPUINFO) + .filter(QRegExp("^model name")); + + if (! lines.isEmpty()) { + QStringList model = lines.first().split(":").at(1).split("@"); + + if ( model.count() > 1) { + this->cpuModel = model.at(0).trimmed().replace(QRegExp("\\s+"), " "); + this->cpuSpeed = model.at(1).trimmed().replace(QRegExp("\\s+"), " "); + } + } + else { + this->cpuModel = tr("Unknown"); + this->cpuSpeed = tr("Unknown"); + } + + CpuInfo ci; + this->cpuCore = QString::number(ci.getCpuCoreCount()); + + // get username + QString name = qgetenv("USER"); + + if (name.isEmpty()) + name = qgetenv("USERNAME"); + + try { + if (name.isEmpty()) + name = CommandUtil::exec("whoami").trimmed(); + } catch (QString &ex) { + qCritical() << ex; + } + + username = name; +} + +QString SystemInfo::getUsername() const +{ + return username; +} + +QString SystemInfo::getHostname() +{ + return QSysInfo::machineHostName(); +} + +QString SystemInfo::getPlatform() +{ + return QString("%1 %2") + .arg(QSysInfo::kernelType()) + .arg(QSysInfo::currentCpuArchitecture()); +} + +QString SystemInfo::getDistribution() +{ + return QSysInfo::prettyProductName(); +} + +QString SystemInfo::getKernel() +{ + return QSysInfo::kernelVersion(); +} + +QString SystemInfo::getCpuModel() +{ + return this->cpuModel; +} + +QString SystemInfo::getCpuSpeed() +{ + return this->cpuSpeed; +} + +QString SystemInfo::getCpuCore() +{ + return this->cpuCore; +} + +QFileInfoList SystemInfo::getCrashReports() +{ + QDir reports("/var/crash"); + + return reports.entryInfoList(QDir::Files); +} + +QFileInfoList SystemInfo::getAppLogs() +{ + QDir logs("/var/log"); + + return logs.entryInfoList(QDir::Files | QDir::Dirs | QDir::NoDotAndDotDot); +} + +QFileInfoList SystemInfo::getAppCaches() +{ + QString homePath = QStandardPaths::writableLocation(QStandardPaths::HomeLocation); + + QDir caches(homePath + "/.cache"); + + return caches.entryInfoList(QDir::Files | QDir::Dirs | QDir::NoDotAndDotDot); +} diff --git a/stacer-core/Info/system_info.h b/stacer-core/Info/system_info.h new file mode 100644 index 0000000..acebe82 --- /dev/null +++ b/stacer-core/Info/system_info.h @@ -0,0 +1,47 @@ +#ifndef SYSTEMINFO_H +#define SYSTEMINFO_H + +#include +#include +#include +#include + +#include "Utils/file_util.h" +#include "Utils/format_util.h" +#include "Utils/command_util.h" +#include "Info/cpu_info.h" + +#define PROC_CPUINFO "/proc/cpuinfo" + +#include "stacer-core_global.h" +class STACERCORESHARED_EXPORT SystemInfo : public QObject +{ + Q_OBJECT +public: + SystemInfo(); + + QString getHostname(); + QString getPlatform(); + QString getDistribution(); + QString getKernel(); + QString getCpuModel(); + QString getCpuSpeed(); + QString getCpuCore(); + + QFileInfoList getCrashReports(); + QFileInfoList getAppLogs(); + QFileInfoList getAppCaches(); + + QString getUsername() const; + +private: + QString cpuCore; + QString cpuModel; + QString cpuSpeed; + + QSysInfo *info; + + QString username; +}; + +#endif // SYSTEMINFO_H diff --git a/stacer-core/Tools/package_tool.cpp b/stacer-core/Tools/package_tool.cpp new file mode 100644 index 0000000..f7a6cb0 --- /dev/null +++ b/stacer-core/Tools/package_tool.cpp @@ -0,0 +1,168 @@ +#include "package_tool.h" + +PackageTool::PackageTool() +{ + if (CommandUtil::isExecutable("apt-get")) { + currentPackageTool = APT; + } else if (CommandUtil::isExecutable("dnf")) { + currentPackageTool = DNF; + } else if (CommandUtil::isExecutable("yum")) { + currentPackageTool = YUM; + } else if (CommandUtil::isExecutable("pacman")) { + currentPackageTool = PACMAN; + } else if (CommandUtil::isExecutable("zypper")) { + currentPackageTool = ZYPPER; + } else { + currentPackageTool = UNKNOWN; + } +} + +PackageTool::PackageTools PackageTool::getCurrentPackageTool() const +{ + return currentPackageTool; +} + +/*********** + * DPKG /var/cache/yum/development/packages/ + ***********/ +QFileInfoList PackageTool::getDpkgPackageCaches() +{ + QDir caches("/var/cache/apt/archives/"); + + return caches.entryInfoList(QDir::Files); +} + +QStringList PackageTool::getDpkgPackages() +{ + QStringList packageList = {}; + + try { + packageList = CommandUtil::exec("bash", {"-c", "dpkg --get-selections 2> /dev/null"}) + .trimmed() + .split("\n"); + + for (int i = 0; i < packageList.count(); ++i) + packageList[i] = packageList.at(i).split(QRegExp("\\s+")).first(); + + } catch(QString &ex) { + qCritical() << ex; + } + + return packageList; +} + +bool PackageTool::dpkgRemovePackages(QStringList packages) +{ + try { + packages.insert(0, "remove"); + packages.insert(1, "-y"); + + CommandUtil::sudoExec("apt-get", packages); + + return true; + + } catch(QString &ex) { + qCritical() << ex; + } + + return false; +} + +/********** + * RPM + **********/ +QStringList PackageTool::getRpmPackages() +{ + QStringList packageList = {}; + + try { + packageList = CommandUtil::exec("bash", {"-c", "rpm -qa 2> /dev/null"}) + .trimmed() + .split("\n"); + + } catch(QString &ex) { + qCritical() << ex; + } + + return packageList; +} + +bool PackageTool::dnfRemovePackages(QStringList packages) +{ + try { + packages.insert(0, "remove"); + packages.insert(1, "-y"); + + CommandUtil::sudoExec("dnf", packages); + + return true; + + } catch(QString &ex) { + qCritical() << ex; + } + + return false; +} + +bool PackageTool::yumRemovePackages(QStringList packages) +{ + try { + packages.insert(0, "remove"); + packages.insert(1, "-y"); + + CommandUtil::sudoExec("yum", packages); + + return true; + + } catch(QString &ex) { + qCritical() << ex; + } + + return false; +} + +/********** + * PACMAN + **********/ +QFileInfoList PackageTool::getPacmanPackageCaches() +{ + QDir caches("/var/cache/pacman/pkg/"); + + return caches.entryInfoList(QDir::Files); +} + +QStringList PackageTool::getPacmanPackages() +{ + QStringList packageList = {}; + + try { + packageList = CommandUtil::exec("bash", {"-c", "pacman -Q 2> /dev/null"}) + .trimmed() + .split("\n"); + + for (int i = 0; i < packageList.count(); ++i) + packageList[i] = packageList.at(i).split(QRegExp("\\s+")).first(); + + } catch(QString &ex) { + qCritical() << ex; + } + + return packageList; +} + +bool PackageTool::pacmanRemovePackages(QStringList packages) +{ + try { + packages.push_back("--noconfirm"); + packages.push_back("-R"); + + CommandUtil::sudoExec("pacman", packages); + + return true; + + } catch(QString &ex) { + qCritical() << ex; + } + + return false; +} diff --git a/stacer-core/Tools/package_tool.h b/stacer-core/Tools/package_tool.h new file mode 100644 index 0000000..b81af65 --- /dev/null +++ b/stacer-core/Tools/package_tool.h @@ -0,0 +1,51 @@ +#ifndef PACKAGE_TOOL_H +#define PACKAGE_TOOL_H + +#include +#include +#include + +#include "Utils/command_util.h" +#include "Utils/file_util.h" + +#include "stacer-core_global.h" + +class STACERCORESHARED_EXPORT PackageTool : public QObject +{ + Q_OBJECT + +public: + enum PackageTools { + APT, // debian + DNF, // fedora + YUM, // fedora + PACMAN, // arch + ZYPPER, // opensuse + UNKNOWN + }; + +public: + PackageTool(); + +public slots: + // APT + QFileInfoList getDpkgPackageCaches(); + QStringList getDpkgPackages(); + bool dpkgRemovePackages(QStringList packages); + + // DNF - YUM + QStringList getRpmPackages(); + bool dnfRemovePackages(QStringList packages); + bool yumRemovePackages(QStringList packages); + + // Arch + QFileInfoList getPacmanPackageCaches(); + QStringList getPacmanPackages(); + bool pacmanRemovePackages(QStringList packages); + + PackageTools getCurrentPackageTool() const; +private: + PackageTools currentPackageTool; +}; + +#endif // PACKAGE_TOOL_H diff --git a/stacer-core/Tools/service_tool.cpp b/stacer-core/Tools/service_tool.cpp new file mode 100644 index 0000000..399b391 --- /dev/null +++ b/stacer-core/Tools/service_tool.cpp @@ -0,0 +1,104 @@ +#include "service_tool.h" + +ServiceTool::ServiceTool() +{ + +} + +QList ServiceTool::getServicesWithSystemctl() +{ + QList services = {}; + + try { + + QStringList args = { "list-unit-files", "-t", "service", "-a", "--state=enabled,disabled" }; + + QStringList lines = CommandUtil::exec("systemctl", args) + .split("\n") + .filter(QRegExp("[^@].service")); + + foreach(QString line, lines) + { + // e.g apache2.service [enabled|disabled] + QStringList s = line.trimmed().split(QRegExp("\\s+")); + + QString name = s.first().trimmed().replace(".service", ""); + bool status = ! s.last().trimmed().compare("enabled"); + bool active = serviceIsActive(s.first().trimmed()); + + Service service(name, status, active); + + services << service; + } + + } catch(QString &ex) { + qCritical() << ex; + } + + return services; +} + + +bool ServiceTool::serviceIsActive(QString serviceName) +{ + QStringList args = { "is-active", serviceName }; + + QString result(""); + + try { + result = CommandUtil::exec("systemctl", args); + } catch(QString &ex) { + qCritical() << ex; + } + + return ! result.trimmed().compare("active"); +} + +bool ServiceTool::serviceIsEnabled(QString serviceName) +{ + QStringList args = { "is-enabled", serviceName }; + + QString result(""); + + try { + result = CommandUtil::exec("systemctl", args); + } catch(QString &ex) { + qCritical() << ex; + } + + return ! result.trimmed().compare("enabled"); +} + +bool ServiceTool::changeServiceStatus(QString sname, bool status) +{ + try { + + QStringList args = { (status ? "enable" : "disable") , sname }; + + CommandUtil::sudoExec("systemctl", args); + + return true; + + } catch(QString &ex) { + qCritical() << ex; + } + + return false; +} + +bool ServiceTool::changeServiceActive(QString sname, bool status) +{ + try { + + QStringList args = { (status ? "start" : "stop") , sname }; + + CommandUtil::sudoExec("systemctl", args); + + return true; + + } catch(QString &ex) { + qCritical() << ex; + } + + return false; +} diff --git a/stacer-core/Tools/service_tool.h b/stacer-core/Tools/service_tool.h new file mode 100644 index 0000000..55a7ca5 --- /dev/null +++ b/stacer-core/Tools/service_tool.h @@ -0,0 +1,40 @@ +#ifndef SERVICE_TOOL_H +#define SERVICE_TOOL_H + +#include +#include + +#include + +#include "stacer-core_global.h" +class STACERCORESHARED_EXPORT Service { + +public: + Service(QString name, bool status, bool active) { + this->name = name; + this->status = status; + this->active = active; + } + + QString name; + bool status; + bool active; +}; + +class ServiceTool : public QObject +{ + Q_OBJECT + +public: + ServiceTool(); + + QList getServicesWithSystemctl(); + bool serviceIsActive(QString serviceName); + bool changeServiceStatus(QString sname, bool status); + bool changeServiceActive(QString sname, bool status); + bool serviceIsEnabled(QString serviceName); +private: + +}; + +#endif // SERVICE_TOOL_H diff --git a/stacer-core/Utils/command_util.cpp b/stacer-core/Utils/command_util.cpp new file mode 100644 index 0000000..09749da --- /dev/null +++ b/stacer-core/Utils/command_util.cpp @@ -0,0 +1,57 @@ +#include "command_util.h" + +CommandUtil::CommandUtil() +{ + +} + +QString CommandUtil::sudoExec(QString cmd, QStringList args) +{ + args.push_front(cmd); + + QString result(""); + + try { + result = CommandUtil::exec("pkexec", args); + } catch (QString &ex) { + qCritical() << ex; + } + + return result; +} + +QString CommandUtil::exec(QString cmd, QStringList args) +{ + QProcess* process = new QProcess; + + if(args.isEmpty()) + process->start(cmd); + else + process->start(cmd, args); + + process->waitForFinished(); + + QTextStream stdOut(process->readAllStandardOutput()); + + QString err = process->errorString(); + + process->kill(); + process->close(); + + if (process->error() != QProcess::UnknownError) + throw err; + + return stdOut.readAll().trimmed(); +} + +bool CommandUtil::isExecutable(QString cmd) +{ + QStringList paths; + paths << "/usr/bin/" << "/bin/" << "/sbin/" << "/usr/sbin/"; + + foreach (QString path, paths) + if(QFile::exists(path + cmd)) + return true; + + return false; +} diff --git a/stacer-core/Utils/command_util.h b/stacer-core/Utils/command_util.h new file mode 100644 index 0000000..29bd23a --- /dev/null +++ b/stacer-core/Utils/command_util.h @@ -0,0 +1,24 @@ +#ifndef COMMAND_UTIL_H +#define COMMAND_UTIL_H + +#include +#include +#include +#include +#include + +#include "stacer-core_global.h" + +class STACERCORESHARED_EXPORT CommandUtil : public QObject +{ + Q_OBJECT + +public: + static QString sudoExec(QString cmd, QStringList args = {}); + static QString exec(QString cmd, QStringList args = {}); + static bool isExecutable(QString cmd); +private: + CommandUtil(); +}; + +#endif // COMMAND_UTIL_H diff --git a/stacer-core/Utils/file_util.cpp b/stacer-core/Utils/file_util.cpp new file mode 100644 index 0000000..dbfcff7 --- /dev/null +++ b/stacer-core/Utils/file_util.cpp @@ -0,0 +1,84 @@ +#include "file_util.h" + +FileUtil::FileUtil() +{ + +} + +QString FileUtil::readStringFromFile(QString path, QIODevice::OpenMode mode) +{ + QSharedPointer file(new QFile(path)); + + QString data; + + if(file->open(mode)) { + + data = file->readAll(); + + file->close(); + } + + return data; +} + +QStringList FileUtil::readListFromFile(QString path, QIODevice::OpenMode mode) +{ + QStringList list = FileUtil::readStringFromFile(path, mode).trimmed().split("\n"); + + return list; +} + +bool FileUtil::writeFile(QString path, QString content, QIODevice::OpenMode mode) +{ + QFile file(path); + + if(file.open(mode)) + { + QTextStream stream(&file); + stream << content.toUtf8(); + + file.close(); + + return true; + } + + return false; +} + +QStringList FileUtil::directoryList(QString path) +{ + QDir dir(path); + + QStringList list; + + foreach (QFileInfo info, dir.entryInfoList(QDir::NoDotAndDotDot | QDir::Files)) + list << info.fileName(); + + return list; +} + +quint64 FileUtil::getFileSize(QString path) +{ + quint64 totalSize = 0; + + QFileInfo info(path); + + if (info.exists()) + { + if (info.isFile()) { + totalSize += info.size(); + } + else if (info.isDir()) { + + QDir dir(path); + + foreach (QFileInfo i, dir.entryInfoList(QDir::NoDotAndDotDot | QDir::Files | QDir::Dirs)) { + totalSize += getFileSize(i.absoluteFilePath()); + } + } + } + + return totalSize; +} + + diff --git a/stacer-core/Utils/file_util.h b/stacer-core/Utils/file_util.h new file mode 100644 index 0000000..24de0f1 --- /dev/null +++ b/stacer-core/Utils/file_util.h @@ -0,0 +1,32 @@ +#ifndef FILEUTIL_H +#define FILEUTIL_H + +#include +#include +#include +#include +#include +#include + +#include +#include + +#include "stacer-core_global.h" + +class STACERCORESHARED_EXPORT FileUtil : public QObject +{ + Q_OBJECT + +public: + static QString readStringFromFile(QString path, QIODevice::OpenMode mode = QIODevice::ReadOnly); + static QStringList readListFromFile(QString path, QIODevice::OpenMode mode = QIODevice::ReadOnly); + + static bool writeFile(QString path, QString content, QIODevice::OpenMode mode = QIODevice::ReadWrite); + static QStringList directoryList(QString path); + static quint64 getFileSize(QString path); + +private: + FileUtil(); +}; + +#endif // FILEUTIL_H diff --git a/stacer-core/Utils/format_util.cpp b/stacer-core/Utils/format_util.cpp new file mode 100644 index 0000000..c7c7473 --- /dev/null +++ b/stacer-core/Utils/format_util.cpp @@ -0,0 +1,31 @@ +#include "format_util.h" + +FormatUtil::FormatUtil() +{ + +} + +QString FormatUtil::formatBytes(quint64 bytes) +{ +#define formatUnit(v, u, t) QString().sprintf("%.1f %s", \ + ((double) v / (double) u), t) + + if (bytes == 1L) // bytes + return QString("%1 byte").arg(bytes); + else if (bytes < KIBI) // bytes + return QString("%1 bytes").arg(bytes); + else if (bytes < MEBI) // KiB + return formatUnit(bytes, KIBI, "KiB"); + else if (bytes < GIBI) // MiB + return formatUnit(bytes, MEBI, "MiB"); + else if (bytes < TEBI) // GiB + return formatUnit(bytes, GIBI, "GiB"); + else if (bytes < PEBI) // TiB + return formatUnit(bytes, TEBI, "TiB"); + else if (bytes < EXBI) // PiB + return formatUnit(bytes, PEBI, "PiB"); + else // EiB + return formatUnit(bytes, EXBI, "EiB"); + +#undef formatUnit +} diff --git a/stacer-core/Utils/format_util.h b/stacer-core/Utils/format_util.h new file mode 100644 index 0000000..a6b8386 --- /dev/null +++ b/stacer-core/Utils/format_util.h @@ -0,0 +1,28 @@ +#ifndef FORMAT_UTIL_H +#define FORMAT_UTIL_H + +#include +#include + +#include "stacer-core_global.h" + +class STACERCORESHARED_EXPORT FormatUtil : public QObject +{ + Q_OBJECT + +public: + static QString formatBytes(quint64 bytes); + +private: + FormatUtil(); + + static const quint64 KIBI = 1L << 10; + static const quint64 MEBI = 1L << 20; + static const quint64 GIBI = 1L << 30; + static const quint64 TEBI = 1L << 40; + static const quint64 PEBI = 1L << 50; + static const quint64 EXBI = 1L << 60; + +}; + +#endif // FORMAT_UTIL_H diff --git a/stacer-core/stacer-core.pro b/stacer-core/stacer-core.pro new file mode 100644 index 0000000..ebc8942 --- /dev/null +++ b/stacer-core/stacer-core.pro @@ -0,0 +1,57 @@ +#------------------------------------------------- +# +# Project created by QtCreator 2017-07-02T15:48:51 +# +#------------------------------------------------- + +QT -= gui + +TARGET = stacer-core +TEMPLATE = lib + +DEFINES += STACERCORE_LIBRARY + +# The following define makes your compiler emit warnings if you use +# any feature of Qt which as been marked as deprecated (the exact warnings +# depend on your compiler). Please consult the documentation of the +# deprecated API in order to know how to port your code away from it. +DEFINES += QT_DEPRECATED_WARNINGS + +# You can also make your code fail to compile if you use deprecated APIs. +# In order to do so, uncomment the following line. +# You can also select to disable deprecated APIs only up to a certain version of Qt. +#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 + +SOURCES += \ + Utils/command_util.cpp \ + Utils/file_util.cpp \ + Info/network_info.cpp \ + Info/cpu_info.cpp \ + Info/disk_info.cpp \ + Info/memory_info.cpp \ + Info/system_info.cpp \ + Utils/format_util.cpp \ + Tools/service_tool.cpp \ + Tools/package_tool.cpp \ + Info/process_info.cpp \ + Info/process.cpp + +HEADERS += \ + stacer-core_global.h \ + Utils/command_util.h \ + Info/network_info.h \ + Info/cpu_info.h \ + Info/disk_info.h \ + Info/memory_info.h \ + Info/system_info.h \ + Utils/format_util.h \ + Utils/file_util.h \ + Tools/service_tool.h \ + Tools/package_tool.h \ + Info/process_info.h \ + Info/process.h + +unix { + target.path = /usr/lib + INSTALLS += target +} diff --git a/stacer-core/stacer-core_global.h b/stacer-core/stacer-core_global.h new file mode 100644 index 0000000..8e4ae73 --- /dev/null +++ b/stacer-core/stacer-core_global.h @@ -0,0 +1,12 @@ +#ifndef STACERCORE_GLOBAL_H +#define STACERCORE_GLOBAL_H + +#include + +#if defined(STACERCORE_LIBRARY) +# define STACERCORESHARED_EXPORT Q_DECL_EXPORT +#else +# define STACERCORESHARED_EXPORT Q_DECL_IMPORT +#endif + +#endif // STACERCORE_GLOBAL_H diff --git a/stacer.desktop b/stacer.desktop new file mode 100644 index 0000000..f31652b --- /dev/null +++ b/stacer.desktop @@ -0,0 +1,8 @@ +[Desktop Entry] +Type=Application +Name=Stacer +Exec=stacer +Icon=stacer +Comment=System Optimizer +Categories=System +Terminal=false diff --git a/stacer/Managers/app_manager.cpp b/stacer/Managers/app_manager.cpp new file mode 100644 index 0000000..60a0dca --- /dev/null +++ b/stacer/Managers/app_manager.cpp @@ -0,0 +1,126 @@ +#include "app_manager.h" + +AppManager *AppManager::_instance = NULL; + +AppManager *AppManager::ins() +{ + if (_instance == NULL) { + _instance = new AppManager; + } + + return _instance; +} + +AppManager::AppManager(QObject *parent) : QObject(parent) +{ + // font settings + QFontDatabase::addApplicationFont(":/static/font/Ubuntu-R.ttf"); + + configPath = QStandardPaths::writableLocation(QStandardPaths::AppConfigLocation); + + settings = new QSettings(QString("%1/settings.conf").arg(configPath), QSettings::NativeFormat); + + loadLanguageList(); + + loadThemeList(); + + themeName = settings->value(THEME_PROP, "default").toString(); + + if (translator.load(QString("stacer_%1").arg(getLanguageCode()), qApp->applicationDirPath() + "/translations")) { + qApp->installTranslator(&translator); + } else { + qCritical() << "Translator could not load."; + } + + styleValues = new QSettings(QString(":/static/themes/%1/style/values.ini").arg(themeName), QSettings::NativeFormat); +} + +QSettings *AppManager::getStyleValues() const +{ + return styleValues; +} + +/************ + * LANGUAGE + ***********/ +void AppManager::loadLanguageList() +{ + QJsonArray langs = QJsonDocument::fromJson(FileUtil::readStringFromFile(":/static/languages.json").toUtf8()) + .array(); + + for (int i = 0; i < langs.count(); ++i) { + + QJsonObject ob = langs.at(i).toObject(); + + languageList.insert(ob["value"].toString(), ob["text"].toString()); + } +} + +void AppManager::setLanguage(QString value) +{ + settings->setValue(LANG_PROP, value); +} + +QString AppManager::getLanguageCode() +{ + return settings->value(LANG_PROP, "en").toString(); +} + +QMap AppManager::getLanguageList() +{ + return languageList; +} + +/************ + * THEME + ***********/ +void AppManager::loadThemeList() +{ + QJsonArray themes = QJsonDocument::fromJson(FileUtil::readStringFromFile(":/static/themes.json").toUtf8()) + .array(); + + for (int i = 0; i < themes.count(); ++i) { + + QJsonObject ob = themes.at(i).toObject(); + + themeList.insert(ob["value"].toString(), ob["text"].toString()); + } +} + +QMap AppManager::getThemeList() const +{ + return themeList; +} + +QString AppManager::getThemeName() const +{ + return themeName; +} + +void AppManager::updateStylesheet() +{ + styleValues = new QSettings(QString(":/static/themes/%1/style/values.ini").arg(themeName), QSettings::NativeFormat); + + stylesheetFileContent = FileUtil::readStringFromFile(QString(":/static/themes/%1/style/style.qss").arg(themeName)); + + // set values + foreach (QString key, styleValues->allKeys()) { + stylesheetFileContent.replace(key, styleValues->value(key).toString()); + } + + qApp->setStyleSheet(stylesheetFileContent); + + emit changedTheme(); +} + +void AppManager::setThemeName(const QString &value) +{ + themeName = value; + + settings->setValue(THEME_PROP, value); +} + +QString AppManager::getStylesheetFileContent() const +{ + return stylesheetFileContent; +} diff --git a/stacer/Managers/app_manager.h b/stacer/Managers/app_manager.h new file mode 100644 index 0000000..0229e66 --- /dev/null +++ b/stacer/Managers/app_manager.h @@ -0,0 +1,59 @@ +#ifndef APP_MANAGER_H +#define APP_MANAGER_H + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +#include + +#define THEME_PROP "ThemeName" +#define LANG_PROP "Language" + +class AppManager : public QObject +{ + Q_OBJECT +public: + static AppManager *ins(); + + QString getLanguageCode(); + void setLanguage(QString value); + QMap getLanguageList(); + void loadLanguageList(); + QString getStylesheetFileContent() const; + + void updateStylesheet(); + void setThemeName(const QString &value); + QString getThemeName() const; + QMap getThemeList() const; + void loadThemeList(); + QSettings *getStyleValues() const; + +signals: + void changedTheme(); + +private: + static AppManager *_instance; + explicit AppManager(QObject *parent = nullptr); + +private: + QTranslator translator; + QString configPath; + QString themeName; + QSettings *settings; + QSettings *styleValues; + QMap languageList; + QMap themeList; + QString stylesheetFileContent; +}; + +#endif // APP_MANAGER_H diff --git a/stacer/Managers/info_manager.cpp b/stacer/Managers/info_manager.cpp new file mode 100644 index 0000000..758154f --- /dev/null +++ b/stacer/Managers/info_manager.cpp @@ -0,0 +1,121 @@ +#include "info_manager.h" + +InfoManager::InfoManager() +{ + +} + +InfoManager *InfoManager::_instance = NULL; + +InfoManager *InfoManager::ins() +{ + if(_instance == NULL) + _instance = new InfoManager; + + return _instance; +} + +QString InfoManager::getUserName() +{ + return si.getUsername(); +} + +/******************** + * CPU INFORMATION + *******************/ +quint8 InfoManager::getCpuCoreCount() +{ + return ci.getCpuCoreCount(); +} + +QList InfoManager::getCpuPercents() +{ + return ci.getCpuPercents(); +} + +/******************** + * MEMORY INFORMATION + *******************/ +void InfoManager::updateMemoryInfo() +{ + mi.updateMemoryInfo(); +} + +quint64 InfoManager::getSwapUsed() +{ + return mi.getSwapUsed(); +} + +quint64 InfoManager::getSwapTotal() +{ + return mi.getSwapTotal(); +} + +quint64 InfoManager::getMemUsed() +{ + return mi.getMemUsed(); +} + +quint64 InfoManager::getMemTotal() +{ + return mi.getMemTotal(); +} + +/******************** + * DISK INFORMATION + *******************/ +QList InfoManager::getDisks() +{ + return di.getDisks(); +} + +void InfoManager::updateDiskInfo() +{ + return di.updateDiskInfo(); +} + +/******************** + * NETWORK INFORMATION + *******************/ +quint64 InfoManager::getRXbytes() +{ + return ni.getRXbytes(); +} + +quint64 InfoManager::getTXbytes() +{ + return ni.getTXbytes(); +} + +/******************** + * CLEANER INFORMATION + *******************/ +QFileInfoList InfoManager::getCrashReports() +{ + return si.getCrashReports(); +} + +QFileInfoList InfoManager::getAppLogs() +{ + return si.getAppLogs(); +} + +QFileInfoList InfoManager::getAppCaches() +{ + return si.getAppCaches(); +} + +/******************** + * PROCESSES INFORMATION + *******************/ +void InfoManager::updateProcesses() +{ + pi.updateProcesses(); +} + +QList InfoManager::getProcesses() +{ + return pi.getProcessList(); +} + + diff --git a/stacer/Managers/info_manager.h b/stacer/Managers/info_manager.h new file mode 100644 index 0000000..48826e7 --- /dev/null +++ b/stacer/Managers/info_manager.h @@ -0,0 +1,54 @@ +#ifndef INFO_MANAGER_H +#define INFO_MANAGER_H + +#include + +#include +#include +#include +#include +#include +#include + +#include + +class InfoManager +{ +public: + static InfoManager *ins(); + + quint8 getCpuCoreCount(); + QList getCpuPercents(); + + quint64 getSwapUsed(); + quint64 getSwapTotal(); + quint64 getMemUsed(); + quint64 getMemTotal(); + void updateMemoryInfo(); + + quint64 getRXbytes(); + quint64 getTXbytes(); + QList getDisks(); + void updateDiskInfo(); + + QFileInfoList getCrashReports(); + QFileInfoList getAppLogs(); + QFileInfoList getAppCaches(); + + void updateProcesses(); + QList getProcesses(); + QString getUserName(); +private: + InfoManager(); + static InfoManager *_instance; + +private: + CpuInfo ci; + DiskInfo di; + MemoryInfo mi; + NetworkInfo ni; + SystemInfo si; + ProcessInfo pi; +}; + +#endif // INFO_MANAGER_H diff --git a/stacer/Managers/tool_manager.cpp b/stacer/Managers/tool_manager.cpp new file mode 100644 index 0000000..5b384bc --- /dev/null +++ b/stacer/Managers/tool_manager.cpp @@ -0,0 +1,110 @@ +#include "tool_manager.h" + +ToolManager *ToolManager::_instance = NULL; + +ToolManager *ToolManager::ins() +{ + if(_instance == NULL) + _instance = new ToolManager; + + return _instance; +} + +ToolManager::ToolManager() : + st(new ServiceTool), + pt(new PackageTool) +{ + +} + +/****************** + * SERVICES + *****************/ +QList ToolManager::getServices() +{ + return st->getServicesWithSystemctl(); +} + +bool ToolManager::changeServiceStatus(QString sname, bool status) +{ + return st->changeServiceStatus(sname, status); +} + +bool ToolManager::changeServiceActive(QString sname, bool status) +{ + return st->changeServiceActive(sname, status); +} + +bool ToolManager::serviceIsActive(QString sname) +{ + return st->serviceIsActive(sname); +} + +bool ToolManager::serviceIsEnabled(QString sname) +{ + return st->serviceIsEnabled(sname); +} + +/****************** + * PACKAGES + *****************/ +QStringList ToolManager::getPackages() +{ + switch (pt->getCurrentPackageTool()) { + case PackageTool::PackageTools::APT: + return pt->getDpkgPackages(); + break; + case PackageTool::PackageTools::YUM: + case PackageTool::PackageTools::DNF: + return pt->getRpmPackages(); + break; + case PackageTool::PackageTools::PACMAN: + return pt->getPacmanPackages(); + break; + default: + return QStringList(); + break; + } +} + +QFileInfoList ToolManager::getPackageCaches() +{ + switch (pt->getCurrentPackageTool()) { + case PackageTool::PackageTools::APT: + return pt->getDpkgPackageCaches(); + break; + case PackageTool::PackageTools::YUM: + case PackageTool::PackageTools::DNF: + return pt->getPacmanPackageCaches(); + break; + case PackageTool::PackageTools::PACMAN: + return pt->getPacmanPackageCaches(); + break; + default: + return QFileInfoList(); + break; + } +} + +void ToolManager::uninstallPackages(QStringList packages) +{ + uninstallStarted(); + + switch (pt->getCurrentPackageTool()) { + case PackageTool::PackageTools::APT: + pt->dpkgRemovePackages(packages); + break; + case PackageTool::PackageTools::YUM: + pt->yumRemovePackages(packages); + break; + case PackageTool::PackageTools::DNF: + pt->dnfRemovePackages(packages); + break; + case PackageTool::PackageTools::PACMAN: + pt->pacmanRemovePackages(packages); + break; + } + + uninstallFinished(); +} + diff --git a/stacer/Managers/tool_manager.h b/stacer/Managers/tool_manager.h new file mode 100644 index 0000000..9391aee --- /dev/null +++ b/stacer/Managers/tool_manager.h @@ -0,0 +1,41 @@ +#ifndef TOOL_MANAGER_H +#define TOOL_MANAGER_H + +#include +#include + +#include +#include + +class ToolManager : public QObject +{ + Q_OBJECT + +public: + static ToolManager *ins(); + +public: + QList getServices(); + QStringList getPackages(); + + QFileInfoList getPackageCaches(); +public slots: + bool changeServiceStatus(QString sname, bool status); + bool changeServiceActive(QString sname, bool status); + bool serviceIsActive(QString sname); + bool serviceIsEnabled(QString sname); + void uninstallPackages(QStringList packages); + +signals: + void uninstallFinished(); + void uninstallStarted(); + +private: + ToolManager(); + static ToolManager *_instance; + + ServiceTool *st; + PackageTool *pt; +}; + +#endif // TOOL_MANAGER_H diff --git a/stacer/Pages/Dashboard/circlebar.cpp b/stacer/Pages/Dashboard/circlebar.cpp new file mode 100644 index 0000000..83da61e --- /dev/null +++ b/stacer/Pages/Dashboard/circlebar.cpp @@ -0,0 +1,70 @@ +#include "circlebar.h" +#include "ui_circlebar.h" + +CircleBar::~CircleBar() +{ + delete ui; + delete chart; + delete chartView; + delete series; +} + +CircleBar::CircleBar(QString title, QStringList colors, QWidget *parent) : + QWidget(parent), + ui(new Ui::CircleBar), + colors(colors), + chart(new QChart), + chartView(new QChartView(chart)), + series(new QPieSeries) +{ + ui->setupUi(this); + + ui->chartTitle->setText(title); + + init(); +} + +void CircleBar::init() +{ + // series settings + series->setHoleSize(0.67); + series->setPieSize(165); + series->setPieStartAngle(-115); + series->setPieEndAngle(115); + series->setLabelsVisible(false); + series->append("1", 0); + series->append("2", 0); + series->slices().first()->setBorderColor("transparent"); + series->slices().last()->setBorderColor("transparent"); + QConicalGradient gradient; + gradient.setAngle(115); + for (int i = 0; i < colors.count(); ++i) + gradient.setColorAt(i, QColor(colors.at(i))); + series->slices().first()->setBrush(gradient); + + // chart settings + chart->setBackgroundBrush(QBrush("transparent")); + chart->setContentsMargins(-15, -18, -15, -60); + chart->addSeries(series); + chart->legend()->hide(); + + // chartview settings + chartView->setRenderHint(QPainter::Antialiasing); + + ui->chartLayout->insertWidget(1, chartView); + + connect(AppManager::ins(), &AppManager::changedTheme, this, [this](){ + chartView->setBackgroundBrush(QColor(AppManager::ins()->getStyleValues()->value("@circleChartBackgroundColor").toString())); + + series->slices().last()->setColor(AppManager::ins()->getStyleValues()->value("@pageContent").toString()); // trail color + }); +} + +void CircleBar::setValue(int value, QString valueText) +{ + series->slices().first()->setValue(value); + series->slices().last()->setValue(100 - value); + + ui->chartValue->setText(valueText); +} + diff --git a/stacer/Pages/Dashboard/circlebar.h b/stacer/Pages/Dashboard/circlebar.h new file mode 100644 index 0000000..f5e460e --- /dev/null +++ b/stacer/Pages/Dashboard/circlebar.h @@ -0,0 +1,37 @@ +#ifndef CIRCLEBAR_H +#define CIRCLEBAR_H + +#include +#include +#include "Managers/app_manager.h" + +namespace Ui { + class CircleBar; +} + +class CircleBar : public QWidget +{ + Q_OBJECT + +public: + explicit CircleBar(QString title, QStringList colors, QWidget *parent = 0); + ~CircleBar(); + +public slots: + void setValue(int value, QString valueText); + +private slots: + void init(); + +private: + Ui::CircleBar *ui; + +private: + QStringList colors; + + QChart *chart; + QChartView *chartView; + QPieSeries *series; +}; + +#endif // CIRCLEBAR_H diff --git a/stacer/Pages/Dashboard/circlebar.ui b/stacer/Pages/Dashboard/circlebar.ui new file mode 100644 index 0000000..f8c626b --- /dev/null +++ b/stacer/Pages/Dashboard/circlebar.ui @@ -0,0 +1,89 @@ + + + CircleBar + + + + 0 + 0 + 383 + 317 + + + + + 0 + 0 + + + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + 0 + 0 + + + + + + + + 0 + + + 0 + + + 10 + + + 0 + + + 10 + + + + + + + + Title + + + + + + + Value + + + + + + + + + + + diff --git a/stacer/Pages/Dashboard/dashboard_page.cpp b/stacer/Pages/Dashboard/dashboard_page.cpp new file mode 100644 index 0000000..cf80d2c --- /dev/null +++ b/stacer/Pages/Dashboard/dashboard_page.cpp @@ -0,0 +1,198 @@ +#include "dashboard_page.h" +#include "ui_dashboard_page.h" + +DashboardPage::~DashboardPage() +{ + delete ui; + delete cpuBar; + delete memBar; + delete diskBar; + delete downloadBar; + delete uploadBar; + delete timer; +} + +DashboardPage::DashboardPage(QWidget *parent) : + QWidget(parent), + ui(new Ui::DashboardPage), + cpuBar(new CircleBar(tr("CPU"), {"#A8E063", "#56AB2F"})), + memBar(new CircleBar(tr("MEMORY"), {"#FFB75E", "#ED8F03"})), + diskBar(new CircleBar(tr("DISK"), {"#DC2430", "#7B4397"})), + downloadBar(new LineBar(tr("DOWNLOAD"))), + uploadBar(new LineBar(tr("UPLOAD"))), + timer(new QTimer), + im(InfoManager::ins()) +{ + ui->setupUi(this); + + init(); + + systemInformationInit(); +} + +void DashboardPage::init() +{ + // Circle bars + ui->circleBarsLayout->addWidget(cpuBar); + ui->circleBarsLayout->addWidget(memBar); + ui->circleBarsLayout->addWidget(diskBar); + + // line bars + ui->lineBarsLayout->addWidget(downloadBar); + ui->lineBarsLayout->addWidget(uploadBar); + + // connections + connect(timer, &QTimer::timeout, this, &DashboardPage::updateCpuBar); + connect(timer, &QTimer::timeout, this, &DashboardPage::updateMemoryBar); + connect(timer, &QTimer::timeout, this, &DashboardPage::updateNetworkBar); + + QTimer *timerDisk = new QTimer; + connect(timerDisk, &QTimer::timeout, this, &DashboardPage::updateDiskBar); + timerDisk->start(10 * 1000); + + timer->start(1 * 1000); + + // initialization + updateCpuBar(); + updateMemoryBar(); + updateDiskBar(); + updateNetworkBar(); + + ui->updateBarWidget->hide(); + + // check update + checkUpdate(); +} + +void DashboardPage::checkUpdate() +{ + QString requestResult; + + if (CommandUtil::isExecutable("curl")) { + try { + requestResult = CommandUtil::exec("curl", { "https://api.github.com/repos/oguzhaninan/Stacer/releases/latest" }); + } catch (QString &ex) { + qCritical() << ex; + } + + if (! requestResult.isEmpty()) { + QJsonDocument result = QJsonDocument::fromJson(requestResult.toUtf8()); + + QRegExp ex("[0-9].[0-9].[0-9]"); + ex.indexIn(result.object().value("tag_name").toString()); + + QString version; + if (! ex.captureCount()) + version = ex.cap(); + + if (qApp->applicationVersion() != version) { + ui->updateBarWidget->show(); + } + } + } +} + +void DashboardPage::on_downloadUpdateBtn_clicked() +{ + QDesktopServices::openUrl(QUrl("https://github.com/oguzhaninan/Stacer/releases/latest")); +} + +void DashboardPage::systemInformationInit() +{ + // get system information + SystemInfo sysInfo; + + QStringList infos; + infos + << tr("Hostname: %1").arg(sysInfo.getHostname()) + << tr("Platform: %1").arg(sysInfo.getPlatform()) + << tr("Distribution: %1").arg(sysInfo.getDistribution()) + << tr("Kernel Release: %1").arg(sysInfo.getKernel()) + << tr("CPU Model: %1").arg(sysInfo.getCpuModel()) + << tr("CPU Speed: %1").arg(sysInfo.getCpuSpeed()) + << tr("CPU Core: %1").arg(sysInfo.getCpuCore()); + + QStringListModel *systemInfoModel = new QStringListModel(infos); + + ui->systemInfoList->setModel(systemInfoModel); +} + +void DashboardPage::updateCpuBar() +{ + int cpuUsedPercent = im->getCpuPercents().at(0); + + cpuBar->setValue(cpuUsedPercent, QString("%1%").arg(cpuUsedPercent)); +} + +void DashboardPage::updateMemoryBar() +{ + im->updateMemoryInfo(); + + int memUsedPercent = 0; + if (im->getMemTotal()) + memUsedPercent = ((double)im->getMemUsed() / (double)im->getMemTotal()) * 100.0; + + QString f_memUsed = FormatUtil::formatBytes(im->getMemUsed()); + QString f_memTotal = FormatUtil::formatBytes(im->getMemTotal()); + + memBar->setValue(memUsedPercent, QString("%1 / %2") + .arg(f_memUsed) + .arg(f_memTotal)); +} + +void DashboardPage::updateDiskBar() +{ + im->updateDiskInfo(); + + if(! im->getDisks().isEmpty()) + { + quint64 size = im->getDisks().at(0).size; + quint64 used = im->getDisks().at(0).used; + + QString sizeText = FormatUtil::formatBytes(size); + QString usedText = FormatUtil::formatBytes(used); + + int diskPercent = 0; + if (size) + diskPercent = ( (double) used / (double) size ) * 100.0; + + diskBar->setValue(diskPercent, QString("%1 / %2") + .arg(usedText) + .arg(sizeText)); + } +} + +void DashboardPage::updateNetworkBar() +{ + static quint64 l_RXbytes = im->getRXbytes(); + static quint64 l_TXbytes = im->getTXbytes(); + static quint64 max_RXbytes = 1L << 20; // 1 MEBI + static quint64 max_TXbytes = 1L << 20; // 1 MEBI + + quint64 RXbytes = im->getRXbytes(); + quint64 TXbytes = im->getTXbytes(); + + quint64 d_RXbytes = (RXbytes - l_RXbytes); + quint64 d_TXbytes = (TXbytes - l_TXbytes); + + QString downText = FormatUtil::formatBytes(d_RXbytes); + QString upText = FormatUtil::formatBytes(d_TXbytes); + + int downPercent = ((double) d_RXbytes / (double) max_RXbytes) * 100.0; + int upPercent = ((double) d_TXbytes / (double) max_TXbytes) * 100.0; + + downloadBar->setValue(downPercent, + QString("%1/s").arg(downText), + tr("Total: %1").arg(FormatUtil::formatBytes(RXbytes))); + + uploadBar->setValue(upPercent, + QString("%1/s").arg(upText), + tr("Total: %1").arg(FormatUtil::formatBytes(TXbytes))); + + max_RXbytes = qMax(max_RXbytes, d_RXbytes); + max_TXbytes = qMax(max_TXbytes, d_TXbytes); + + l_RXbytes = RXbytes; + l_TXbytes = TXbytes; +} + diff --git a/stacer/Pages/Dashboard/dashboard_page.h b/stacer/Pages/Dashboard/dashboard_page.h new file mode 100644 index 0000000..01bf768 --- /dev/null +++ b/stacer/Pages/Dashboard/dashboard_page.h @@ -0,0 +1,55 @@ +#ifndef DASHBOARDPAGE_H +#define DASHBOARDPAGE_H + +#include +#include +#include +#include +#include +#include +#include + +#include +#include "circlebar.h" +#include "linebar.h" + +namespace Ui { + class DashboardPage; +} + +class DashboardPage : public QWidget +{ + Q_OBJECT + +public: + explicit DashboardPage(QWidget *parent = 0); + ~DashboardPage(); + +private slots: + void init(); + void checkUpdate(); + void systemInformationInit(); + + void updateCpuBar(); + void updateMemoryBar(); + void updateDiskBar(); + void updateNetworkBar(); + + void on_downloadUpdateBtn_clicked(); + +private: + Ui::DashboardPage *ui; + +private: + CircleBar* cpuBar; + CircleBar* memBar; + CircleBar* diskBar; + + LineBar *downloadBar; + LineBar *uploadBar; + + QTimer *timer; + InfoManager *im; +}; + +#endif // DASHBOARDPAGE_H diff --git a/stacer/Pages/Dashboard/dashboard_page.ui b/stacer/Pages/Dashboard/dashboard_page.ui new file mode 100644 index 0000000..4cb163a --- /dev/null +++ b/stacer/Pages/Dashboard/dashboard_page.ui @@ -0,0 +1,264 @@ + + + DashboardPage + + + + 0 + 0 + 811 + 565 + + + + + 0 + 0 + + + + Form + + + + 20 + + + 10 + + + 20 + + + 10 + + + 10 + + + + + + 0 + 0 + + + + + 150 + 0 + + + + + 20 + + + 0 + + + 10 + + + 0 + + + 0 + + + + + + + + + 0 + 0 + + + + + 0 + 200 + + + + + 25 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + + + + 0 + 0 + + + + + 200 + 0 + + + + Qt::WheelFocus + + + + 10 + + + 10 + + + 0 + + + 10 + + + 0 + + + + + Qt::Vertical + + + + 20 + 20 + + + + + + + + SYSTEM INFO + + + + + + + Qt::NoFocus + + + Qt::ScrollBarAlwaysOff + + + Qt::ScrollBarAlwaysOff + + + false + + + QAbstractItemView::NoEditTriggers + + + QAbstractItemView::NoSelection + + + QAbstractItemView::SelectRows + + + 5 + + + true + + + + + + + Qt::Vertical + + + + 20 + 0 + + + + + + + + + + + + 0 + 0 + + + + + 0 + 30 + + + + + + + + 0 + + + 15 + + + 0 + + + 5 + + + 0 + + + + + There are update currently available. + + + + + + + PointingHandCursor + + + Qt::NoFocus + + + Download + + + + + + + + + + + diff --git a/stacer/Pages/Dashboard/linebar.cpp b/stacer/Pages/Dashboard/linebar.cpp new file mode 100644 index 0000000..2599b49 --- /dev/null +++ b/stacer/Pages/Dashboard/linebar.cpp @@ -0,0 +1,23 @@ +#include "linebar.h" +#include "ui_linebar.h" + +LineBar::~LineBar() +{ + delete ui; +} + +LineBar::LineBar(QString title, QWidget *parent) : + QWidget(parent), + ui(new Ui::LineBar) +{ + ui->setupUi(this); + + ui->lineChartTitle->setText(title); +} + +void LineBar::setValue(int value, QString text, QString totalText) +{ + ui->lineChartProgress->setValue(value); + ui->lineChartValue->setText(text); + ui->lineChartTotal->setText(totalText); +} diff --git a/stacer/Pages/Dashboard/linebar.h b/stacer/Pages/Dashboard/linebar.h new file mode 100644 index 0000000..9b0ccc7 --- /dev/null +++ b/stacer/Pages/Dashboard/linebar.h @@ -0,0 +1,24 @@ +#ifndef LINEBAR_H +#define LINEBAR_H + +#include + +namespace Ui { + class LineBar; +} + +class LineBar : public QWidget +{ + Q_OBJECT + +public: + explicit LineBar(QString title, QWidget *parent = 0); + ~LineBar(); + +public slots: + void setValue(int value, QString text, QString totalText); +private: + Ui::LineBar *ui; +}; + +#endif // LINEBAR_H diff --git a/stacer/Pages/Dashboard/linebar.ui b/stacer/Pages/Dashboard/linebar.ui new file mode 100644 index 0000000..abe6e9e --- /dev/null +++ b/stacer/Pages/Dashboard/linebar.ui @@ -0,0 +1,167 @@ + + + LineBar + + + + 0 + 0 + 474 + 110 + + + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + 25 + + + 0 + + + 25 + + + 0 + + + 0 + + + + + Total + + + + + + + Qt::Vertical + + + QSizePolicy::Expanding + + + + 1 + 15 + + + + + + + + Qt::Vertical + + + QSizePolicy::Expanding + + + + 1 + 15 + + + + + + + + + 0 + 20 + + + + + 16777215 + 20 + + + + + + + 0 + + + false + + + + + + + Qt::Vertical + + + QSizePolicy::Expanding + + + + 1 + 15 + + + + + + + + Title + + + + + + + Qt::Vertical + + + QSizePolicy::Expanding + + + + 1 + 15 + + + + + + + + Value + + + + + + + + + + + diff --git a/stacer/Pages/Processes/processes_page.cpp b/stacer/Pages/Processes/processes_page.cpp new file mode 100644 index 0000000..2badeb0 --- /dev/null +++ b/stacer/Pages/Processes/processes_page.cpp @@ -0,0 +1,229 @@ +#include "processes_page.h" +#include "ui_processes_page.h" + +ProcessesPage::~ProcessesPage() +{ + delete ui; + delete model; + delete sortModel; + delete timer; +} + +ProcessesPage::ProcessesPage(QWidget *parent) : + QWidget(parent), + model(new QStandardItemModel(this)), + sortModel(new QSortFilterProxyModel(this)), + im(InfoManager::ins()), + timer(new QTimer(this)), + ui(new Ui::ProcessesPage) +{ + ui->setupUi(this); + + init(); +} + +void ProcessesPage::init() +{ + // slider settings + ui->refreshSlider->setRange(1, 10); + ui->refreshSlider->setPageStep(1); + ui->refreshSlider->setSingleStep(1); + + // Table settings + sortModel->setSourceModel(model); + + headers << "PID" << tr("Resident Memory") << tr("%Memory") << tr("Virtual Memory") << tr("User") << "%CPU" + << tr("Start Time") << tr("State") << tr("Group") << tr("Nice") << tr("CPU Time") + << tr("Session") << tr("Seat") << tr("Process"); + + model->setHorizontalHeaderLabels(headers); + + ui->processTable->setModel(sortModel); + sortModel->setSortRole(1); + sortModel->setDynamicSortFilter(true); + sortModel->sort(5, Qt::SortOrder::DescendingOrder); + + ui->processTable->horizontalHeader()->setSectionsMovable(true); + ui->processTable->horizontalHeader()->setFixedHeight(36); + ui->processTable->horizontalHeader()->setDefaultAlignment(Qt::AlignLeft | Qt::AlignVCenter); + ui->processTable->horizontalHeader()->setCursor(Qt::PointingHandCursor); + + ui->processTable->horizontalHeader()->resizeSection(0, 70); + + loadProcesses(); + + connect(timer, &QTimer::timeout, this, &ProcessesPage::loadProcesses); + timer->setInterval(1000); + timer->start(); + + ui->processTable->horizontalHeader()->setContextMenuPolicy(Qt::CustomContextMenu); + + connect(ui->processTable->horizontalHeader(), SIGNAL(customContextMenuRequested(const QPoint&)), + this, SLOT(on_processTable_customContextMenuRequested(const QPoint&))); + + loadHeaderMenu(); +} + +void ProcessesPage::loadHeaderMenu() +{ + int i = 0; + foreach (QString kolon, headers) { + QAction *action = new QAction(kolon); + action->setCheckable(true); + action->setChecked(true); + action->setData(i++); + + headerMenu.addAction(action); + } + + QList hiddenHeaders = { 6, 7, 8, 9, 10, 11, 12 }; + foreach (int i, hiddenHeaders) { + ui->processTable->horizontalHeader()->setSectionHidden(i, true); + headerMenu.actions().at(i)->setChecked(false); + } +} + +void ProcessesPage::loadProcesses() +{ + QModelIndexList selecteds = ui->processTable->selectionModel()->selectedRows(); + + model->removeRows(0, model->rowCount()); + + im->updateProcesses(); + + foreach (Process proc, im->getProcesses()) { + if (ui->allProcessesCheck->isChecked()) { + model->appendRow(createRow(proc)); + } + else { + if (im->getUserName() == proc.getUname()) + model->appendRow(createRow(proc)); + } + } + + ui->processTitleLbl->setText(tr("Processes (%1)").arg(model->rowCount())); + + // selected item + if(! selecteds.isEmpty()) { + seletedRowModel = selecteds.first(); + + for (int i = 0; i < sortModel->rowCount(); ++i) { + if (sortModel->index(i, 0).data(1).toInt() == seletedRowModel.data(1).toInt()) + ui->processTable->selectRow(i); + } + } else { + seletedRowModel = QModelIndex(); + } +} + +QList ProcessesPage::createRow(Process proc) +{ + QList row; + + int data = 1; + + QStandardItem *pid_i = new QStandardItem(QString::number(proc.getPid())); + pid_i->setData(proc.getPid(), data); + pid_i->setData(proc.getPid(), Qt::ToolTipRole); + + QStandardItem *rss_i = new QStandardItem(FormatUtil::formatBytes(proc.getRss())); + rss_i->setData(proc.getRss(), data); + rss_i->setData(FormatUtil::formatBytes(proc.getRss()), Qt::ToolTipRole); + + QStandardItem *pmem_i = new QStandardItem(QString::number(proc.getPmem())); + pmem_i->setData(proc.getPmem(), data); + pmem_i->setData(proc.getPmem(), Qt::ToolTipRole); + + QStandardItem *vsize_i = new QStandardItem(FormatUtil::formatBytes(proc.getVsize())); + vsize_i->setData(proc.getVsize(), data); + vsize_i->setData(FormatUtil::formatBytes(proc.getVsize()), Qt::ToolTipRole); + + QStandardItem *uname_i = new QStandardItem(proc.getUname()); + uname_i->setData(proc.getUname(), data); + uname_i->setData(proc.getUname(), Qt::ToolTipRole); + + QStandardItem *pcpu_i = new QStandardItem(QString::number(proc.getPcpu())); + pcpu_i->setData(proc.getPcpu(), data); + pcpu_i->setData(proc.getPcpu(), Qt::ToolTipRole); + + QStandardItem *starttime_i = new QStandardItem(proc.getStartTime()); + starttime_i->setData(proc.getStartTime(), data); + starttime_i->setData(proc.getStartTime(), Qt::ToolTipRole); + + QStandardItem *state_i = new QStandardItem(proc.getState()); + state_i->setData(proc.getState(), data); + state_i->setData(proc.getState(), Qt::ToolTipRole); + + QStandardItem *group_i = new QStandardItem(proc.getGroup()); + group_i->setData(proc.getGroup(), data); + group_i->setData(proc.getGroup(), Qt::ToolTipRole); + + QStandardItem *nice_i = new QStandardItem(QString::number(proc.getNice())); + nice_i->setData(proc.getNice(), data); + nice_i->setData(proc.getNice(), Qt::ToolTipRole); + + QStandardItem *cpuTime_i = new QStandardItem(proc.getCpuTime()); + cpuTime_i->setData(proc.getCpuTime(), data); + cpuTime_i->setData(proc.getCpuTime(), Qt::ToolTipRole); + + QStandardItem *session_i = new QStandardItem(proc.getSession()); + session_i->setData(proc.getSession(), data); + session_i->setData(proc.getSession(), Qt::ToolTipRole); + + QStandardItem *seat_i = new QStandardItem(proc.getSeat()); + seat_i->setData(proc.getSeat(), data); + seat_i->setData(proc.getSeat(), Qt::ToolTipRole); + + QStandardItem *cmd_i = new QStandardItem(proc.getCmd()); + cmd_i->setData(proc.getCmd(), data); + cmd_i->setData(proc.getCmd(), Qt::ToolTipRole); + + row << pid_i << rss_i << pmem_i << vsize_i << uname_i << pcpu_i + << starttime_i << state_i << group_i << nice_i << cpuTime_i + << session_i << seat_i<< cmd_i; + + return row; +} + +void ProcessesPage::on_processSearchBox_textChanged(const QString &val) +{ + QRegExp query(val, Qt::CaseInsensitive, QRegExp::Wildcard); + + sortModel->setFilterKeyColumn(headers.count() - 1); // process name + sortModel->setFilterRegExp(query); +} + +void ProcessesPage::on_refreshSlider_valueChanged(int i) +{ + ui->refreshLabel->setText(tr("Refresh (%1)").arg(i)); + timer->setInterval(i * 1000); +} + +void ProcessesPage::on_endProcessBtn_clicked() +{ + pid_t pid = seletedRowModel.data(1).toInt(); + + QString selectedUname = sortModel->index(seletedRowModel.row(), 4).data(1).toString(); + + try { + if (pid) { + if (selectedUname == im->getUserName()) + CommandUtil::exec("kill", { QString::number(pid) }); + else + CommandUtil::sudoExec("kill", { QString::number(pid) }); + } + } catch (QString &ex) { + qCritical() << ex; + } +} + +void ProcessesPage::on_processTable_customContextMenuRequested(const QPoint &pos) +{ + QPoint globalPos = ui->processTable->mapToGlobal(pos); + + QAction *action = headerMenu.exec(globalPos); + + if (action) + ui->processTable->horizontalHeader()->setSectionHidden(action->data().toInt(), + ! action->isChecked()); +} diff --git a/stacer/Pages/Processes/processes_page.h b/stacer/Pages/Processes/processes_page.h new file mode 100644 index 0000000..0f30edc --- /dev/null +++ b/stacer/Pages/Processes/processes_page.h @@ -0,0 +1,50 @@ +#ifndef PROCESSESPAGE_H +#define PROCESSESPAGE_H + +#include +#include +#include +#include +#include +#include +#include +#include + +#include "Managers/info_manager.h" + +namespace Ui { + class ProcessesPage; +} + +class ProcessesPage : public QWidget +{ + Q_OBJECT + +public: + explicit ProcessesPage(QWidget *parent = 0); + ~ProcessesPage(); + +private slots: + void init(); + void loadProcesses(); + QList createRow(Process proc); + void on_processSearchBox_textChanged(const QString &val); + void on_refreshSlider_valueChanged(int i); + void on_endProcessBtn_clicked(); + void on_processTable_customContextMenuRequested(const QPoint &pos); + void loadHeaderMenu(); + +private: + Ui::ProcessesPage *ui; + +private: + QStandardItemModel *model; + QSortFilterProxyModel *sortModel; + QModelIndex seletedRowModel; + QStringList headers; + InfoManager *im; + QTimer *timer; + QMenu headerMenu; +}; + +#endif // PROCESSESPAGE_H diff --git a/stacer/Pages/Processes/processes_page.ui b/stacer/Pages/Processes/processes_page.ui new file mode 100644 index 0000000..dd9e97c --- /dev/null +++ b/stacer/Pages/Processes/processes_page.ui @@ -0,0 +1,217 @@ + + + ProcessesPage + + + + 0 + 0 + 835 + 612 + + + + + + + + + + + 20 + + + 5 + + + 20 + + + 20 + + + 0 + + + 5 + + + + + 10 + + + 5 + + + 0 + + + 10 + + + + + Processes + + + + + + + PointingHandCursor + + + Qt::NoFocus + + + All Processes + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Search... + + + true + + + + + + + + + Qt::NoFocus + + + QFrame::NoFrame + + + QFrame::Sunken + + + QAbstractScrollArea::AdjustToContents + + + QAbstractItemView::NoEditTriggers + + + QAbstractItemView::SingleSelection + + + QAbstractItemView::SelectRows + + + Qt::ElideMiddle + + + Qt::SolidLine + + + true + + + true + + + false + + + true + + + false + + + + + + + + 10 + + + 0 + + + 5 + + + 0 + + + 0 + + + + + Refresh (1) + + + + + + + PointingHandCursor + + + Qt::NoFocus + + + + + + Qt::Horizontal + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + PointingHandCursor + + + Qt::NoFocus + + + End Process + + + + + + + + + + + diff --git a/stacer/Pages/Resources/history_chart.cpp b/stacer/Pages/Resources/history_chart.cpp new file mode 100644 index 0000000..e0c0fbb --- /dev/null +++ b/stacer/Pages/Resources/history_chart.cpp @@ -0,0 +1,103 @@ +#include "history_chart.h" +#include "ui_history_chart.h" + +HistoryChart::~HistoryChart() +{ + delete ui; + delete chart; + delete chartView; +} + +HistoryChart::HistoryChart(QString title, int seriesCount, QWidget *parent) : + QWidget(parent), + title(title), + yMax(0), + seriesCount(seriesCount), + chartView(new QChartView), + chart(chartView->chart()), + apm(AppManager::ins()), + ui(new Ui::HistoryChart) +{ + ui->setupUi(this); + + init(); +} + +void HistoryChart::init() +{ + ui->historyTitle->setText(title); + + // create lists + for (int i = 0; i < seriesCount; i++) + seriesList.append(new QLineSeries); + + // add series to chart + for (int i = 0; i < seriesList.count(); ++i) + chart->addSeries(seriesList.at(i)); + + chartView->setRenderHint(QPainter::Antialiasing); + + QList colors = { + 0x2ecc71, 0xe74c3c, 0x3498db, 0xf1c40f, 0xe67e22, + 0x1abc9c, 0x9b59b6, 0x34495e, 0xd35400, 0xc0392b, + 0x8e44ad, 0xFF8F00, 0xEF6C00, 0x4E342E, 0x424242, + 0x5499C7, 0x58D68D, 0xCD6155, 0xF5B041, 0x566573 + }; + // set colors + for (int i = 0; i < seriesList.count(); ++i) + seriesList.at(i)->setColor(QColor(colors.at(i))); + + // Chart Settings + chart->createDefaultAxes(); + + chart->axisX()->setRange(0, 60); + chart->axisX()->setReverse(true); + + chart->setContentsMargins(-11, -11, -11, -11); + chart->setMargins(QMargins(20, 0, 10, 10)); + ui->verticalLayout->addWidget(chartView); + + // theme changed + connect(AppManager::ins(), &AppManager::changedTheme, this, [this]() { + chart->axisX()->setLabelsColor(apm->getStyleValues()->value("@chartLabelColor").toString()); + chart->axisX()->setGridLineColor(apm->getStyleValues()->value("@chartGridColor").toString()); + + chart->axisY()->setLabelsColor(apm->getStyleValues()->value("@chartLabelColor").toString()); + chart->axisY()->setGridLineColor(apm->getStyleValues()->value("@chartGridColor").toString()); + + chart->setBackgroundBrush(QColor(apm->getStyleValues()->value("@historyChartBackgroundColor").toString())); + chart->legend()->setLabelColor(apm->getStyleValues()->value("@chartLabelColor").toString()); + }); +} + +void HistoryChart::setYMax(int value) +{ + yMax = value; +} + +QVector HistoryChart::getSeriesList() const +{ + return seriesList; +} + +void HistoryChart::setSeriesList(QVector &value) +{ + seriesList = value; + + for (int i = 0; i < seriesList.count(); ++i) + chart->series().replace(0, seriesList.at(i)); + + if(yMax) chart->axisY()->setRange(0, yMax); + + chartView->repaint(); +} + +void HistoryChart::on_historyTitle_clicked(bool checked) +{ + QLayout *charts = topLevelWidget()->findChild("charts")->layout(); + + for (int i = 0; i < charts->count(); ++i) + charts->itemAt(i)->widget()->setVisible(! checked); + + show(); +} diff --git a/stacer/Pages/Resources/history_chart.h b/stacer/Pages/Resources/history_chart.h new file mode 100644 index 0000000..ce8d1e5 --- /dev/null +++ b/stacer/Pages/Resources/history_chart.h @@ -0,0 +1,46 @@ +#ifndef HISTORYCHART_H +#define HISTORYCHART_H + +#include +#include +#include +#include + +#include "Managers/app_manager.h" + +namespace Ui { + class HistoryChart; +} + +class HistoryChart : public QWidget +{ + Q_OBJECT + +public: + explicit HistoryChart(QString title, int seriesCount, QWidget *parent = 0); + ~HistoryChart(); + + QVector getSeriesList() const; + +public slots: + void setYMax(int value); + void setSeriesList(QVector &value); + +private slots: + void init(); + void on_historyTitle_clicked(bool checked); + +private: + Ui::HistoryChart *ui; + +private: + QString title; + int yMax; + int seriesCount; + QChartView *chartView; + QChart *chart; + QVector seriesList; + AppManager *apm; +}; + +#endif // HISTORYCHART_H diff --git a/stacer/Pages/Resources/history_chart.ui b/stacer/Pages/Resources/history_chart.ui new file mode 100644 index 0000000..f3069ba --- /dev/null +++ b/stacer/Pages/Resources/history_chart.ui @@ -0,0 +1,52 @@ + + + HistoryChart + + + + 0 + 0 + 930 + 387 + + + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + PointingHandCursor + + + Qt::NoFocus + + + + + + Chart Title + + + + + + + + diff --git a/stacer/Pages/Resources/resources_page.cpp b/stacer/Pages/Resources/resources_page.cpp new file mode 100644 index 0000000..671b065 --- /dev/null +++ b/stacer/Pages/Resources/resources_page.cpp @@ -0,0 +1,165 @@ +#include "resources_page.h" +#include "ui_resources_page.h" + +ResourcesPage::~ResourcesPage() +{ + delete ui; + delete cpuChart; + delete memoryChart; + delete networkChart; + delete timer; +} + +ResourcesPage::ResourcesPage(QWidget *parent) : + QWidget(parent), + timer(new QTimer), + im(InfoManager::ins()), + ui(new Ui::ResourcesPage) +{ + ui->setupUi(this); + + init(); +} + +void ResourcesPage::init() +{ + cpuChart = new HistoryChart(tr("CPU History"), im->getCpuCoreCount()); + cpuChart->setYMax(100); + + memoryChart = new HistoryChart(tr("Memory History"), 2); + memoryChart->setYMax(100); + + networkChart = new HistoryChart(tr("Network History"), 2); + + ui->chartsLayout->addWidget(cpuChart); + ui->chartsLayout->addWidget(memoryChart); + ui->chartsLayout->addWidget(networkChart); + + connect(timer, &QTimer::timeout, this, &ResourcesPage::updateCpuChart); + connect(timer, &QTimer::timeout, this, &ResourcesPage::updateMemoryChart); + connect(timer, &QTimer::timeout, this, &ResourcesPage::updateNetworkChart); + + timer->start(1 * 1000); +} + +void ResourcesPage::updateNetworkChart() +{ + static int second = 0; + + QVector seriesList = networkChart->getSeriesList(); + + // points swap + for (int j = 0; j < seriesList.count(); j++) { + for (int i = 0; i < (second < 61 ? second : 61); i++) + seriesList.at(j)->replace(i, (i+1), seriesList.at(j)->at(i).y()); + + if(second > 61) + seriesList.at(j)->removePoints(61, 1); + } + + static quint64 l_RXbytes = im->getRXbytes(); + static quint64 l_TXbytes = im->getTXbytes(); + static quint64 max_RXbytes = 1L << 20; // 1 MEBI + static quint64 max_TXbytes = 1L << 20; // 1 MEBI + + quint64 RXbytes = im->getRXbytes(); + quint64 TXbytes = im->getTXbytes(); + + quint64 d_RXbytes = (RXbytes - l_RXbytes); + quint64 d_TXbytes = (TXbytes - l_TXbytes); + + QString downText = FormatUtil::formatBytes(d_RXbytes); + QString upText = FormatUtil::formatBytes(d_TXbytes); + + // Download + seriesList.at(0)->insert(0, QPointF(0, d_RXbytes >> 10)); + seriesList.at(0)->setName(tr("Download %1/s Total: %2") + .arg(downText) + .arg(FormatUtil::formatBytes(RXbytes))); + + seriesList.at(1)->insert(0, QPointF(0, d_TXbytes >> 10)); + seriesList.at(1)->setName(tr("Upload %1/s Total: %2") + .arg(upText) + .arg(FormatUtil::formatBytes(TXbytes))); + + max_RXbytes = qMax(max_RXbytes, d_RXbytes); + max_TXbytes = qMax(max_TXbytes, d_TXbytes); + + int max = qMax(max_RXbytes, max_TXbytes) >> 10; + networkChart->setYMax(max); + + l_RXbytes = RXbytes; + l_TXbytes = TXbytes; + + second++; + + networkChart->setSeriesList(seriesList); +} + +void ResourcesPage::updateMemoryChart() +{ + static int second = 0; + + QVector seriesList = memoryChart->getSeriesList(); + + im->updateMemoryInfo(); + + // points swap + for (int j = 0; j < seriesList.count(); j++) { + for (int i = 0; i < (second < 61 ? second : 61); i++) + seriesList.at(j)->replace(i, (i+1), seriesList.at(j)->at(i).y()); + + if(second > 61) + seriesList.at(j)->removePoints(61, 1); + } + + // Swap + double percent = 0; + if (im->getSwapTotal()) // aritmetic exception control + percent = ((double) im->getSwapUsed() / (double) im->getSwapTotal()) * 100.0; + + seriesList.at(0)->insert(0, QPointF(0, percent)); + seriesList.at(0)->setName(tr("Swap %1 (%2%) %3") + .arg(FormatUtil::formatBytes(im->getSwapUsed())) + .arg(QString().sprintf("%.1f",percent)) + .arg(FormatUtil::formatBytes(im->getSwapTotal()))); + + // Memory + double percent2 = ((double) im->getMemUsed() / (double) im->getMemTotal()) * 100.0; + + seriesList.at(1)->insert(0, QPointF(0, percent2)); + seriesList.at(1)->setName(tr("Memory %1 (%2%) %3") + .arg(FormatUtil::formatBytes(im->getMemUsed())) + .arg(QString().sprintf("%.1f",percent2)) + .arg(FormatUtil::formatBytes(im->getMemTotal()))); + + second++; + + memoryChart->setSeriesList(seriesList); +} + +void ResourcesPage::updateCpuChart() +{ + static int second = 0; + + QList cpuPercents = im->getCpuPercents(); + + QVector seriesList = cpuChart->getSeriesList(); + + for (int j = 0; j < seriesList.count(); j++){ + int p = cpuPercents.at(j+1); + + for (int i = 0; i < (second < 61 ? second : 61); i++) + seriesList.at(j)->replace(i, (i+1), seriesList.at(j)->at(i).y()); + + seriesList.at(j)->insert(0, QPointF(0, p)); + + seriesList.at(j)->setName(QString("CPU%1 %2%").arg(j+1).arg(p)); + + if(second > 61) seriesList.at(j)->removePoints(61, 1); + } + + second++; + + cpuChart->setSeriesList(seriesList); +} diff --git a/stacer/Pages/Resources/resources_page.h b/stacer/Pages/Resources/resources_page.h new file mode 100644 index 0000000..f45df77 --- /dev/null +++ b/stacer/Pages/Resources/resources_page.h @@ -0,0 +1,40 @@ +#ifndef RESOURCESPAGE_H +#define RESOURCESPAGE_H + +#include +#include + +#include "history_chart.h" +#include "Managers/info_manager.h" + +namespace Ui { + class ResourcesPage; +} + +class ResourcesPage : public QWidget +{ + Q_OBJECT + +public: + explicit ResourcesPage(QWidget *parent = 0); + ~ResourcesPage(); + +private slots: + void updateCpuChart(); + void updateMemoryChart(); + void updateNetworkChart(); + +private: + Ui::ResourcesPage *ui; + void init(); + +private: + HistoryChart *cpuChart; + HistoryChart *memoryChart; + HistoryChart *networkChart; + + QTimer *timer; + InfoManager *im; +}; + +#endif // RESOURCESPAGE_H diff --git a/stacer/Pages/Resources/resources_page.ui b/stacer/Pages/Resources/resources_page.ui new file mode 100644 index 0000000..d346e6f --- /dev/null +++ b/stacer/Pages/Resources/resources_page.ui @@ -0,0 +1,57 @@ + + + ResourcesPage + + + + 0 + 0 + 890 + 537 + + + + + + + + 0 + + + 10 + + + 10 + + + 10 + + + 1 + + + + + + 10 + + + 10 + + + 0 + + + 10 + + + 10 + + + + + + + + + diff --git a/stacer/Pages/Services/service_item.cpp b/stacer/Pages/Services/service_item.cpp new file mode 100644 index 0000000..8bde30e --- /dev/null +++ b/stacer/Pages/Services/service_item.cpp @@ -0,0 +1,37 @@ +#include "service_item.h" +#include "ui_service_item.h" + +ServiceItem::~ServiceItem() +{ + delete ui; +} + +ServiceItem::ServiceItem(QString name, bool status, bool active, QWidget *parent) : + QWidget(parent), + name(name), + tm(ToolManager::ins()), + ui(new Ui::ServiceItem) +{ + ui->setupUi(this); + + ui->serviceName->setText(name); + ui->runningBtn->setChecked(active); + ui->startupBtn->setChecked(status); + + connect(ui->startupBtn, &QCheckBox::clicked, this, &ServiceItem::startupBtn_toggled); + connect(ui->runningBtn, &QCheckBox::clicked, this, &ServiceItem::runningBtn_toggled); +} + +void ServiceItem::startupBtn_toggled(bool status) +{ + tm->changeServiceStatus(ui->serviceName->text(), status); + + ui->startupBtn->setChecked(tm->serviceIsEnabled(name)); +} + +void ServiceItem::runningBtn_toggled(bool status) +{ + tm->changeServiceActive(ui->serviceName->text(), status); + + ui->runningBtn->setChecked(tm->serviceIsActive(name)); +} diff --git a/stacer/Pages/Services/service_item.h b/stacer/Pages/Services/service_item.h new file mode 100644 index 0000000..a8848b0 --- /dev/null +++ b/stacer/Pages/Services/service_item.h @@ -0,0 +1,33 @@ +#ifndef SERVICE_ITEM_H +#define SERVICE_ITEM_H + +#include +#include +#include "Managers/tool_manager.h" + +namespace Ui { + class ServiceItem; +} + +class ServiceItem : public QWidget +{ + Q_OBJECT + +public: + explicit ServiceItem(QString name, bool status, bool active, QWidget *parent = 0); + ~ServiceItem(); + +private slots: + void runningBtn_toggled(bool status); + void startupBtn_toggled(bool status); + +private: + Ui::ServiceItem *ui; + +private: + QString name; + + ToolManager *tm; +}; + +#endif // SERVICE_ITEM_H diff --git a/stacer/Pages/Services/service_item.ui b/stacer/Pages/Services/service_item.ui new file mode 100644 index 0000000..ed66148 --- /dev/null +++ b/stacer/Pages/Services/service_item.ui @@ -0,0 +1,171 @@ + + + ServiceItem + + + + 0 + 0 + 713 + 45 + + + + + 0 + 0 + + + + + 0 + 45 + + + + + 16777215 + 45 + + + + ArrowCursor + + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + 0 + 45 + + + + + 16777215 + 45 + + + + + 15 + + + 10 + + + 10 + + + 0 + + + + + PointingHandCursor + + + Qt::NoFocus + + + + + + + + + + Qt::Horizontal + + + QSizePolicy::Fixed + + + + 60 + 0 + + + + + + + + + 25 + 25 + + + + + 25 + 25 + + + + + + + true + + + + + + + Service Name + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + PointingHandCursor + + + Qt::NoFocus + + + + + + + + + + + + + + diff --git a/stacer/Pages/Services/services_page.cpp b/stacer/Pages/Services/services_page.cpp new file mode 100644 index 0000000..32122e3 --- /dev/null +++ b/stacer/Pages/Services/services_page.cpp @@ -0,0 +1,52 @@ +#include "services_page.h" +#include "ui_services_page.h" + +ServicesPage::~ServicesPage() +{ + delete ui; +} + +ServicesPage::ServicesPage(QWidget *parent) : + QWidget(parent), + tm(ToolManager::ins()), + ui(new Ui::ServicesPage) +{ + ui->setupUi(this); + + init(); +} + +void ServicesPage::init() +{ + loadServices(); + + if(ui->serviceListWidget->count()) { + ui->notFoundWidget->hide(); + } + else { // list widget is empty show not found + ui->notFoundWidget->show(); + ui->serviceListWidget->hide(); + } +} + +void ServicesPage::loadServices() +{ + foreach (Service s, tm->getServices()) { + + ServiceItem *service = new ServiceItem(s.name, s.status, s.active, this); + + QListWidgetItem *item = new QListWidgetItem(ui->serviceListWidget); + + item->setSizeHint(service->sizeHint()); + + ui->serviceListWidget->setItemWidget(item, service); + } + + setAppCount(); +} + +void ServicesPage::setAppCount() +{ + ui->servicesTitle->setText(tr("System Services (%1)") + .arg(ui->serviceListWidget->count())); +} diff --git a/stacer/Pages/Services/services_page.h b/stacer/Pages/Services/services_page.h new file mode 100644 index 0000000..b64bf35 --- /dev/null +++ b/stacer/Pages/Services/services_page.h @@ -0,0 +1,36 @@ +#ifndef SERVICESPAGE_H +#define SERVICESPAGE_H + +#include +#include +#include +#include "service_item.h" +#include "Managers/tool_manager.h" + +namespace Ui { + class ServicesPage; +} + +class ServicesPage : public QWidget +{ + Q_OBJECT + +public: + explicit ServicesPage(QWidget *parent = 0); + ~ServicesPage(); + +private slots: + void init(); + void loadServices(); + +public slots: + void setAppCount(); + +private: + Ui::ServicesPage *ui; + +private: + ToolManager *tm; +}; + +#endif // SERVICESPAGE_H diff --git a/stacer/Pages/Services/services_page.ui b/stacer/Pages/Services/services_page.ui new file mode 100644 index 0000000..ee68d53 --- /dev/null +++ b/stacer/Pages/Services/services_page.ui @@ -0,0 +1,304 @@ + + + ServicesPage + + + + 0 + 0 + 882 + 549 + + + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + + + + 0 + + + 30 + + + 10 + + + 30 + + + 30 + + + + + 0 + + + 15 + + + 45 + + + 0 + + + + + + Ubuntu + 11 + + + + + + + System Services + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + 0 + 0 + + + + + 20 + 20 + + + + + 80 + 16777215 + + + + + Ubuntu + 10 + + + + Startup at boot ? + + + + + + + + + + + + + Qt::Horizontal + + + QSizePolicy::Fixed + + + + 100 + 20 + + + + + + + + + 0 + 0 + + + + + 20 + 20 + + + + + 100 + 16777215 + + + + + Ubuntu + 10 + + + + Running Now ? + + + + + + + + + + + + + + + + 0 + 0 + + + + + 0 + 200 + + + + + 16777215 + 9999999 + + + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + Qt::Vertical + + + QSizePolicy::Fixed + + + + 20 + 180 + + + + + + + + Not Found System Service + + + + + + + Qt::Vertical + + + + 20 + 0 + + + + + + + + + + + Qt::NoFocus + + + Qt::ScrollBarAlwaysOff + + + QAbstractItemView::NoEditTriggers + + + QAbstractItemView::NoSelection + + + QAbstractItemView::SelectRows + + + QListView::Adjust + + + QListView::Batched + + + 4 + + + true + + + + + + + + + + + diff --git a/stacer/Pages/Settings/settings_page.cpp b/stacer/Pages/Settings/settings_page.cpp new file mode 100644 index 0000000..10ff8bf --- /dev/null +++ b/stacer/Pages/Settings/settings_page.cpp @@ -0,0 +1,60 @@ +#include "settings_page.h" +#include "ui_settings_page.h" + +SettingsPage::~SettingsPage() +{ + delete ui; +} + +SettingsPage::SettingsPage(QWidget *parent) : + QWidget(parent), + apm(AppManager::ins()), + ui(new Ui::SettingsPage) +{ + ui->setupUi(this); + + init(); +} + +void SettingsPage::init() +{ + // load languages + QMapIterator lang(apm->getLanguageList()); + + while (lang.hasNext()) { + lang.next(); + ui->languagesCmb->addItem(lang.value(),lang.key()); + } + + QString lc = apm->getLanguageCode(); + ui->languagesCmb->setCurrentText(apm->getLanguageList().value(lc)); + + // load themes + QMapIterator theme(apm->getThemeList()); + + while (theme.hasNext()) { + theme.next(); + ui->themesCmb->addItem(theme.value(),theme.key()); + } + + QString tn = apm->getThemeName(); + ui->themesCmb->setCurrentText(apm->getThemeList().value(tn)); + + connect(ui->languagesCmb, SIGNAL(currentIndexChanged(int)), this, SLOT(languagesCmbChanged(int))); + connect(ui->themesCmb, SIGNAL(currentIndexChanged(int)), this, SLOT(themesCmbChanged(int))); +} + +void SettingsPage::languagesCmbChanged(int index) +{ + QString langCode = ui->languagesCmb->itemData(index).toString(); + + apm->setLanguage(langCode); +} + +void SettingsPage::themesCmbChanged(int index) +{ + QString themeName = ui->themesCmb->itemData(index).toString(); + + apm->setThemeName(themeName); + apm->updateStylesheet(); +} diff --git a/stacer/Pages/Settings/settings_page.h b/stacer/Pages/Settings/settings_page.h new file mode 100644 index 0000000..b32aab9 --- /dev/null +++ b/stacer/Pages/Settings/settings_page.h @@ -0,0 +1,34 @@ +#ifndef SETTINGS_PAGE_H +#define SETTINGS_PAGE_H + +#include +#include + +#include "Managers/app_manager.h" + +namespace Ui { + class SettingsPage; +} + +class SettingsPage : public QWidget +{ + Q_OBJECT + +public: + explicit SettingsPage(QWidget *parent = 0); + ~SettingsPage(); + +private slots: + void init(); + + void themesCmbChanged(int index); + void languagesCmbChanged(int index); + +private: + Ui::SettingsPage *ui; + +private: + AppManager *apm; +}; + +#endif // SETTINGS_PAGE_H diff --git a/stacer/Pages/Settings/settings_page.ui b/stacer/Pages/Settings/settings_page.ui new file mode 100644 index 0000000..a3e71d0 --- /dev/null +++ b/stacer/Pages/Settings/settings_page.ui @@ -0,0 +1,105 @@ + + + SettingsPage + + + + 0 + 0 + 733 + 479 + + + + + 0 + 0 + + + + + + + + 15 + + + 15 + + + 15 + + + 15 + + + 30 + + + 10 + + + + + PointingHandCursor + + + Qt::NoFocus + + + + + + + Language + + + + + + + PointingHandCursor + + + Qt::NoFocus + + + + + + + Theme + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + diff --git a/stacer/Pages/StartupApps/startup_app.cpp b/stacer/Pages/StartupApps/startup_app.cpp new file mode 100644 index 0000000..d9bf64f --- /dev/null +++ b/stacer/Pages/StartupApps/startup_app.cpp @@ -0,0 +1,84 @@ +#include "startup_app.h" +#include "ui_startup_app.h" + +StartupApp::~StartupApp() +{ + delete ui; + delete startupAppEdit; +} + +StartupApp::StartupApp(QString appName, bool enabled, QString filePath, QWidget *parent) : + QWidget(parent), + ui(new Ui::StartupApp), + startupAppEdit(new StartupAppEdit), + appName(appName), + enabled(enabled), + filePath(filePath) +{ + ui->setupUi(this); + + ui->appName->setText(appName); + ui->startupCheck->setChecked(enabled); + + ui->deleteAppBtn->setToolTip(tr("Delete")); + ui->editAppBtn->setToolTip(tr("Edit")); + + connect(startupAppEdit, &StartupAppEdit::closeWindow, (StartupAppsPage*)parent, &StartupAppsPage::loadApps); +} + +void StartupApp::on_startupCheck_clicked(bool status) +{ + QStringList lines = FileUtil::readListFromFile(filePath); + + int pos = lines.indexOf(QRegExp("X-GNOME-Autostart-enabled=.*")); + + if(pos != -1) + { + lines.replace(pos, QString("X-GNOME-Autostart-enabled=%1").arg(status ? "true" : "false")); + + FileUtil::writeFile(filePath, lines.join("\n")); + } +} + +void StartupApp::on_deleteAppBtn_clicked() +{ + if(QFile::remove(filePath)) + deleteApp(); +} + +void StartupApp::on_editAppBtn_clicked() +{ + StartupAppEdit::selectedFilePath = filePath; + startupAppEdit->show(); +} + +QString StartupApp::getAppName() const +{ + return appName; +} + +void StartupApp::setAppName(const QString &value) +{ + appName = value; +} + +bool StartupApp::getEnabled() const +{ + return enabled; +} + +void StartupApp::setEnabled(bool value) +{ + enabled = value; +} + +QString StartupApp::getFilePath() const +{ + return filePath; +} + +void StartupApp::setFilePath(const QString &value) +{ + filePath = value; +} + diff --git a/stacer/Pages/StartupApps/startup_app.h b/stacer/Pages/StartupApps/startup_app.h new file mode 100644 index 0000000..826ee6d --- /dev/null +++ b/stacer/Pages/StartupApps/startup_app.h @@ -0,0 +1,51 @@ +#ifndef STARTUP_APP_H +#define STARTUP_APP_H + +#include +#include +#include + +#include "startup_app_edit.h" +#include "startup_apps_page.h" + +namespace Ui { + class StartupApp; +} + +class StartupApp : public QWidget +{ + Q_OBJECT + +public: + explicit StartupApp(QString appName, bool enabled, QString filePath, QWidget *parent = 0); + ~StartupApp(); + + QString getAppName() const; + void setAppName(const QString &value); + + bool getEnabled() const; + void setEnabled(bool value); + + QString getFilePath() const; + void setFilePath(const QString &value); + +private slots: + void on_startupCheck_clicked(bool); + void on_deleteAppBtn_clicked(); + void on_editAppBtn_clicked(); + +signals: + void deleteApp(); + +private: + Ui::StartupApp *ui; + +private: + QString appName; + QString appComment; + bool enabled; + QString filePath; + StartupAppEdit *startupAppEdit; +}; + +#endif // STARTUP_APP_H diff --git a/stacer/Pages/StartupApps/startup_app.ui b/stacer/Pages/StartupApps/startup_app.ui new file mode 100644 index 0000000..609bcf7 --- /dev/null +++ b/stacer/Pages/StartupApps/startup_app.ui @@ -0,0 +1,177 @@ + + + StartupApp + + + + 0 + 0 + 661 + 45 + + + + + 0 + 0 + + + + + 0 + 45 + + + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + 0 + 0 + + + + ArrowCursor + + + + 15 + + + 15 + + + 10 + + + 10 + + + 10 + + + + + + 22 + 24 + + + + + 22 + 24 + + + + + + + true + + + + + + + App Name + + + + + + + Qt::Horizontal + + + + 0 + 0 + + + + + + + + PointingHandCursor + + + Qt::NoFocus + + + + + + + 18 + 20 + + + + + + + + PointingHandCursor + + + Qt::NoFocus + + + + + + + 22 + 22 + + + + + + + + PointingHandCursor + + + Qt::NoFocus + + + + + + + 45 + 23 + + + + + + + + + + + + diff --git a/stacer/Pages/StartupApps/startup_app_edit.cpp b/stacer/Pages/StartupApps/startup_app_edit.cpp new file mode 100644 index 0000000..18af086 --- /dev/null +++ b/stacer/Pages/StartupApps/startup_app_edit.cpp @@ -0,0 +1,117 @@ +#include "startup_app_edit.h" +#include "ui_startup_app_edit.h" + +StartupAppEdit::~StartupAppEdit() +{ + delete ui; +} + +QString StartupAppEdit::selectedFilePath = ""; + +StartupAppEdit::StartupAppEdit(QWidget *parent) : + QDialog(parent), + ui(new Ui::StartupAppEdit) +{ + ui->setupUi(this); + + init(); +} + +void StartupAppEdit::init() +{ + setGeometry( + QStyle::alignedRect( + Qt::LeftToRight, + Qt::AlignCenter, + size(), + qApp->desktop()->availableGeometry()) + ); + + ui->errorMsg->hide(); + + setStyleSheet(AppManager::ins()->getStylesheetFileContent()); + + newAppTemplate = "[Desktop Entry]\n" + "Name=%1\n" + "Comment=%2\n" + "Exec=%3\n" + "Type=Application\n" + "Terminal=false\n" + "X-GNOME-Autostart-enabled=true"; +} + +void StartupAppEdit::show() +{ + // clear fields + ui->appNameTxt->clear(); + ui->appCommentTxt->clear(); + ui->appCommandTxt->clear(); + ui->errorMsg->hide(); + + if(! selectedFilePath.isEmpty()) + { + QStringList lines = FileUtil::readListFromFile(selectedFilePath); + + if(! lines.isEmpty()) + { +#define getValue(r) lines.filter(r).first().split("=").last().trimmed() + ui->appNameTxt->setText(getValue(NAME_REG)); + ui->appCommentTxt->setText(getValue(COMMENT_REG)); + ui->appCommandTxt->setText(getValue(EXEC_REG)); +#undef getValue + } + } + + QDialog::show(); +} + +void StartupAppEdit::on_saveBtn_clicked() +{ + static QString autostartPath = QStandardPaths::writableLocation(QStandardPaths::ConfigLocation) + "/autostart"; + + if(isValid()) + { + if(! selectedFilePath.isEmpty()) + { + QStringList lines = FileUtil::readListFromFile(selectedFilePath); + + lines.replace(lines.indexOf(NAME_REG), QString("Name=%1").arg(ui->appNameTxt->text())); + lines.replace(lines.indexOf(COMMENT_REG), QString("Comment=%1").arg(ui->appCommentTxt->text())); + lines.replace(lines.indexOf(EXEC_REG), QString("Exec=%1").arg(ui->appCommandTxt->text())); + + FileUtil::writeFile(selectedFilePath, QString(lines.join("\n")), QIODevice::ReadWrite | QIODevice::Truncate); + } + else + { + // new file content + QString appContent = newAppTemplate + .arg(ui->appNameTxt->text()) + .arg(ui->appCommentTxt->text()) + .arg(ui->appCommandTxt->text()); + + // file name + QString appFileName = ui->appNameTxt->text() + .replace(" ", "_") + .replace(QRegExp("\\W+"), ""); + + QString path = QString("%1/%2.desktop").arg(autostartPath).arg(appFileName); + + FileUtil::writeFile(path, appContent); + } + + close(); + closeWindow(); // signal + } + else { + ui->errorMsg->show(); + } + + selectedFilePath = ""; +} + +bool StartupAppEdit::isValid() +{ + return ! ui->appNameTxt->text().isEmpty() && + ! ui->appCommentTxt->text().isEmpty() && + ! ui->appCommandTxt->text().isEmpty(); +} diff --git a/stacer/Pages/StartupApps/startup_app_edit.h b/stacer/Pages/StartupApps/startup_app_edit.h new file mode 100644 index 0000000..f848c34 --- /dev/null +++ b/stacer/Pages/StartupApps/startup_app_edit.h @@ -0,0 +1,46 @@ +#ifndef STARTUP_APP_EDIT_H +#define STARTUP_APP_EDIT_H + +#include +#include + +#include "Managers/app_manager.h" + +#define NAME_REG QRegExp("(\\W+|^)Name=.*") +#define COMMENT_REG QRegExp("(\\W+|^)Comment=.*") +#define EXEC_REG QRegExp("(\\W+|^)Exec=.*") + +namespace Ui { + class StartupAppEdit; +} + +class StartupAppEdit : public QDialog +{ + Q_OBJECT + +public: + explicit StartupAppEdit(QWidget *parent = 0); + ~StartupAppEdit(); + +public: + static QString selectedFilePath; + +signals: + void closeWindow(); + +public slots: + void show(); + +private slots: + void init(); + bool isValid(); + void on_saveBtn_clicked(); + +private: + Ui::StartupAppEdit *ui; + +private: + QString newAppTemplate; +}; + +#endif // STARTUP_APP_EDIT_H diff --git a/stacer/Pages/StartupApps/startup_app_edit.ui b/stacer/Pages/StartupApps/startup_app_edit.ui new file mode 100644 index 0000000..5449975 --- /dev/null +++ b/stacer/Pages/StartupApps/startup_app_edit.ui @@ -0,0 +1,115 @@ + + + StartupAppEdit + + + + 0 + 0 + 380 + 260 + + + + + 380 + 260 + + + + Startup App + + + true + + + + 30 + + + 20 + + + 30 + + + 20 + + + 15 + + + + + PointingHandCursor + + + Qt::NoFocus + + + Save + + + true + + + + + + + Fields cannot be left blank. + + + + + + + App Comment + + + + + + + App Name + + + + + + + Command + + + + + + + Application + + + + + + + Qt::Vertical + + + + 20 + 0 + + + + + + + + appNameTxt + appCommentTxt + appCommandTxt + saveBtn + + + + diff --git a/stacer/Pages/StartupApps/startup_apps_page.cpp b/stacer/Pages/StartupApps/startup_apps_page.cpp new file mode 100644 index 0000000..3c57979 --- /dev/null +++ b/stacer/Pages/StartupApps/startup_apps_page.cpp @@ -0,0 +1,90 @@ +#include "startup_apps_page.h" +#include "ui_startup_apps_page.h" + +StartupAppsPage::~StartupAppsPage() +{ + delete ui; + delete startupAppEdit; +} + +StartupAppsPage::StartupAppsPage(QWidget *parent) : + QWidget(parent), + ui(new Ui::StartupAppsPage), + startupAppEdit(new StartupAppEdit) +{ + ui->setupUi(this); + + init(); +} + +void StartupAppsPage::init() +{ + loadApps(); + + connect(startupAppEdit, &StartupAppEdit::closeWindow, this, &StartupAppsPage::loadApps); +} + +void StartupAppsPage::loadApps() +{ + // clear layout + ui->startupListWidget->clear(); + + static QString autostartPath = QStandardPaths::writableLocation(QStandardPaths::ConfigLocation) + "/autostart"; + + QDir autostartFiles(autostartPath, "*.desktop"); + + foreach (QFileInfo f, autostartFiles.entryInfoList()) + { + QStringList lines = FileUtil::readListFromFile(f.absoluteFilePath()); + + QStringList d_name = lines.filter(QRegExp("(\\W+|^)Name=")); // get name + + if(! d_name.isEmpty()) // has a name + { + QString appName = d_name.first().split("=").last().trimmed(); + + QStringList d_autostart = lines.filter(QRegExp("(\\W+|^)X-GNOME-Autostart-enabled=")); + + bool enabled = false; + if(! d_autostart.isEmpty()) + { + // X-GNOME-Autostart-enabled=[true|false] + QString status = d_autostart.first() + .split("=").last().toLower().trimmed(); + + enabled = ! status.compare("true"); + } + + QListWidgetItem *item = new QListWidgetItem(ui->startupListWidget); + // new app + StartupApp *app = new StartupApp(appName, enabled, f.absoluteFilePath(), this); + + // delete button click + connect(app, &StartupApp::deleteApp, this, &StartupAppsPage::loadApps); + + item->setSizeHint(app->sizeHint()); + + ui->startupListWidget->setItemWidget(item, app); + } + } + + setAppCount(); +} + +void StartupAppsPage::setAppCount() +{ + int count = ui->startupListWidget->count(); + + ui->startupAppsTitleLbl->setText( + tr("System Startup Applications (%1)") + .arg(QString::number(count))); + + ui->notFoundWidget->setVisible(! count); + ui->startupListWidget->setVisible(count); +} + +void StartupAppsPage::on_addStartupAppBtn_clicked() +{ + StartupAppEdit::selectedFilePath = ""; + startupAppEdit->show(); +} diff --git a/stacer/Pages/StartupApps/startup_apps_page.h b/stacer/Pages/StartupApps/startup_apps_page.h new file mode 100644 index 0000000..b85c145 --- /dev/null +++ b/stacer/Pages/StartupApps/startup_apps_page.h @@ -0,0 +1,39 @@ +#ifndef STARTUPAPPSPAGE_H +#define STARTUPAPPSPAGE_H + +#include +#include + +#include "startup_app.h" +#include "startup_app_edit.h" + +#include + +namespace Ui { + class StartupAppsPage; +} + +class StartupAppsPage : public QWidget +{ + Q_OBJECT + +public: + explicit StartupAppsPage(QWidget *parent = 0); + ~StartupAppsPage(); + +public slots: + void loadApps(); + +private slots: + void init(); + void on_addStartupAppBtn_clicked(); + void setAppCount(); + +private: + Ui::StartupAppsPage *ui; + +private: + StartupAppEdit *startupAppEdit; +}; + +#endif // STARTUPAPPSPAGE_H diff --git a/stacer/Pages/StartupApps/startup_apps_page.ui b/stacer/Pages/StartupApps/startup_apps_page.ui new file mode 100644 index 0000000..ddf2096 --- /dev/null +++ b/stacer/Pages/StartupApps/startup_apps_page.ui @@ -0,0 +1,243 @@ + + + StartupAppsPage + + + + 0 + 0 + 892 + 591 + + + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + 0 + 0 + + + + ArrowCursor + + + + + + + 60 + + + 20 + + + 60 + + + 30 + + + 5 + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + 0 + 0 + + + + + Ubuntu + + + + PointingHandCursor + + + Qt::NoFocus + + + + + + Add Startup App + + + + + + + + Ubuntu + 11 + false + + + + + + + System Startup Applications + + + + + + + Qt::Vertical + + + QSizePolicy::Fixed + + + + 20 + 20 + + + + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + 0 + 0 + + + + + 0 + 200 + + + + + 16777215 + 200 + + + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + Not Found Startup Apps + + + + + + + + + + Qt::NoFocus + + + QFrame::NoFrame + + + Qt::ScrollBarAlwaysOff + + + QAbstractItemView::EditKeyPressed + + + QAbstractItemView::NoSelection + + + QAbstractItemView::SelectRows + + + QListView::Adjust + + + QListView::Batched + + + 5 + + + true + + + + + + + + + + + + + + diff --git a/stacer/Pages/SystemCleaner/system_cleaner_page.cpp b/stacer/Pages/SystemCleaner/system_cleaner_page.cpp new file mode 100644 index 0000000..d346cc1 --- /dev/null +++ b/stacer/Pages/SystemCleaner/system_cleaner_page.cpp @@ -0,0 +1,315 @@ +#include "system_cleaner_page.h" +#include "ui_system_cleaner_page.h" + +SystemCleanerPage::~SystemCleanerPage() +{ + delete ui; + delete loadingMovie; + delete loadingMovie_2; +} + +SystemCleanerPage::SystemCleanerPage(QWidget *parent) : + QWidget(parent), + im(InfoManager::ins()), + tmr(ToolManager::ins()), + defaultIcon(QIcon::fromTheme("application-x-executable")), + ui(new Ui::SystemCleanerPage) +{ + ui->setupUi(this); + + init(); + + ui->stackedWidget->setCurrentIndex(0); +} + +void SystemCleanerPage::init() +{ + // treview settings + ui->scanResultTreeW->setColumnCount(2); + ui->scanResultTreeW->setColumnWidth(0, 600); + + ui->scanResultTreeW->header()->setFixedHeight(30); + ui->scanResultTreeW->setHeaderLabels({ tr("File Name"), tr("Size") }); + + // loaders + connect(AppManager::ins(), &AppManager::changedTheme, this, [this]() { + loadingMovie = new QMovie(QString(":/static/themes/%1/img/scanLoading.gif").arg(AppManager::ins()->getThemeName())); + ui->loading->setMovie(loadingMovie); + loadingMovie->start(); + ui->loading->hide(); + + loadingMovie_2 = new QMovie(QString(":/static/themes/%1/img/loading.gif").arg(AppManager::ins()->getThemeName())); + ui->loading_2->setMovie(loadingMovie_2); + loadingMovie_2->start(); + ui->loading_2->hide(); + }); +} + +void SystemCleanerPage::addTreeRoot(CleanCategories cat, QString title, QFileInfoList infos, bool noChild) +{ + QTreeWidgetItem *root = new QTreeWidgetItem(ui->scanResultTreeW); + root->setData(2, 0, cat); + root->setData(2, 1, title); + if (! infos.isEmpty()) + root->setData(3, 0, infos.at(0).absoluteDir().path()); + root->setCheckState(0, Qt::Unchecked); + + // add children + quint64 totalSize = 0; + + if(! noChild) { + foreach (QFileInfo i, infos) { + quint64 size = FileUtil::getFileSize(i.absoluteFilePath()); + + addTreeChild(i.absoluteFilePath(), i.fileName(), size, root); + + totalSize += size; + } + + root->setText(0, QString("%1 (%2)") + .arg(title) + .arg(infos.count())); + + } else { + if (! infos.isEmpty()) + totalSize += FileUtil::getFileSize(infos.first().absoluteFilePath()); + + root->setText(0, QString("%1") + .arg(title)); + } + + root->setText(1, QString("%1").arg(FormatUtil::formatBytes(totalSize))); +} + +void SystemCleanerPage::addTreeChild(QString data, QString text, quint64 size, QTreeWidgetItem *parent) +{ + QTreeWidgetItem *item = new QTreeWidgetItem(parent); + item->setIcon(0, QIcon::fromTheme(text, defaultIcon)); + item->setText(0, text); + item->setText(1, FormatUtil::formatBytes(size)); + item->setData(2, 0, data); + item->setCheckState(0, Qt::Unchecked); +} + +void SystemCleanerPage::addTreeChild(CleanCategories cat, QString text, quint64 size) +{ + QTreeWidgetItem *item = new QTreeWidgetItem(ui->scanResultTreeW); + item->setText(0, text); + item->setText(1, FormatUtil::formatBytes(size)); + item->setData(2, 0, cat); + item->setCheckState(0, Qt::Unchecked); +} + +void SystemCleanerPage::on_scanResultTreeW_itemClicked(QTreeWidgetItem *item, int column) +{ + if(column == 0) { + // new check state + Qt::CheckState cs = (item->checkState(column) == Qt::Checked ? Qt::Unchecked : Qt::Checked); + + // update check state + item->setCheckState(column, cs); + + // change check state if has children + for (int i = 0; i < item->childCount(); ++i) + item->child(i)->setCheckState(column, cs); + } +} + +void SystemCleanerPage::systemScan() +{ + if (ui->packageCacheCheck->isChecked() || + ui->crashReportsCheck->isChecked() || + ui->logCheck->isChecked() || + ui->appCacheCheck->isChecked() || + ui->trashCheck->isChecked() + ){ + ui->scanBtn->hide(); + ui->loading->show(); + ui->packageCacheCheck->setEnabled(false); + ui->crashReportsCheck->setEnabled(false); + ui->logCheck->setEnabled(false); + ui->appCacheCheck->setEnabled(false); + ui->trashCheck->setEnabled(false); + + QThread::sleep(1); + + ui->scanResultTreeW->clear(); + + // Package Caches + if (ui->packageCacheCheck->isChecked()) { + addTreeRoot(PACKAGE_CACHE, + ui->packageCacheLabel->text(), + tmr->getPackageCaches()); + } + + // Crash Reports + if (ui->crashReportsCheck->isChecked()) { + addTreeRoot(CRASH_REPORTS, + ui->crashReportsLabel->text(), + im->getCrashReports()); + } + + // Application Logs + if (ui->logCheck->isChecked()) { + addTreeRoot(APPLICATION_LOGS, + ui->logLabel->text(), + im->getAppLogs()); + } + + // Application Cache + if (ui->appCacheCheck->isChecked()) { + addTreeRoot(APPLICATION_CACHES, + ui->appCacheLabel->text(), + im->getAppCaches()); + } + + // Trash + if(ui->trashCheck->isChecked()) { + addTreeRoot(TRASH, + ui->trashLabel->text(), + { QFileInfo("/home/oguzhan/.local/share/Trash/") }, + true); + } + + // scan results page + ui->stackedWidget->setCurrentIndex(1); + + ui->packageCacheCheck->setChecked(false); + ui->crashReportsCheck->setChecked(false); + ui->logCheck->setChecked(false); + ui->appCacheCheck->setChecked(false); + ui->trashCheck->setChecked(false); + } +} + +bool SystemCleanerPage::cleanValid() +{ + for (int i = 0; i < ui->scanResultTreeW->topLevelItemCount(); ++i) { + + QTreeWidgetItem *it = ui->scanResultTreeW->topLevelItem(i); + + if (it->checkState(0) == Qt::Checked) + return true; + + for (int j = 0; j < it->childCount(); ++j) + if (it->child(j)->checkState(0) == Qt::Checked) + return true; + } + + return false; +} + +void SystemCleanerPage::systemClean() +{ + if (cleanValid()) + { + ui->cleanBtn->hide(); + ui->loading_2->show(); + ui->scanResultTreeW->setEnabled(false); + + quint64 totalCleanedSize = 0; + + QTreeWidget *tree = ui->scanResultTreeW; + + QStringList filesToDelete; + + QList children; + + for (int i = 0; i < tree->topLevelItemCount(); ++i) { + + QTreeWidgetItem *it = tree->topLevelItem(i); + + CleanCategories cat = (CleanCategories) it->data(2, 0).toInt(); + + // Package Caches | Crash Reports | Application Logs | Application Caches + if (cat != CleanCategories::TRASH) { + + for (int j = 0; j < it->childCount(); ++j) { // files + + if(it->child(j)->checkState(0) == Qt::Checked) { // if checked + + QString filePath = it->child(j)->data(2, 0).toString(); + + filesToDelete << filePath; + + children.append(it->child(j)); + } + } + } + + // Trash + else if (cat == CleanCategories::TRASH) { + + if (it->checkState(0) == Qt::Checked) { + + QString homePath = QStandardPaths::writableLocation(QStandardPaths::HomeLocation); + + QDir(homePath + "/.local/share/Trash/files").removeRecursively(); + QDir(homePath + "/.local/share/Trash/info").removeRecursively(); + } + } + } + + // get removed files total size + foreach (QString file, filesToDelete) { + totalCleanedSize += FileUtil::getFileSize(file); + } + + // remove selected files + if(! filesToDelete.isEmpty()) { + CommandUtil::sudoExec("rm", QStringList() << "-rf" << filesToDelete); + } + + QThread::sleep(1); + + for (int i = 0; i < tree->topLevelItemCount(); ++i) { + // clear removed childs + foreach (QTreeWidgetItem *item, children) { + tree->topLevelItem(i)->removeChild(item); + } + } + + // update titles + for (int i = 0; i < tree->topLevelItemCount(); ++i) { + + QTreeWidgetItem *it = tree->topLevelItem(i); + + it->setText(0, QString("%1 (%2)") + .arg(it->data(2, 1).toString()) + .arg(it->childCount())); + + it->setText(1, QString("%1") + .arg(FormatUtil::formatBytes(FileUtil::getFileSize(it->data(3, 0).toString())))); + } + + ui->removedTotalSizeLbl->setText(tr("%1 size files cleaned.") + .arg(FormatUtil::formatBytes(totalCleanedSize))); + + ui->cleanBtn->show(); + ui->loading_2->hide(); + ui->scanResultTreeW->setEnabled(true); + } +} + +void SystemCleanerPage::on_scanBtn_clicked() +{ + QtConcurrent::run(this, &SystemCleanerPage::systemScan); +} + +void SystemCleanerPage::on_cleanBtn_clicked() +{ + QtConcurrent::run(this, &SystemCleanerPage::systemClean); +} + +void SystemCleanerPage::on_backButtton_clicked() +{ + ui->scanBtn->show(); + ui->loading->hide(); + ui->packageCacheCheck->setEnabled(true); + ui->crashReportsCheck->setEnabled(true); + ui->logCheck->setEnabled(true); + ui->appCacheCheck->setEnabled(true); + ui->trashCheck->setEnabled(true); + ui->scanResultTreeW->clear(); + ui->stackedWidget->setCurrentIndex(0); +} diff --git a/stacer/Pages/SystemCleaner/system_cleaner_page.h b/stacer/Pages/SystemCleaner/system_cleaner_page.h new file mode 100644 index 0000000..0102e69 --- /dev/null +++ b/stacer/Pages/SystemCleaner/system_cleaner_page.h @@ -0,0 +1,64 @@ +#ifndef SYSTEMCLEANERPAGE_H +#define SYSTEMCLEANERPAGE_H + +#include +#include +#include +#include +#include +#include +#include +#include "Managers/app_manager.h" + +#include +#include + +namespace Ui { + class SystemCleanerPage; +} + +class SystemCleanerPage : public QWidget +{ + Q_OBJECT + +public: + enum CleanCategories { + PACKAGE_CACHE, + CRASH_REPORTS, + APPLICATION_LOGS, + APPLICATION_CACHES, + TRASH + }; + +public: + explicit SystemCleanerPage(QWidget *parent = 0); + ~SystemCleanerPage(); + +private slots: + void init(); + void addTreeRoot(CleanCategories cat, QString title, QFileInfoList infos, bool noChild = false); + void addTreeChild(CleanCategories cat, QString text, quint64 size); + void addTreeChild(QString data, QString text, quint64 size, QTreeWidgetItem *parent); + + void on_scanResultTreeW_itemClicked(QTreeWidgetItem *item, int column); + void on_cleanBtn_clicked(); + void on_scanBtn_clicked(); + void on_backButtton_clicked(); + + void systemScan(); + void systemClean(); + bool cleanValid(); + +private: + Ui::SystemCleanerPage *ui; + +private: + InfoManager *im; + ToolManager *tmr; + + QIcon defaultIcon; + QMovie *loadingMovie; + QMovie *loadingMovie_2; +}; + +#endif // SYSTEMCLEANERPAGE_H diff --git a/stacer/Pages/SystemCleaner/system_cleaner_page.ui b/stacer/Pages/SystemCleaner/system_cleaner_page.ui new file mode 100644 index 0000000..05fda31 --- /dev/null +++ b/stacer/Pages/SystemCleaner/system_cleaner_page.ui @@ -0,0 +1,636 @@ + + + SystemCleanerPage + + + + 0 + 0 + 784 + 507 + + + + + + + + 0 + + + 15 + + + 0 + + + 15 + + + 15 + + + + + + + + 1 + + + + + 0 + + + 0 + + + 0 + + + 0 + + + 40 + + + 20 + + + + + Crash Reports + + + Qt::AlignCenter + + + true + + + + + + + + 90 + 90 + + + + + 90 + 90 + + + + + + + :/static/themes/default/img/c_crash.png + + + false + + + Qt::AlignCenter + + + + + + + PointingHandCursor + + + Qt::NoFocus + + + + + + + + + + Qt::Vertical + + + + 20 + 0 + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + 90 + 90 + + + + + 90 + 90 + + + + + + + :/static/themes/default/img/c_cache.png + + + Qt::AlignCenter + + + + + + + Application Logs + + + Qt::AlignCenter + + + true + + + + + + + + 90 + 90 + + + + + 90 + 90 + + + + + + + :/static/themes/default/img/c_trash.png + + + Qt::AlignCenter + + + + + + + Application Caches + + + Qt::AlignCenter + + + true + + + + + + + + 90 + 90 + + + + + 90 + 90 + + + + Qt::AutoText + + + :/static/themes/default/img/c_package.png + + + false + + + Qt::AlignCenter + + + + + + + PointingHandCursor + + + Qt::NoFocus + + + + + + + + + + PointingHandCursor + + + Qt::NoFocus + + + + + + + + + + + 100 + 100 + + + + PointingHandCursor + + + Qt::NoFocus + + + + + + + 100 + 100 + + + + + + + + Qt::Vertical + + + QSizePolicy::Fixed + + + + 20 + 30 + + + + + + + + PointingHandCursor + + + Qt::NoFocus + + + + + + + + + + Trash + + + Qt::AlignCenter + + + true + + + + + + + + 90 + 90 + + + + + 90 + 90 + + + + + + + :/static/themes/default/img/c_logs.png + + + Qt::AlignCenter + + + + + + + Package Caches + + + Qt::AlignCenter + + + true + + + + + + + PointingHandCursor + + + Qt::NoFocus + + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Qt::Vertical + + + + 20 + 100 + + + + + + + + + 100 + 100 + + + + + + + + + + + + + 0 + + + 0 + + + 5 + + + 0 + + + 0 + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 10 + + + + + PointingHandCursor + + + Back + + + + :/static/themes/default/img/back.svg:/static/themes/default/img/back.svg + + + + 20 + 20 + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + PreferAntialias + + + + ArrowCursor + + + Qt::NoFocus + + + + + + QAbstractItemView::NoEditTriggers + + + QAbstractItemView::NoSelection + + + Qt::ElideMiddle + + + QAbstractItemView::ScrollPerItem + + + true + + + true + + + + 1 + + + + + + + + + 0 + 0 + + + + + 100 + 100 + + + + + 100 + 100 + + + + PointingHandCursor + + + Qt::NoFocus + + + + + + + + + + + + + + 20 + 0 + + + + + + + + + + + + + + + 100 + 20 + + + + + 16777215 + 20 + + + + + + + + + + + + + + + + + + + + + diff --git a/stacer/Pages/Uninstaller/uninstaller_page.cpp b/stacer/Pages/Uninstaller/uninstaller_page.cpp new file mode 100644 index 0000000..c66deed --- /dev/null +++ b/stacer/Pages/Uninstaller/uninstaller_page.cpp @@ -0,0 +1,120 @@ +#include "uninstaller_page.h" +#include "ui_uninstallerpage.h" + +UninstallerPage::~UninstallerPage() +{ + delete ui; + delete loadingMovie; +} + +UninstallerPage::UninstallerPage(QWidget *parent) : + QWidget(parent), + tm(ToolManager::ins()), + icon(QIcon(QString(":/static/themes/%1/img/package.svg").arg(AppManager::ins()->getThemeName()))), + loadingMovie(new QMovie(QString(":/static/themes/%1/img/loading.gif").arg(AppManager::ins()->getThemeName()))), + ui(new Ui::UninstallerPage) +{ + ui->setupUi(this); + + init(); +} + +void UninstallerPage::init() +{ + ui->loading->setMovie(loadingMovie); + loadingMovie->start(); + ui->loading->hide(); + ui->notFoundWidget->hide(); + + QtConcurrent::run(this, &UninstallerPage::loadPackages); + + connect(tm, &ToolManager::uninstallFinished, this, &UninstallerPage::loadPackages); + connect(tm, &ToolManager::uninstallStarted, this, &UninstallerPage::uninstallStarted); +} + +void UninstallerPage::loadPackages() +{ + uninstallStarted(); + + // clear items + ui->packagesList->clear(); + + foreach (QString package, tm->getPackages()) + { + QListWidgetItem *item = new QListWidgetItem(QIcon::fromTheme(package, icon), QString(" %1").arg(package)); + + item->setCheckState(Qt::Unchecked); + + ui->packagesList->addItem(item); + } + setAppCount(); + + ui->packagesList->setEnabled(true); + ui->packageSearch->setEnabled(true); + ui->uninstallBtn->show(); + ui->packageSearch->clear(); + + ui->loading->hide(); +} + +void UninstallerPage::setAppCount() +{ + int count = ui->packagesList->count(); + + ui->packagesTitle->setText( + tr("System Installed Packages (%1)") + .arg(QString::number(count))); + + ui->notFoundWidget->setVisible(! count); + ui->packagesList->setVisible(count); +} + +QStringList UninstallerPage::getSelectedPackages() +{ + QStringList selectedPackages = {}; + + for (int i = 0; i < ui->packagesList->count(); i++) + { + QListWidgetItem *item = ui->packagesList->item(i); + + if(item->checkState() == Qt::Checked) + selectedPackages << item->text().trimmed(); + } + + return selectedPackages; +} + +void UninstallerPage::on_uninstallBtn_clicked() +{ + QStringList selectedPackages = getSelectedPackages(); + + if(! selectedPackages.isEmpty()) + { + QtConcurrent::run([selectedPackages]() -> void { + ToolManager::ins()->uninstallPackages(selectedPackages); + }); + } +} + +void UninstallerPage::uninstallStarted() +{ + ui->packagesList->setEnabled(false); + ui->packageSearch->setEnabled(false); + ui->uninstallBtn->hide(); + + ui->loading->show(); +} + +void UninstallerPage::on_packageSearch_textChanged(const QString &val) +{ + // Get matches items + QList matches = ui->packagesList->findItems(val, Qt::MatchFlag::MatchContains); + + // All items hide + for (int i = 0; i < ui->packagesList->count(); ++i) + ui->packagesList->item(i)->setHidden(true); + + // Matches items show + foreach (QListWidgetItem* item, matches) + item->setHidden(false); +} diff --git a/stacer/Pages/Uninstaller/uninstaller_page.h b/stacer/Pages/Uninstaller/uninstaller_page.h new file mode 100644 index 0000000..d35f171 --- /dev/null +++ b/stacer/Pages/Uninstaller/uninstaller_page.h @@ -0,0 +1,44 @@ +#ifndef UNINSTALLERPAGE_H +#define UNINSTALLERPAGE_H + +#include +#include +#include +#include + +#include "Managers/tool_manager.h" +#include "Managers/app_manager.h" + +namespace Ui { + class UninstallerPage; +} + +class UninstallerPage : public QWidget +{ + Q_OBJECT + +public: + explicit UninstallerPage(QWidget *parent = 0); + ~UninstallerPage(); + +public slots: + void uninstallStarted(); +private slots: + void init(); + void setAppCount(); + + void on_packageSearch_textChanged(const QString &val); + void on_uninstallBtn_clicked(); + QStringList getSelectedPackages(); + void loadPackages(); + +private: + Ui::UninstallerPage *ui; + +private: + ToolManager *tm; + QIcon icon; + QMovie *loadingMovie; +}; + +#endif // UNINSTALLERPAGE_H diff --git a/stacer/Pages/Uninstaller/uninstallerpage.ui b/stacer/Pages/Uninstaller/uninstallerpage.ui new file mode 100644 index 0000000..1f741dc --- /dev/null +++ b/stacer/Pages/Uninstaller/uninstallerpage.ui @@ -0,0 +1,292 @@ + + + UninstallerPage + + + + 0 + 0 + 916 + 553 + + + + + + + + 0 + + + 10 + + + 10 + + + 0 + + + 0 + + + + + + + + + 30 + + + 0 + + + 30 + + + 20 + + + 5 + + + + + + Ubuntu + 10 + + + + Qt::NoFocus + + + + + + 10 + + + QAbstractItemView::NoEditTriggers + + + QAbstractItemView::NoSelection + + + QAbstractItemView::SelectRows + + + + 20 + 20 + + + + Qt::ElideMiddle + + + 4 + + + false + + + + + + + Qt::Vertical + + + QSizePolicy::Fixed + + + + 20 + 10 + + + + + + + + true + + + + Ubuntu + + + + PointingHandCursor + + + Qt::NoFocus + + + + + + Uninstall Selected + + + + + + + + 0 + 0 + + + + + 0 + 200 + + + + + 16777215 + 200 + + + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + Not Found Installed Packages + + + + + + + + + + + 0 + 0 + + + + + 5 + + + 15 + + + 0 + + + 20 + + + 0 + + + + + + 0 + 0 + + + + + Ubuntu + 11 + false + + + + + + + System Installed Packages + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + 170 + 0 + + + + + 170 + 16777215 + + + + + 10 + + + + Qt::StrongFocus + + + + + + Search... + + + + + + + + + + + + + + + + + + + + + diff --git a/stacer/app.cpp b/stacer/app.cpp new file mode 100644 index 0000000..4f7d2d4 --- /dev/null +++ b/stacer/app.cpp @@ -0,0 +1,116 @@ +#include "app.h" +#include "ui_app.h" + +App::~App() +{ + delete ui; + delete dashboardPage; + delete startupAppsPage; + delete systemCleanerPage; + delete servicesPage; + delete processPage; + delete uninstallerPage; + delete resourcesPage; + delete settingsPage; +} + +App::App(QWidget *parent) : + QMainWindow(parent), + apm(AppManager::ins()), + dashboardPage(new DashboardPage), + startupAppsPage(new StartupAppsPage), + systemCleanerPage(new SystemCleanerPage), + servicesPage(new ServicesPage), + processPage(new ProcessesPage), + uninstallerPage(new UninstallerPage), + resourcesPage(new ResourcesPage), + settingsPage(new SettingsPage), + ui(new Ui::App) +{ + ui->setupUi(this); + + init(); +} + +void App::init() +{ + setGeometry( + QStyle::alignedRect( + Qt::LeftToRight, + Qt::AlignCenter, + size(), + qApp->desktop()->availableGeometry()) + ); + + // form settings + ui->horizontalLayout->setContentsMargins(0,0,0,0); + ui->horizontalLayout->setSpacing(0); + + // icon sizes of the buttons on the sidebar 30x30 + foreach (QPushButton *btn, ui->sidebar->findChildren()) + btn->setIconSize(QSize(26, 26)); + + // add pages + ui->pageStacked->addWidget(dashboardPage); + ui->pageStacked->addWidget(startupAppsPage); + ui->pageStacked->addWidget(systemCleanerPage); + ui->pageStacked->addWidget(servicesPage); + ui->pageStacked->addWidget(processPage); + ui->pageStacked->addWidget(uninstallerPage); + ui->pageStacked->addWidget(resourcesPage); + ui->pageStacked->addWidget(settingsPage); + + on_dashBtn_clicked(); +} + +void App::pageClick(QPushButton *btn, QWidget *w, QString title) +{ + // all button checked false + foreach (QPushButton *b, ui->sidebar->findChildren()) + b->setChecked(false); + btn->setChecked(true); // clicked button set active style + apm->updateStylesheet(); // update style + + ui->pageTitle->setText(title); + ui->pageStacked->setCurrentWidget(w); +} + +void App::on_dashBtn_clicked() +{ + pageClick(ui->dashBtn, dashboardPage, tr("Dashboard")); +} + +void App::on_systemCleanerBtn_clicked() +{ + pageClick(ui->systemCleanerBtn, systemCleanerPage, tr("System Cleaner")); +} + +void App::on_startupAppsBtn_clicked() +{ + pageClick(ui->startupAppsBtn, startupAppsPage, tr("System Startup Apps")); +} + +void App::on_servicesBtn_clicked() +{ + pageClick(ui->servicesBtn, servicesPage, tr("System Services")); +} + +void App::on_uninstallerBtn_clicked() +{ + pageClick(ui->uninstallerBtn, uninstallerPage, tr("Uninstaller")); +} + +void App::on_resourcesBtn_clicked() +{ + pageClick(ui->resourcesBtn, resourcesPage, tr("Resources")); +} + +void App::on_processesBtn_clicked() +{ + pageClick(ui->processesBtn, processPage, tr("Processes")); +} + +void App::on_settingsBtn_clicked() +{ + pageClick(ui->settingsBtn, settingsPage, tr("Settings")); +} diff --git a/stacer/app.h b/stacer/app.h new file mode 100644 index 0000000..4f25f36 --- /dev/null +++ b/stacer/app.h @@ -0,0 +1,62 @@ +#ifndef APP_H +#define APP_H + +#include + +// Pages +#include "Pages/Dashboard/dashboard_page.h" +#include "Pages/StartupApps/startup_apps_page.h" +#include "Pages/SystemCleaner/system_cleaner_page.h" +#include "Pages/Services/services_page.h" +#include "Pages/Processes/processes_page.h" +#include "Pages/Uninstaller/uninstaller_page.h" +#include "Pages/Resources/resources_page.h" +#include "Pages/Settings/settings_page.h" + +#include "Managers/app_manager.h" + +namespace Ui { + class App; +} + +class App : public QMainWindow +{ + Q_OBJECT + +public: + explicit App(QWidget *parent = 0); + ~App(); + +public: + +private slots: + void init(); + void pageClick(QPushButton *btn, QWidget *w, QString title); + + void on_dashBtn_clicked(); + void on_systemCleanerBtn_clicked(); + void on_startupAppsBtn_clicked(); + void on_servicesBtn_clicked(); + void on_uninstallerBtn_clicked(); + void on_resourcesBtn_clicked(); + void on_processesBtn_clicked(); + void on_settingsBtn_clicked(); + +private: + Ui::App *ui; + +private: + // Pages + DashboardPage *dashboardPage; + StartupAppsPage *startupAppsPage; + SystemCleanerPage *systemCleanerPage; + ServicesPage *servicesPage; + ProcessesPage *processPage; + UninstallerPage *uninstallerPage; + ResourcesPage *resourcesPage; + SettingsPage *settingsPage; + + AppManager *apm; +}; + +#endif // APP_H diff --git a/stacer/app.ui b/stacer/app.ui new file mode 100644 index 0000000..f6646e6 --- /dev/null +++ b/stacer/app.ui @@ -0,0 +1,322 @@ + + + App + + + Qt::NonModal + + + + 0 + 0 + 850 + 550 + + + + Stacer + + + + :/static/icons/icon256x256.png:/static/icons/icon256x256.png + + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + 0 + 0 + + + + + 60 + 0 + + + + + 60 + 16777215 + + + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + PointingHandCursor + + + Qt::NoFocus + + + + + + + + + true + + + + + + + PointingHandCursor + + + Qt::NoFocus + + + + + + true + + + + + + + PointingHandCursor + + + Qt::NoFocus + + + + + + + + + true + + + + + + + PointingHandCursor + + + Qt::NoFocus + + + + + + true + + + + + + + PointingHandCursor + + + Qt::NoFocus + + + + + + true + + + + + + + PointingHandCursor + + + Qt::NoFocus + + + + + + true + + + + + + + PointingHandCursor + + + Qt::NoFocus + + + + + + true + + + + + + + PointingHandCursor + + + Qt::NoFocus + + + + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + dashBtn + servicesBtn + uninstallerBtn + startupAppsBtn + resourcesBtn + verticalSpacer_2 + systemCleanerBtn + processesBtn + settingsBtn + + + + + + + 0 + 0 + + + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + 0 + 0 + + + + + Ubuntu + 12 + + + + + + + Title + + + Qt::AlignCenter + + + + + + + + 0 + 0 + + + + + + + + + pageContent + sidebar + + + + + + + diff --git a/stacer/main.cpp b/stacer/main.cpp new file mode 100644 index 0000000..f8bce29 --- /dev/null +++ b/stacer/main.cpp @@ -0,0 +1,72 @@ +#include +#include +#include "app.h" + +void messageHandler(QtMsgType type, + const QMessageLogContext &context, + const QString &message) +{ + QString level; + + switch (type) { + case QtDebugMsg: + level = "DEBUG"; break; + case QtInfoMsg: + level = "INFO"; break; + case QtWarningMsg: + level = "WARNING"; break; + case QtCriticalMsg: + level = "CRITICAL"; break; + case QtFatalMsg: + level = "FATAL"; break; + default: + level = "UNDEFIEND"; break; + } + + if (type != QtWarningMsg) { + + QString text = QString("[%1] [%2] %3") + .arg(QDateTime::currentDateTime().toString("dd-MM-yyyy hh:mm:ss")) + .arg(level) + .arg(message); + + static QString logPath = QStandardPaths::writableLocation(QStandardPaths::AppConfigLocation) + "/log"; + + QDir().mkdir(logPath); + + QFile file(logPath + "/stacer.log"); + + QIODevice::OpenMode openMode; + + if (file.size() > (1L << 20)) + openMode = QIODevice::WriteOnly | QIODevice::Truncate; + else + openMode = QIODevice::WriteOnly | QIODevice::Append; + + if (file.open(openMode)) { + QTextStream stream(&file); + stream << text << endl; + + file.close(); + } + } +} + + +int main(int argc, char *argv[]) +{ + QApplication app(argc, argv); + + qApp->setApplicationName("stacer"); + qApp->setApplicationDisplayName("Stacer"); + qApp->setApplicationVersion("1.0.8"); + qApp->setWindowIcon(QIcon(":/static/logo.png")); + + qInstallMessageHandler(messageHandler); + + App w; + + w.show(); + + return app.exec(); +} diff --git a/stacer/stacer.pro b/stacer/stacer.pro new file mode 100644 index 0000000..72896b2 --- /dev/null +++ b/stacer/stacer.pro @@ -0,0 +1,100 @@ +#------------------------------------------------- +# +# Project created by QtCreator 2017-07-02T15:41:12 +# +#------------------------------------------------- + +QT += core gui charts svg concurrent + +greaterThan(QT_MAJOR_VERSION, 4): QT += widgets + +TARGET = stacer +TEMPLATE = app + +CONFIG += c++11 + +# The following define makes your compiler emit warnings if you use +# any feature of Qt which as been marked as deprecated (the exact warnings +# depend on your compiler). Please consult the documentation of the +# deprecated API in order to know how to port your code away from it. +DEFINES += QT_DEPRECATED_WARNINGS + +# You can also make your code fail to compile if you use deprecated APIs. +# In order to do so, uncomment the following line. +# You can also select to disable deprecated APIs only up to a certain version of Qt. +#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 + +SOURCES += \ + main.cpp \ + app.cpp \ + Pages/Dashboard/circlebar.cpp \ + Pages/Dashboard/linebar.cpp \ + Managers/info_manager.cpp \ + Pages/StartupApps/startup_app.cpp \ + Pages/StartupApps/startup_app_edit.cpp \ + Pages/StartupApps/startup_apps_page.cpp \ + Pages/Services/service_item.cpp \ + Managers/tool_manager.cpp \ + Pages/Resources/history_chart.cpp \ + Pages/SystemCleaner/system_cleaner_page.cpp \ + Pages/Uninstaller/uninstaller_page.cpp \ + Pages/Services/services_page.cpp \ + Pages/Resources/resources_page.cpp \ + Pages/Dashboard/dashboard_page.cpp \ + Pages/Processes/processes_page.cpp \ + Pages/Settings/settings_page.cpp \ + Managers/app_manager.cpp + +HEADERS += \ + app.h \ + Pages/Dashboard/circlebar.h \ + Pages/Dashboard/linebar.h \ + Managers/info_manager.h \ + Pages/StartupApps/startup_app.h \ + Pages/StartupApps/startup_app_edit.h \ + Pages/StartupApps/startup_apps_page.h \ + Pages/Services/service_item.h \ + Managers/tool_manager.h \ + Pages/Resources/history_chart.h \ + Pages/SystemCleaner/system_cleaner_page.h \ + Pages/Uninstaller/uninstaller_page.h \ + Pages/Resources/resources_page.h \ + Pages/Processes/processes_page.h \ + Pages/Dashboard/dashboard_page.h \ + Pages/Services/services_page.h \ + Pages/Settings/settings_page.h \ + Managers/app_manager.h + +FORMS += \ + app.ui \ + Pages/Uninstaller/uninstallerpage.ui \ + Pages/Dashboard/circlebar.ui \ + Pages/Dashboard/linebar.ui \ + Pages/StartupApps/startup_app.ui \ + Pages/StartupApps/startup_app_edit.ui \ + Pages/StartupApps/startup_apps_page.ui \ + Pages/Services/service_item.ui \ + Pages/Resources/history_chart.ui \ + Pages/SystemCleaner/system_cleaner_page.ui \ + Pages/Dashboard/dashboard_page.ui \ + Pages/Processes/processes_page.ui \ + Pages/Resources/resources_page.ui \ + Pages/Services/services_page.ui \ + Pages/Settings/settings_page.ui + +TRANSLATIONS += \ + ../translations/stacer_en.ts \ + ../translations/stacer_es.ts \ + ../translations/stacer_fr.ts \ + ../translations/stacer_pt.ts \ + ../translations/stacer_sv.ts \ + ../translations/stacer_tr.ts \ + ../translations/stacer_hi.ts + +RESOURCES += \ + static.qrc + +unix:!macx: LIBS += -L$$OUT_PWD/../stacer-core/ -lstacer-core + +INCLUDEPATH += $$PWD/../stacer-core +DEPENDPATH += $$PWD/../stacer-core diff --git a/stacer/static.qrc b/stacer/static.qrc new file mode 100644 index 0000000..7dca82f --- /dev/null +++ b/stacer/static.qrc @@ -0,0 +1,63 @@ + + + static/themes/default/style/style.qss + static/themes/default/img/sidebar-icons/dash.png + static/themes/default/img/sidebar-icons/cleaner.svg + static/themes/default/img/sidebar-icons/process.png + static/themes/default/img/sidebar-icons/resources.png + static/themes/default/img/sidebar-icons/services.svg + static/themes/default/img/sidebar-icons/startup-apps.svg + static/themes/default/img/sidebar-icons/uninstaller.png + static/themes/default/img/checkbox.svg + static/themes/default/img/un-checkbox.svg + static/themes/default/img/app.svg + static/themes/default/img/trash.svg + static/themes/default/img/not-found.svg + static/themes/default/img/edit.svg + static/themes/default/img/service.svg + static/themes/default/img/package.svg + static/themes/default/img/search.svg + static/themes/default/img/check.svg + static/themes/default/img/un-check.svg + static/themes/default/img/loading.gif + static/themes/default/img/scanLoading.gif + static/themes/default/img/refresh.svg + static/themes/default/img/asc.svg + static/themes/default/img/dsc.svg + static/themes/default/img/c_package.png + static/themes/default/img/c_crash.png + static/themes/default/img/c_logs.png + static/themes/default/img/c_cache.png + static/themes/default/img/c_trash.png + static/themes/default/img/fit.svg + static/themes/default/img/collapse.svg + static/themes/default/img/scan.svg + static/themes/default/img/scan-active.svg + static/themes/default/img/clean.svg + static/themes/default/img/clean-active.svg + static/themes/default/img/down-arrow.svg + static/themes/default/img/right-arrow.svg + static/themes/default/img/back.svg + static/font/Ubuntu-R.ttf + static/themes/default/img/sidebar-icons/settings.svg + static/languages.json + static/themes.json + static/themes/light/style/style.qss + static/themes/light/img/app.svg + static/themes/light/img/clean-active.svg + static/themes/light/img/clean.svg + static/themes/light/img/down-arrow.svg + static/themes/light/img/edit.svg + static/themes/light/img/right-arrow.svg + static/themes/light/img/scan-active.svg + static/themes/light/img/scan.svg + static/themes/light/img/scanLoading.gif + static/themes/light/img/loading.gif + static/themes/light/img/package.svg + static/themes/light/style/values.ini + static/themes/default/style/values.ini + static/logo.png + static/themes/default/img/run.svg + static/themes/default/img/power.svg + + diff --git a/stacer/static/font/Ubuntu-R.ttf b/stacer/static/font/Ubuntu-R.ttf new file mode 100644 index 0000000000000000000000000000000000000000..d748728a20789bf5f95e524f3d508f54c67f9475 GIT binary patch literal 353824 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 HZ~K1%`Nrw3 literal 0 HcmV?d00001 diff --git a/stacer/static/languages.json b/stacer/static/languages.json new file mode 100644 index 0000000..5853c1c --- /dev/null +++ b/stacer/static/languages.json @@ -0,0 +1,9 @@ +[ + {"value" : "en", "text": "English"}, + {"value" : "es", "text": "Español"}, + {"value" : "fr", "text": "Français"}, + {"value" : "hi", "text": "हिंदी"}, + {"value" : "pt", "text": "Português"}, + {"value" : "sv", "text": "Svenska"}, + {"value" : "tr", "text": "Türkçe"} +] diff --git a/stacer/static/logo.png b/stacer/static/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..716367c37462425db20bb0e8522b51157aa79d01 GIT binary patch literal 27479 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 + + + + + + + image/svg+xml + + + + + + + + + + diff --git a/stacer/static/themes/default/img/asc.svg b/stacer/static/themes/default/img/asc.svg new file mode 100644 index 0000000..5a2d3af --- /dev/null +++ b/stacer/static/themes/default/img/asc.svg @@ -0,0 +1,55 @@ + + + + + + image/svg+xml + + + + + + + + diff --git a/stacer/static/themes/default/img/back.svg b/stacer/static/themes/default/img/back.svg new file mode 100644 index 0000000..ef2b269 --- /dev/null +++ b/stacer/static/themes/default/img/back.svg @@ -0,0 +1,44 @@ + +image/svg+xml \ No newline at end of file diff --git a/stacer/static/themes/default/img/c_cache.png b/stacer/static/themes/default/img/c_cache.png new file mode 100644 index 0000000000000000000000000000000000000000..bbda8b2bfb4e3d6e9af0e458657a1068cf51a04a GIT binary patch literal 3239 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 Z{{bJWCfPt%FJS-x002ovPDHLkV1l#T2y_4d literal 0 HcmV?d00001 diff --git a/stacer/static/themes/default/img/c_crash.png b/stacer/static/themes/default/img/c_crash.png new file mode 100644 index 0000000000000000000000000000000000000000..beb7d1fb0c3f69d37c1873f715f28dbfc258a441 GIT binary patch literal 3193 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 literal 0 HcmV?d00001 diff --git a/stacer/static/themes/default/img/c_logs.png b/stacer/static/themes/default/img/c_logs.png new file mode 100644 index 0000000000000000000000000000000000000000..8a936b09c3b5a3dafc86536173c8b4cb502a84e0 GIT binary patch literal 3142 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 bf&09D*%BoGx>o0-{{S#Ewl=~Uq7wfDOY7S< literal 0 HcmV?d00001 diff --git a/stacer/static/themes/default/img/c_package.png b/stacer/static/themes/default/img/c_package.png new file mode 100644 index 0000000000000000000000000000000000000000..be079a0bf7e78893798a88cd7dcf0db58d811a49 GIT binary patch literal 2517 zcmZ8jX*|?x8~)D>(=^C7mXWcX2yt2zO|pzF9I}&bn#o?2$}&^7zg>hJ*+K}1!zjCK z8A(Xl%MmpbF&s-n#7N`J^q%wO{qQXJ_FVVxy6z9p9cxPy0i+ZX0003qQzKi>N#rgB zoU_m5kgx!-Ki|wq-=2JNr6BS;Y7X7o`6W)gdt7r6%O0^zh|RrHdd{*8(I9RsuSo2} z5arw-wAmM#YK*vGOqM(=Qa$`MY|uQJZb^ND=?X9Ip^}N!iMDfUwl|XI*9ksPJG5t7aH?rH3{{P%pqs0JY8<&bk>5dN)f;C5OcJ?~$cH&AN`);m}}b)J_lC z?@VsGeymeavWvJfuE7+VrLq%L=!Rk5jXT9zSICLm}Qz53&+1lni4E5cpoM z&^(PRtQHIsF)7S?P=M&2XkdErIzkdFB0Rg4_vAeKf!HHSNJd5%T36%~p6@Tf`>kE4 zpt5Dd!yB=J0doRWwL%YeO>Qvi2vgBDP%h+YK{l@%F!45ht;~?5t9i+NH4%sC97NcP zgJ({Uoj`2&hULtUK@2t;89fdmhIPPwnnh`w%w{P5iS9A~%|;!n95z7FrgAe$6ds22 z)F$cVw(3F@Rt3wVH>sN0fc^CSVZB<`jPl}?ynD!>8Zvr>n&_liUCGlbqEl=MH>kC< z>d7KfTgS+na>OeJZ)2U?)`N{4WrHTE;9T!10MuggQfCL$bE6ahsUw^3P-Jm@L z&o+^~x3Ff1$(1g(z&P*cI4{5QP~dMUN{EF%ho zSz9XfAL0G{a`_Rr3r#&s#?Et<3g+{I`~Sr_00w8GqHr@dsR3^MZU=b|yWJ~P-(a1g z`|e{dD)p}+Ru10&&;sARS^RprT#`fQ^hK2v-I1jOperLI@;Q&4#6~cE$_{+a7Z@tf zUbdqXWMPc+cxy;;Y1vT0(S@ep&=f1K@V+i`=GNwgXMwx+0WQaPDd}SkByz;lvZ0PI z5UxzqEW7>mTD_KiRH4-iVko(E^1$IuN{6A&WVs;1U`+N~+xPQM+{W9Ec)IAc((r&v z%j)AIoHXm!MjTi%^}Kv{J2*~lqSJ@N#`U4F%NywzZo)uJbIC5XjWIy{fidJ1hcfy_ zHkgGPK$WER+az8(d&vu~O~%1$px0@e>M$8Dl}xIYC!7-Lz;PB;aug11;TaCI{@0@J zw5V6hU`ruRknI&W=f{!V!<=V|&x|gFKjDt7O#Y#m&4_r8z=C^DSw*3Hk2sk>q0*NW zz|e~m00pSH!U0)GQvlo8mH$O+Wq$)m&x-#wi@ciJYffQgrT`ZoyOTCE)h;HkV|ni3 zTCnPRukO)4E@r>;=)%>2)T@Bi>zj<=DhsWg71|&tKWqyB+bzdF%g zAVZx;*I86+VoF+RgKHz~TZbc0zRBaIPs;Z3Kb`Zv4dkZUe9(K(+mt73qB_U_mpa}X z*G(IR`Q{xxDd(?sF1WKGW-^RD9dt$fXpruF?ZJ;`G+wXu2^)9=;ZRR?q>>KUry*k7 z7j*Y;wm(nP*I(xR_FLEf2N9s;ty!4Ixc7#&IQTPq^@16onpU>2 z=FPFT4M`HEGNxm-QwtMqhTz_&GXj}r~H&*1)B1M9X2F;g_yH1uBo;DJuH302Mn zw-({YN=F`SodQ%7&zAQS@jpr1${by&>tw)j357}VGZo^0_7DS6l{_zyVGGD}f%Sun z<`-TO@vk`i7L`~?3CNISalK;WzSL5L^y`iS4-}AS69-S1s%n~)h~7^YD4Vl z8ziL;QsrgL=q^QHr*6J}?T^nhk<51?vpk8y7R(f$u}}x4*p(w5YJg6*U9ym`#Zf6# zK@fay?gT@lq5QtVFO9>POT?# qi80CK0*DmYizI8e4+3eBUD>WKW6HH=$?u%+8enE@Y4q5D82t~*o0O*j literal 0 HcmV?d00001 diff --git a/stacer/static/themes/default/img/c_trash.png b/stacer/static/themes/default/img/c_trash.png new file mode 100644 index 0000000000000000000000000000000000000000..2169cb1fd312d1536f3ccee64b1e8994239f6b39 GIT binary patch literal 4127 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 \ No newline at end of file diff --git a/stacer/static/themes/default/img/checkbox.svg b/stacer/static/themes/default/img/checkbox.svg new file mode 100644 index 0000000..7f83de2 --- /dev/null +++ b/stacer/static/themes/default/img/checkbox.svg @@ -0,0 +1,81 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + diff --git a/stacer/static/themes/default/img/clean-active.svg b/stacer/static/themes/default/img/clean-active.svg new file mode 100644 index 0000000..c771dd5 --- /dev/null +++ b/stacer/static/themes/default/img/clean-active.svg @@ -0,0 +1,185 @@ + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + diff --git a/stacer/static/themes/default/img/clean.svg b/stacer/static/themes/default/img/clean.svg new file mode 100644 index 0000000..8571e03 --- /dev/null +++ b/stacer/static/themes/default/img/clean.svg @@ -0,0 +1,185 @@ + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + diff --git a/stacer/static/themes/default/img/collapse.svg b/stacer/static/themes/default/img/collapse.svg new file mode 100644 index 0000000..0abdd21 --- /dev/null +++ b/stacer/static/themes/default/img/collapse.svg @@ -0,0 +1,73 @@ + + + + + + + + image/svg+xml + + + + + + + + + + + + diff --git a/stacer/static/themes/default/img/down-arrow.svg b/stacer/static/themes/default/img/down-arrow.svg new file mode 100644 index 0000000..53e42d8 --- /dev/null +++ b/stacer/static/themes/default/img/down-arrow.svg @@ -0,0 +1,45 @@ + +image/svg+xml \ No newline at end of file diff --git a/stacer/static/themes/default/img/dsc.svg b/stacer/static/themes/default/img/dsc.svg new file mode 100644 index 0000000..9b247eb --- /dev/null +++ b/stacer/static/themes/default/img/dsc.svg @@ -0,0 +1,55 @@ + + + + + + image/svg+xml + + + + + + + + diff --git a/stacer/static/themes/default/img/edit.svg b/stacer/static/themes/default/img/edit.svg new file mode 100644 index 0000000..5a52c53 --- /dev/null +++ b/stacer/static/themes/default/img/edit.svg @@ -0,0 +1,65 @@ + +image/svg+xml \ No newline at end of file diff --git a/stacer/static/themes/default/img/fit.svg b/stacer/static/themes/default/img/fit.svg new file mode 100644 index 0000000..4d30133 --- /dev/null +++ b/stacer/static/themes/default/img/fit.svg @@ -0,0 +1,73 @@ + + + + + + + + image/svg+xml + + + + + + + + + + + + diff --git a/stacer/static/themes/default/img/loading.gif b/stacer/static/themes/default/img/loading.gif new file mode 100644 index 0000000000000000000000000000000000000000..041761be5b7f85129198cb9b3eb219fab5c0b9db GIT binary patch literal 7205 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 literal 0 HcmV?d00001 diff --git a/stacer/static/themes/default/img/loadings.gif b/stacer/static/themes/default/img/loadings.gif new file mode 100644 index 0000000000000000000000000000000000000000..a13dc0139beb57db74c0d74cfbfe0c612974ed00 GIT binary patch literal 9826 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 H)A4@;|4W&K literal 0 HcmV?d00001 diff --git a/stacer/static/themes/default/img/not-found.svg b/stacer/static/themes/default/img/not-found.svg new file mode 100644 index 0000000..09d9171 --- /dev/null +++ b/stacer/static/themes/default/img/not-found.svg @@ -0,0 +1,58 @@ + + + + + + + + image/svg+xml + + + + + + + + + diff --git a/stacer/static/themes/default/img/package.svg b/stacer/static/themes/default/img/package.svg new file mode 100644 index 0000000..c5cf62e --- /dev/null +++ b/stacer/static/themes/default/img/package.svg @@ -0,0 +1,98 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + diff --git a/stacer/static/themes/default/img/power.svg b/stacer/static/themes/default/img/power.svg new file mode 100644 index 0000000..4b1b2b1 --- /dev/null +++ b/stacer/static/themes/default/img/power.svg @@ -0,0 +1,56 @@ + + + + + + image/svg+xml + + + + + + + + + diff --git a/stacer/static/themes/default/img/refresh.svg b/stacer/static/themes/default/img/refresh.svg new file mode 100644 index 0000000..edc5b10 --- /dev/null +++ b/stacer/static/themes/default/img/refresh.svg @@ -0,0 +1,54 @@ + + + + + + image/svg+xml + + + + + + + + diff --git a/stacer/static/themes/default/img/right-arrow.svg b/stacer/static/themes/default/img/right-arrow.svg new file mode 100644 index 0000000..093a07b --- /dev/null +++ b/stacer/static/themes/default/img/right-arrow.svg @@ -0,0 +1,45 @@ + +image/svg+xml \ No newline at end of file diff --git a/stacer/static/themes/default/img/run.svg b/stacer/static/themes/default/img/run.svg new file mode 100644 index 0000000..aff9e96 --- /dev/null +++ b/stacer/static/themes/default/img/run.svg @@ -0,0 +1,58 @@ + +image/svg+xml \ No newline at end of file diff --git a/stacer/static/themes/default/img/scan-active.svg b/stacer/static/themes/default/img/scan-active.svg new file mode 100644 index 0000000..dadd9c0 --- /dev/null +++ b/stacer/static/themes/default/img/scan-active.svg @@ -0,0 +1,157 @@ + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + diff --git a/stacer/static/themes/default/img/scan.svg b/stacer/static/themes/default/img/scan.svg new file mode 100644 index 0000000..7fc8fbb --- /dev/null +++ b/stacer/static/themes/default/img/scan.svg @@ -0,0 +1,157 @@ + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + diff --git a/stacer/static/themes/default/img/scanLoading.gif b/stacer/static/themes/default/img/scanLoading.gif new file mode 100644 index 0000000000000000000000000000000000000000..6d90c5df4f1b25ea9df96ab1624f958e25a4590f GIT binary patch literal 54933 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

+k4|-R1bnQ2|u1oLe^~$dhfEhO0{x^gY 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 literal 0 HcmV?d00001 diff --git a/stacer/static/themes/default/img/search.svg b/stacer/static/themes/default/img/search.svg new file mode 100644 index 0000000..1abfe60 --- /dev/null +++ b/stacer/static/themes/default/img/search.svg @@ -0,0 +1,67 @@ + + + + + + + + image/svg+xml + + + + + + + + + + + + + diff --git a/stacer/static/themes/default/img/service.svg b/stacer/static/themes/default/img/service.svg new file mode 100644 index 0000000..d9ad058 --- /dev/null +++ b/stacer/static/themes/default/img/service.svg @@ -0,0 +1,93 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + diff --git a/stacer/static/themes/default/img/sidebar-icons/cleaner.svg b/stacer/static/themes/default/img/sidebar-icons/cleaner.svg new file mode 100644 index 0000000..d954306 --- /dev/null +++ b/stacer/static/themes/default/img/sidebar-icons/cleaner.svg @@ -0,0 +1,145 @@ + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + diff --git a/stacer/static/themes/default/img/sidebar-icons/dash.png b/stacer/static/themes/default/img/sidebar-icons/dash.png new file mode 100644 index 0000000000000000000000000000000000000000..12d7dbefe3d4fea5396389b46398fc0e69e0fc20 GIT binary patch literal 2141 zcmV-j2%`6iP)Y0F{S}h*dl0vG(ZaDKw;!G32A_&bAXw@Gse6$ z#(Zsm@H^T|B6{Zc$jpBmW4_pb!=F#~=L-?tr;onx8^uWoGe0-RH~_%-ix^9YXfOw6 z<^>ksS-=3+JrO3^y8}4yEjUnhySLo|u|WJ}jQQExgH@AO2E@?9F%c|JXYJxP^UD z2gFJNz<@u2_J)W)IVM@AL3Mql#JG+*wl9nu^;;6g3`qx6*DtmYNC`l}_-aiR5M~Ck zV}1KTL@!2C;!jL%GRhr+*^uV0dD4OHy5HUt(UsQNDu7sGKSow(Nc15k-)K!lxt~WO zauV(UiK$vh2{gg#E%ItWEEq7~bwAs{mnU zfB>e(z;F!zKtuqcZ-ThfAz%e|Zjk=h0%BlSASo`mDR^c0NH!oA3`oXUr^bkQ<%r#4 z3!FUr`4_O#J7b+eC$s_H&jKY2kW4TzKNpg~?<%1aMG*Y1*3y{`N-`iqo3Rm}s_GW% z3mPHG&?f=Xz(`&Y$%Z}^5UFuXru>9oK&JAQbbew$n7IaLPCDR?4 zII;2iom*^Pi-1_W0Wb!h>xnUIkLievyaW(9eglVY59&{Jj88=LCR;+RbRbfTDv;LJ za{y&XuVY)`MG3LqDkKC(z0_dfdRA@Q!y_DFKMgTAoCpvL3PL3CuJNOl%h;9;$M=q$ z3c~Z^6tEZ&H#e)sP?4dT^*f$*`V@SyQnB7sXJ*9yp`Nbhf@F3pi~wAdmLZssii-ul zq59^}P&La$LIRmFfCFGANH=FOC{{ryFi-|H$q}Kq5FjCsyo-Jk(X~%P14IUhO>Kvw z+Y|6YfS`JOF2@1q<{c4zU}n_fLV8m2A^MuSydJT5-xAShW`>=`0-tlLpT^buN(2H}scJV;P&Bjo`KK)Py39}pNFY{yy~asXa70J!x_NbR;C`5}#Y&Dyy`5d$rX`NK;omTZ7Ut+Ukd@Gc|DO)RqI}+;>;A(%?x2 zq(S|Bi-%;l+j4+Ff8kWqIWRfUj2>Jm8QPsLF zlmi%A_F`_)<3#X<17ztaaqW^LmWGkN*j1IIgq1Q%C2ImFNg76Ata0{od2|UtYV|+d zs=xE#cf6Dt9T)fB`_YoV^^r?=Um$ z1-7+Y8}As|Hvpuj9oANov6Zuzx@PWc0%UT`EOoZy=e^UylEXM_hm*YD0TN3{Njll< z8CB^>JpHxT9G@1ePOO)TXy?(6qnhp5(b@BXL?R2B#OS31i-438d>o(q%U!a}j1W;5 z>fX8aIgi-5X9dX0%-&l3`Wq)!0b*5_<_!tC6U$av2RnOizV14XxXNN?L^^9IcFQ*E z6-6T+YuffsuIP}88Z+b2zecK6I%Mv1Rrw*9WU`c0BpsMv2Z;7{Nx7>-`kvU9RCpAx z3!T&$T*O(6n;3!zZf~UvEA(6!T&y+xj@=6U31r&3Yb?C$W-+H4Y{nRrF8r>3?cSOt za^~+|o=Xb13Y@zXt`&9l+d`}0Kv_f%iX3X&X_duF9cl(;K)Y5~=+J+1y$lNFBv;s- z90v-U(Ep{R&5j%n4Gw^IRgvvD!r@qS1O$&GG_`dcIMV|=O>G^9Mz5|0D$4>=YZ&D) zZYm5sh+vNoeWFMVF`~JI70NepEc%w2Q91+vrH15|0^h`4;6NyD{JFEmcd<)*Cilxr zFAl(q0Af%akP#_H@iR`YX5DEkW{J{+Hhd4Qk#es~=vsC3;V$v_sS{ls;2ZbuHXF;t z(A65!GSuk(A4>e&teeDpUFNRV0AIl`|2+Go5+zu5Vv|;wAo32u(?yB3P2!}|W?Ws_ zaYC{ydWo{-8&o~2_9r*>iOPWdx!9Zo#7}zd-{j8smApCZ^~CJz?4><+12y>ikeiek z5L-$EAW}b&HIRB4V-G(b3KA1_^C>d&2ngw%2#1>mZm{9RfxN2o09!`;o600000NkvXXu0mjf@I&1o literal 0 HcmV?d00001 diff --git a/stacer/static/themes/default/img/sidebar-icons/process.png b/stacer/static/themes/default/img/sidebar-icons/process.png new file mode 100644 index 0000000000000000000000000000000000000000..ab0ac32b719ed354e6878b94408b420165290309 GIT binary patch literal 1215 zcmeAS@N?(olHy`uVBq!ia0vp^DImg3V>x;7KHP@bdsn4IEF7dBplltEI z*H)*$lu?U`)jSaUm2Ivf!^<2Y29Ac3We(|g9orZ@(z!~m$)*q^;3Fz9QQYOrtd4oR z>gS#eS!%t%*%miT;%Vv#Nk>^tkLJAj*T51X@|p=s+KAm=5^d_JQBw$$H(}@{ME5PB{^J2uJY}T zeK;#{fvLcqb$^0Ct}~q=tyIE&i@mD*oZ8#wCtC6Q# zQMd7cKpT(ZX1}N;LBYq;za@7+kP>e*@VYCUcFp#imczD#vJ;B8=gVE)ENZqZ{n^{J zxutDAP1Xw2UB0BXIvwZx$!)yAr~fCf&uZ)N=u`Z2;LNY;?%hV)R;W*2Z#Ln| zmr#zyB5^{Zf`P@~4Huq|cD}I$s4nOipKEUH*W@QRSBZV~ao(}&m!pgF`7mjq0WraU zXH;yvo6`RgMd+TUmGJ9_4C`R7an)M26Xbmw;jLx#A5D6GoQSv_$J!v z_Pw)GhqO#p4h!7k+x|aebK3!Um?c^&acD)Ruu01_hXjtlK8rwpmT+Qr&fs*3 zpZwQGtMK|wjZ*?qOpS_P{I^U@=RSM#(ccL&^1`pK2>!KMS@&XxZo>;{4mtUW9n+jW z?bhcos(h7L`m~|CuXO$W^Xbppr}#xNT)fWpFg7Cj>i-w>AKa+DC(gZ8qN7fL?|AQ% zb8U%1&StTUQye?3m8|aXxv6fZU3PnB$_YM^+U1>f;nDfY*_vPM@66ZRb+gvhjgRLt z&&jt8b@^)=GTR*P6tOZaiE+Nn!H}etUTMIfdHsS3Q^Sl?k#al^r%X+H85EWkO=D-C oP{ix2%+RrN&eMZLDF4l!F>lwio1cmdKI;Vst0CRC1aR2}S literal 0 HcmV?d00001 diff --git a/stacer/static/themes/default/img/sidebar-icons/resources.png b/stacer/static/themes/default/img/sidebar-icons/resources.png new file mode 100644 index 0000000000000000000000000000000000000000..46427f9c631785cd79291fad05fd59c74672e368 GIT binary patch literal 1364 zcmV-a1*`grP)S_2eLLdv91O!4L3sYd=taxEQFKOIGecJOB@#cri3rl( zhfI5C2;AD$%wCJgG=sXOs&HY&i!r1qQGEk5dl(ji$DN+5D*j(}5lEFxrGZA?(X@Qy*{@-*F zNRwRW8z)lSWND;yI|3;wl=(c7;=)y3QB@QXn=b-smh5kbxhZb!)&$ZC#3RKekWTTZ z-MmuV%>kM0$RYp7YB;+i=fT7)#oZK;-W|EQKs;02tpVxUk(&d=JH_1^klcBzFM{R>~;ub*%}G2Op8*ZURWia8TloZh=N#ayFPzDemflnAyEh z-ku(Ogf_oj2ew5GV52a<^w%^N=r zU;r4&LhMvwwu-xHAenga0b=#0v6Wy_MwdOPut^|=c+qrNz`>Or4^iB3+8mHXdI?eB zDsYx58!w7cGt!{NVh%w!b)QWE3Gw1Zyan_gZ&5%(FoZQAeJxqTREw%C z##=z|@fHEZ%n+mjAyyinW={y}$o0`4ZmcPb@fOf~ypsTloO^gSOXS!FGrL; zyak;*-f$q5>xS5Szy$%?v)p&-<_fU1{-*$vD<#DA7-|h(FFXpQ*YhQJ49zTe?&d%R&WWG?~|NT=oP-eu83 z+Gfu1?-&vYfn*h+%gX;4eR2A%ML-7iBFcD!wE$+?yD-3KKp2GE$c(Z$0%_xL)|x_ajw;<2}2+RQm4SE8R+d|yvL)3)XfjNELzA;@_cU> z<2@c-7F|}I0(4n)S#>idv>G*G=(3tH{B2AiJF#F|2rZ;efl)5OJ5BW-j}}rlKe$q- zh3q6~db=3!@#wPXvg#C|%c9Gwn<-qW|50Es=f)UAn(Tt5lQRWqA&oO + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + diff --git a/stacer/static/themes/default/img/sidebar-icons/settings.svg b/stacer/static/themes/default/img/sidebar-icons/settings.svg new file mode 100644 index 0000000..d12d505 --- /dev/null +++ b/stacer/static/themes/default/img/sidebar-icons/settings.svg @@ -0,0 +1,56 @@ + +image/svg+xml \ No newline at end of file diff --git a/stacer/static/themes/default/img/sidebar-icons/startup-apps.png b/stacer/static/themes/default/img/sidebar-icons/startup-apps.png new file mode 100644 index 0000000000000000000000000000000000000000..795524956cbeaefa08e145088cf2764100bdb7c7 GIT binary patch literal 2256 zcmV;>2ru`EP)OOGVW4oz3_zxVZ@2(S5|jTTnf>33;353aOCEUvqL7|w!B5jP{a~9M#p5=& zT!17>P&5G`Jgg0Z(S`R!1e14hhz}QLhB7nc>9%j9ZX)2>aFL zy)zoZ%-{;d6g{@p!#X`65?4SgW*@)P_9GGfvGnbjU;u}IWQesFfjIP?N|g> zNlVt%LDxhW#$;6t{F1rDVYaZaRl+4v?HmaZn5nFKS?3ItqUKaHfS(b7?V}Oz4ck8 z4@7iNW3rg}Z)J&T(6j2^?G=v-gD-J!Lo(0Sk^eBj=K?nJs50bN_0nupRRs`cM&yhLI;ZWDYYjcBoPO23c2oS8 z^I)}xD22FF;{!aZ9C_5Zc2gRf`#=>SN>2z&rSLfBvU@b;b8^Rc#;gV%Ij*(I6m7kIF^jrA2K=2|MYH?4}dU%Z&hX6su`B~yid?c>n zpTt)lav8=2@}7^qIHH9BK_(a5tx`%ST_lb*2Ar@nYI9Dq)`Lm$vJl7toaN8fnlqAk zlNcif%qSrCLyXNV|DS*+2X8IcDTBzAz8-Z=vlt^~0NH?q9x6fP$Rys}t&M?F8<3GB z@k89&!vImnEwTO`@jJ--p?TiO5ij+*@3jHxIjal4fL3e{dnpxQ z?fa_&B3goSOnkPXr`8>LH}SG0Do37y&kds zAT>Lpc~%J^_V!>LZ)BS;@Ch^}b)ic$2J;^91=1iZrwOlNs|2=8;5YS{OFNfxzq)hG z?DD2w5YgtqVj=z`KzS_!-_+LHWlU!V#20h8HsiGRymk}8@c1@WlBWek2JAZ>XSWTw zk*0WqJzw_u?11=oP{C{f6x){9@<%9Wqh8XT6^e5UE@TfzP%&5Oah;!CB`e z-j{QkRrmsnWZpw+P6LRXRfR3fb2SPPJu;$mJO0lp1Ph%d6g4Kf@ck+0EUrald=DI{nL z07LG}xjE9P`+`>DltzVW&Nh=8N zB=d#inMtR*rS_%8b!+M*uo3fF4iIK16L#7{TacCA#S$K~mc%RAsY zV~r%rMfPBs8RiWi4$f`ktr#-1y_n<-zG9NF_9Frin4=`lNqDxV?yK8!AFs(0uL$PK zY#QwV+1lr^SKE1{IMuD|a-R?&c7jmli8!{vC7;9@(+ zQ1VHf8GyuiWEk=e0b=hT&sKGZc4UK^0!qY<9*Vp}fY^kd1&BvT)wM&sLEp;baO9l> zNOJj%XZuMKq;Dd%WKHt@+Qr0$@sSwy9z;mt2C2Lo1NAJq@0K~4Zg4cyq2JAIvKmPD +image/svg+xml \ No newline at end of file diff --git a/stacer/static/themes/default/img/sidebar-icons/uninstaller.png b/stacer/static/themes/default/img/sidebar-icons/uninstaller.png new file mode 100644 index 0000000000000000000000000000000000000000..91cbbd070e09e22ee13bb8c9611d3c1051279557 GIT binary patch literal 2239 zcmV;w2tfCVP)K)9U$2+Kb^}O++4s5Izqf+z%l*b>M)rF!htEO?w==P78h}LP2USq131b1d)DI@_S&Z>z=|DBUKO7(tfnWJ4 zgaGG1Q$sNEG{y*DHLMKo)ImxTqz-)m~pui~1=K-n1N;e%$l+tKrw6rNRL`Brq%!f93}z%3sF|@2r1#8ATy%G&j{c2Hpcjf=$F-{89*X} zRfzJ9)etg2ZtZINy6O(AT8e@*Rk4^;4DIG0KtL;Q&)YjsTDws zX@gmNI2&^=FbRsc%v}>xR~;Y`0o74sOEm-pFl*IUoJHB3-)kfaCRu?4l31AbYON|j zY7+h+qP8wML^Umi5Xf8(QQd=@R-raP412I4hPqgB6A|Pr7z?#Fl#iB(5zK_LP^ZIg zDRQggCL)OJtURge;;Ri1*t0#nu~rOB+x?OirYwaC1u$$)4`4yLFhSX85Hzm?_$gC| z!tI0N)u01Z1Bf&MMK)SQe$?6-3(Qte00(uw=eY_L5tM`=N2*n0QB8m>`e(C8S%a{h zNqQOGg9X?+aI;Bef$2=KsG1qC0+3Q4<}KBp#~88tTrH!P$Bv&}OCwoyFJ}R4g|7t= z6CAh&c0`3ND0?Q)9d)T(e;bn)ne%1rS^!z*EsOFZ!X&)8;4I(EN-&9tF6)_FF$k+E z<+!n*4-n}_nh|=u+U8e85Jlo##ijN>#(1w(z+wiekHAV#HJ5qoVA_gJ9cku@>vJ^# z!fs@0D;o#aUD20_U{44qOnWw*)5f#VO+*k4rmEe=;dTvxth~S-y@`lrGA}9djsD^b zTFd`+bekk%OU3={)qRkNpoo}Kh-(!Qwtf2yyF0O3wDq1daQRB2F#IOQxLlFRSTiBi zV2}k65<>d;tkb+DtKyC-^rAf1#v8HkH3dLc{SA2reIk=!?BtCdOVjxi3Gj4 zE?0v=lHzWR(KUxB_hH8tk)(_(`Q15@H8v~bB^|nyw>L;_0j=>?GSI8t!%DA0EqT4; zwFnYwGl*U7CqPWtQF{duxy8R?v8&UParK-zIa}2Q+MPjK*7rnlR#dot2D2d9I7mPO zo~)vRd!vJ~1f%ua3@WNcMjWteRNfSu0N zIRtmvT|}UC>xk3dGcBexCwu=8V{~n$6BT#lf3P5Q9$3W(DKOZVXNrsNWX)MkU}71j zPfoGa+6PRH7DoA2A9wDfvN7i{ zQgc&xix_}vY@THui6xIXSpcMdpM8K|L=YV11S4yCOuxqfl)HJhRgBxrtxO4XaNP@3 z_N6hRip|PmZW1y8v9&QvD0eis4CuV4W66Qv7u`#$8D(0PhMoXHFv&G+D3xQa0iHIQGOQvj7G;3oa?UkNc{r#UU0% zv88_JfB4M^&?4Y+;{f%qtczS)7Fu6FSx(r%gkgM)i#LNDT4GxjNE9 zcU{Ij3_zRm3Vap7Vry+(l-XjE!vS>HSaoQC?gFc>0-$SV)ztxXZLGRlfOc4g+{b!V zSPMU2H0GTEXaiQQGZaONXTN*`#A<3#zZ0NAif5-i0b(^ZsNV_DAjPxOo&d3$8r1Iu zXprLBX-|MyO%3XI0yIeR?6fC9tfmI_I{_M`cy`(oAXZa@`kep`Qan3tbAa?J32rF3 zub8tB;pyjiFOO%~W_^1Av$canmx8>IhJEwhRHNH>(;0 z)RZkl0qV#qqye>C7q(0TPzP4k0H`}#rUR%0t8#!E#+Io88qBIG*m4MfI N002ovPDHLkV1lZ(_nH6z literal 0 HcmV?d00001 diff --git a/stacer/static/themes/default/img/trash.svg b/stacer/static/themes/default/img/trash.svg new file mode 100644 index 0000000..43033b9 --- /dev/null +++ b/stacer/static/themes/default/img/trash.svg @@ -0,0 +1,76 @@ + +image/svg+xml \ No newline at end of file diff --git a/stacer/static/themes/default/img/un-check.svg b/stacer/static/themes/default/img/un-check.svg new file mode 100644 index 0000000..94c9016 --- /dev/null +++ b/stacer/static/themes/default/img/un-check.svg @@ -0,0 +1,62 @@ + +image/svg+xml \ No newline at end of file diff --git a/stacer/static/themes/default/img/un-checkbox.svg b/stacer/static/themes/default/img/un-checkbox.svg new file mode 100644 index 0000000..cd361f7 --- /dev/null +++ b/stacer/static/themes/default/img/un-checkbox.svg @@ -0,0 +1,83 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + diff --git a/stacer/static/themes/default/style/style.qss b/stacer/static/themes/default/style/style.qss new file mode 100644 index 0000000..9c8e98d --- /dev/null +++ b/stacer/static/themes/default/style/style.qss @@ -0,0 +1,817 @@ +/****** DEFAULT THEME ******/ + +/************************** + SCROLL BAR +***************************/ + +QScrollArea { + border: 0; +} + +QScrollBar:vertical { + width: 12; + margin: 0 0 0 2; + border-radius: 2; + background-color: transparent; +} + +QScrollBar::handle:vertical { + background-color: @color01; + min-height: 20px; + border-radius: 2; +} + +QScrollBar::add-line:vertical, +QScrollBar::sub-line:vertical { + height: 0; +} + +QScrollBar::add-page:vertical, +QScrollBar::sub-page:vertical { + border-bottom-right-radius: 2; + border-bottom-left-radius: 2; + background-color: transparent; +} + +QScrollBar:horizontal { + height: 12; + margin: 2 0 0 0; + border-radius: 2; + background-color: transparent; +} + +QScrollBar::handle:horizontal { + background-color: @color01; + min-width: 20px; + border-radius: 2; +} + +QScrollBar::add-line:horizontal, +QScrollBar::sub-line:horizontal { + height: 0; +} + +QScrollBar::add-page:horizontal, +QScrollBar::sub-page:horizontal { + border-bottom-right-radius: 2; + border-bottom-left-radius: 2; + background-color: transparent; +} + +QAbstractScrollArea::corner { + background: transparent; +} + +/************************** + QMENU +***************************/ +QMenu { + background-color: @color02; + border-radius: 2; + margin: 3px 5px; +} + +QMenu::item { + padding: 2px 30px; + color: @color05; + font-size: 10pt; +} + +QMenu::item:selected { + background-color: @color03; +} + +QMenu::indicator { + width: 14px; + height: 14px; +} + +QMenu::indicator:non-exclusive:unchecked { + image: url(:/static/themes/default/img/un-check.svg); +} + +QMenu::indicator:non-exclusive:checked { + image: url(:/static/themes/default/img/check.svg); +} + +/************************** + QCHECKBOX +***************************/ + +QCheckBox::indicator { + width: 45px; + height: 25px; +} + +QCheckBox::indicator:checked { + image: url(:/static/themes/default/img/checkbox.svg); +} + +QCheckBox::indicator:unchecked { + image: url(:/static/themes/default/img/un-checkbox.svg); +} + + +QToolTip { + color: @color05; + background-color: @color04; + border: 1px solid @color04; + border-radius: 2; +} + +/************************** + NOT FOUND +***************************/ + +#notFoundWidget { + background: url(:/static/themes/default/img/not-found.svg) no-repeat top center; +} + +#notFoundWidget #label { + color: @color06; + font-size: 13pt; +} + +/************************** + MAIN WINDOW +***************************/ + +QMainWindow * { + font-family: "Ubuntu"; +} + +QWidget#sidebar { + background-color: @sidebar; + min-width:60; +} + +QWidget#sidebar QPushButton { + border: 0px; + min-width: 46; + min-height: 46; + max-width: 46; + max-height: 46; + border-style: solid; + color: @color07; + margin: 5 7; + border-radius:2; +} + +QWidget#sidebar QPushButton[checked=true], +QWidget#sidebar QPushButton:hover { + background-color: @color03; +} + +QLabel#pageTitle { + color: @color04; + padding: 5 0 8 0; + margin: 5 10; + border: 0; + border-bottom: 1 solid @color04; +} + +QWidget#pageContent { + background-color: @color08; +} + +QPushButton#dashBtn { + qproperty-icon: url(:/static/themes/default/img/sidebar-icons/dash.png); +} + +QPushButton#systemCleanerBtn { + qproperty-icon: url(:/static/themes/default/img/sidebar-icons/cleaner.svg); +} + +QPushButton#startupAppsBtn { + qproperty-icon: url(:/static/themes/default/img/sidebar-icons/startup-apps.svg); +} + +QPushButton#servicesBtn { + qproperty-icon: url(:/static/themes/default/img/sidebar-icons/services.svg); +} + +QPushButton#processesBtn { + qproperty-icon: url(:/static/themes/default/img/sidebar-icons/process.png); +} + +QPushButton#uninstallerBtn { + qproperty-icon: url(:/static/themes/default/img/sidebar-icons/uninstaller.png); +} + +QPushButton#resourcesBtn { + qproperty-icon: url(:/static/themes/default/img/sidebar-icons/resources.png); +} + +QPushButton#settingsBtn { + qproperty-icon: url(:/static/themes/default/img/sidebar-icons/settings.svg); +} + +/************************** + DASHBOARD PAGE +***************************/ + +/* - Circle Bar - */ + +QWidget#chartWidget { + background-color: @color01; + border-radius: 1; +} + +QLabel#chartTitle, +QLabel#chartValue { + color: @color05; +} + +QLabel#chartTitle { + font-size: 13pt; + margin: 0; +} + +QLabel#chartValue { + font-size: 13pt; + margin: 0; +} + +/* - Line Bar - */ + +QWidget#lineChartWidget { + background-color: @color01; + border-radius: 1; +} + +QLabel#lineChartTitle { + color: @color05; + font-size: 13pt; +} + +QLabel#lineChartValue { + color: @color05; + font-size: 13pt; +} + +QLabel#lineChartTotal { + color: @color06; + font-size: 11pt; +} + +QProgressBar#lineChartProgress { + background-color: @color08; + border: 0; + border-radius: 0; +} + +QProgressBar#lineChartProgress::chunk { + background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:0 #3498db, stop:1 #2980b9); +} + +/* - System Info - */ + +QListView#systemInfoList { + border: 0; + background-color: transparent; + font-size: 12pt; + color: @color06; +} + +QLabel#systemInfoTitle { + color: @color05; + font-size: 13pt; + padding-left: 5; +} + +/************************** + SYSTEM CLEANER PAGE +***************************/ + +#cleanerCategories QLabel { + font-size: 11pt; + color: @color05; +} + +#SystemCleanerPage QCheckBox::indicator { + min-width: 25; + min-height: 25; +} + +#SystemCleanerPage QCheckBox::indicator:unchecked { + image: url(:/static/themes/default/img/un-check.svg); +} + +#SystemCleanerPage QCheckBox::indicator:checked { + image: url(:/static/themes/default/img/check.svg); +} + +/* - System Scan Button - */ + +#SystemCleanerPage #scanBtn { + border: 0; +} + +#SystemCleanerPage #scanBtn { + background: url(:/static/themes/default/img/scan.svg) no-repeat center; +} + +#SystemCleanerPage #scanBtn:hover { + background: url(:/static/themes/default/img/scan-active.svg) no-repeat center; +} + +/* - System Clean Button - */ + +#SystemCleanerPage #cleanBtn { + border: 0; +} + +#SystemCleanerPage #cleanBtn { + background: url(:/static/themes/default/img/clean.svg) no-repeat center; +} + +#SystemCleanerPage #cleanBtn:hover { + background: url(:/static/themes/default/img/clean-active.svg) no-repeat center; +} + +/* - System Scan Results - */ + +#backButtton { + border: 0; + font-size: 11pt; + color: @color03; +} + +#scanResultTreeW { + border: 1 solid @color13; + background-color: transparent; + border-radius: 2; +} + +#scanResultTreeW QHeaderView::section { + border-top: 1; +} + +#scanResultTreeW::item { + border-bottom: 1 solid @color14; + padding: 7 3; + font-size: 11pt; + color: @color11; +} + +#scanResultTreeW::indicator { + width: 14; + height: 14; +} + +#scanResultTreeW::indicator:checked { + image: url(:/static/themes/default/img/check.svg); +} + +#scanResultTreeW::indicator:unchecked { + image: url(:/static/themes/default/img/un-check.svg); +} + +#scanResultTreeW::branch:has-children:!has-siblings:closed, +#scanResultTreeW::branch:closed:has-children:has-siblings { + border-image: none; + image: url(:/static/themes/default/img/right-arrow.svg); + padding: 4; +} + +#scanResultTreeW::branch:open:has-children:!has-siblings, +#scanResultTreeW::branch:open:has-children:has-siblings { + border-image: none; + image: url(:/static/themes/default/img/down-arrow.svg); + padding: 4; +} + +#scanResultTreeW::branch { + border-bottom: 1 solid @color14; +} + +#removedTotalSizeLbl { + font-size: 11pt; + color: @color15; +} +/************************** + STARTUP APPS PAGE +***************************/ +#startupListWidget { + background-color: transparent; +} + +#addStartupAppBtn { + border:0; + border-radius: 2; + background-color: @color03; + color: @color05; + padding: 7 15; +} + +#addStartupAppBtn:hover { + background-color: @color10; +} + +#startupAppsTitleLbl { + color: @color11; + padding: 10 0 10 20; +} + +#refreshAppsBtn { + border: 0; +} + +/* - Startup App - */ + +#startupAppWidget { + border-radius: 2; + background-color: @color01; +} + +#appIcon { + image: url(:/static/themes/default/img/app.svg); +} + +#startupAppWidget:hover { + background-color: @color02; +} + +#startupAppWidget #appName { + font-size: 11pt; + color: @color05; +} + +#startupCheck { + margin-top: 3; +} + +#startupAppWidget #deleteAppBtn { + qproperty-icon: url(:/static/themes/default/img/trash.svg); + border: 0; +} + +#startupAppWidget #editAppBtn { + qproperty-icon: url(:/static/themes/default/img/edit.svg); + border: 0; + margin-bottom: 2; +} + +/* - Startup App Edit - */ + +#StartupAppEdit { + background-color: @color08; +} + +#StartupAppEdit #title { + color: @color06; + font-size: 11pt; +} + +#StartupAppEdit QLineEdit { + border-radius: 2; + padding: 10; + background-color: @color01; + font-size: 10pt; + color: @color05; +} + +#StartupAppEdit #saveBtn { + border-radius: 2; + padding: 7 25; + font-size: 11pt; + background-color: @color03; + color: @color07; +} + +#StartupAppEdit #saveBtn:hover { + background-color: @color10; +} + +#StartupAppEdit #errorMsg { + color: @color09; +} + +/************************** + SERVICES PAGE +***************************/ + +#ServicesPage QListWidget { + background-color: transparent; +} + +#servicesTitle { + font-size: 11pt; + color: @color11; + padding: 10 0; +} + +#serviceStartupTitle, +#systemRunningTitle { + font-size: 10pt; + color: @color11; +} + +/* - Service Item - */ + +#serviceItemWidget QCheckBox { + margin-top: 2; +} + +#serviceItemWidget { + border-radius: 2; + background-color: @color01; +} + +#serviceIcon { + image: url(:/static/themes/default/img/service.svg); +} + +#serviceItemWidget:hover { + background-color: @color02; +} + +#ServiceItem #serviceName { + font-size: 10pt; + color: @color05; +} + +#serviceStartupImg { + image: url(:/static/themes/default/img/power.svg); +} + +#systemRunningImg { + image: url(:/static/themes/default/img/run.svg); +} + +/************************** + PROCESSES PAGE +***************************/ + +#processTitleLbl { + color: @color11; + padding: 10 0; + font-size: 11pt; +} + +#allProcessesCheck { + margin-top: 2; + color: @color12; + font-size: 10pt; +} + +#allProcessesCheck::indicator { + width: 14; + height: 14; +} + +#allProcessesCheck::indicator:unchecked { + image: url(:/static/themes/default/img/un-check.svg); +} + +#allProcessesCheck::indicator:checked { + image: url(:/static/themes/default/img/check.svg); +} + +#processSearchBox { + width: 150; + padding: 4 12; + border-radius: 12; + background: @color01 url(:/static/themes/default/img/search.svg) no-repeat right center; + border: 1px solid @color02; + color: @color12; +} + +QTableView { + background-color: transparent; + selection-color: @color05; + color: @color05; + font-size: 10pt; + gridline-color: @color08; + border-radius: 2; +} + +QTableView::item { + font-size: 11pt; + color: @color05; + padding: 6 0 6 -10; + background-color: @color01; +} + +QTableView::item:selected { + background-color: @color02; +} + +QHeaderView::section { + background-color: @color02; + border-width: 1 1 1 0; + border-style: solid; + border-color: @color08; + font-size: 11pt; + color: @color16; + padding-left:10; +} + +QHeaderView::up-arrow { + image: url(:/static/themes/default/img/asc.svg); +} + +QHeaderView::down-arrow { + image: url(:/static/themes/default/img/dsc.svg); +} + +#refreshLabel { + color: @color12; + font-size: 10pt; +} + +#refreshSlider { + margin-top: 3; +} + +#refreshSlider::groove:horizontal { + height: 2px; + background: @color12; + margin: 2px 0; +} + +#refreshSlider::handle:horizontal { + background-color: @color03; + width: 14px; + height: 14px; + margin: -6px 0; + border-radius: 7px; +} + +#endProcessBtn { + border:0; + border-radius: 2; + background-color: @color03; + color: @color05; + padding: 7 15; +} + +#endProcessBtn:hover { + background-color: @color10; +} +/************************** + UNINSTALLER PAGE +***************************/ + +#packagesTitle { + color: @color11; + padding: 10 0; + font-size: 11pt; +} + +#packageSearch { + padding: 4 12; + border-radius: 12; + background: @color01 url(:/static/themes/default/img/search.svg) no-repeat right center; + border: 1px solid @color02; + color: @color12; +} + +#packagesList { + border:0; + background-color: transparent; + font-size:10pt; +} + +#packagesList::indicator { + min-width: 16; + min-height: 16; +} + +#packagesList::indicator:unchecked { + image: url(:/static/themes/default/img/un-check.svg); +} + +#packagesList::indicator:checked { + image: url(:/static/themes/default/img/check.svg); +} + +#packagesList::item { + border-radius: 2; + min-height: 45; + background-color: @color01; +} + +#packagesList::item:text { + color: @color05; + padding-left: 15; +} + +#packagesList::item:selected { + background-color: @color02; + border: 0; +} + +#packagesList::item:hover { + background-color: @color02; +} + +#uninstallBtn { + border: 0; + padding: 6 15; + color: @color11; + border: 1px solid @color01; + border-radius: 5; +} + +#uninstallBtn:hover { + background-color: @color01; +} + +#refreshPackagesBtn { + border: 0; +} + +/************************** + HISTORIES +***************************/ + +QCheckBox#historyTitle { + font-size: 11pt; + margin: 0 0 10 10; + color: @color12; +} + +QCheckBox#historyTitle::indicator { + width: 20; + height: 20; +} + +QCheckBox#historyTitle::indicator:unchecked { + image: url(:/static/themes/default/img/fit.svg); +} + +QCheckBox#historyTitle::indicator:checked { + image: url(:/static/themes/default/img/collapse.svg); +} + +/************************** + SETTINGS +***************************/ + +#SettingsPage QLabel { + font-size: 11pt; + color: @color12; +} + +#SettingsPage QMenu { + background-color: @color01; +} + +#SettingsPage QComboBox { + border: 0; + border-radius: 2; + background-color: @color01; + padding: 4 0 4 10; + font-size: 11pt; + color: @color05; + min-width: 100; +} + +#SettingsPage QComboBox::drop-down { + background-color: @color01; + subcontrol-position: top right; + width: 14; + padding: 0 5; + color: @color05; + + border-left-width: 1px; + border-left-color: @color01; + border-left-style: solid; + image: url(:/static/themes/default/img/down-arrow.svg); + border-top-right-radius: 2; + border-bottom-right-radius: 2; +} + +#SettingsPage QComboBox::down-arrow:on { + background-color: @color01; + color: @color05; +} + +#SettingsPage QComboBox QAbstractItemView { + background-color: @color01; + border: 0; +} + +/************************** + UPDATE BAR +***************************/ + +#updateBarWidget { + background-color: @color03; + border-radius: 2; +} + +#updateBarTextLabel { + font-size: 10pt; + color: @color05; +} + +#downloadUpdateBtn { + font-size: 10pt; + color: @color05; + background-color: @color01; + border: 0; + padding: 4 10; + border-radius: 2; +} diff --git a/stacer/static/themes/default/style/values.ini b/stacer/static/themes/default/style/values.ini new file mode 100644 index 0000000..9005913 --- /dev/null +++ b/stacer/static/themes/default/style/values.ini @@ -0,0 +1,22 @@ +@pageContent=#1b252f +@sidebar=#15191c +@circleChartBackgroundColor=#212f3c +@historyChartBackgroundColor=#212f3c +@chartLabelColor=#eeeeee +@chartGridColor=#8394a6 +@color01=#212f3c +@color02=#263848 +@color03=#075ffe +@color04=#8394a6 +@color05=#eeeeee +@color06=#7d8ea0 +@color07=#ffffff +@color08=#1b252f +@color09=#f44336 +@color10=#075fbb +@color11=#dddddd +@color12=#aeb5bf +@color13=#293945 +@color14=#314452 +@color15=#00eb55 +@color16=#00d4ff diff --git a/stacer/static/themes/light/img/app.svg b/stacer/static/themes/light/img/app.svg new file mode 100644 index 0000000..d7f77ce --- /dev/null +++ b/stacer/static/themes/light/img/app.svg @@ -0,0 +1,65 @@ + + + + + + + + image/svg+xml + + + + + + + + + + diff --git a/stacer/static/themes/light/img/clean-active.svg b/stacer/static/themes/light/img/clean-active.svg new file mode 100644 index 0000000..f3c5675 --- /dev/null +++ b/stacer/static/themes/light/img/clean-active.svg @@ -0,0 +1,185 @@ + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + diff --git a/stacer/static/themes/light/img/clean.svg b/stacer/static/themes/light/img/clean.svg new file mode 100644 index 0000000..02b5b1d --- /dev/null +++ b/stacer/static/themes/light/img/clean.svg @@ -0,0 +1,185 @@ + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + diff --git a/stacer/static/themes/light/img/down-arrow.svg b/stacer/static/themes/light/img/down-arrow.svg new file mode 100644 index 0000000..3d7284b --- /dev/null +++ b/stacer/static/themes/light/img/down-arrow.svg @@ -0,0 +1,45 @@ + +image/svg+xml \ No newline at end of file diff --git a/stacer/static/themes/light/img/edit.svg b/stacer/static/themes/light/img/edit.svg new file mode 100644 index 0000000..5846cfd --- /dev/null +++ b/stacer/static/themes/light/img/edit.svg @@ -0,0 +1,65 @@ + +image/svg+xml \ No newline at end of file diff --git a/stacer/static/themes/light/img/loading.gif b/stacer/static/themes/light/img/loading.gif new file mode 100644 index 0000000000000000000000000000000000000000..41fc3e13381c6405f2a2e0f375b185ff134499aa GIT binary patch literal 8353 zcmd_vc{r4N|G@Ek7K}{HJ*JE$jWL)yNOFpnlbB(~mdeSJByETql@gV~*mqg7&)8)z zTZpk{O}37$Y^5R<(Q-`s-J_nfJkNQ4zw3Ga{2kZja$Q{h`Q9&YpZoLGr|W5I9cKeL zpaB4!vUsJviy>9K=qldm%wlxy;_&Pe0044dMNFt>hjjOuQq@(}5HS9?J|j_r&{t*X z6X5?kfLO7w8eLIqr{~?*ob9UqYD*3~>5yW7yU=O2mZ97&4dSTUwC#oOD@Ij&#o^a= zY4iGM^_YjxPHb{D4TLk-tL3PohMdhMABSb1Dl~^Zz1{Za?vEn z1;coGvzXpMfT-WOkhNh)BG6GjzCqCDD!YGO_A=_iIFJi@0?S^=lhTnwuW9w6(^>vv2mt1*Q&ih6hG}3GI8DJelCs?utgf zxISwzcj)cm`OEKLEgkzf?Q+!}hCuAk`h;jL8mnU-79^IY7qdfsM5W}pzc?ip(uQ{_i%0R}A9VlpqOv>hWD2iocoFBwgO0mq zco91H-QGO2Fka2$#r~N^4R;>&RAkQak{Z504E}-t`wxK?g2JE9{gU&TTjASlZ~Od# z42&i(tTiLl6wpi!^}k?H5QYlKUQdv-sI#?sA1@Fsm+gN--Gz227&cN6)ICP_koN5D zo4DZN>g9QrbxrX`0B+66Bm4D8V&WhS1jR+jNb%U%_{8LxTM0@@DH)s`c2-(yrebz_ zeo0|&L0&OYFx<*gP(c(FOc4|%Bhq79TH9frN^P+n4|*OxQtXZE9vJ%NiNbJySKp`t z`gH9Pdy+7$8754QZfcr;-`M?jL22>Vk6#vsrp`2sX8t zVT>z1&a`onIO(yq%WlMz`cYC9S}Dlf3narZRm1YdPX|fH*cutFO$Y!lEF=?1#WNdV zEdV9`)!n#$R*xqwQsw$D8iPHzNrFb9?vuHD3Wv(=T-98Zm^5?Mpp2g>8~7jdU~*0DSYNk;o3qzJ-;w&PtZj#OLwCuA|3ZM`kg~tmelB9)TMX)=u<&{-QHTZjX<;yDSYZaUCHxk<)bjmzzP?Wrq zBPoyKTysV#tU*=4D%Oz4CySmdy_k44J=Zd$_vvyEn7TpA@g>pOQS#6{Zb{ z8kAP~5=LP-?(m-7;QV8X_&U(q%-)FD6t;eE?E($V&||_z_HQNNgVv_9NNxhC%TYvQ z7wHpEFQHt{6sEkqF^o>Q*rek|rOGrr5Mevi)wBqVd(I&{u;ccA9sXq-j0@!lub26Y zz$`$!w#W@5-M5CzPu1I~*)zDPwK-OBCUaUxH~5ibSs(rr*Y>16dK<;a&_%bUNk;ss zYbE2kxJUj(k9dTm8P-cx=G`UYBbd=9qjWt^f(Ah#`)HB({VEOTA@+Hp!n>hB5-8Fi z0yYD~NmCb9QI%2kZvq8smQB^dYN}ju7`P?_!+g8+cDyloc7+$e06UszmFWLQ#WP;vK8c_|&t4)XD%Akxwhx|p1XL=06Hgh}>+VR~4w zf8ZDD(1_$?+8AtfYWVrY6Uwt`{ka)^R9Chr6@HbI1lN^J{2C0$(IdQuy&Nh94|Xur zbajZx>>sabl8Cx2nzBh}C1VN<#RqF>KJJW)pf^yA@!ng+_LztTDWez+D*#O^9mw!| zAF%T9(vFKZr9*wK`_pu;2rg+wXGaQdI+lP0e;i}S=)C)RT_zi~Gf^l&vL1-$3=&T| zCs3oxr!0xi3bh-sSLPzCj)!XwKI@eQMS(;YJQj%gi3*pKDy1Jl)i=YWd;%=Csp}^^ zSN3G(522oSM(vF|>qM}SMNmUBDKSQ^cj7pTyQ48X8q6+(mxDa~3)yoQMH-*T>OB0& zkZbluq-ODG9fx=!%*kB=I1rv^{(y&<^FA5yq|O}OO@e(^n7$vkw}^D#4Fi6Flg-Zj zx(SY@v=_|~_GW#JE3R(>;AEoq+5LOQv9cRJ361+;{6Ihwwp)C{7k@fu!cPWu`Q?N^ z!3K}~*U{tuIqh*GYr)NQ%|z+&u)Uf}Ok0NCzU`{anw4?O<*)SLZL>lou0ys%f}^F* zF>hJ$B^#ilukwM1+=PG!r4?M2pd}_7-AOSlD@`glsH~_mz>2^m8^LfYm>taWryz22 zAmfD{9KP|!<_A!NcP3e(j<-BV?&Z7i_-m2jpibKZJ40Xt5i#sT6 z*|R$~;=tJO#FcjW33u$W1L66jJ61WB z(Y$)og%TvS+KkhOiB9xd1#H~psGRE)Vq4<+lgyOQnxc+vC;})dTmTv84p{hMH)5wy z4HILo(MliscPyw+KTO=Vmp6JYQS*`>I%3@^K+?p#mu2cvpq$340xR2t3Ai%wisZvr zvT$p+DvuUJ`R)SJJ{Bt47e#V<6tHP{XP|YRmYT=?7d>0O&rHhf{5)^i?*BI6ClNuR zVD!+CY7i5d|4!)O1;*Z+o_n3uwlaZW6lTN#$%@h!`ts$)xX(dtjJ71q7V&4=Cg9(Y z_U8YB_P0nUCjVJ?X7N>tgrpQhHUvAhtcFAXP8+IpQ}Y7~czYFiULFLzq$gt)cqgr` z1ESsjjds^>wC_MM~#O_aOC$6n@t|qY#Y6R$FW+E+T_N{=&RRZs8G%Orta;QO7*10|8gJ+E6WG!t? z$Wb>ZHB5YvD(j6gJI==@L>%IDQrAQ!h%ju=g88H;Sg+arZ!lF>MN(ZJB-n`SXH9QZ z?pqYxHxrGWco!kO6gy5AqW4*)+R)Zz-DH9l6cn>O?H(tOVy2Qve%= zAIxpnjuhMd^KtPsl^qpK>`T2*K|5bMo}3|z?!WR@W?t@1^xg^?Id9vU$1y0(E-y}` z*}dyn*#0BopWFwEP8dP?URHQ>x6w0IxKSJMdmXWbO4y#UT)J-Zm?E;UM^GH$B*X-& zC3^r^#>LOu(zkI8KI#+j-1xnoaIBVRB zZ9jRigdi=!yy5w-_$yQI_kR0^O5A|@9U2lNb>8dP>L8MsoSKwEN5{DHBOV$JMLam? zuDb+{oncU!#xbn^Zam_faVlT4K3EXq8$dx67DCWVA7_7u-VJ-HKl8e^eYU5IvYPMj z#%G=^OPB`u9Lko#fyLSDHp6t)374A5Kppy%-#T3H7Q{Z%hP|@FxuCG1=K|mO+oW~} z+2;aolAB~SjdV6!rfae$R%8=%WO3l*D0~-D`IM|eRR8n#TPESk%+viDM&W}YNxS_A zXg-dm4DZ2v;sdM{QD^moOq>-HVHxbS0Uy_D?dj@2I=6FSuIiffzKDJy^{J{*7E@|- z!*M%JQC;{W0}*bTc3l&EWLy4_+C*duLTQ(TwpBGs1)&_lP?Bvy+4U&9Kpy^jdL1nLWe)_ zOOHq0lhnGWIy+D(R65;xIZp}2);2fBY<5wS7obiSh%CFZEr`~0L^_6jsy3WJn;97? zks80DA|x$m)^7@mN_0R|%J|_UfRw<8qgQTCoo?2{m?P$lo~S#_5lJ?L36tGnU?-L% zc%&SIh=bwD3mkGjL#O4ls)VV|Q=lX}H`ZV3>3#e1S!w`avC~yiILmxT&QW1XDK4~T z;d*qdTN>Em|E89-y!7GqHm~|(441R(g*j-yA@?VDU0$0K8-Gp>^a4Uq&|BtO3_D16 z15$IGh1&_+2b@MSOnhb5e%B2ZT<`BVp%h!7IJ;$|8{E45wo4fqo>I@XhzJ$2?cVD) z%=FUzJ>Py|5}r`L!$M=F7|cKUHpntS$9nJ+9u@;7Jfxt~LxPt3oA1a!)SK_SkIz^a zyc6mdNI~4a3n9NZmj4gr^WTQ=@4f>TJKk*>kMI(RB*>h`un>pyp^S6&5B~sVTsvuC zHRJfrHF57yf}TVCdW)sB%PZf7e3Kx<$Wy&Cz1l}ts*H4$uTN>Rh#ON2Rx>_mLfoEA zv;>TA)8mnil3K!Be!v!z%GSeX_vc3lKD_`F*m}u6PnfFmt5XIWwcSmqQ&ettiRKNc zy#EndVme0S4xpFUS~@f8VuONlI_^0r|Iistv~Yx>Di99W#a={XT~3~P8%w__0b76z zyA^wd6vv{6UMyO~Toqb*S z%8UWIyxE>~*d>$Fxv?Oi*5-=BSc%9Q)`T2DaqF)j0!O00Ecq|)7-QPi)Kidf4InGf|y#D2mov#L};w%}Ju6N8>J7KH6ynq%*K+S_x|J3obl($9Bez`VB@8vS( z(T{3V?qSmFtsvk+;d2o1;yhJm1e}f)Pja#W9Q319YzQ#1@g2x8q4;aT{XOa4& z%K_hj7e^o7DK{HbAwu?g?eIiMo`O*}-MRF#FP>Cfn7kY{H+0jQRo&B?KWQA8WFEBj z`kuGmlSk?aAVAzbdknN!$^B`WA8-QxJU`%}CQj4F8>9Sifw~+&>pr+w)A%Q==VJu=%kDcQNi+6 z;T08-@cYk;G1S%BJNy08N6F8W#l}ycrQvEm+9UxnS-PeZ8{_vSOp__l0SzkGoSONA zO7oFWIIbQOAuUL1d$U%Au|P98r+h$)HPqYM5%XhnSJS3L3M(Z^I#OJZIC?B3lyJW>b&! z)=UeSUhS4c`F+9+`>c1Hu(iJdyRGa***ekWFDbsMe-Ro~Hcmi;3Onv7K&+!$NOBX( zQNa>4?t5k3vWm3X`?ZR@;IHLItVgo;IF*Bl)YU;HSLL$KsHFc3HE4Nq{8wQ-K7*7DpwBX&NU(z&fGz$U_DD_#+<&Clt{L8kGa{m1pbbSKtxS_o^w7iBk-O!F3T3CNu zZ9^MvXaf#yx}jb6KV6XgpSx;-6b(wU51w-~Fxg-9;;PFr*K zZAu;NuI2~u9)<3N0n#t6?R`V?BmGL|!3~xQfk88&ip81aHwEwdYUdW;KUli=QE5K$ zQ-u+Mtk3AhgY{U|;yAJK>Ki<~AZsvUk`gGkwfzS#+qhz?kUVX3wx~ADq4QQ%=A~(4 z1&z2t+Y2Y|VV@g{3#_@JMW19o@D?&6GtLl5!bnPJn6|rNE-EWCNsl>fuzA4v@XfSJ zt3?Vk{3bk_p?&8W+)k$pS(P5kGy_keE3Zn+y&2tm;mPFvj_q5HR=Xd_ScY>Wg}2lf zo24~Wx>P4AE=8J-3!s^>J2GceqFBB@ioQMPWR0szU-ji2%CqUJat;2A|KdK71=bz@ ztt-RuoL?(%u&`WsiS zVf}mpM1nl7`b!`k9jWW#?&sn7Tk(k!$?mCf@rd+w97Z-SHz6rAPrM+jC`DqQu1=+p z1S%7SuZ`#4ud8oqZhX+*=H9fv;bBMbI>G4ZUF&)n-NUVq#-4VLPfhkedoexQH#_i4 z6)==vT$Z+U`(q({ak>1Kp*MNs?~6=_1Tne#?nT*3g{>W3>GR;p0>3IR~()%dWfH zOC3b7nxq>f8 + + + + + image/svg+xml + + + + + + + + + + + + + diff --git a/stacer/static/themes/light/img/right-arrow.svg b/stacer/static/themes/light/img/right-arrow.svg new file mode 100644 index 0000000..7992d50 --- /dev/null +++ b/stacer/static/themes/light/img/right-arrow.svg @@ -0,0 +1,45 @@ + +image/svg+xml \ No newline at end of file diff --git a/stacer/static/themes/light/img/scan-active.svg b/stacer/static/themes/light/img/scan-active.svg new file mode 100644 index 0000000..99a5d6a --- /dev/null +++ b/stacer/static/themes/light/img/scan-active.svg @@ -0,0 +1,157 @@ + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + diff --git a/stacer/static/themes/light/img/scan.svg b/stacer/static/themes/light/img/scan.svg new file mode 100644 index 0000000..878b8d8 --- /dev/null +++ b/stacer/static/themes/light/img/scan.svg @@ -0,0 +1,158 @@ + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + diff --git a/stacer/static/themes/light/img/scanLoading.gif b/stacer/static/themes/light/img/scanLoading.gif new file mode 100644 index 0000000000000000000000000000000000000000..7c682d0742a715bec85cd3adafae7368b1f827c2 GIT binary patch literal 60782 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

a5I?dF?zFLTb;VCk9ty#;f>_Bf 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 z + + + + App + + + Dashboard + + + + + System Cleaner + + + + + System Startup Apps + + + + + System Services + + + + + Uninstaller + + + + + Resources + + + + + Processes + + + + + Settings + + + + + DashboardPage + + + SYSTEM INFO + + + + + There are update currently available. + + + + + Download + + + + + CPU + + + + + MEMORY + + + + + DISK + + + + + DOWNLOAD + + + + + UPLOAD + + + + + Hostname: %1 + + + + + Platform: %1 + + + + + Distribution: %1 + + + + + Kernel Release: %1 + + + + + CPU Model: %1 + + + + + CPU Speed: %1 + + + + + CPU Core: %1 + + + + + + Total: %1 + + + + + ProcessesPage + + + Processes + + + + + All Processes + + + + + Search... + + + + + End Process + + + + + User + + + + + Resident Memory + + + + + %Memory + + + + + Virtual Memory + + + + + Start Time + + + + + State + + + + + Group + + + + + Nice + + + + + CPU Time + + + + + Session + + + + + Seat + + + + + Process + + + + + Processes (%1) + + + + + Refresh (%1) + + + + + ResourcesPage + + + CPU History + + + + + Memory History + + + + + Network History + + + + + Download %1/s Total: %2 + + + + + Upload %1/s Total: %2 + + + + + Swap %1 (%2%) %3 + + + + + Memory %1 (%2%) %3 + + + + + ServicesPage + + + System Services + + + + + Startup at boot ? + + + + + Running Now ? + + + + + Not Found System Service + + + + + System Services (%1) + + + + + SettingsPage + + + Language + + + + + Theme + + + + + StartupApp + + + Delete + + + + + Edit + + + + + StartupAppEdit + + + Startup App + + + + + Save + + + + + Fields cannot be left blank. + + + + + App Comment + + + + + App Name + + + + + Command + + + + + Application + + + + + StartupAppsPage + + + Not Found Startup Apps + + + + + System Startup Applications + + + + + Add Startup App + + + + + System Startup Applications (%1) + + + + + SystemCleanerPage + + + Crash Reports + + + + + Application Logs + + + + + Application Caches + + + + + Trash + + + + + Package Caches + + + + + Back + + + + + File Name + + + + + Size + + + + + %1 size files cleaned. + + + + + UninstallerPage + + + System Installed Packages + + + + + Search... + + + + + Not Found Installed Packages + + + + + Uninstall Selected + + + + + System Installed Packages (%1) + + + + diff --git a/translations/stacer_es.ts b/translations/stacer_es.ts new file mode 100644 index 0000000..c79433c --- /dev/null +++ b/translations/stacer_es.ts @@ -0,0 +1,453 @@ + + + + + App + + + Dashboard + Panel de instrumentos + + + + System Cleaner + Limpiador del Sistema + + + + System Startup Apps + Aplicaciones en el inicio del sistema + + + + System Services + Servicios del Sistema + + + + Uninstaller + Paquetes instalado en el sistema + + + + Resources + Recursos + + + + Processes + Procesos + + + + Settings + Opciones + + + + DashboardPage + + + SYSTEM INFO + INFORMACIÓN DEL SISTEMA + + + + There are update currently available. + Actualmente hay actualizaciones disponibles. + + + + Download + Descargar + + + + CPU + CPU + + + + MEMORY + MEMORIA + + + + DISK + DISCO + + + + DOWNLOAD + DESCARGAR + + + + UPLOAD + ENVÍOS + + + + Hostname: %1 + Nombre de host: %1 + + + + Platform: %1 + Plataforma: %1 + + + + Distribution: %1 + Distribución: %1 + + + + Kernel Release: %1 + Versión del kernel: %1 + + + + CPU Model: %1 + Modelo de CPU: %1 + + + + CPU Speed: %1 + Velocidad de la CPU: %1 + + + + CPU Core: %1 + Núcleo de la CPU:%1 + + + + + Total: %1 + Total: %1 + + + + ProcessesPage + + + Processes + Procesos + + + + All Processes + Todos los Procesos + + + + Search... + Buscar... + + + + End Process + Proceso Final + + + + User + Usuario + + + + Resident Memory + Memoria Residente + + + + %Memory + %Memoria + + + + Virtual Memory + Memoria virtual + + + + Start Time + Hora de inicio + + + + State + Estado + + + + Group + Grupo + + + + Nice + Bonito + + + + CPU Time + + + + + Session + Sesión + + + + Seat + Asiento + + + + Process + Proceso + + + + Processes (%1) + Procesos (%1) + + + + Refresh (%1) + Refresco (%1) + + + + ResourcesPage + + + CPU History + Actividades Cpu + + + + Memory History + Actividades Mémoire + + + + Network History + Actividades Internet + + + + Download %1/s Total: %2 + Descargar %1/s Total: %2 + + + + Upload %1/s Total: %2 + Subida %1 /s Total: %2 + + + + Swap %1 (%2%) %3 + Intercambio %1 (%2%) %3 + + + + Memory %1 (%2%) %3 + Memoria %1 (%2%) %3 + + + + ServicesPage + + + System Services + Servicios del Sistema + + + + Startup at boot ? + Inicio en el arranque ? + + + + Running Now ? + Corriendo Ahora ? + + + + Not Found System Service + Servicio del Sistema No Encontrado + + + + System Services (%1) + Servicios del Sistema (%1) + + + + SettingsPage + + + Language + Idioma + + + + Theme + Tema + + + + StartupApp + + + Delete + Borrar + + + + Edit + Editar + + + + StartupAppEdit + + + Startup App + Aplicación de Inicio + + + + Save + Salvar + + + + Fields cannot be left blank. + Los campos no se pueden dejar en blanco. + + + + App Comment + Comentario de la Aplicación + + + + App Name + Nombre de la Aplicación + + + + Command + Mando + + + + Application + Aplicación + + + + StartupAppsPage + + + Not Found Startup Apps + Aplicaciones de Inicio No Encontradas + + + + System Startup Applications + Aplicaciones de Inicio del Sistema + + + + Add Startup App + Añadir Aplicación de Inicio + + + + System Startup Applications (%1) + Aplicaciones de Inicio del Sistema (%1) + + + + SystemCleanerPage + + + Crash Reports + Informes de fallos + + + + Application Logs + Registros de Aplicaciones + + + + Application Caches + Aplicaciones en Caché + + + + Trash + Basura + + + + Package Caches + Paquete de Cachés + + + + Back + Espalda + + + + File Name + Nombre del Archivo + + + + Size + Tamaño + + + + %1 size files cleaned. + %1 archivos de tamaño limpiado. + + + + UninstallerPage + + + System Installed Packages + Paquetes Instalados del Sistema + + + + Search... + Buscar... + + + + Not Found Installed Packages + Paquetes Instalados no Encontrados + + + + Uninstall Selected + Desinstalar Seleccionados + + + + System Installed Packages (%1) + Paquetes Instalados del Sistema (%1) + + + diff --git a/translations/stacer_fr.ts b/translations/stacer_fr.ts new file mode 100644 index 0000000..4d91c14 --- /dev/null +++ b/translations/stacer_fr.ts @@ -0,0 +1,453 @@ + + + + + App + + + Dashboard + Tableau de bord + + + + System Cleaner + Nettoyeur Système + + + + System Startup Apps + Applications au Démarrage + + + + System Services + Services Système + + + + Uninstaller + Paquets Installés sur le Système + + + + Resources + Ressources + + + + Processes + Processus + + + + Settings + Options + + + + DashboardPage + + + SYSTEM INFO + INFORMATIONS SYSTÈME + + + + There are update currently available. + Il existe actuellement des mises à jour disponibles. + + + + Download + Télécharger + + + + CPU + CPU + + + + MEMORY + MÉMOIRE + + + + DISK + DISQUE + + + + DOWNLOAD + TÉLÉCHARGER + + + + UPLOAD + TÉLÉVERSEMENT + + + + Hostname: %1 + Nom d’Hôte: %1 + + + + Platform: %1 + Plateforme: %1 + + + + Distribution: %1 + Distribution: %1 + + + + Kernel Release: %1 + Version du Noyau: %1 + + + + CPU Model: %1 + Modèle du CPU: %1 + + + + CPU Speed: %1 + Vitesse du CPU: %1 + + + + CPU Core: %1 + CPU Coeur: %1 + + + + + Total: %1 + Total: %1 + + + + ProcessesPage + + + Processes + Processus + + + + All Processes + Tous les Processus + + + + Search... + Chercher... + + + + End Process + Processus Final + + + + User + Utilisateur + + + + Resident Memory + Mémoire Résidante + + + + %Memory + %Mémoire + + + + Virtual Memory + Mémoire Virtuelle + + + + Start Time + Heure de Début + + + + State + Etat + + + + Group + Groupe + + + + Nice + Agréable + + + + CPU Time + Temps CPU + + + + Session + Session + + + + Seat + Siège + + + + Process + Processus + + + + Processes (%1) + Processus (%1) + + + + Refresh (%1) + Rafraîchir (%1) + + + + ResourcesPage + + + CPU History + Historique CPU + + + + Memory History + Histoire de la Mémoire + + + + Network History + Historique du Réseau + + + + Download %1/s Total: %2 + Télécharger %1 /s Total :%2 + + + + Upload %1/s Total: %2 + Télécharger %1/s Total: %2 + + + + Swap %1 (%2%) %3 + Échanger %1 (%2%) %3 + + + + Memory %1 (%2%) %3 + Mémoire %1 (%2%) %3 + + + + ServicesPage + + + System Services + Services Système + + + + Startup at boot ? + Démarrage au démarrage ? + + + + Running Now ? + Vous Exécutez Maintenant? + + + + Not Found System Service + Service Système non Trouvé + + + + System Services (%1) + Services Système (%1) + + + + SettingsPage + + + Language + La langue + + + + Theme + Thème + + + + StartupApp + + + Delete + Effacer + + + + Edit + Modifier + + + + StartupAppEdit + + + Startup App + Application de Démarrage + + + + Save + Sauver + + + + Fields cannot be left blank. + Les champs ne peuvent pas être laissés en blanc. + + + + App Comment + Commentaire de l'Application + + + + App Name + Nom de l'application + + + + Command + Commander + + + + Application + Application + + + + StartupAppsPage + + + Not Found Startup Apps + Applications de Démarrage non Trouvées + + + + System Startup Applications + Applications au Démarrage + + + + Add Startup App + Ajouter une Application de Démarrage + + + + System Startup Applications (%1) + Applications au Démarrage (%1) + + + + SystemCleanerPage + + + Crash Reports + Rapport D’erreurs + + + + Application Logs + Journal des Applications + + + + Application Caches + Cache des Applications + + + + Trash + Poubelle + + + + Package Caches + Emballage Caches + + + + Back + Arrière + + + + File Name + Nom de fichier + + + + Size + Taille + + + + %1 size files cleaned. + %1 fichiers de taille nettoyés. + + + + UninstallerPage + + + System Installed Packages + Forfaits Installés par Système + + + + Search... + Chercher... + + + + Not Found Installed Packages + Paquets Installés non Trouvés + + + + Uninstall Selected + Désinstallation Sélectionnée + + + + System Installed Packages (%1) + Forfaits Installés par Système (%1) + + + diff --git a/translations/stacer_hi.ts b/translations/stacer_hi.ts new file mode 100644 index 0000000..f8a691b --- /dev/null +++ b/translations/stacer_hi.ts @@ -0,0 +1,453 @@ + + + + + App + + + Dashboard + डैशबोर्ड + + + + System Cleaner + सिस्टम क्लीनर + + + + System Startup Apps + स्टार्टअप ऐप + + + + System Services + सेवाएं + + + + Uninstaller + अनइंस्टॉलर + + + + Resources + साधन + + + + Processes + प्रक्रियाओं + + + + Settings + सेटिंग्स + + + + DashboardPage + + + SYSTEM INFO + व्यवस्था की सूचना + + + + There are update currently available. + वर्तमान में उपलब्ध अपडेट उपलब्ध हैं. + + + + Download + डाउनलोड + + + + CPU + CPU + + + + MEMORY + याद + + + + DISK + डिस्क + + + + DOWNLOAD + डाउनलोड + + + + UPLOAD + अपलोड + + + + Hostname: %1 + होस्ट का नाम: %1 + + + + Platform: %1 + मंच: %1 + + + + Distribution: %1 + वितरण: %1 + + + + Kernel Release: %1 + कर्नेल रिलीज: %1 + + + + CPU Model: %1 + CPU आदर्श: %1 + + + + CPU Speed: %1 + CPU गति: %1 + + + + CPU Core: %1 + CPU कोर: %1 + + + + + Total: %1 + कुल: %1 + + + + ProcessesPage + + + Processes + प्रक्रियाओं + + + + All Processes + सभी प्रक्रियाएं + + + + Search... + खोज... + + + + End Process + प्रक्रिया समाप्त + + + + Resident Memory + निवासी मेमोरी + + + + %Memory + %याद + + + + Virtual Memory + अप्रत्यक्ष स्मृति + + + + User + उपयोगकर्ता + + + + Start Time + समय शुरू + + + + State + राज्य + + + + Group + समूह + + + + Nice + अच्छा + + + + CPU Time + CPU पहर + + + + Session + अधिवेशन + + + + Seat + सीट + + + + Process + प्रक्रिया + + + + Processes (%1) + प्रक्रियाओं (%1) + + + + Refresh (%1) + ताज़ा करना (%1) + + + + ResourcesPage + + + CPU History + CPU इतिहास + + + + Memory History + मेमोरी इतिहास + + + + Network History + नेटवर्क इतिहास + + + + Download %1/s Total: %2 + डाउनलोड %1/s कुल: %2 + + + + Upload %1/s Total: %2 + अपलोड %1/s कुल: %2 + + + + Swap %1 (%2%) %3 + विनिमय %1 (%2%) %3 + + + + Memory %1 (%2%) %3 + याद %1 (%2%) %3 + + + + ServicesPage + + + System Services + सिस्टम सेवाएं + + + + Startup at boot ? + बूट पर स्टार्टअप? + + + + Running Now ? + अब चल रहा है? + + + + Not Found System Service + सिस्टम सर्विस नहीं मिला + + + + System Services (%1) + सिस्टम सेवाएं (%1) + + + + SettingsPage + + + Language + भाषा + + + + Theme + विषय + + + + StartupApp + + + Delete + हटाना + + + + Edit + संपादित करें + + + + StartupAppEdit + + + Startup App + स्टार्टअप ऐप + + + + Save + बचाना + + + + Fields cannot be left blank. + फ़ील्ड को रिक्त नहीं छोड़ा जा सकता. + + + + App Comment + ऐप टिप्पणी + + + + App Name + एप्लिकेशन का नाम + + + + Command + आदेश + + + + Application + आवेदन + + + + StartupAppsPage + + + Add Startup App + स्टार्टअप ऐप जोड़ें + + + + System Startup Applications + सिस्टम स्टार्टअप एप्लीकेशन + + + + Not Found Startup Apps + स्टार्टअप ऐप्स नहीं मिला + + + + System Startup Applications (%1) + सिस्टम स्टार्टअप एप्लीकेशन (%1) + + + + SystemCleanerPage + + + Crash Reports + क्रैश रिपोर्ट + + + + Application Logs + एप्लिकेशन लॉग + + + + Application Caches + आवेदन कैश + + + + Trash + कचरा + + + + Package Caches + पैकेज कैश + + + + Back + वापस + + + + File Name + फ़ाइल का नाम + + + + Size + आकार + + + + %1 size files cleaned. + %1 आकार की फ़ाइलों को साफ किया गया. + + + + UninstallerPage + + + Uninstall Selected + स्थापना रद्द करें चयनित + + + + Not Found Installed Packages + स्थापित नहीं मिला संकुल + + + + System Installed Packages + सिस्टम स्थापित संकुल + + + + Search... + खोज... + + + + System Installed Packages (%1) + सिस्टम स्थापित संकुल (%1) + + + diff --git a/translations/stacer_pt.ts b/translations/stacer_pt.ts new file mode 100644 index 0000000..3b241fe --- /dev/null +++ b/translations/stacer_pt.ts @@ -0,0 +1,453 @@ + + + + + App + + + Dashboard + Visão Geral + + + + System Cleaner + Limpador do Sistema + + + + System Startup Apps + Aplicativos de Inicialização + + + + System Services + Serviços + + + + Uninstaller + Desinstalador + + + + Resources + Recursos + + + + Processes + Processos + + + + Settings + Configurações + + + + DashboardPage + + + SYSTEM INFO + INFORMAÇÃO DO SISTEMA + + + + There are update currently available. + Há atualizações disponíveis. + + + + Download + Download + + + + CPU + CPU + + + + MEMORY + MEMÓRIA + + + + DISK + DISCO + + + + DOWNLOAD + DOWNLOAD + + + + UPLOAD + UPLOAD + + + + Hostname: %1 + Nome de usuário: %1 + + + + Platform: %1 + Plataforma: %1 + + + + Distribution: %1 + Distribuição: %1 + + + + Kernel Release: %1 + Lançamento do Kernel: %1 + + + + CPU Model: %1 + Modelo do CPU: %1 + + + + CPU Speed: %1 + Velocidade do CPU: %1 + + + + CPU Core: %1 + Núcleos do CPU: %1 + + + + + Total: %1 + Total: %1 + + + + ProcessesPage + + + Processes + Processos + + + + All Processes + Todos os Processos + + + + Search... + Pesquisa... + + + + End Process + Processo Final + + + + User + Usuário + + + + Resident Memory + Memória Residente + + + + %Memory + %Memória + + + + Virtual Memory + Memória Virtual + + + + Start Time + Hora de Início + + + + State + Estado + + + + Group + Grupo + + + + Nice + Agradável + + + + CPU Time + CPU Tempo + + + + Session + Sessão + + + + Seat + Assento + + + + Process + Processo + + + + Processes (%1) + Processos (%1) + + + + Refresh (%1) + Atualizar (%1) + + + + ResourcesPage + + + CPU History + História da CPU + + + + Memory History + História da Memória + + + + Network History + História da Rede + + + + Download %1/s Total: %2 + Download %1/s Total: %2 + + + + Upload %1/s Total: %2 + Upload %1/s Total: %2 + + + + Swap %1 (%2%) %3 + Troca %1 (%2%) %3 + + + + Memory %1 (%2%) %3 + Memória %1 (%2%) %3 + + + + ServicesPage + + + System Services + Serviços de Sistema + + + + Startup at boot ? + Startup no arranque? + + + + Running Now ? + Correndo Agora? + + + + Not Found System Service + Serviço do Sistema Não Encontrado + + + + System Services (%1) + Serviços de Sistema (%1) + + + + SettingsPage + + + Language + Linguagem + + + + Theme + Tema + + + + StartupApp + + + Delete + Excluir + + + + Edit + Editar + + + + StartupAppEdit + + + Startup App + Aplicação de Inicialização + + + + Save + Salve + + + + Fields cannot be left blank. + Os campos não podem ser deixados em branco. + + + + App Comment + Comentário do Aplicativo + + + + App Name + Nome do Aplicativo + + + + Command + Comando + + + + Application + Aplicação + + + + StartupAppsPage + + + Not Found Startup Apps + Não Foram Encontrados Aplicativos de Icialização + + + + System Startup Applications + Aplicações de Inicialização do Sistema + + + + Add Startup App + Adicionar Aplicativo de Inicialização + + + + System Startup Applications (%1) + Aplicações de Inicialização do Sistema (%1) + + + + SystemCleanerPage + + + Crash Reports + Crash Reports + + + + Application Logs + Logs de Aplicativos + + + + Application Caches + Caches de Aplicação + + + + Trash + Lixo + + + + Package Caches + Pacote Caches + + + + Back + Costas + + + + File Name + Nome do Arquivo + + + + Size + Tamanho + + + + %1 size files cleaned. + %1 arquivos de tamanho limpos. + + + + UninstallerPage + + + System Installed Packages + Pacotes Instalados no Sistema + + + + Search... + Pesquisa... + + + + Not Found Installed Packages + Pacotes Instalados Não Encontrados + + + + Uninstall Selected + Desinstalar Selecionado + + + + System Installed Packages (%1) + Pacotes Instalados no Sistema (%1) + + + diff --git a/translations/stacer_sv.ts b/translations/stacer_sv.ts new file mode 100644 index 0000000..70b38c9 --- /dev/null +++ b/translations/stacer_sv.ts @@ -0,0 +1,453 @@ + + + + + App + + + Dashboard + Instrumentbräda + + + + System Cleaner + Systemrensare + + + + System Startup Apps + Uppstart Appar + + + + System Services + Tjänster + + + + Uninstaller + Avinstallerare + + + + Resources + Resurser + + + + Processes + Processer + + + + Settings + Inställningar + + + + DashboardPage + + + SYSTEM INFO + SYSTEM INFO + + + + There are update currently available. + Det finns förnärvarande tillgängliga uppdateringar. + + + + Download + Ladda Ner + + + + CPU + CPU + + + + MEMORY + MINNE + + + + DISK + DISK + + + + DOWNLOAD + LADDA UPP + + + + UPLOAD + LADDA UPP + + + + Hostname: %1 + Värdnamn: %1 + + + + Platform: %1 + Plattform: %1 + + + + Distribution: %1 + Distribution: %1 + + + + Kernel Release: %1 + Kernelutgåva: %1 + + + + CPU Model: %1 + CPU-modell: %1 + + + + CPU Speed: %1 + CPU-hastighet: %1 + + + + CPU Core: %1 + CPU-kärnor: %1 + + + + + Total: %1 + Total: %1 + + + + ProcessesPage + + + Processes + Processer + + + + All Processes + Alla Processer + + + + Search... + Sök... + + + + End Process + Avsluta Process + + + + Resident Memory + Bosatt Minne + + + + %Memory + %Minne + + + + Virtual Memory + Virtuell Minne + + + + User + Användare + + + + Start Time + Starttid + + + + State + Stat + + + + Group + Grupp + + + + Nice + Trevlig + + + + CPU Time + CPU Tid + + + + Session + Session + + + + Seat + Sittplats + + + + Process + Process + + + + Processes (%1) + Processer (%1) + + + + Refresh (%1) + Uppdateras (%1) + + + + ResourcesPage + + + CPU History + CPU-Historik + + + + Memory History + Minneshistorik + + + + Network History + Nätverkshistorik + + + + Download %1/s Total: %2 + Nerladdning %1/s Total: %2 + + + + Upload %1/s Total: %2 + Ladda Upp %1/s Total: %2 + + + + Swap %1 (%2%) %3 + Byte %1 (%2%) %3 + + + + Memory %1 (%2%) %3 + Minne %1 (%2%) %3 + + + + ServicesPage + + + System Services + Systemtjänster + + + + Startup at boot ? + Uppstart vid start? + + + + Running Now ? + Kör nu? + + + + Not Found System Service + Inte Hittad Systemtjänst + + + + System Services (%1) + Systemtjänster (%1) + + + + SettingsPage + + + Language + Språk + + + + Theme + Tema + + + + StartupApp + + + Delete + Radera + + + + Edit + Redigera + + + + StartupAppEdit + + + Startup App + Startprogram + + + + Save + Spara + + + + Fields cannot be left blank. + Fält kan inte lämnas tomt. + + + + App Comment + Appkommentar + + + + App Name + Appnamn + + + + Command + Kommando + + + + Application + Ansökan + + + + StartupAppsPage + + + Add Startup App + Lägg Till Startprogrammet + + + + System Startup Applications + Systemstart Program + + + + Not Found Startup Apps + Ej Hittade Startprogram + + + + System Startup Applications (%1) + Systemstart Program (%1) + + + + SystemCleanerPage + + + Crash Reports + Kraschrapporter + + + + Application Logs + Applikations Loggar + + + + Application Caches + Application Caches + + + + Trash + Skräp + + + + Package Caches + Paket Caches + + + + Back + Tillbaka + + + + File Name + Filnamn + + + + Size + Storlek + + + + %1 size files cleaned. + %1 storlek filer rengöras. + + + + UninstallerPage + + + Uninstall Selected + Avinstallera Vald + + + + Not Found Installed Packages + Ej Hittade Installerade Paket + + + + System Installed Packages + System Installerade Paket + + + + Search... + Sök... + + + + System Installed Packages (%1) + System Installerade Paket (%1) + + + diff --git a/translations/stacer_tr.ts b/translations/stacer_tr.ts new file mode 100644 index 0000000..ca12883 --- /dev/null +++ b/translations/stacer_tr.ts @@ -0,0 +1,453 @@ + + + + + App + + + Dashboard + Genel + + + + System Cleaner + Sistem Temizleyici + + + + System Startup Apps + Başlangıç Uygulamaları + + + + System Services + Servisler + + + + Uninstaller + Kaldırıcı + + + + Resources + Kaynaklar + + + + Processes + İşlemler + + + + Settings + Ayarlar + + + + DashboardPage + + + SYSTEM INFO + SİSTEM BİLGİLERİ + + + + There are update currently available. + Şu anda mevcut güncelleme var. + + + + Download + İndir + + + + CPU + CPU + + + + MEMORY + BELLEK + + + + DISK + DİSK + + + + DOWNLOAD + İNDİRME + + + + UPLOAD + YÜKLEME + + + + Hostname: %1 + Bilgisayar Adı: %1 + + + + Platform: %1 + Platform: %1 + + + + Distribution: %1 + Dağıtım: %1 + + + + Kernel Release: %1 + Çekirdek Sürümü: %1 + + + + CPU Model: %1 + CPU Modeli: %1 + + + + CPU Speed: %1 + CPU Hızı: %1 + + + + CPU Core: %1 + CPU Çekirdek: %1 + + + + + Total: %1 + Toplam: %1 + + + + ProcessesPage + + + Processes + İşlemler + + + + All Processes + Bütün İşlemler + + + + Search... + Arama... + + + + End Process + İşlemi Sonlandır + + + + User + Kullanıcı + + + + Resident Memory + Yerleşmiş Bellek + + + + %Memory + %Bellek + + + + Virtual Memory + Sanal Bellek + + + + Start Time + Başlangıç Zamanı + + + + State + Durum + + + + Group + Grup + + + + Nice + Güzel + + + + CPU Time + CPU Zamanı + + + + Session + Oturum + + + + Seat + Yer + + + + Process + İşlem + + + + Processes (%1) + İşlemler (%1) + + + + Refresh (%1) + Yenile (%1) + + + + ResourcesPage + + + CPU History + CPU Geçmişi + + + + Memory History + Bellek Geçmişi + + + + Network History + Ağ Geçmişi + + + + Download %1/s Total: %2 + İndirme %1/s Toplam: %2 + + + + Upload %1/s Total: %2 + Yükleme %1/s Toplam: %2 + + + + Swap %1 (%2%) %3 + Takas %1 (%2%) %3 + + + + Memory %1 (%2%) %3 + Bellek %1 (%2%) %3 + + + + ServicesPage + + + System Services + Sistem Servisleri + + + + Startup at boot ? + Açılışta başlatma ? + + + + Running Now ? + Şimdi Çalışıyor ? + + + + Not Found System Service + Sistem Servisi Bulunamadı + + + + System Services (%1) + Sistem Servisleri (%1) + + + + SettingsPage + + + Language + Dil + + + + Theme + Tema + + + + StartupApp + + + Delete + Sil + + + + Edit + Düzenle + + + + StartupAppEdit + + + Startup App + Başlangıç Uygulaması + + + + Save + Kaydet + + + + Fields cannot be left blank. + Alanları boş bırakmayın. + + + + App Comment + Uygulama Yorum + + + + App Name + Uygulama Adı + + + + Command + Komut + + + + Application + Uygulama + + + + StartupAppsPage + + + Not Found Startup Apps + Başlangıç Uygulaması Bulunamadı + + + + System Startup Applications + Sistem Başlangıç Uygulamaları + + + + Add Startup App + Başlangıç Uygulaması Ekle + + + + System Startup Applications (%1) + Sistem Başlangıç Uygulamaları (%1) + + + + SystemCleanerPage + + + Crash Reports + Kilitlenme Raporları + + + + Application Logs + Uygulama Günlükleri + + + + Application Caches + Uygulama Önbellekleri + + + + Trash + Çöp + + + + Package Caches + Paket Önbellekleri + + + + Back + Geri + + + + File Name + Dosya Adı + + + + Size + Boyut + + + + %1 size files cleaned. + %1 boyutunda dosya temizlendi. + + + + UninstallerPage + + + System Installed Packages + Sistemde Yüklü Uygulamalar + + + + Search... + Arama... + + + + Not Found Installed Packages + Yüklü Uygulama Bulunamadı + + + + Uninstall Selected + Seçilenleri Kaldır + + + + System Installed Packages (%1) + Sistemde Yüklü Uygulamalar (%1) + + +