🔧 chore: assets & ✨ feat: add restoreOnExit option, remove restoreOnCancel options
This commit is contained in:
+3
-3
@@ -60,7 +60,9 @@ set_target_properties(${EXECUTABLE_NAME} PROPERTIES
|
||||
|
||||
target_link_libraries(${EXECUTABLE_NAME} PRIVATE
|
||||
${CORELIB_NAME}
|
||||
${CORELIB_NAME}plugin
|
||||
${UILIB_NAME}
|
||||
${UILIB_NAME}plugin
|
||||
)
|
||||
|
||||
target_include_directories(${EXECUTABLE_NAME} PRIVATE
|
||||
@@ -74,6 +76,4 @@ install(TARGETS ${EXECUTABLE_NAME}
|
||||
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
|
||||
)
|
||||
|
||||
install(FILES ${CMAKE_CURRENT_LIST_DIR}/app/${EXECUTABLE_NAME}.desktop
|
||||
DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/applications
|
||||
)
|
||||
add_subdirectory(WallReel/Assets)
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
qt_add_resources(${EXECUTABLE_NAME} "app_icons"
|
||||
PREFIX "/"
|
||||
FILES
|
||||
${EXECUTABLE_NAME}.svg
|
||||
)
|
||||
|
||||
install(FILES ${CMAKE_CURRENT_LIST_DIR}/${EXECUTABLE_NAME}.desktop
|
||||
DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/applications
|
||||
)
|
||||
|
||||
install(FILES ${CMAKE_CURRENT_LIST_DIR}/${EXECUTABLE_NAME}.svg
|
||||
DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/scalable/apps
|
||||
)
|
||||
@@ -0,0 +1,13 @@
|
||||
[Desktop Entry]
|
||||
Version=1.0
|
||||
Type=Application
|
||||
Name=WallReel
|
||||
Icon=wallreel
|
||||
GenericName=Animated wallpaper selector
|
||||
TryExec=wallreel
|
||||
Exec=wallreel
|
||||
Comment=A small wallpaper utility made with Qt
|
||||
Terminal=false
|
||||
Categories=Application;Utility;DesktopSettings;
|
||||
StartupNotify=true
|
||||
Keywords=wallpaper;animated;utility;qt;
|
||||
@@ -0,0 +1,11 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 120 120" width="256" height="256">
|
||||
<g fill="#89b4fa">
|
||||
|
||||
<rect x="10" y="35" width="24" height="50" rx="4" opacity="0.4" />
|
||||
|
||||
<rect x="86" y="35" width="24" height="50" rx="4" opacity="0.4" />
|
||||
|
||||
<rect x="42" y="20" width="36" height="80" rx="6" />
|
||||
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 326 B |
@@ -1,4 +1,5 @@
|
||||
qt_add_qml_module(${CORELIB_NAME}
|
||||
STATIC
|
||||
URI ${COREMODULE_URI}
|
||||
VERSION ${MODULE_VERSION_MAJOR}.${MODULE_VERSION_MINOR}
|
||||
SOURCES
|
||||
|
||||
@@ -38,7 +38,7 @@
|
||||
// action.saveState[].timeout number 3000 Timeout for executing "cmd" in milliseconds. 0 or negative means no timeout
|
||||
// action.onRestore string "" Command to execute on restore ({{ key }} -> value defined or obtained in saveState)
|
||||
// action.quitOnSelected boolean false Whether to quit the application after confirming a wallpaper
|
||||
// action.restoreOnCancel boolean true Whether to run the restore command after cancel without confirming a wallpaper
|
||||
// action.restoreOnClose boolean true Whether to run the restore command after closing the application without confirming a wallpaper
|
||||
//
|
||||
// style.image_width number 320 Width of each image
|
||||
// style.image_height number 200 Height of each image
|
||||
@@ -106,7 +106,7 @@ struct ActionConfigItems {
|
||||
bool printSelected = true;
|
||||
bool printPreview = false;
|
||||
bool quitOnSelected = false;
|
||||
bool restoreOnCancel = true;
|
||||
bool restoreOnClose = true;
|
||||
};
|
||||
|
||||
struct StyleConfigItems {
|
||||
|
||||
@@ -242,10 +242,10 @@ void WallReel::Core::Config::Manager::_loadActionConfig(const QJsonObject& root)
|
||||
m_actionConfig.quitOnSelected = val.toBool();
|
||||
}
|
||||
}
|
||||
if (config.contains("restoreOnCancel")) {
|
||||
const auto& val = config["restoreOnCancel"];
|
||||
if (config.contains("restoreOnClose")) {
|
||||
const auto& val = config["restoreOnClose"];
|
||||
if (val.isBool()) {
|
||||
m_actionConfig.restoreOnCancel = val.toBool();
|
||||
m_actionConfig.restoreOnClose = val.toBool();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -71,18 +71,13 @@ class Manager : public QObject {
|
||||
Q_INVOKABLE void cancel() {
|
||||
Logger::debug("ServiceManager", "Cancel action");
|
||||
m_wallpaperService->stopAll();
|
||||
if (m_actionConfig.restoreOnCancel) {
|
||||
connect(m_wallpaperService, &WallpaperService::restoreCompleted, this, [this]() {
|
||||
emit cancelCompleted();
|
||||
});
|
||||
restore();
|
||||
} else {
|
||||
emit cancelCompleted();
|
||||
}
|
||||
emit cancelCompleted();
|
||||
}
|
||||
|
||||
bool isProcessing() const { return m_isProcessing; }
|
||||
|
||||
bool hasSelected() const { return m_hasSelected; }
|
||||
|
||||
public slots:
|
||||
|
||||
void previewWallpaper() {
|
||||
@@ -101,6 +96,7 @@ class Manager : public QObject {
|
||||
void _onSelectCompleted() {
|
||||
Logger::debug("ServiceManager", "Select completed");
|
||||
_onProcessCompleted();
|
||||
m_hasSelected = true;
|
||||
emit selectCompleted();
|
||||
}
|
||||
|
||||
@@ -129,6 +125,7 @@ class Manager : public QObject {
|
||||
Palette::Manager& m_paletteManager;
|
||||
|
||||
bool m_isProcessing = false;
|
||||
bool m_hasSelected = false;
|
||||
};
|
||||
|
||||
} // namespace WallReel::Core::Service
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
qt_add_qml_module(${UILIB_NAME}
|
||||
STATIC
|
||||
URI ${UIMODULE_URI}
|
||||
VERSION ${MODULE_VERSION_MAJOR}.${MODULE_VERSION_MINOR}
|
||||
QML_FILES
|
||||
|
||||
@@ -3,6 +3,10 @@
|
||||
#include <QApplication>
|
||||
#include <QQmlApplicationEngine>
|
||||
#include <QQmlContext>
|
||||
#include <QtQml/QQmlExtensionPlugin>
|
||||
|
||||
Q_IMPORT_QML_PLUGIN(WallReel_CorePlugin)
|
||||
Q_IMPORT_QML_PLUGIN(WallReel_UIPlugin)
|
||||
|
||||
#include "Cache/manager.hpp"
|
||||
#include "Core/Config/manager.hpp"
|
||||
@@ -25,6 +29,7 @@ int main(int argc, char* argv[]) {
|
||||
QApplication a(argc, argv);
|
||||
a.setApplicationName(APP_NAME);
|
||||
a.setApplicationVersion(APP_VERSION);
|
||||
a.setWindowIcon(QIcon(QString(":/%1.svg").arg(APP_NAME)));
|
||||
|
||||
Logger::init();
|
||||
s_options.parseArgs(a);
|
||||
@@ -97,6 +102,17 @@ int main(int argc, char* argv[]) {
|
||||
&Service::Manager::cancelCompleted,
|
||||
&a,
|
||||
[]() { QCoreApplication::quit(); });
|
||||
if (config->getActionConfig().restoreOnClose) {
|
||||
QObject::connect(
|
||||
&a,
|
||||
&QApplication::aboutToQuit,
|
||||
Service,
|
||||
[Service]() {
|
||||
if (!Service->hasSelected()) {
|
||||
Service->restore();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
QObject::connect(
|
||||
&engine,
|
||||
|
||||
Reference in New Issue
Block a user