From 1683c8a090c3efc51c43107d5ede0dcd5d506e3b Mon Sep 17 00:00:00 2001
From: Ferenc Szontágh <szf@fsociety.hu>
Date: Sun, 04 Feb 2024 20:45:08 +0000
Subject: [PATCH] added better queue manager, some clean-up and new feature: model management (wip), progressbar
---
ui/MainWindowUI.h | 57 +++++++++++++++++++++++++++++++--------------------------
1 files changed, 31 insertions(+), 26 deletions(-)
diff --git a/ui/MainWindowUI.h b/ui/MainWindowUI.h
index 38ced0c..99a8255 100644
--- a/ui/MainWindowUI.h
+++ b/ui/MainWindowUI.h
@@ -19,6 +19,7 @@
#include <thread>
#include <vector>
#include <fstream>
+#include <mutex>
#include <fmt/format.h>
#include "utils.hpp"
@@ -29,37 +30,39 @@
#include <wx/event.h>
#include <wx/notifmsg.h>
#include <wx/textdlg.h>
+#include <wx/menu.h>
/** Implementing UI */
class MainWindowUI : public UI
{
-protected:
- // Handlers for UI events.
- void onSettings(wxCommandEvent &event);
- void onModelsRefresh(wxCommandEvent &event);
- void onModelSelect(wxCommandEvent &event);
- void onVaeSelect(wxCommandEvent &event);
- void onSamplerSelect(wxCommandEvent &event);
- void onResolutionSwap(wxCommandEvent &event);
- void onJobsStart(wxCommandEvent &event);
- void onJobsPause(wxCommandEvent &event);
- void onJobsDelete(wxCommandEvent &event);
- void onJoblistItemActivated(wxDataViewEvent &event);
- void onJoblistSelectionChanged(wxDataViewEvent &event);
- void onGenerate(wxCommandEvent &event);
- void onSavePreset(wxCommandEvent &event);
- void onLoadPreset(wxCommandEvent &event);
- void onSelectPreset(wxCommandEvent &event);
- void onDeletePreset(wxCommandEvent &event);
-
-public:
- /** Constructor */
- MainWindowUI(wxWindow *parent);
+ protected:
+ // Handlers for UI events.
+ void onSettings( wxCommandEvent& event );
+ void onModelsRefresh( wxCommandEvent& event );
+ void onModelSelect( wxCommandEvent& event );
+ void onVaeSelect( wxCommandEvent& event );
+ void onResolutionSwap( wxCommandEvent& event );
+ void onJobsStart( wxCommandEvent& event );
+ void onJobsPause( wxCommandEvent& event );
+ void onJobsDelete( wxCommandEvent& event );
+ void onJoblistItemActivated( wxDataViewEvent& event );
+ void onContextMenu( wxDataViewEvent& event );
+ void onJoblistSelectionChanged( wxDataViewEvent& event );
+ void onGenerate( wxCommandEvent& event );
+ void onSamplerSelect( wxCommandEvent& event );
+ void onSavePreset( wxCommandEvent& event );
+ void onLoadPreset( wxCommandEvent& event );
+ void onSelectPreset( wxCommandEvent& event );
+ void onDeletePreset( wxCommandEvent& event );
+ public:
+ /** Constructor */
+ MainWindowUI( wxWindow* parent );
//// end generated class members
~MainWindowUI();
void OnThreadMessage(wxThreadEvent &e);
private:
+ std::mutex sdMutex;
wxFileConfig *fileConfig;
sd_gui_utils::config *cfg;
wxString ini_path;
@@ -79,7 +82,8 @@
std::vector<std::thread> threads;
// row,QueueItem
- std::map<int, QM::QueueItem> *JobTableItems;
+ std::map<int, QM::QueueItem*> JobTableItems;
+ std::map<int, wxDataViewColumn *> *JobTableColumns;
void initConfig();
void loadModelList();
@@ -89,14 +93,13 @@
void LoadPresets();
static void HandleSDLog(sd_log_level_t level, const char *text, void *data);
+ static void HandleSDProgress(int step, int steps, float time, void *data);
// load the model in a new thread
- void LoadModel(wxEvtHandler *eventHandler, QM::QueueItem myItem);
+ sd_ctx_t *LoadModelv2(wxEvtHandler *eventHandler, QM::QueueItem myItem);
// generate in another thread
void Generate(wxEvtHandler *eventHandler, QM::QueueItem myItem);
- // start a thread for model loading...
- void StartLoadModel();
// start a thread to generate image
void StartGeneration(QM::QueueItem myJob);
@@ -106,6 +109,8 @@
void OnQueueItemManagerItemStatusChanged(QM::QueueItem item);
wxNotificationMessage *notification;
+
+
};
#endif // __MainWindowUI__
--
Gitblit v1.9.3