wxWidgets based Stable Diffusion C++ GUi
Ferenc Szontágh
2024-02-04 1683c8a090c3efc51c43107d5ede0dcd5d506e3b
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__