File indexing completed on 2025-01-26 04:02:01
0001 /* 0002 * SPDX-FileCopyrightText: 2019-2023 Mattia Basaglia <dev@dragon.best> 0003 * 0004 * SPDX-License-Identifier: GPL-3.0-or-later 0005 */ 0006 0007 #pragma once 0008 0009 #include <memory> 0010 0011 #include <QtGlobal> 0012 #include <QIcon> 0013 #include <QMimeData> 0014 0015 #include "app/application.hpp" 0016 0017 0018 #ifdef MOBILE_UI 0019 0020 namespace glaxnimate::gui { 0021 0022 class GlaxnimateApp : public app::Application 0023 { 0024 Q_OBJECT 0025 0026 public: 0027 using app::Application::Application; 0028 0029 static GlaxnimateApp* instance() 0030 { 0031 return static_cast<GlaxnimateApp *>(QCoreApplication::instance()); 0032 } 0033 #ifdef Q_OS_ANDROID 0034 QString data_file(const QString& name) const override; 0035 #endif 0036 static qreal handle_size_multiplier(); 0037 static qreal handle_distance_multiplier(); 0038 0039 void set_clipboard_data(QMimeData* data); 0040 const QMimeData* get_clipboard_data(); 0041 0042 0043 QString backup_path() const; 0044 0045 static QString temp_path(); 0046 0047 private: 0048 std::unique_ptr<QMimeData> clipboard = std::make_unique<QMimeData>(); 0049 }; 0050 0051 } // namespace glaxnimate::gui 0052 0053 #else 0054 0055 #include "app/log/listener_stderr.hpp" 0056 #include "app/log/listener_store.hpp" 0057 0058 namespace app::settings { class ShortcutSettings; } 0059 0060 namespace glaxnimate::gui { 0061 0062 class GlaxnimateApp : public app::Application 0063 { 0064 Q_OBJECT 0065 0066 public: 0067 using app::Application::Application; 0068 0069 const std::vector<app::log::LogLine>& log_lines() const 0070 { 0071 return store_logger->lines(); 0072 } 0073 0074 static GlaxnimateApp* instance() 0075 { 0076 return static_cast<GlaxnimateApp *>(QCoreApplication::instance()); 0077 } 0078 0079 QString backup_path() const; 0080 0081 app::settings::ShortcutSettings* shortcuts() const; 0082 0083 static QString temp_path(); 0084 0085 static qreal handle_size_multiplier() { return 1; } 0086 static qreal handle_distance_multiplier() { return 1; } 0087 0088 0089 void set_clipboard_data(QMimeData* data); 0090 const QMimeData* get_clipboard_data(); 0091 0092 protected: 0093 void on_initialize() override; 0094 void on_initialize_settings() override; 0095 void on_initialize_translations() override; 0096 bool event(QEvent *event) override; 0097 0098 private: 0099 app::log::ListenerStore* store_logger; 0100 app::settings::ShortcutSettings* shortcut_settings; 0101 0102 }; 0103 0104 } // namespace glaxnimate::gui 0105 #endif