From 4476ad7f9045aa4e0d0c4126030a50d118d910f1 Mon Sep 17 00:00:00 2001 From: nyne Date: Wed, 12 Jun 2024 21:30:23 +0800 Subject: [PATCH] linux support --- debian/debian.yaml | 18 +++++++++++++++ debian/gui/pixes.desktop | 10 +++++++++ debian/gui/pixes.png | Bin 0 -> 11682 bytes lib/foundation/log.dart | 8 +++++++ lib/main.dart | 7 +++++- linux/flutter/generated_plugin_registrant.cc | 16 +++++++++---- linux/flutter/generated_plugins.cmake | 4 +++- linux/my_application.cc | 2 +- macos/Flutter/GeneratedPluginRegistrant.swift | 12 ++++++++-- pubspec.lock | 21 +++++++++--------- .../flutter/generated_plugin_registrant.cc | 15 ++++++++++--- windows/flutter/generated_plugins.cmake | 5 ++++- 12 files changed, 95 insertions(+), 23 deletions(-) create mode 100644 debian/debian.yaml create mode 100644 debian/gui/pixes.desktop create mode 100644 debian/gui/pixes.png diff --git a/debian/debian.yaml b/debian/debian.yaml new file mode 100644 index 0000000..1dd2d5b --- /dev/null +++ b/debian/debian.yaml @@ -0,0 +1,18 @@ +flutter_app: + command: pixes + arch: x64 + parent: /usr/local/lib + nonInteractive: true + execFieldCodes: u + +control: + Package: pixes + Version: 1.0.6 + Architecture: amd64 + Priority: optional + Depends: + Maintainer: nyne + Description: Unofficial pixiv application + +#options: +# exec_out_dir: debian/packages \ No newline at end of file diff --git a/debian/gui/pixes.desktop b/debian/gui/pixes.desktop new file mode 100644 index 0000000..bd0f2bc --- /dev/null +++ b/debian/gui/pixes.desktop @@ -0,0 +1,10 @@ +[Desktop Entry] +Version=1.0.6 +Name=Pixes +GenericName=Pixes +Comment=Unofficial pixiv application +Terminal=false +Type=Application +Categories=Utility +Keywords=Flutter;share;images; +MimeType=x-scheme-handler/pixiv; \ No newline at end of file diff --git a/debian/gui/pixes.png b/debian/gui/pixes.png new file mode 100644 index 0000000000000000000000000000000000000000..13de727190c0e6502f62d026df3bb065996cca6d GIT binary patch literal 11682 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

|7yMLPTd!iEPRuU~w;R0-t7ZBL< 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 literal 0 HcmV?d00001 diff --git a/lib/foundation/log.dart b/lib/foundation/log.dart index c627552..d8d580a 100644 --- a/lib/foundation/log.dart +++ b/lib/foundation/log.dart @@ -1,3 +1,5 @@ +import 'dart:io'; + import 'package:flutter/foundation.dart'; import 'package:pixes/utils/ext.dart'; @@ -26,6 +28,9 @@ class Log { static bool ignoreLimitation = false; + /// only for debug + static const String? logFile = null; + static void printWarning(String text) { print('\x1B[33m$text\x1B[0m'); } @@ -57,6 +62,9 @@ class Log { } _logs.add(newLog); + if(logFile != null) { + File(logFile!).writeAsString(newLog.toString(), mode: FileMode.append); + } if (_logs.length > maxLogNumber) { var res = _logs.remove( _logs.firstWhereOrNull((element) => element.level == LogLevel.info)); diff --git a/lib/main.dart b/lib/main.dart index 76f1d89..afb50b9 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -36,13 +36,17 @@ void main() async { await flutter_acrylic.Window.initialize(); if (App.isWindows) { await flutter_acrylic.Window.hideWindowControls(); - } + } await WindowManager.instance.ensureInitialized(); windowManager.waitUntilReadyToShow().then((_) async { await windowManager.setTitleBarStyle( TitleBarStyle.hidden, windowButtonVisibility: false, ); + if(App.isLinux) { + // https://github.com/leanflutter/window_manager/issues/460 + return; + } await windowManager.setMinimumSize(const Size(500, 600)); var placement = await WindowPlacement.loadFromFile(); await placement.applyToWindow(); @@ -51,6 +55,7 @@ void main() async { }); } Loop.start(); + Log.info("APP", "Application started"); runApp(const MyApp()); } diff --git a/linux/flutter/generated_plugin_registrant.cc b/linux/flutter/generated_plugin_registrant.cc index e6d5fc3..43c4347 100644 --- a/linux/flutter/generated_plugin_registrant.cc +++ b/linux/flutter/generated_plugin_registrant.cc @@ -6,14 +6,25 @@ #include "generated_plugin_registrant.h" +#include +#include +#include #include #include #include -#include #include #include void fl_register_plugins(FlPluginRegistry* registry) { + g_autoptr(FlPluginRegistrar) dynamic_color_registrar = + fl_plugin_registry_get_registrar_for_plugin(registry, "DynamicColorPlugin"); + dynamic_color_plugin_register_with_registrar(dynamic_color_registrar); + g_autoptr(FlPluginRegistrar) file_selector_linux_registrar = + fl_plugin_registry_get_registrar_for_plugin(registry, "FileSelectorPlugin"); + file_selector_plugin_register_with_registrar(file_selector_linux_registrar); + g_autoptr(FlPluginRegistrar) flutter_acrylic_registrar = + fl_plugin_registry_get_registrar_for_plugin(registry, "FlutterAcrylicPlugin"); + flutter_acrylic_plugin_register_with_registrar(flutter_acrylic_registrar); g_autoptr(FlPluginRegistrar) gtk_registrar = fl_plugin_registry_get_registrar_for_plugin(registry, "GtkPlugin"); gtk_plugin_register_with_registrar(gtk_registrar); @@ -23,9 +34,6 @@ void fl_register_plugins(FlPluginRegistry* registry) { g_autoptr(FlPluginRegistrar) sqlite3_flutter_libs_registrar = fl_plugin_registry_get_registrar_for_plugin(registry, "Sqlite3FlutterLibsPlugin"); sqlite3_flutter_libs_plugin_register_with_registrar(sqlite3_flutter_libs_registrar); - g_autoptr(FlPluginRegistrar) system_theme_registrar = - fl_plugin_registry_get_registrar_for_plugin(registry, "SystemThemePlugin"); - system_theme_plugin_register_with_registrar(system_theme_registrar); g_autoptr(FlPluginRegistrar) url_launcher_linux_registrar = fl_plugin_registry_get_registrar_for_plugin(registry, "UrlLauncherPlugin"); url_launcher_plugin_register_with_registrar(url_launcher_linux_registrar); diff --git a/linux/flutter/generated_plugins.cmake b/linux/flutter/generated_plugins.cmake index 0c95e46..c36e373 100644 --- a/linux/flutter/generated_plugins.cmake +++ b/linux/flutter/generated_plugins.cmake @@ -3,10 +3,12 @@ # list(APPEND FLUTTER_PLUGIN_LIST + dynamic_color + file_selector_linux + flutter_acrylic gtk screen_retriever sqlite3_flutter_libs - system_theme url_launcher_linux window_manager ) diff --git a/linux/my_application.cc b/linux/my_application.cc index d397561..c668ead 100644 --- a/linux/my_application.cc +++ b/linux/my_application.cc @@ -55,7 +55,7 @@ static void my_application_activate(GApplication* application) { } gtk_window_set_default_size(window, 1280, 720); - gtk_widget_realize(GTK_WIDGET(window)); + gtk_widget_show(GTK_WIDGET(window)); g_autoptr(FlDartProject) project = fl_dart_project_new(); fl_dart_project_set_dart_entrypoint_arguments(project, self->dart_entrypoint_arguments); diff --git a/macos/Flutter/GeneratedPluginRegistrant.swift b/macos/Flutter/GeneratedPluginRegistrant.swift index 771a1f8..66f83cb 100644 --- a/macos/Flutter/GeneratedPluginRegistrant.swift +++ b/macos/Flutter/GeneratedPluginRegistrant.swift @@ -6,19 +6,27 @@ import FlutterMacOS import Foundation import app_links +import device_info_plus +import dynamic_color +import file_selector_macos +import flutter_acrylic import path_provider_foundation import screen_retriever +import share_plus import sqlite3_flutter_libs -import system_theme import url_launcher_macos import window_manager func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { AppLinksMacosPlugin.register(with: registry.registrar(forPlugin: "AppLinksMacosPlugin")) + DeviceInfoPlusMacosPlugin.register(with: registry.registrar(forPlugin: "DeviceInfoPlusMacosPlugin")) + DynamicColorPlugin.register(with: registry.registrar(forPlugin: "DynamicColorPlugin")) + FileSelectorPlugin.register(with: registry.registrar(forPlugin: "FileSelectorPlugin")) + FlutterAcrylicPlugin.register(with: registry.registrar(forPlugin: "FlutterAcrylicPlugin")) PathProviderPlugin.register(with: registry.registrar(forPlugin: "PathProviderPlugin")) ScreenRetrieverPlugin.register(with: registry.registrar(forPlugin: "ScreenRetrieverPlugin")) + SharePlusMacosPlugin.register(with: registry.registrar(forPlugin: "SharePlusMacosPlugin")) Sqlite3FlutterLibsPlugin.register(with: registry.registrar(forPlugin: "Sqlite3FlutterLibsPlugin")) - SystemThemePlugin.register(with: registry.registrar(forPlugin: "SystemThemePlugin")) UrlLauncherPlugin.register(with: registry.registrar(forPlugin: "UrlLauncherPlugin")) WindowManagerPlugin.register(with: registry.registrar(forPlugin: "WindowManagerPlugin")) } diff --git a/pubspec.lock b/pubspec.lock index 3010146..f139e50 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -218,10 +218,10 @@ packages: dependency: "direct main" description: name: flutter_acrylic - sha256: a9a1fdf91ff1fb47858fd82507f57e255a132a5d355056694fdb9fd303633b18 + sha256: "646200d98e8dd2bd4ab931d4ba4f6b4cb899475d6401414017ba5d71b0fac42b" url: "https://pub.dev" source: hosted - version: "1.1.3" + version: "1.0.0+2" flutter_file_dialog: dependency: "direct main" description: @@ -285,6 +285,15 @@ packages: url: "https://pub.dev" source: hosted version: "4.0.2" + image_gallery_saver: + dependency: "direct main" + description: + path: "." + ref: master + resolved-ref: "3f8c4d2cc41002d3ffdb770cab3b62583326ce01" + url: "https://github.com/wgh136/image_gallery_saver" + source: git + version: "2.0.0" intl: dependency: "direct main" description: @@ -325,14 +334,6 @@ packages: url: "https://pub.dev" source: hosted version: "3.0.0" - macos_window_utils: - dependency: transitive - description: - name: macos_window_utils - sha256: "230be594d26f6dee92c5a1544f4242d25138a5bfb9f185b27f14de3949ef0be8" - url: "https://pub.dev" - source: hosted - version: "1.5.0" matcher: dependency: transitive description: diff --git a/windows/flutter/generated_plugin_registrant.cc b/windows/flutter/generated_plugin_registrant.cc index da4bd0b..9c64bd7 100644 --- a/windows/flutter/generated_plugin_registrant.cc +++ b/windows/flutter/generated_plugin_registrant.cc @@ -7,21 +7,30 @@ #include "generated_plugin_registrant.h" #include +#include +#include +#include #include +#include #include -#include #include #include void RegisterPlugins(flutter::PluginRegistry* registry) { AppLinksPluginCApiRegisterWithRegistrar( registry->GetRegistrarForPlugin("AppLinksPluginCApi")); + DynamicColorPluginCApiRegisterWithRegistrar( + registry->GetRegistrarForPlugin("DynamicColorPluginCApi")); + FileSelectorWindowsRegisterWithRegistrar( + registry->GetRegistrarForPlugin("FileSelectorWindows")); + FlutterAcrylicPluginRegisterWithRegistrar( + registry->GetRegistrarForPlugin("FlutterAcrylicPlugin")); ScreenRetrieverPluginRegisterWithRegistrar( registry->GetRegistrarForPlugin("ScreenRetrieverPlugin")); + SharePlusWindowsPluginCApiRegisterWithRegistrar( + registry->GetRegistrarForPlugin("SharePlusWindowsPluginCApi")); Sqlite3FlutterLibsPluginRegisterWithRegistrar( registry->GetRegistrarForPlugin("Sqlite3FlutterLibsPlugin")); - SystemThemePluginRegisterWithRegistrar( - registry->GetRegistrarForPlugin("SystemThemePlugin")); UrlLauncherWindowsRegisterWithRegistrar( registry->GetRegistrarForPlugin("UrlLauncherWindows")); WindowManagerPluginRegisterWithRegistrar( diff --git a/windows/flutter/generated_plugins.cmake b/windows/flutter/generated_plugins.cmake index d071d54..8d13130 100644 --- a/windows/flutter/generated_plugins.cmake +++ b/windows/flutter/generated_plugins.cmake @@ -4,9 +4,12 @@ list(APPEND FLUTTER_PLUGIN_LIST app_links + dynamic_color + file_selector_windows + flutter_acrylic screen_retriever + share_plus sqlite3_flutter_libs - system_theme url_launcher_windows window_manager )