From: <mk...@us...> - 2008-07-29 02:26:30
|
Revision: 3246 http://hugin.svn.sourceforge.net/hugin/?rev=3246&view=rev Author: mkuder Date: 2008-07-29 02:26:27 +0000 (Tue, 29 Jul 2008) Log Message: ----------- - improved linux pause function, should pause all subprocesses now - fixed output format column Modified Paths: -------------- hugin/branches/gsoc2008_batch_processing/src/PTButcher/PTButcher.cpp hugin/branches/gsoc2008_batch_processing/src/PTButcher/PTButcher.h hugin/branches/gsoc2008_batch_processing/src/PTButcher/ProjectListBox.cpp hugin/branches/gsoc2008_batch_processing/src/PTButcher/ProjectListBox.h hugin/branches/gsoc2008_batch_processing/src/hugin1/base_wx/MyExternalCmdExecDialog.cpp Added Paths: ----------- hugin/branches/gsoc2008_batch_processing/src/hugin1/hugin/xrc/data/media-skip-forward.png Modified: hugin/branches/gsoc2008_batch_processing/src/PTButcher/PTButcher.cpp =================================================================== --- hugin/branches/gsoc2008_batch_processing/src/PTButcher/PTButcher.cpp 2008-07-28 23:11:13 UTC (rev 3245) +++ hugin/branches/gsoc2008_batch_processing/src/PTButcher/PTButcher.cpp 2008-07-29 02:26:27 UTC (rev 3246) @@ -596,10 +596,26 @@ wxImage::AddHandler(new wxPNGHandler()); wxBitmap icon1(_T("../share/hugin/xrc/data/media-playback-start.png"),wxBITMAP_TYPE_PNG); wxBitmap icon2(_T("../share/hugin/xrc/data/media-playback-pause.png"),wxBITMAP_TYPE_PNG); - wxBitmap icon3(_T("../share/hugin/xrc/data/media-playback-stop.png"),wxBITMAP_TYPE_PNG); + //wxBitmap icon3(_T("../share/hugin/xrc/data/media-playback-stop.png"),wxBITMAP_TYPE_PNG); + wxBitmap icon3(_T("../share/hugin/xrc/data/media-skip-forward.png"),wxBITMAP_TYPE_PNG); + //wxBitmap icon8(_T("E:/svn/huginbase/hugin-build/INSTALL/FILES/bin/emblem-symbolic-link.png"),wxBITMAP_TYPE_PNG); + //wxBitmap icon9(_T("E:/svn/huginbase/hugin-build/INSTALL/FILES/bin/emblem-unreadable.png"),wxBITMAP_TYPE_PNG); + wxBitmap icon7(_T("../share/hugin/xrc/data/media-playback-stop.png"),wxBITMAP_TYPE_PNG); + //wxBitmap icon4(_T("E:/svn/huginbase/hugin-build/INSTALL/FILES/bin/image-missing.png"),wxBITMAP_TYPE_PNG); + //wxBitmap icon5(_T("E:/svn/huginbase/hugin-build/INSTALL/FILES/bin/go-jump.png"),wxBITMAP_TYPE_PNG); + //wxBitmap icon6(_T("E:/svn/huginbase/hugin-build/INSTALL/FILES/bin/process-stop.png"),wxBITMAP_TYPE_PNG); toolbar->AddTool(TOOLRUN, _("start"), icon1, wxNullBitmap, wxITEM_NORMAL, _T("Start batch"), _T("Starts batch execution")); + toolbar->AddTool(TOOLSKIP, _("skip"), icon3, wxNullBitmap, wxITEM_NORMAL, _T("Skip project(s)"), _T("Skips execution of currently running project(s)")); toolbar->AddTool(TOOLPAUSE, _("pause"), icon2, wxNullBitmap, wxITEM_CHECK, _T("Pause batch"), _T("Pauses batch execution")); - toolbar->AddTool(TOOLCANCEL, _("cancel"), icon3, wxNullBitmap, wxITEM_NORMAL, _T("Cancel batch"), _T("Cancels batch execution")); + toolbar->AddTool(TOOLCANCEL, _("cancel"), icon7, wxNullBitmap, wxITEM_NORMAL, _T("Cancel batch"), _T("Cancels batch execution")); + /*toolbar->AddTool(wxID_ANY, _("cancel"), icon8, wxNullBitmap, wxITEM_NORMAL, _T("Cancel batch"), _T("Cancels batch execution")); + + toolbar->AddTool(wxID_ANY, _("cancel"), icon9, wxNullBitmap, wxITEM_NORMAL, _T("Cancel batch"), _T("Cancels batch execution")); + + + toolbar->AddTool(wxID_ANY, _("cancel"), icon4, wxNullBitmap, wxITEM_NORMAL, _T("Cancel batch"), _T("Cancels batch execution")); + toolbar->AddTool(wxID_ANY, _("cancel"), icon5, wxNullBitmap, wxITEM_NORMAL, _T("Cancel batch"), _T("Cancels batch execution")); + toolbar->AddTool(wxID_ANY, _("cancel"), icon6, wxNullBitmap, wxITEM_NORMAL, _T("Cancel batch"), _T("Cancels batch execution"));*/ toolbar->Realize(); //topSizer->AddGrowableRow(0,0); @@ -892,16 +908,27 @@ } } } -void BatchFrame::OnButtonCancel(wxCommandEvent &event) +void BatchFrame::OnButtonSkip(wxCommandEvent &event) { for(unsigned int i=0; i<wxGetApp().stitchFrames.GetCount(); i++) - wxGetApp().stitchFrames.Item(i)->OnQuit(event);//m_stitchPanel->CancelStitch(); + wxGetApp().stitchFrames.Item(i)->OnQuit(event); if(((wxToolBar*)FindWindow(TOOLBAR))->GetToolState(TOOLPAUSE)) { ((wxToolBar*)FindWindow(TOOLBAR))->ToggleTool(TOOLPAUSE,false); } } + +void BatchFrame::OnButtonCancel(wxCommandEvent &event) +{ + /*for(unsigned int i=0; i<wxGetApp().stitchFrames.GetCount(); i++) + wxGetApp().stitchFrames.Item(i)->OnQuit(event); + if(((wxToolBar*)FindWindow(TOOLBAR))->GetToolState(TOOLPAUSE)) + { + ((wxToolBar*)FindWindow(TOOLBAR))->ToggleTool(TOOLPAUSE,false); + }*/ + +} /*Starts execution of projects in batch list.*/ void BatchFrame::RunBatch() { Modified: hugin/branches/gsoc2008_batch_processing/src/PTButcher/PTButcher.h =================================================================== --- hugin/branches/gsoc2008_batch_processing/src/PTButcher/PTButcher.h 2008-07-28 23:11:13 UTC (rev 3245) +++ hugin/branches/gsoc2008_batch_processing/src/PTButcher/PTButcher.h 2008-07-29 02:26:27 UTC (rev 3246) @@ -45,6 +45,7 @@ void OnButtonMoveUp(wxCommandEvent &event); void OnButtonMoveDown(wxCommandEvent &event); void OnButtonPause(wxCommandEvent &event); + void OnButtonSkip(wxCommandEvent &event); void OnButtonCancel(wxCommandEvent &event); void OnCheckParallel(wxCommandEvent &event); void OnCheckDelete(wxCommandEvent &event); @@ -90,12 +91,14 @@ const int BUTTONCOMPLETE = 14; const int TOOLRUN = 15; const int TOOLPAUSE = 16; -const int TOOLCANCEL = 17; -const int TOOLBAR = 18; +const int TOOLSKIP = 17; +const int TOOLCANCEL = 18; +const int TOOLBAR = 19; BEGIN_EVENT_TABLE(BatchFrame, wxFrame) EVT_TOOL(TOOLRUN,BatchFrame::OnButtonRunBatch) EVT_TOOL(TOOLPAUSE,BatchFrame::OnButtonPause) + EVT_TOOL(TOOLSKIP,BatchFrame::OnButtonSkip) EVT_TOOL(TOOLCANCEL,BatchFrame::OnButtonCancel) EVT_BUTTON(BUTTONADD, BatchFrame::OnButtonAddToList) EVT_BUTTON(BUTTONCOMMAND, BatchFrame::OnButtonAddCommand) Modified: hugin/branches/gsoc2008_batch_processing/src/PTButcher/ProjectListBox.cpp =================================================================== --- hugin/branches/gsoc2008_batch_processing/src/PTButcher/ProjectListBox.cpp 2008-07-28 23:11:13 UTC (rev 3245) +++ hugin/branches/gsoc2008_batch_processing/src/PTButcher/ProjectListBox.cpp 2008-07-29 02:26:27 UTC (rev 3246) @@ -221,8 +221,10 @@ case 4: if(project->status!=Project::MISSING) { - str = wxString::FromAscii(project->options.getFormatName(project->options.outputFormat).c_str()); - str = str+wxT(" (.")+wxString::FromAscii(project->options.getOutputExtension().c_str())+wxT(")"); + //str = wxString::FromAscii(project->options.getFormatName(project->options.outputFormat).c_str()); + //str = str+wxT(" (.")+wxString::FromAscii(project->options.outputImageType.c_str())+wxT(")"); + str = GetLongerFormatName(project->options.outputImageType); + str = str+wxT(" (.")+wxString::FromAscii(project->options.outputImageType.c_str())+wxT(")"); return str; } case 5: @@ -241,6 +243,20 @@ } } +wxString ProjectListBox::GetLongerFormatName(std::string str) +{ + if(str=="tif") + return _T("TIFF"); + else if(str=="jpg") + return _T("JPEG"); + else if(str=="png") + return _T("PNG"); + else if(str=="exr") + return _T("EXR"); + else + return _T(""); +} + const wxString ProjectListBox::columnTitle[] = { _T("ID"), _T("Project"), Modified: hugin/branches/gsoc2008_batch_processing/src/PTButcher/ProjectListBox.h =================================================================== --- hugin/branches/gsoc2008_batch_processing/src/PTButcher/ProjectListBox.h 2008-07-28 23:11:13 UTC (rev 3245) +++ hugin/branches/gsoc2008_batch_processing/src/PTButcher/ProjectListBox.h 2008-07-29 02:26:27 UTC (rev 3246) @@ -25,6 +25,7 @@ void OnSelect(wxListEvent &event); void OnDeselect(wxListEvent &event); void OnColumnWidthChange(wxListEvent &event); + wxString GetLongerFormatName(std::string str); int m_selected; IntArray columns; Modified: hugin/branches/gsoc2008_batch_processing/src/hugin1/base_wx/MyExternalCmdExecDialog.cpp =================================================================== --- hugin/branches/gsoc2008_batch_processing/src/hugin1/base_wx/MyExternalCmdExecDialog.cpp 2008-07-28 23:11:13 UTC (rev 3245) +++ hugin/branches/gsoc2008_batch_processing/src/hugin1/base_wx/MyExternalCmdExecDialog.cpp 2008-07-29 02:26:27 UTC (rev 3246) @@ -42,6 +42,7 @@ #else #include <sys/types.h> #include <signal.h> //needed to pause on unix - kill function + #include <unistd.h> //needed to separate the process group of make #endif // __WINDOWS__ #include "MyExternalCmdExecDialog.h" @@ -200,10 +201,11 @@ } CloseHandle(hProcessSnapshot); #else + //send the process group a pause/cont signal if(pause) - kill(m_pidLast,SIGSTOP); + killpg(m_pidLast,SIGSTOP); else - kill(m_pidLast,SIGCONT); + killpg(m_pidLast,SIGCONT); #endif __WXMSW__ } @@ -228,6 +230,11 @@ else { AddAsyncProcess(process); +#ifndef __WINDOWS__ + //on linux we put the new process into a separate group, + //so it can be paused with all it's children at the same time + setpgid(m_pidLast,m_pidLast); +#endif } m_cmdLast = cmd; return 0; Added: hugin/branches/gsoc2008_batch_processing/src/hugin1/hugin/xrc/data/media-skip-forward.png =================================================================== --- hugin/branches/gsoc2008_batch_processing/src/hugin1/hugin/xrc/data/media-skip-forward.png (rev 0) +++ hugin/branches/gsoc2008_batch_processing/src/hugin1/hugin/xrc/data/media-skip-forward.png 2008-07-29 02:26:27 UTC (rev 3246) @@ -0,0 +1,10 @@ +\x89PNG + + |