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/MainWindow.cpp |  211 +++++++++++++++++++++++++++++++---------------------
 1 files changed, 125 insertions(+), 86 deletions(-)

diff --git a/ui/MainWindow.cpp b/ui/MainWindow.cpp
index a953c8c..6c63dd6 100644
--- a/ui/MainWindow.cpp
+++ b/ui/MainWindow.cpp
@@ -7,20 +7,20 @@
 
 #include "MainWindow.h"
 
-#include "embended_files/cube.png.h"
-#include "embended_files/disk.png.h"
-#include "embended_files/file_import.png.h"
-#include "embended_files/forward.png.h"
-#include "embended_files/images.png.h"
-#include "embended_files/palette.png.h"
-#include "embended_files/pause.png.h"
-#include "embended_files/picture.png.h"
-#include "embended_files/play.png.h"
-#include "embended_files/refresh.png.h"
-#include "embended_files/replace.png.h"
-#include "embended_files/settings.png.h"
-#include "embended_files/text_box_dots.png.h"
-#include "embended_files/trash.png.h"
+#include "../../sd.cpp.ui2/ui/embended_files/cube.png.h"
+#include "../../sd.cpp.ui2/ui/embended_files/disk.png.h"
+#include "../../sd.cpp.ui2/ui/embended_files/file_import.png.h"
+#include "../../sd.cpp.ui2/ui/embended_files/forward.png.h"
+#include "../../sd.cpp.ui2/ui/embended_files/images.png.h"
+#include "../../sd.cpp.ui2/ui/embended_files/palette.png.h"
+#include "../../sd.cpp.ui2/ui/embended_files/pause.png.h"
+#include "../../sd.cpp.ui2/ui/embended_files/picture.png.h"
+#include "../../sd.cpp.ui2/ui/embended_files/play.png.h"
+#include "../../sd.cpp.ui2/ui/embended_files/refresh.png.h"
+#include "../../sd.cpp.ui2/ui/embended_files/replace.png.h"
+#include "../../sd.cpp.ui2/ui/embended_files/settings.png.h"
+#include "../../sd.cpp.ui2/ui/embended_files/text_box_dots.png.h"
+#include "../../sd.cpp.ui2/ui/embended_files/trash.png.h"
 
 ///////////////////////////////////////////////////////////////////////////
 
@@ -42,47 +42,44 @@
 	m_settings = new wxButton( m_all_panel, wxID_ANY, wxT("Settings"), wxDefaultPosition, wxDefaultSize, 0 );
 
 	m_settings->SetBitmap( settings_png_to_wx_bitmap() );
+	m_settings->SetMinSize( wxSize( 70,-1 ) );
+
 	sizer0021->Add( m_settings, 0, wxALL, 5 );
 
 	m_refresh = new wxButton( m_all_panel, wxID_ANY, wxT("Refresh"), wxDefaultPosition, wxDefaultSize, 0 );
 
 	m_refresh->SetBitmap( refresh_png_to_wx_bitmap() );
+	m_refresh->SetMinSize( wxSize( 70,-1 ) );
+
 	sizer0021->Add( m_refresh, 0, wxALL, 5 );
 
-	m_staticText160 = new wxStaticText( m_all_panel, wxID_ANY, wxT("Model"), wxDefaultPosition, wxDefaultSize, 0 );
+	m_staticText160 = new wxStaticText( m_all_panel, wxID_ANY, wxT("Model:"), wxDefaultPosition, wxDefaultSize, wxALIGN_CENTER_HORIZONTAL );
 	m_staticText160->Wrap( 0 );
+	m_staticText160->SetMinSize( wxSize( 50,-1 ) );
+
 	sizer0021->Add( m_staticText160, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
 
 	wxArrayString m_modelChoices;
 	m_model = new wxChoice( m_all_panel, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_modelChoices, 0 );
 	m_model->SetSelection( 0 );
 	m_model->Enable( false );
+	m_model->SetMinSize( wxSize( 200,-1 ) );
 
 	sizer0021->Add( m_model, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
 
-	m_staticText161 = new wxStaticText( m_all_panel, wxID_ANY, wxT("Vae"), wxDefaultPosition, wxDefaultSize, 0 );
+	m_staticText161 = new wxStaticText( m_all_panel, wxID_ANY, wxT("Vae:"), wxDefaultPosition, wxDefaultSize, wxALIGN_CENTER_HORIZONTAL );
 	m_staticText161->Wrap( 0 );
+	m_staticText161->SetMinSize( wxSize( 50,-1 ) );
+
 	sizer0021->Add( m_staticText161, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
 
 	wxArrayString m_vaeChoices;
 	m_vae = new wxChoice( m_all_panel, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_vaeChoices, 0 );
 	m_vae->SetSelection( 0 );
 	m_vae->Enable( false );
+	m_vae->SetMinSize( wxSize( 200,-1 ) );
 
 	sizer0021->Add( m_vae, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
-
-	m_staticText163 = new wxStaticText( m_all_panel, wxID_ANY, wxT("Sampler"), wxDefaultPosition, wxDefaultSize, 0 );
-	m_staticText163->Wrap( 0 );
-	m_staticText163->SetToolTip( wxT("sampling method (default: \"euler_a\")") );
-
-	sizer0021->Add( m_staticText163, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
-
-	wxArrayString m_samplerChoices;
-	m_sampler = new wxChoice( m_all_panel, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_samplerChoices, 0 );
-	m_sampler->SetSelection( 0 );
-	m_sampler->SetToolTip( wxT("sampling method (default: \"euler_a\")") );
-
-	sizer0021->Add( m_sampler, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
 
 
 	sizer0002->Add( sizer0021, 0, wxALL|wxEXPAND, 5 );
@@ -94,15 +91,19 @@
 	m_staticText231->Wrap( 0 );
 	sizer0003->Add( m_staticText231, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
 
-	m_cfg = new wxSpinCtrlDouble( m_all_panel, wxID_ANY, wxT("7.0"), wxDefaultPosition, wxDefaultSize, wxALIGN_CENTER_HORIZONTAL|wxSP_ARROW_KEYS, 0, 15, 0, 0.1 );
+	m_cfg = new wxSpinCtrlDouble( m_all_panel, wxID_ANY, wxT("7.0"), wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 0, 15, 0, 0.1 );
 	m_cfg->SetDigits( 1 );
+	m_cfg->SetMinSize( wxSize( 45,-1 ) );
+
 	sizer0003->Add( m_cfg, 0, wxALL, 5 );
 
 	m_staticText233 = new wxStaticText( m_all_panel, wxID_ANY, wxT("Seed:"), wxDefaultPosition, wxDefaultSize, 0 );
 	m_staticText233->Wrap( 0 );
 	sizer0003->Add( m_staticText233, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
 
-	m_seed = new wxSpinCtrl( m_all_panel, wxID_ANY, wxT("44"), wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 0, 9999999, 44 );
+	m_seed = new wxSpinCtrl( m_all_panel, wxID_ANY, wxT("44"), wxDefaultPosition, wxDefaultSize, 0, -1, 99999999999, 44 );
+	m_seed->SetMinSize( wxSize( 80,-1 ) );
+
 	sizer0003->Add( m_seed, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
 
 	m_staticText234 = new wxStaticText( m_all_panel, wxID_ANY, wxT("Clip skip:"), wxDefaultPosition, wxDefaultSize, 0 );
@@ -113,6 +114,7 @@
 
 	m_clip_skip = new wxSpinCtrl( m_all_panel, wxID_ANY, wxT("0"), wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, -1, 2, 0 );
 	m_clip_skip->SetToolTip( wxT("ignore last layers of CLIP network; 1 ignores none, 2 ignores one layer (default: -1)\n<= 0 represents unspecified, will be 1 for SD1.x, 2 for SD2.x") );
+	m_clip_skip->SetMinSize( wxSize( 45,-1 ) );
 
 	sizer0003->Add( m_clip_skip, 0, wxALL, 5 );
 
@@ -124,6 +126,7 @@
 
 	m_steps = new wxSpinCtrl( m_all_panel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 0, 100, 0 );
 	m_steps->SetToolTip( wxT("number of sample steps (default: 20)") );
+	m_steps->SetMinSize( wxSize( 45,-1 ) );
 
 	sizer0003->Add( m_steps, 0, wxALL, 5 );
 
@@ -253,10 +256,24 @@
 
 	bSizer9->Add( m_staticText15, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
 
-	m_batch_count = new wxSpinCtrl( m_all_panel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 0, 10, 0 );
+	m_batch_count = new wxSpinCtrl( m_all_panel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 1, 1000, 1 );
 	m_batch_count->SetToolTip( wxT("number of images to generate.") );
 
 	bSizer9->Add( m_batch_count, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
+
+	m_staticText163 = new wxStaticText( m_all_panel, wxID_ANY, wxT("Sampler"), wxDefaultPosition, wxDefaultSize, 0 );
+	m_staticText163->Wrap( 0 );
+	m_staticText163->SetToolTip( wxT("sampling method (default: \"euler_a\")") );
+
+	bSizer9->Add( m_staticText163, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
+
+	wxArrayString m_samplerChoices;
+	m_sampler = new wxChoice( m_all_panel, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_samplerChoices, 0 );
+	m_sampler->SetSelection( 0 );
+	m_sampler->SetToolTip( wxT("sampling method (default: \"euler_a\")") );
+	m_sampler->SetMinSize( wxSize( 100,-1 ) );
+
+	bSizer9->Add( m_sampler, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
 
 	m_staticline5 = new wxStaticLine( m_all_panel, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_VERTICAL );
 	bSizer9->Add( m_staticline5, 0, wxEXPAND | wxALL, 5 );
@@ -317,14 +334,16 @@
 	m_refresh->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( UI::onModelsRefresh ), NULL, this );
 	m_model->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( UI::onModelSelect ), NULL, this );
 	m_vae->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( UI::onVaeSelect ), NULL, this );
-	m_sampler->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( UI::onSamplerSelect ), NULL, this );
 	m_button7->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( UI::onResolutionSwap ), NULL, this );
 	m_start_jobs->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( UI::onJobsStart ), NULL, this );
 	m_pause_jobs->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( UI::onJobsPause ), NULL, this );
 	m_delete_all_jobs->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( UI::onJobsDelete ), NULL, this );
 	m_joblist->Connect( wxEVT_COMMAND_DATAVIEW_ITEM_ACTIVATED, wxDataViewEventHandler( UI::onJoblistItemActivated ), NULL, this );
+	m_joblist->Connect( wxEVT_COMMAND_DATAVIEW_ITEM_CONTEXT_MENU, wxDataViewEventHandler( UI::onContextMenu ), NULL, this );
 	m_joblist->Connect( wxEVT_COMMAND_DATAVIEW_SELECTION_CHANGED, wxDataViewEventHandler( UI::onJoblistSelectionChanged ), NULL, this );
+	m_data_model_list->Connect( wxEVT_COMMAND_DATAVIEW_ITEM_CONTEXT_MENU, wxDataViewEventHandler( UI::onContextMenu ), NULL, this );
 	m_generate->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( UI::onGenerate ), NULL, this );
+	m_sampler->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( UI::onSamplerSelect ), NULL, this );
 	m_save_preset->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( UI::onSavePreset ), NULL, this );
 	m_load_preset->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( UI::onLoadPreset ), NULL, this );
 	m_preset_list->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( UI::onSelectPreset ), NULL, this );
@@ -338,14 +357,16 @@
 	m_refresh->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( UI::onModelsRefresh ), NULL, this );
 	m_model->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( UI::onModelSelect ), NULL, this );
 	m_vae->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( UI::onVaeSelect ), NULL, this );
-	m_sampler->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( UI::onSamplerSelect ), NULL, this );
 	m_button7->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( UI::onResolutionSwap ), NULL, this );
 	m_start_jobs->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( UI::onJobsStart ), NULL, this );
 	m_pause_jobs->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( UI::onJobsPause ), NULL, this );
 	m_delete_all_jobs->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( UI::onJobsDelete ), NULL, this );
 	m_joblist->Disconnect( wxEVT_COMMAND_DATAVIEW_ITEM_ACTIVATED, wxDataViewEventHandler( UI::onJoblistItemActivated ), NULL, this );
+	m_joblist->Disconnect( wxEVT_COMMAND_DATAVIEW_ITEM_CONTEXT_MENU, wxDataViewEventHandler( UI::onContextMenu ), NULL, this );
 	m_joblist->Disconnect( wxEVT_COMMAND_DATAVIEW_SELECTION_CHANGED, wxDataViewEventHandler( UI::onJoblistSelectionChanged ), NULL, this );
+	m_data_model_list->Disconnect( wxEVT_COMMAND_DATAVIEW_ITEM_CONTEXT_MENU, wxDataViewEventHandler( UI::onContextMenu ), NULL, this );
 	m_generate->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( UI::onGenerate ), NULL, this );
+	m_sampler->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( UI::onSamplerSelect ), NULL, this );
 	m_save_preset->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( UI::onSavePreset ), NULL, this );
 	m_load_preset->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( UI::onLoadPreset ), NULL, this );
 	m_preset_list->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( UI::onSelectPreset ), NULL, this );
@@ -365,98 +386,110 @@
 	wxBoxSizer* sizer2011;
 	sizer2011 = new wxBoxSizer( wxVERTICAL );
 
-	wxGridSizer* sizer2012;
-	sizer2012 = new wxGridSizer( 0, 2, 0, 0 );
+	wxBoxSizer* bSizer16;
+	bSizer16 = new wxBoxSizer( wxHORIZONTAL );
 
 	m_staticText172410 = new wxStaticText( m_path_panel, wxID_ANY, wxT("Models path"), wxDefaultPosition, wxDefaultSize, 0 );
 	m_staticText172410->Wrap( 0 );
-	sizer2012->Add( m_staticText172410, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
+	m_staticText172410->SetMinSize( wxSize( 150,-1 ) );
+
+	bSizer16->Add( m_staticText172410, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
 
 	m_model_dir = new wxDirPickerCtrl( m_path_panel, wxID_ANY, wxEmptyString, wxT("Select a folder"), wxDefaultPosition, wxDefaultSize, wxDIRP_SMALL|wxDIRP_DEFAULT_STYLE );
 	m_model_dir->SetMinSize( wxSize( 200,-1 ) );
 
-	sizer2012->Add( m_model_dir, 0, wxALL|wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );
+	bSizer16->Add( m_model_dir, 1, wxALL|wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );
 
 
-	sizer2011->Add( sizer2012, 0, wxEXPAND, 5 );
+	sizer2011->Add( bSizer16, 0, wxEXPAND, 5 );
 
-	wxGridSizer* sizer2013;
-	sizer2013 = new wxGridSizer( 0, 2, 0, 0 );
-
-	m_staticText18013 = new wxStaticText( m_path_panel, wxID_ANY, wxT("Vae path"), wxDefaultPosition, wxDefaultSize, 0 );
-	m_staticText18013->Wrap( 0 );
-	sizer2013->Add( m_staticText18013, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
-
-	m_vae_dir = new wxDirPickerCtrl( m_path_panel, wxID_ANY, wxEmptyString, wxT("Select a folder"), wxDefaultPosition, wxDefaultSize, wxDIRP_SMALL|wxDIRP_DEFAULT_STYLE );
-	m_vae_dir->SetMinSize( wxSize( 200,-1 ) );
-
-	sizer2013->Add( m_vae_dir, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
-
-
-	sizer2011->Add( sizer2013, 0, wxEXPAND, 5 );
-
-	wxGridSizer* sizer2014;
-	sizer2014 = new wxGridSizer( 0, 2, 0, 0 );
-
-	m_staticText1801317202731 = new wxStaticText( m_path_panel, wxID_ANY, wxT("Embedding path"), wxDefaultPosition, wxDefaultSize, 0 );
-	m_staticText1801317202731->Wrap( 0 );
-	sizer2014->Add( m_staticText1801317202731, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
-
-	m_embedding_dir = new wxDirPickerCtrl( m_path_panel, wxID_ANY, wxEmptyString, wxT("Select a folder"), wxDefaultPosition, wxDefaultSize, wxDIRP_SMALL|wxDIRP_DEFAULT_STYLE );
-	m_embedding_dir->SetMinSize( wxSize( 200,-1 ) );
-
-	sizer2014->Add( m_embedding_dir, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
-
-
-	sizer2011->Add( sizer2014, 0, wxEXPAND, 5 );
-
-	wxGridSizer* sizer2015;
-	sizer2015 = new wxGridSizer( 0, 2, 0, 0 );
+	wxBoxSizer* bSizer19;
+	bSizer19 = new wxBoxSizer( wxHORIZONTAL );
 
 	m_staticText18013172027 = new wxStaticText( m_path_panel, wxID_ANY, wxT("Lora path"), wxDefaultPosition, wxDefaultSize, 0 );
 	m_staticText18013172027->Wrap( 0 );
-	sizer2015->Add( m_staticText18013172027, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
+	m_staticText18013172027->SetMinSize( wxSize( 150,-1 ) );
+
+	bSizer19->Add( m_staticText18013172027, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
 
 	m_lora_dir = new wxDirPickerCtrl( m_path_panel, wxID_ANY, wxEmptyString, wxT("Select a folder"), wxDefaultPosition, wxDefaultSize, wxDIRP_SMALL|wxDIRP_DEFAULT_STYLE );
 	m_lora_dir->SetMinSize( wxSize( 200,-1 ) );
 
-	sizer2015->Add( m_lora_dir, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
+	bSizer19->Add( m_lora_dir, 1, wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
 
 
-	sizer2011->Add( sizer2015, 0, wxEXPAND, 5 );
+	sizer2011->Add( bSizer19, 0, wxEXPAND, 5 );
 
-	wxGridSizer* gSizer8;
-	gSizer8 = new wxGridSizer( 0, 2, 0, 0 );
+	wxBoxSizer* bSizer17;
+	bSizer17 = new wxBoxSizer( wxHORIZONTAL );
+
+	m_staticText18013 = new wxStaticText( m_path_panel, wxID_ANY, wxT("Vae path"), wxDefaultPosition, wxDefaultSize, 0 );
+	m_staticText18013->Wrap( 0 );
+	m_staticText18013->SetMinSize( wxSize( 150,-1 ) );
+
+	bSizer17->Add( m_staticText18013, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
+
+	m_vae_dir = new wxDirPickerCtrl( m_path_panel, wxID_ANY, wxEmptyString, wxT("Select a folder"), wxDefaultPosition, wxDefaultSize, wxDIRP_SMALL|wxDIRP_DEFAULT_STYLE );
+	m_vae_dir->SetMinSize( wxSize( 200,-1 ) );
+
+	bSizer17->Add( m_vae_dir, 1, wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
+
+
+	sizer2011->Add( bSizer17, 0, wxEXPAND, 5 );
+
+	wxBoxSizer* bSizer18;
+	bSizer18 = new wxBoxSizer( wxHORIZONTAL );
+
+	m_staticText1801317202731 = new wxStaticText( m_path_panel, wxID_ANY, wxT("Embedding path"), wxDefaultPosition, wxDefaultSize, 0 );
+	m_staticText1801317202731->Wrap( 0 );
+	m_staticText1801317202731->SetMinSize( wxSize( 150,-1 ) );
+
+	bSizer18->Add( m_staticText1801317202731, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
+
+	m_embedding_dir = new wxDirPickerCtrl( m_path_panel, wxID_ANY, wxEmptyString, wxT("Select a folder"), wxDefaultPosition, wxDefaultSize, wxDIRP_SMALL|wxDIRP_DEFAULT_STYLE );
+	m_embedding_dir->SetMinSize( wxSize( 200,-1 ) );
+
+	bSizer18->Add( m_embedding_dir, 1, wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
+
+
+	sizer2011->Add( bSizer18, 0, wxEXPAND, 5 );
+
+	wxBoxSizer* bSizer20;
+	bSizer20 = new wxBoxSizer( wxHORIZONTAL );
 
 	m_staticText19 = new wxStaticText( m_path_panel, wxID_ANY, wxT("Presets path"), wxDefaultPosition, wxDefaultSize, 0 );
 	m_staticText19->Wrap( -1 );
-	gSizer8->Add( m_staticText19, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
+	m_staticText19->SetMinSize( wxSize( 150,-1 ) );
+
+	bSizer20->Add( m_staticText19, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
 
 	m_presets_dir = new wxDirPickerCtrl( m_path_panel, wxID_ANY, wxEmptyString, wxT("Select a folder"), wxDefaultPosition, wxDefaultSize, wxDIRP_DEFAULT_STYLE|wxDIRP_SMALL );
 	m_presets_dir->SetMinSize( wxSize( 200,-1 ) );
 
-	gSizer8->Add( m_presets_dir, 0, wxALL|wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );
+	bSizer20->Add( m_presets_dir, 1, wxALL|wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );
 
 
-	sizer2011->Add( gSizer8, 0, wxEXPAND, 5 );
+	sizer2011->Add( bSizer20, 0, wxEXPAND, 5 );
 
 	m_staticLine223 = new wxStaticLine( m_path_panel, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
 	sizer2011->Add( m_staticLine223, 0, wxALL|wxEXPAND, 5 );
 
-	wxGridSizer* sizer2016;
-	sizer2016 = new wxGridSizer( 0, 2, 0, 0 );
+	wxBoxSizer* bSizer21;
+	bSizer21 = new wxBoxSizer( wxHORIZONTAL );
 
 	m_staticText180131720 = new wxStaticText( m_path_panel, wxID_ANY, wxT("Images output"), wxDefaultPosition, wxDefaultSize, 0 );
 	m_staticText180131720->Wrap( 0 );
-	sizer2016->Add( m_staticText180131720, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
+	m_staticText180131720->SetMinSize( wxSize( 150,-1 ) );
+
+	bSizer21->Add( m_staticText180131720, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
 
 	m_images_output = new wxDirPickerCtrl( m_path_panel, wxID_ANY, wxEmptyString, wxT("Select a folder"), wxDefaultPosition, wxDefaultSize, wxDIRP_SMALL|wxDIRP_DEFAULT_STYLE );
 	m_images_output->SetMinSize( wxSize( 200,-1 ) );
 
-	sizer2016->Add( m_images_output, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
+	bSizer21->Add( m_images_output, 1, wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
 
 
-	sizer2011->Add( sizer2016, 0, wxEXPAND, 5 );
+	sizer2011->Add( bSizer21, 0, wxEXPAND, 5 );
 
 
 	m_path_panel->SetSizer( sizer2011 );
@@ -472,6 +505,8 @@
 
 	m_keep_model_in_memory = new wxCheckBox( m_settings, wxID_ANY, wxT("Keep model in memory"), wxDefaultPosition, wxDefaultSize, 0 );
 	m_keep_model_in_memory->SetValue(true);
+	m_keep_model_in_memory->SetMinSize( wxSize( 230,-1 ) );
+
 	sizer2018->Add( m_keep_model_in_memory, 0, wxALIGN_LEFT|wxALL, 5 );
 
 
@@ -482,6 +517,8 @@
 
 	m_save_all_image = new wxCheckBox( m_settings, wxID_ANY, wxT("Save all images (intermediat images)"), wxDefaultPosition, wxDefaultSize, 0 );
 	m_save_all_image->SetValue(true);
+	m_save_all_image->SetMinSize( wxSize( 230,-1 ) );
+
 	sizer2019->Add( m_save_all_image, 0, wxALIGN_LEFT|wxALL, 5 );
 
 
@@ -490,15 +527,17 @@
 	wxBoxSizer* bSizer10;
 	bSizer10 = new wxBoxSizer( wxHORIZONTAL );
 
-	m_staticText16 = new wxStaticText( m_settings, wxID_ANY, wxT("Output images type"), wxDefaultPosition, wxDefaultSize, 0 );
+	m_staticText16 = new wxStaticText( m_settings, wxID_ANY, wxT("Output images format"), wxDefaultPosition, wxDefaultSize, 0 );
 	m_staticText16->Wrap( -1 );
+	m_staticText16->SetMinSize( wxSize( 230,-1 ) );
+
 	bSizer10->Add( m_staticText16, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
 
 	wxString m_choice4Choices[] = { wxT(".png"), wxT(".jpg") };
 	int m_choice4NChoices = sizeof( m_choice4Choices ) / sizeof( wxString );
 	m_choice4 = new wxChoice( m_settings, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_choice4NChoices, m_choice4Choices, 0 );
 	m_choice4->SetSelection( 0 );
-	bSizer10->Add( m_choice4, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
+	bSizer10->Add( m_choice4, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
 
 
 	sizer2017->Add( bSizer10, 0, wxEXPAND, 5 );

--
Gitblit v1.9.3