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