28 #include <wx/stdpaths.h>
37 #pragma comment(lib, "PowrProf.lib")
39 #include <wx/taskbarbutton.h>
45 BatchFrame* MyBatchFrame = wxGetApp().GetFrame();
50 if(filenames.GetCount()==0)
54 for(
unsigned int i=0; i< filenames.GetCount(); i++)
56 wxFileName file(filenames[i]);
59 if (file.GetExt().CmpNoCase(wxT(
"pto")) == 0 ||
60 file.GetExt().CmpNoCase(wxT(
"ptp")) == 0 ||
61 file.GetExt().CmpNoCase(wxT(
"pts")) == 0 )
91 wxXmlResource::Get()->LoadFrame(
this, (wxWindow* )NULL, wxT(
"batch_frame"));
94 wxApp::s_macExitMenuItemId = XRCID(
"menu_exit");
95 wxApp::s_macHelpMenuTitleName = _(
"&Help");
97 SetMenuBar(wxXmlResource::Get()->LoadMenuBar(
this, wxT(
"batch_menu")));
100 SetToolBar(wxXmlResource::Get()->LoadToolBar(
this, wxT(
"batch_toolbar")));
102 int widths[2] = { -1, 150 };
104 SetStatusWidths(2, widths);
105 SetStatusText(_(
"Not doing much..."));
112 wxIconBundle myIcons(
m_xrcPrefix + wxT(
"data/ptbatcher.ico"), wxBITMAP_TYPE_ICO);
122 if(wxGetKeyState(WXK_COMMAND))
125 wxString text(_(
"You have pressed the Command key."));
127 wxString text(_(
"You have pressed the Control key."));
129 text.Append(wxT(
"\n"));
130 text.Append(_(
"Should the loading of the batch queue be skipped?"));
131 if(wxMessageBox(text,
137 wxYES_NO | wxICON_EXCLAMATION, NULL)==wxNO)
154 m_endChoice = XRCCTRL(*
this,
"choice_end", wxChoice);
158 #if !defined __WXMAC__ && !defined __WXOSX_COCOA__
164 SYSTEM_POWER_CAPABILITIES pwrCap;
165 if (GetPwrCapabilities(&pwrCap))
171 if (pwrCap.SystemS4 && pwrCap.HiberFilePresent)
183 if (wxTaskBarIcon::IsAvailable())
187 GetMenuBar()->Enable(XRCID(
"menu_tray"),
true);
190 wxConfigBase::Get()->Read(wxT(
"/BatchFrame/minimizeTray"), &minTray,
false);
191 GetMenuBar()->Check(XRCID(
"menu_tray"), minTray);
282 if(tempFile.FileExists())
285 modify=tempFile.GetModificationTime();
347 wxTextEntryDialog dlg(
this,_(
"Please enter the command-line application to execute:"),_(
"Enter application"));
348 wxTheApp->SetEvtHandlerEnabled(
false);
349 if(dlg.ShowModal() == wxID_OK)
351 wxString
line = dlg.GetValue();
357 wxTheApp->SetEvtHandlerEnabled(
true);
362 wxString defaultdir = wxConfigBase::Get()->Read(wxT(
"/BatchFrame/actualPath"),wxT(
""));
363 wxDirDialog dlg(
this,
364 _(
"Specify a directory to search for projects in"),
365 defaultdir, wxDD_DEFAULT_STYLE | wxDD_DIR_MUST_EXIST);
366 dlg.SetPath(wxConfigBase::Get()->Read(wxT(
"/BatchFrame/actualPath"),wxT(
"")));
367 if (dlg.ShowModal() == wxID_OK)
369 wxConfig::Get()->Write(wxT(
"/BatchFrame/actualPath"), dlg.GetPath());
377 findpano_dlg.ShowModal();
382 wxString defaultdir = wxConfigBase::Get()->Read(wxT(
"/BatchFrame/actualPath"), wxT(
""));
384 _(
"Specify project source file(s)"),
386 _(
"Project files (*.pto)|*.pto|All files (*)|*"),
387 wxFD_OPEN , wxDefaultPosition);
388 dlg.SetDirectory(defaultdir);
390 if (dlg.ShowModal() == wxID_OK)
392 wxConfig::Get()->Write(wxT(
"/BatchFrame/actualPath"), wxPathOnly(dlg.GetPath()));
394 if (sequenceDialog.IsValidPanorama())
396 if (sequenceDialog.ShowModal())
402 wxMessageBox(wxString::Format(_(
"Could not read file %s as valid Hugin pto file."), dlg.GetPath()),
408 wxOK | wxICON_EXCLAMATION, NULL);
415 wxString defaultdir = wxConfigBase::Get()->Read(wxT(
"/BatchFrame/actualPath"),wxT(
""));
417 _(
"Specify project source file(s)"),
419 _(
"Project files (*.pto)|*.pto|All files (*)|*"),
420 wxFD_OPEN | wxFD_MULTIPLE, wxDefaultPosition);
421 dlg.SetDirectory(defaultdir);
423 if (dlg.ShowModal() == wxID_OK)
429 wxConfig::Get()->Write(wxT(
"/BatchFrame/actualPath"), wxPathOnly(paths[0]));
431 wxConfig::Get()->Write(wxT(
"/BatchFrame/actualPath"), dlg.GetDirectory());
433 for(
unsigned int i=0; i<paths.GetCount(); i++)
443 wxString defaultdir = wxConfigBase::Get()->Read(wxT(
"/BatchFrame/actualPath"),wxT(
""));
445 _(
"Specify project source file(s)"),
447 _(
"Project files (*.pto)|*.pto|All files (*)|*"),
448 wxFD_OPEN | wxFD_MULTIPLE, wxDefaultPosition);
449 dlg.SetDirectory(defaultdir);
451 if (dlg.ShowModal() == wxID_OK)
457 wxConfig::Get()->Write(wxT(
"/BatchFrame/actualPath"), wxPathOnly(paths[0]));
459 wxConfig::Get()->Write(wxT(
"/BatchFrame/actualPath"), dlg.GetDirectory());
462 for(
unsigned int i=0; i<paths.GetCount(); i++)
475 dir.Traverse(traverser);
477 for(
unsigned int i=0; i<projects.GetCount(); i++)
488 SetStatusText(wxString::Format(_(
"Added projects from dir %s"), aDir.c_str()));
498 s=wxString::Format(_(
"Add project %s to stitching queue."),aFile.c_str());
501 s=wxString::Format(_(
"Add project %s to assistant queue."),aFile.c_str());
511 for (
size_t i = 0; i < fileList.GetCount(); ++i)
521 GetToolBar()->ToggleTool(XRCID(
"tool_pause"),
false);
534 if(selected.size()== 1)
539 SetStatusText(_(
"The prefix of command cannot be changed."));
545 wxFileName prefix(project->
prefix);
546 wxFileDialog dlg(0, wxString::Format(_(
"Specify output prefix for project %s"), project->
path),
548 prefix.GetFullName(), wxT(
""),
549 wxFD_SAVE, wxDefaultPosition);
550 if (dlg.ShowModal() == wxID_OK)
555 list.Add(dlg.GetPath());
557 if(dlg.ShowModal()!=wxID_OK)
562 wxFileName prefix(dlg.GetPath());
563 while (!prefix.IsDirWritable())
565 wxMessageBox(wxString::Format(_(
"You have no permissions to write in folder \"%s\".\nPlease select another folder for the final output."), prefix.GetPath().c_str()),
571 wxOK | wxICON_INFORMATION);
572 if (dlg.ShowModal() != wxID_OK)
576 prefix = dlg.GetPath();
579 wxString outname(dlg.GetPath());
587 SetStatusText(_(
"The prefix of an assistant target cannot be changed."));
593 if (selected.empty())
595 SetStatusText(_(
"Please select a project"));
600 SetStatusText(_(
"Please select only one project"));
638 if (selectedProjects.empty())
640 SetStatusText(_(
"Please select a project"));
646 for (
auto& i : selectedProjects)
649 if (projectI->
id < 0)
652 SetStatusText(_(
"Changing user defined sequence is not possible for application entries."));
655 if (target != projectI->
target)
658 SetStatusText(_(
"You can change the user defined sequence only for the same type of operation (either stitching or assistant)."));
663 if (dialog.ShowModal() == wxID_OK)
666 for (
auto& i : selectedProjects)
682 else if(returnCode == 2)
686 if(GetToolBar()->GetToolState(XRCID(
"tool_pause")))
688 GetToolBar()->ToggleTool(XRCID(
"tool_pause"),
false);
703 if (selected.size() == 1)
717 if (selected.size() == 1)
730 wxString defaultdir = wxConfigBase::Get()->Read(wxT(
"/BatchFrame/batchPath"),wxT(
""));
732 _(
"Specify batch file to open"),
734 _(
"Batch file (*.ptq)|*.ptq;|All files (*)|*"),
735 wxFD_OPEN, wxDefaultPosition);
736 if (dlg.ShowModal() == wxID_OK)
738 wxConfig::Get()->Write(wxT(
"/BatchFrame/batchPath"), dlg.GetDirectory());
754 const wxFileName exePath(wxStandardPaths::Get().GetExecutablePath());
756 if (selected.size() == 1)
760 wxExecute(_T(
"open -b net.sourceforge.Hugin \"" +
m_batch->
GetProject(*selected.begin())->path + _T(
"\"")));
762 wxExecute(exePath.GetPath(wxPATH_GET_VOLUME | wxPATH_GET_SEPARATOR) + _T(
"hugin \"" +
m_batch->
GetProject(*selected.begin())->path + _T(
"\" -notips")));
766 SetStatusText(_(
"Cannot open app in Hugin."));
771 if (selected.empty())
774 wxMessageDialog message(
this, _(
"No project selected. Open Hugin without project?"),
780 wxYES_NO | wxICON_INFORMATION);
781 if (message.ShowModal() == wxID_YES)
784 wxExecute(_T(
"open -b net.sourceforge.Hugin"));
786 wxExecute(exePath.GetPath(wxPATH_GET_VOLUME | wxPATH_GET_SEPARATOR) + _T(
"hugin"));
793 SetStatusText(_(
"Please select only one project"));
805 GetToolBar()->ToggleTool(XRCID(
"tool_pause"),
true);
815 GetToolBar()->ToggleTool(XRCID(
"tool_pause"),
false);
825 GetToolBar()->ToggleTool(XRCID(
"tool_pause"),
false);
832 bool removeErrors=
false;
835 wxMessageDialog message(
this,_(
"There are failed projects in the list.\nRemove them too?"),
841 wxYES_NO | wxICON_INFORMATION );
842 if(message.ShowModal()==wxID_YES)
847 for(
int i=
projListBox->GetItemCount()-1; i>=0; i--)
864 if(!selected.empty())
866 for (
auto i = selected.rbegin(); i != selected.rend(); ++i)
868 const int selIndex = *i;
871 wxMessageDialog message(
this, _(
"Cannot remove project in progress.\nDo you want to cancel it?"),
877 wxYES_NO | wxICON_INFORMATION);
878 if (message.ShowModal() == wxID_YES)
885 SetStatusText(wxString::Format(_(
"Removed project %s"),
m_batch->
GetProject(selIndex)->
path.c_str()));
895 SetStatusText(_(
"Please select a project to remove"));
903 if(!selected.empty())
905 for (
auto selIndex : selected)
909 wxMessageDialog message(
this, _(
"Cannot reset project in progress.\nDo you want to cancel it?"),
915 wxYES_NO | wxICON_INFORMATION);
916 if (message.ShowModal() == wxID_YES)
930 SetStatusText(_(
"Please select a project to reset"));
939 wxMessageDialog message(
this, _(
"Cannot reset projects in progress.\nDo you want to cancel the batch?"),
945 wxYES_NO | wxICON_INFORMATION);
946 if(message.ShowModal()==wxID_YES)
953 for(
int i=
projListBox->GetItemCount()-1; i>=0; i--)
976 wxString defaultdir = wxConfigBase::Get()->Read(wxT(
"/BatchFrame/batchPath"),wxT(
""));
978 _(
"Specify batch file to save"),
980 _(
"Batch file (*.ptq)|*.ptq;|All files (*)|*"),
981 wxFD_SAVE | wxFD_OVERWRITE_PROMPT, wxDefaultPosition);
982 if (dlg.ShowModal() == wxID_OK)
984 wxConfig::Get()->Write(wxT(
"/BatchFrame/batchPath"), dlg.GetDirectory());
992 if(!selected.empty())
994 for (
auto selIndex : selected)
1003 GetToolBar()->ToggleTool(XRCID(
"tool_pause"),
false);
1037 for (
unsigned int i = 0; i<list->GetCount(); i++)
1039 if (static_cast<Batch::EndTask>((
size_t)list->GetClientData(i)) == endTask)
1041 list->SetSelection(i);
1045 list->SetSelection(0);
1050 wxConfigBase* config=wxConfigBase::Get();
1053 #if defined __WXMAC__ || defined __WXOSX_COCOA__
1056 i=config->Read(wxT(
"/BatchFrame/ShutdownCheck"), 0l);
1063 config->DeleteEntry(wxT(
"/BatchFrame/ShutdownCheck"));
1065 i = config->Read(wxT(
"/BatchFrame/AtEnd"), 0l);
1066 #if defined __WXMAC__ || defined __WXOSX_COCOA__
1075 i=config->Read(wxT(
"/BatchFrame/OverwriteCheck"), 0l);
1076 XRCCTRL(*
this,
"cb_overwrite",wxCheckBox)->SetValue(i!=0);
1078 i=config->Read(wxT(
"/BatchFrame/VerboseCheck"), 0l);
1079 XRCCTRL(*
this,
"cb_verbose",wxCheckBox)->SetValue(i!=0);
1081 i=config->Read(wxT(
"/BatchFrame/AutoRemoveCheck"), 1l);
1082 XRCCTRL(*
this,
"cb_autoremove",wxCheckBox)->SetValue(i!=0);
1084 i=config->Read(wxT(
"/BatchFrame/AutoStitchCheck"), 0l);
1085 XRCCTRL(*
this,
"cb_autostitch",wxCheckBox)->SetValue(i!=0);
1087 i=config->Read(wxT(
"/BatchFrame/SaveLog"), 0l);
1088 XRCCTRL(*
this,
"cb_savelog",wxCheckBox)->SetValue(i!=0);
1099 return XRCCTRL(*
this,
"cb_overwrite",wxCheckBox)->IsChecked();
1104 return XRCCTRL(*
this,
"cb_verbose",wxCheckBox)->IsChecked();
1109 return XRCCTRL(*
this,
"cb_autoremove",wxCheckBox)->IsChecked();
1114 return XRCCTRL(*
this,
"cb_autostitch",wxCheckBox)->IsChecked();
1119 return XRCCTRL(*
this,
"cb_savelog",wxCheckBox)->IsChecked();
1124 wxConfigBase* config=wxConfigBase::Get();
1125 if(event.IsChecked())
1128 config->Write(wxT(
"/BatchFrame/OverwriteCheck"), 1l);
1133 config->Write(wxT(
"/BatchFrame/OverwriteCheck"), 0l);
1141 wxConfigBase* config=wxConfigBase::Get();
1142 config->Write(wxT(
"/BatchFrame/AtEnd"), static_cast<long>(
m_batch->
atEnd));
1148 wxConfigBase* config=wxConfigBase::Get();
1149 if(event.IsChecked())
1152 config->Write(wxT(
"/BatchFrame/VerboseCheck"), 1l);
1157 config->Write(wxT(
"/BatchFrame/VerboseCheck"), 0l);
1171 wxConfigBase* config=wxConfigBase::Get();
1174 config->Write(wxT(
"/BatchFrame/AutoRemoveCheck"), 1l);
1178 config->Write(wxT(
"/BatchFrame/AutoRemoveCheck"), 0l);
1186 wxConfigBase* config=wxConfigBase::Get();
1189 config->Write(wxT(
"/BatchFrame/AutoStitchCheck"), 1l);
1193 config->Write(wxT(
"/BatchFrame/AutoStitchCheck"), 0l);
1201 wxConfigBase* config=wxConfigBase::Get();
1204 config->Write(wxT(
"/BatchFrame/SaveLog"), 1l);
1208 config->Write(wxT(
"/BatchFrame/SaveLog"), 0l);
1218 wxMessageDialog message(
this, _(
"The batch queue contains many items.\nThis can have negative effects on performance.\nShould the batch queue be cleared now?"),
1224 wxYES_NO | wxICON_INFORMATION);
1225 message.SetYesNoLabels(_(
"Clear batch queue now"), _(
"Keep batch queue"));
1226 if (message.ShowModal() == wxID_YES)
1233 wxConfigBase* config=wxConfigBase::Get();
1236 config->Write(wxT(
"/BatchFrame/Max"), 1l);
1237 config->Write(wxT(
"/BatchFrame/Minimized"), 0l);
1241 config->Write(wxT(
"/BatchFrame/Max"), 0l);
1242 if(
m_tray!=NULL && !IsShown())
1244 config->Write(wxT(
"/BatchFrame/Minimized"), 1l);
1248 config->Write(wxT(
"/BatchFrame/Minimized"), 0l);
1249 config->Write(wxT(
"/BatchFrame/Width"), GetSize().GetWidth());
1250 config->Write(wxT(
"/BatchFrame/Height"), GetSize().GetHeight());
1293 if(index>=0 && index<(
projListBox->GetItemCount()-1))
1315 GetToolBar()->ToggleTool(XRCID(
"tool_pause"),
false);
1327 wxConfigBase* config=wxConfigBase::Get();
1328 int width = config->Read(wxT(
"/BatchFrame/Width"), -1l);
1329 int height = config->Read(wxT(
"/BatchFrame/Height"), -1l);
1330 int max = config->Read(wxT(
"/BatchFrame/Max"), -1l);
1331 int min = config->Read(wxT(
"/BatchFrame/Minimized"), -1l);
1332 if((width != -1) && (height != -1))
1334 SetSize(width,height);
1338 SetSize(this->FromDIP(wxSize(600,400)));
1357 failedProjects_dlg.ShowModal();
1364 if (
m_tray && e.GetInt() == 1)
1373 SetStatusText(status);
1376 #if defined __WXMSW__ && wxUSE_TASKBARICON_BALLOONS
1377 m_tray->ShowBalloon(_(
"PTBatcherGUI"),status,5000,wxICON_INFORMATION);
1400 #if defined __WXMSW__ && wxUSE_TASKBARBUTTON
1404 wxTaskBarButton* taskBarButton = MSWGetTaskBarButton();
1405 if (taskBarButton != NULL)
1409 taskBarButton->SetProgressValue(wxTASKBAR_BUTTON_NO_PROGRESS);
1413 taskBarButton->SetProgressRange(100);
1414 taskBarButton->SetProgressState(
m_batch->
IsPaused() ? wxTASKBAR_BUTTON_PAUSED : wxTASKBAR_BUTTON_NORMAL);
1427 Show(!e.IsIconized());
1435 m_batch->
verbose=XRCCTRL(*
this,
"cb_verbose",wxCheckBox)->IsChecked();
1442 if (!e.IsIconized())
1453 m_batch->
verbose=XRCCTRL(*
this,
"cb_verbose",wxCheckBox)->IsChecked();
1460 std::set<long> selectedID;
1461 for (
auto index : selected)
1467 for(
auto id:selectedID)
1480 wxConfigBase* config=wxConfigBase::Get();
1481 config->Write(wxT(
"/BatchFrame/minimizeTray"), event.IsChecked());
bool NoErrors()
Returns true if there are no failed projects in batch.
int GetRunningCount()
Returns number of projects currently in progress.
int ClearBatch()
Clears batch list and returns 0 if succesful.
void SetLocaleAndXRC(wxLocale *locale, wxString xrc)
void OnButtonChangePrefix(wxCommandEvent &event)
bool FileExists(const std::string &filename)
checks if file exists
void ChangePrefix(int index, wxString newPrefix)
bool GetCheckAutoRemove()
return if auto remove checkbox is checked
Definition of GenerateSequenceDialog class.
void SwapProject(int index)
Swaps position in batch of project at index with project at index+1.
void RemoveProjectAtIndex(int selIndex)
Removes project at index from batch list.
int GetProjectCount()
Returns number of projects in batch list.
wxString userDefindSequence
bool GetCheckSaveLog()
return if always save log is checked
void AddDirToList(wxString aDir)
class for showing a status bar with progress, the progress bar is always in the last field of the sta...
void SetMissing(int index)
Definition of failed projects dialog.
void OnButtonReset(wxCommandEvent &event)
ProgressStatusBar * m_progStatusBar
void SetStatus(int index, Project::Status status)
Used internally to set status of selected project.
size_t GetFailedProjectsCount()
returns number of failed projects
Batch::EndTask GetEndTask()
return which task should be executed at end
void OnButtonOpenBatch(wxCommandEvent &event)
void AddToList(wxString aFile, Project::Target target=Project::STITCHING, wxString userDefined=wxEmptyString)
void CancelBatch()
Stops batch run, failing projects in progress.
void OnButtonGenerateSequence(wxCommandEvent &e)
generate a sequence of panoramas
void OnButtonPause(wxCommandEvent &event)
void OnProcessTerminate(wxProcessEvent &event)
Dialog for generate panoramas from a sequence of images.
void AppendProject(Project *project)
class to show a taskbar balloon
void OnButtonHelp(wxCommandEvent &event)
void OnButtonChangeUserDefinedSequence(wxCommandEvent &event)
void OnClose(wxCloseEvent &event)
bool GetCheckOverwrite()
return if overwrite checkbox is checked
void AddProjectToBatch(wxString projectFile, wxString outputFile=wxEmptyString, wxString userDefinedSequence=wxEmptyString, Project::Target target=Project::STITCHING)
Adds a project entry in the batch list.
void OnButtonSaveBatch(wxCommandEvent &event)
wxString GetText(int row, int column)
wxString GetNewSequence()
returns the newly selected sequence
void AddAppToBatch(wxString app)
Adds an application entry in the batch list.
int LoadBatchFile(wxString file)
Clears current batch list and loads projects from batch file.
bool IsPaused()
Returns true if batch execution is currently paused.
void UpdateBatchVerboseStatus()
update visibility of verbose output window depending on status of verbose checkbox ...
void ChangePrefix(int index, wxString newPrefix)
Changes output prefix for project at index.
Batch processor for Hugin with GUI.
void OnUpdateListBox(wxTimerEvent &event)
called by thread to update listbox
void ChangePrefix(int index, wxString newPrefix)
void ChangeUserDefined(int index, wxString newUserDefined)
std::set< unsigned int > UIntSet
void OnButtonSkip(wxCommandEvent &event)
Project::Status GetStatus(int index)
Returns current status of project at index.
bool IsRunning()
return true, if batch is running
void OnRefillListBox(wxCommandEvent &e)
called if the project box needs to be updated, because projects were added or deleted ...
void UpdateTaskBarProgressBar()
update the progress bar in the task bar
void PauseBatch()
Pauses and continues batch execution.
void OnButtonAddCommand(wxCommandEvent &event)
void OnButtonMoveUp(wxCommandEvent &event)
Dialog for finding panorama in given directory.
class for showing a taskbar/tray icon
Definition of dialog to change user defined sequence.
void ChangeUserDefined(int index, wxString newUserDefined)
int GetProgress()
return current progress value, should be in range 0 - 100, or -1 if the progress gauge is hidden ...
bool UpdateStatus(int index, Project *project)
void UpdateTrayIcon(const bool createTrayIcon)
create or destroy the tray icon
void OnMinimizeTrayMenu(wxCommandEvent &e)
void SaveTemp()
Saves batch list to temporary file.
void OnButtonClear(wxCommandEvent &event)
Project * GetProject(int index)
Returns project at index.
void OnCheckVerbose(wxCommandEvent &event)
wxStatusBar * OnCreateStatusBar(int number, long style, wxWindowID id, const wxString &name)
Dialog for changing the user defined sequence.
void SetStatusInformation(wxString status)
sets status message, also updates tooltip of taskbar icon
void ShowOutput(bool isVisible=true)
Set visibility of all running projects.
void OnButtonSearchPano(wxCommandEvent &e)
void OnButtonAddToStitchingQueue(wxCommandEvent &event)
let the user select a project file which should be added to the stitching queue
wxArrayString GetProjectFiles()
BatchTaskBarIcon * m_tray
void OnCheckOverwrite(wxCommandEvent &event)
void OnButtonOpenWithHugin(wxCommandEvent &event)
void OnMinimize(wxIconizeEvent &e)
handle when minimize or restore image
void OnButtonResetAll(wxCommandEvent &event)
Batch processor for Hugin with GUI.
void OnButtonMoveDown(wxCommandEvent &event)
wxHelpController & GetHelpController()
return help controller for open help
bool IsRunning()
returns true, if batch is running
void RunBatch()
Starts batch execution.
void SwapProject(int index, bool down)
bool OnDropFiles(wxCoord x, wxCoord y, const wxArrayString &filenames)
File/directory drag and drop handler method.
void SetProgress(int progress)
update progress bar
void showBalloon(unsigned int iTimeout)
display the baloon and run the timer
void OnButtonCancel(wxCommandEvent &event)
HuginBase::UIntSet GetSelectedProjects()
void OnChoiceEnd(wxCommandEvent &event)
void OnButtonRemoveComplete(wxCommandEvent &event)
wxTimer * m_updateProjectsTimer
void CancelProject(int index)
Cancels project at index in batch, failing it.
void OnBatchInformation(wxCommandEvent &e)
called when batch wants to show some progress message
void SaveBatchFile(wxString file)
Saves batch list to file.
bool CompareProjectsInLists(int stitchListIndex, int batchListIndex)
Compares two project at indexes in both lists and returns true if they have identical project ids...
void OnUserExit(wxCommandEvent &event)
bool GetCheckAutoStitch()
return if auto stitch checkbox is checked
void OnCheckAutoRemove(wxCommandEvent &event)
event handler called when auto remove checkbox was changed
Simple class that forward the drop to the mainframe.
void SelectEndTask(wxControlWithItems *list, const Batch::EndTask endTask)
void OnBatchFailed(wxCommandEvent &event)
called when batch was finished and there are failed projects
bool IsPaused()
returns true, if batch is paused
void OnCheckAutoStitch(wxCommandEvent &event)
event handler called when auto stitch checkbox was changed
void ReloadProject(int index, Project *project)
Dialog for finding panorama in given directory.
void OnCheckSaveLog(wxCommandEvent &event)
event handler called when always save log checkbox was changed
void OnButtonRemoveFromList(wxCommandEvent &event)
ProjectListBox * projListBox
void OnProgress(wxCommandEvent &event)
event handler for update progress controls
void OnButtonAddDir(wxCommandEvent &event)
int LoadTemp()
Loads temporary batch file.
bool GetCheckVerbose()
return if verbose checkbox is checked
void OnButtonRunBatch(wxCommandEvent &event)
void SetInternalVerbose(bool newVerbose)
sets the current verbose status, does not update the checkbox
BatchFrame(wxLocale *locale, wxString xrc)
void ChangeUserDefined(int index, wxString newUserDefined)
Changes user defined sequence for project at index.
void SwapProject(int index)
void OnButtonAddToAssistantQueue(wxCommandEvent &event)
let the user select a project file which should be added to the stitching queue
void AddArrayToList(const wxArrayString &fileList, Project::Target target)