| | |
| | | #include <thread> |
| | | #include <vector> |
| | | #include <fstream> |
| | | #include <mutex> |
| | | |
| | | #include <fmt/format.h> |
| | | #include "utils.hpp" |
| | |
| | | #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; |
| | |
| | | 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(); |
| | |
| | | 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); |
| | | |
| | |
| | | void OnQueueItemManagerItemStatusChanged(QM::QueueItem item); |
| | | |
| | | wxNotificationMessage *notification; |
| | | |
| | | |
| | | }; |
| | | |
| | | #endif // __MainWindowUI__ |