~aleteoryx/muditaos

c7ce843b7bc53e955a0215d74d33bf3db44eefca — lblach 5 years ago 4de9970
[EGD-5936] Add Edit Quotes Window

This window is needed by the user to assist the user in editing quotes
or/and selecting the quotes categories to display.
M image/assets/lang/Deutsch.json => image/assets/lang/Deutsch.json +4 -0
@@ 121,6 121,10 @@
  "app_settings_language_german": "German",
  "app_settings_language_spanish": "Spanish",
  "app_settings_date_time": "Date and Time",
  "app_settings_display_wallpaper_edit_quotes": "Edit quotes",
  "app_settings_display_wallpaper_quotes_our_favourites": "Our favourites",
  "app_settings_display_wallpaper_quotes_custom": "Custom",
  "app_settings_display_wallpaper_quotes_categories": "Categories",
  "app_messages_title_main": "Messages",
  "app_messages_new_message": "New Message",
  "app_phonebook_title_main": "Contacts",

M image/assets/lang/English.json => image/assets/lang/English.json +4 -0
@@ 355,6 355,10 @@
  "app_settings_display_wallpaper_quotes_delete_confirmation": "Delete quote?",
  "app_settings_display_wallpaper_quotes_note": "Note",
  "app_settings_display_wallpaper_quotes_author": "Author",
  "app_settings_display_wallpaper_quotes_quote": "Quote text",
  "app_settings_display_wallpaper_quotes_our_favourites": "Our favourites",
  "app_settings_display_wallpaper_quotes_custom": "Custom",
  "app_settings_display_wallpaper_quotes_categories": "Categories",
  "app_settings_system": "System",
  "app_settings_apps_tools": "Apps and tools",
  "app_settings_apps_messages": "Messages",

M image/assets/lang/Espanol.json => image/assets/lang/Espanol.json +4 -0
@@ 124,6 124,10 @@
  "app_settings_language_spanish": "Español",
  "app_settings_date_time": "Date and Time",
  "app_settings_cellular_passthrough": "Cellular <-> USB",
  "app_settings_display_wallpaper_edit_quotes": "Edit quotes",
  "app_settings_display_wallpaper_quotes_our_favourites": "Our favourites",
  "app_settings_display_wallpaper_quotes_custom": "Custom",
  "app_settings_display_wallpaper_quotes_categories": "Categories",
  "app_phonebook_title_main": "Contactos",
  "app_phonebook_call": "CALL",
  "app_phonebook_save": "SAVE",

M image/assets/lang/Francais.json => image/assets/lang/Francais.json +4 -0
@@ 121,6 121,10 @@
  "app_settings_language_german": "German",
  "app_settings_language_spanish": "Spanish",
  "app_settings_date_time": "Date and Time",
  "app_settings_display_wallpaper_edit_quotes": "Edit quotes",
  "app_settings_display_wallpaper_quotes_our_favourites": "Our favourites",
  "app_settings_display_wallpaper_quotes_custom": "Custom",
  "app_settings_display_wallpaper_quotes_categories": "Categories",
  "app_messages_title_main": "Messages",
  "app_messages_new_message": "New Message",
  "app_phonebook_title_main": "Contacts",

M image/assets/lang/Polski.json => image/assets/lang/Polski.json +4 -0
@@ 123,6 123,10 @@
  "app_settings_language_polish": "Polski",
  "app_settings_language_german": "Niemiecki",
  "app_settings_language_spanish": "Hiszpański",
  "app_settings_display_wallpaper_edit_quotes": "Edycja cytatów",
  "app_settings_display_wallpaper_quotes_our_favourites": "Nasze ulubione",
  "app_settings_display_wallpaper_quotes_custom": "Użytkownika",
  "app_settings_display_wallpaper_quotes_categories": "Kategorie",
  "app_messages_title_main": "Wiadomości",
  "app_messages_new_message": "Nowa Wiadomość",
  "app_phonebook_title_main": "Kontakty",

M module-apps/application-settings-new/ApplicationSettings.cpp => module-apps/application-settings-new/ApplicationSettings.cpp +4 -0
@@ 25,6 25,7 @@
#include "windows/WallpaperWindow.hpp"
#include "windows/QuotesMainWindow.hpp"
#include "windows/QuotesAddWindow.hpp"
#include "windows/EditQuotesWindow.hpp"
#include "windows/SecurityMainWindow.hpp"
#include "windows/QuotesOptionsWindow.hpp"
#include "windows/ChangePasscodeWindow.hpp"


@@ 458,6 459,9 @@ namespace app
        windowsFactory.attach(gui::window::name::options_quote, [](Application *app, const std::string &name) {
            return std::make_unique<gui::QuotesOptionsWindow>(app, std::move(settings::getQuotesModel(app)));
        });
        windowsFactory.attach(gui::window::name::edit_quotes, [](Application *app, const std::string &name) {
            return std::make_unique<gui::EditQuotesWindow>(app);
        });

        attachPopups({gui::popup::ID::Volume});
    }

M module-apps/application-settings-new/ApplicationSettings.hpp => module-apps/application-settings-new/ApplicationSettings.hpp +1 -0
@@ 40,6 40,7 @@ namespace gui::window::name
    inline constexpr auto quotes               = "Quotes";
    inline constexpr auto new_quote            = "NewQuote";
    inline constexpr auto edit_quote           = "EditQuote";
    inline constexpr auto edit_quotes          = "EditQuotes";
    inline constexpr auto options_quote        = "OptionsQuote";
    inline constexpr auto delete_quote         = "DeleteQuote";
    inline constexpr auto quotes_dialog_yes_no = "DialogYesNo";

M module-apps/application-settings-new/CMakeLists.txt => module-apps/application-settings-new/CMakeLists.txt +2 -0
@@ 62,6 62,7 @@ target_sources( ${PROJECT_NAME}
        windows/ChangeTimeZone.cpp
        windows/ChangeDateAndTimeWindow.cpp
        windows/BluetoothCheckPasskeyWindow.cpp
        windows/EditQuotesWindow.cpp

    PUBLIC
        ApplicationSettings.hpp


@@ 86,6 87,7 @@ target_sources( ${PROJECT_NAME}
        windows/LanguagesWindow.hpp
        windows/DateAndTimeMainWindow.hpp
        windows/ChangeDateAndTimeWindow.hpp
        windows/EditQuotesWindow.hpp
)

add_dependencies(${PROJECT_NAME} version)

A module-apps/application-settings-new/windows/EditQuotesWindow.cpp => module-apps/application-settings-new/windows/EditQuotesWindow.cpp +94 -0
@@ 0,0 1,94 @@
// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md

#include "EditQuotesWindow.hpp"

#include <module-apps/application-settings-new/ApplicationSettings.hpp>
#include <module-apps/options/type/OptionSetting.hpp>

#include <i18n/i18n.hpp>

namespace gui
{
    EditQuotesWindow::EditQuotesWindow(app::Application *app) : BaseSettingsWindow(app, window::name::edit_quotes)
    {
        setTitle(utils::localize.get("app_settings_display_wallpaper_edit_quotes"));
    }

    auto EditQuotesWindow::buildOptionsList() -> std::list<gui::Option>
    {
        std::list<gui::Option> optionsList;

        auto addCheckOption = [&](UTF8 text, bool &switcher) {
            optionsList.emplace_back(std::make_unique<gui::option::OptionSettings>(
                text,
                [&](gui::Item &item) mutable {
                    switchHandler(switcher);
                    return true;
                },
                [=](gui::Item &item) {
                    if (item.focus) {
                        this->setBottomBarText(utils::translateI18(style::strings::common::Switch),
                                               BottomBar::Side::CENTER);
                    }
                    return true;
                },
                this,
                switcher ? gui::option::SettingRightItem::Checked : gui::option::SettingRightItem::Disabled));
        };

        addCheckOption(utils::translateI18("app_settings_display_wallpaper_quotes_our_favourites"),
                       isOurFavouritesSwitchOn);

        if (isOurFavouritesSwitchOn) {
            optionsList.emplace_back(std::make_unique<gui::option::OptionSettings>(
                utils::translateI18("app_settings_display_wallpaper_quotes_categories"),
                [=](gui::Item &item) {
                    application->switchWindow(gui::window::name::quotes, nullptr);
                    return true;
                },
                [=](gui::Item &item) {
                    if (item.focus) {
                        this->setBottomBarText(utils::translateI18(style::strings::common::select),
                                               BottomBar::Side::CENTER);
                    }
                    return true;
                },
                this,
                gui::option::SettingRightItem::ArrowWhite));
        }

        addCheckOption(utils::translateI18("app_settings_display_wallpaper_quotes_custom"), isCustomSwitchOn);

        if (isCustomSwitchOn) {
            optionsList.emplace_back(std::make_unique<gui::option::OptionSettings>(
                utils::translateI18("app_settings_display_wallpaper_edit_quotes"),
                [=](gui::Item &item) {
                    application->switchWindow(gui::window::name::quotes, nullptr);
                    return true;
                },
                [=](gui::Item &item) {
                    if (item.focus) {
                        this->setBottomBarText(utils::translateI18(style::strings::common::select),
                                               BottomBar::Side::CENTER);
                    }
                    return true;
                },
                this,
                gui::option::SettingRightItem::ArrowWhite));
        }

        return optionsList;
    }

    void EditQuotesWindow::switchHandler(bool &optionSwitch)
    {
        isOurFavouritesSwitchOn = false;
        isCustomSwitchOn        = false;

        optionSwitch = !optionSwitch;

        rebuildOptionList();
    }

} // namespace gui

A module-apps/application-settings-new/windows/EditQuotesWindow.hpp => module-apps/application-settings-new/windows/EditQuotesWindow.hpp +26 -0
@@ 0,0 1,26 @@
// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md

#pragma once

#include "BaseSettingsWindow.hpp"

namespace gui
{
    class CheckBoxWithLabel;

    class EditQuotesWindow : public BaseSettingsWindow
    {
      public:
        EditQuotesWindow(app::Application *app);

      private:
        void switchHandler(bool &optionSwitch);
        auto buildOptionsList() -> std::list<Option> override;

        bool isOurFavouritesSwitchOn = false;
        bool isCustomSwitchOn        = false;

        Item *quotes;
    };
} // namespace gui

M module-apps/application-settings-new/windows/WallpaperWindow.cpp => module-apps/application-settings-new/windows/WallpaperWindow.cpp +2 -2
@@ 1,4 1,4 @@
// Copyright (c) 2017-2020, Mudita Sp. z.o.o. All rights reserved.
// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md

#include "WallpaperWindow.hpp"


@@ 45,7 45,7 @@ namespace gui
            optionsList.emplace_back(std::make_unique<gui::option::OptionSettings>(
                utils::translateI18("app_settings_display_wallpaper_edit_quotes"),
                [=](gui::Item &item) {
                    application->switchWindow(gui::window::name::quotes, nullptr);
                    application->switchWindow(gui::window::name::edit_quotes, nullptr);
                    return true;
                },
                [=](gui::Item &item) {