Ermöglicht die Verwaltung (Erstellen, Auflisten, Ausführen) von Tools über eine Befehlszeilenschnittstelle für Automatisierung und Integration. Die Benutzeroberfläche wurde mit dedizierten Ansichten für Toolerstellung und -bearbeitung, In-App-Lua-Hilfe sowie kontextsensitiven Menüs erweitert. Neue Abhängigkeiten (CLI11, rang) wurden integriert und eine umfassende Testsuite hinzugefügt. Die Lizenzierung wurde auf AGPL-3.0 umgestellt und ein Kontributionsleitfaden bereitgestellt.
Diese umfangreiche Überarbeitung verbessert die Architektur, den Build-Prozess und die Benutzeroberfläche der Toolbox.
Wesentliche Änderungen:
- **Build-System:** Umfassende Modernisierung des CMake-Builds für verbesserte Stabilität und Wartbarkeit. Die Konfiguration wurde auf zielbasierte Befehle umgestellt, `c_tray` stabilisiert und `saucer-desktop` entfernt.
- **Modulare Architektur:** Die Kernlogik von `ToolboxWindow` wurde in dedizierte Helferklassen ausgelagert, darunter `LuaRunner` für die Skriptausführung, `ToolRegistry` für die Tool-Erkennung, `ResourceLoader` für UI-Ressourcen, `ToolboxJsBridge` für JavaScript-Bindungen und `WindowPlacement` für die Fensterverwaltung. Dies reduziert die Komplexität und fördert die Wiederverwendbarkeit.
- **Benutzeroberfläche (UI):** Die HTML-Templates (`einstellungen_custom.html`, `index.html`) und Stylesheets (`styles.css`) wurden zentralisiert und überarbeitet, um eine kohärentere Benutzeroberfläche mit benutzerdefinierten Fensterdekorationen zu bieten. Neue Funktionen wie das Öffnen der Kommandozeile und eine "Tool hinzufügen"-Karte wurden integriert.
- **Tray-Verwaltung:** Die Tray-Icon-Logik wurde in `TrayController` gekapselt, um eine robustere und zentralisierte Steuerung zu ermöglichen, insbesondere im Umgang mit Explorer-Neustarts.
Erstellt die anfängliche HTML-Struktur für die Toolbox-Oberfläche.
Dies beinhaltet das Hinzufügen von Head-, Header-, Main- und Footer-Bereichen,
sowie grundlegende Button-Funktionalitäten und dynamisches Laden von Tool-Karten.
Ebenfalls enthalten sind CSS-Styles, um das Aussehen zu gestalten und ein Stylesheet ist eingebettet.
Diese Änderungen verbessern das Verhalten des Toolbox-Trays.
- Fügt eine Callback-Funktion für Linksklicks hinzu, um die
Aktion zu handhaben.
- Aktualisiert die Tray-Initialisierung, um das Icon korrekt zu laden
und zu teilen.
- Behebt ein Problem, bei dem das Fenster nicht automatisch
ausgeblendet wurde, wenn es den Fokus verliert.
- Fügt Logik hinzu, um sicherzustellen, dass das Fenster beim Anzeigen
in den Vordergrund gebracht und fokussiert wird.
- Vergrößert die Fenstergröße.
Implementiert ein Einstellungsfenster zur Konfiguration von Lua-Skript-Timeouts und anderen Einstellungen.
Ermöglicht die Ausführung von Lua-Skripten in einem separaten Thread mit Abbruchfunktion und Timeout-Mechanismus.
Verbessert die Benutzererfahrung durch Hinzufügen der Möglichkeit, das Toolbox-Verzeichnis im Dateisystem zu öffnen.
Behebt Fokusprobleme und verbessert die Fensterpositionierung und -größe.
Introduce `ToolConfigStore` for managing tool configuration files, enabling retrieval and updates. Refactor window handling to support Lua timeout settings and dynamic tool-specific configurations. Improve HTML UI with Lua timeout adjustments and centralized styling updates.
Centralized HWND handling into a dedicated `hwnd_module` for improved clarity and modularity. Updated `toolboxWindow` and `optionWindow` to use the new module abstraction. Adjusted related initialization code for better structure and maintainability.
Integrates the saucer4lua library for enhanced Lua support and adds new window management functionalities, including window centering and resizing capabilities. Updates related files, such as CMakeLists, headers, and submodules, to support the new library and features effectively.
Introduced a Cython-based setup to compile Python files for performance improvements. Updated installer scripts with customtkinter modifications for better UI, added support for additional content loading, and enhanced project structure. Adjusted build commands, streamlined file paths, and integrated new UI elements in the HTML resources.
Introduced a new "Einstellungen" (Settings) interface with an HTML page and integrated it into the application workflow. Enhanced Lua execution handling with optional console output and improved UI updates. Adjusted installer UI to better align buttons and icons with user experience.
Added more Lua libraries to extend scripting capabilities within the application. Improved error handling by re-enabling the UI button and reloading the webview after a Lua script failure.
Implemented `SetJsonItems` to handle JSON serialization and expose toolbox items to JavaScript. Enhanced the webview with new JS-exposed functions and added frontend support for dynamic toolbox reloading.
Introduce a new command file that streamlines the process of embedding resources and building the executable using PyInstaller. This file centralizes build commands, improving maintainability and reducing potential errors in manual execution.
Moved Base64 strings for executable and icon into a dedicated Python module (base64_strings.py) instead of text files, enhancing code organization. Updated main.py to import Base64 strings from the new module. Also replaced placeholder program name 'DeinProgrammName' with 'Toolbox' throughout the installer scripts.
Enable MinSizeRel builds to produce a Windows executable. Added a sleep interval in the focus monitor loop to decrease CPU usage during execution, improving performance efficiency.
Previously, the WIN32_EXECUTABLE property was set regardless of the build type. This change ensures the property is only applied during Release builds, which can reduce overhead and potential issues in Debug configurations.
This commit introduces a new Tkinter-based GUI installer script (`installer/main.py`) that manages file extraction and shortcut creation. Additionally, a new file system access feature was added to the `ToolboxWindow` class, allowing users to open directories with platform-specific commands. Improvements also include platform-specific adjustments for Windows executables in the CMake configuration.
Added methods to hide and show the Toolbox window and integrated a system tray icon with menu options, including window toggle and application quit functionality. Moved Lua script execution to occur after successful script loading. Introduced resource inclusion in the project files to support icon loading.
Refactor resource presence checks using the `contains` method for clarity and efficiency. Streamline the initialization of the `window_icon` by directly using the `saucer::icon::from` method, thereby improving readability and reducing redundancy.
This commit includes the addition of a new toolbox icon in both .ico and .png formats, updating the resource file to reference the new icon. In addition, numerous highlight.js files and styles have been integrated into the project, enhancing syntax highlighting capabilities. Existing file references in 'out_embed/all.hpp' have been updated accordingly.Add new highlighting styles and GitHub CSS to project
Introduced two new image styles, "brown-papersq" and "pojoaque", for highlighting. Additionally, embedded GitHub's CSS files as header files in the `saucer::embedded` namespace to enhance syntax highlighting features. These changes aim to improve the visual styling and customization options for code presentation.
This commit includes the addition of a new toolbox icon in both .ico and .png formats, updating the resource file to reference the new icon. In addition, numerous highlight.js files and styles have been integrated into the project, enhancing syntax highlighting capabilities. Existing file references in 'out_embed/all.hpp' have been updated accordingly.
This commit includes `card.html` in the embedded files by updating the `all.hpp` file. It modifies the function to map and include the `card.html` resource. Additionally, `index.html` was updated to ensure the latest content is embedded.