mirror of https://github.com/BOINC/boinc.git
*** empty log message ***
svn path=/trunk/boinc/; revision=5917
This commit is contained in:
parent
9796c6d9e8
commit
fcc0732098
|
@ -27522,7 +27522,7 @@ David 21 April 2005
|
|||
MainDocument.cpp,h
|
||||
ViewProjects.cpp
|
||||
|
||||
Rom 20 April 2005
|
||||
Rom 21 April 2005
|
||||
- Code Cleanup
|
||||
|
||||
clientgui/
|
||||
|
@ -27535,3 +27535,21 @@ Rom 20 April 2005
|
|||
ViewStatistics.cpp, .h
|
||||
ViewTransfers.cpp, .h
|
||||
ViewWork.cpp, .h
|
||||
|
||||
David 21 April 2005
|
||||
- CPU scheduler: don't run projects or results suspended via GUI,
|
||||
even in earliest-deadline-first mode
|
||||
- fix button logic for projects
|
||||
- set buttons in work tab based on selection
|
||||
- include graphics_mode_acked in GUI RPC description RESULT.
|
||||
Could indicate whether app has window open (but doesn't yet).
|
||||
|
||||
client/
|
||||
app.C
|
||||
cs_apps.C
|
||||
clientgui/
|
||||
MainDocument.cpp,h
|
||||
ViewProjects.cpp,h
|
||||
ViewWork.cpp, h
|
||||
lib/
|
||||
gui_rpc_client.h
|
||||
|
|
15
client/app.C
15
client/app.C
|
@ -352,9 +352,7 @@ int ACTIVE_TASK::write(MIOFILE& fout) {
|
|||
" <fraction_done>%f</fraction_done>\n"
|
||||
" <current_cpu_time>%f</current_cpu_time>\n"
|
||||
" <vm_bytes>%f</vm_bytes>\n"
|
||||
" <rss_bytes>%f</rss_bytes>\n"
|
||||
"%s"
|
||||
"</active_task>\n",
|
||||
" <rss_bytes>%f</rss_bytes>\n",
|
||||
result->project->master_url,
|
||||
result->name,
|
||||
task_state,
|
||||
|
@ -365,9 +363,16 @@ int ACTIVE_TASK::write(MIOFILE& fout) {
|
|||
fraction_done,
|
||||
current_cpu_time,
|
||||
vm_bytes,
|
||||
rss_bytes,
|
||||
supports_graphics()?" <supports_graphics/>\n":""
|
||||
rss_bytes
|
||||
);
|
||||
if (supports_graphics()) {
|
||||
fout.printf(
|
||||
" <supports_graphics/>\n"
|
||||
" <graphics_mode_acked>%d</graphics_mode_acked>\n",
|
||||
graphics_mode_acked
|
||||
);
|
||||
}
|
||||
fout.printf("</active_task>\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -347,6 +347,7 @@ bool CLIENT_STATE::schedule_largest_debt_project(double expected_pay_off) {
|
|||
best_project->next_runnable_result = 0;
|
||||
return true;
|
||||
}
|
||||
|
||||
// Schedule the active task with the earliest deadline
|
||||
// Return true iff a task was scheduled.
|
||||
//
|
||||
|
@ -360,6 +361,8 @@ bool CLIENT_STATE::schedule_earliest_deadline_result(double expected_pay_off) {
|
|||
for (i=0; i < results.size(); ++i) {
|
||||
RESULT *r = results[i];
|
||||
if (r->state != RESULT_FILES_DOWNLOADED) continue;
|
||||
if (r->suspended_via_gui) continue;
|
||||
if (r->project->suspended_via_gui) continue;
|
||||
if (r->project->non_cpu_intensive) continue;
|
||||
if (r->already_selected) continue;
|
||||
if (first || r->report_deadline < earliest_deadline) {
|
||||
|
|
|
@ -1063,6 +1063,10 @@ PROJECT* CMainDocument::project(int i) {
|
|||
return project_status.projects[i];
|
||||
}
|
||||
|
||||
RESULT* CMainDocument::result(int i) {
|
||||
return results.results[i];
|
||||
}
|
||||
|
||||
int CMainDocument::CachedResultsStatusUpdate() {
|
||||
int iRetVal = 0;
|
||||
|
||||
|
|
|
@ -164,6 +164,7 @@ private:
|
|||
|
||||
public:
|
||||
PROJECT* project(int);
|
||||
RESULT* result(int);
|
||||
int GetProjectCount();
|
||||
int GetProjectProjectName(int iIndex, wxString& strBuffer);
|
||||
int GetProjectProjectURL(int iIndex, wxString& strBuffer);
|
||||
|
|
|
@ -77,9 +77,7 @@ IMPLEMENT_DYNAMIC_CLASS(CViewProjects, CBOINCBaseView)
|
|||
BEGIN_EVENT_TABLE (CViewProjects, CBOINCBaseView)
|
||||
EVT_BUTTON(ID_TASK_PROJECT_UPDATE, CViewProjects::OnProjectUpdate)
|
||||
EVT_BUTTON(ID_TASK_PROJECT_SUSPEND, CViewProjects::OnProjectSuspend)
|
||||
EVT_BUTTON(ID_TASK_PROJECT_RESUME, CViewProjects::OnProjectResume)
|
||||
EVT_BUTTON(ID_TASK_PROJECT_NONEWWORK, CViewProjects::OnProjectNoNewWork)
|
||||
EVT_BUTTON(ID_TASK_PROJECT_ALLOWNEWWORK, CViewProjects::OnProjectAllowNewWork)
|
||||
EVT_BUTTON(ID_TASK_PROJECT_RESET, CViewProjects::OnProjectReset)
|
||||
EVT_BUTTON(ID_TASK_PROJECT_DETACH, CViewProjects::OnProjectDetach)
|
||||
EVT_BUTTON(ID_TASK_PROJECT_ATTACH, CViewProjects::OnProjectAttach)
|
||||
|
@ -108,15 +106,15 @@ CViewProjects::CViewProjects(wxNotebook* pNotebook) :
|
|||
m_TaskGroups.push_back( pGroup );
|
||||
|
||||
pItem = new CTaskItem(
|
||||
_("Update project"),
|
||||
_("Report all completed work and refresh "
|
||||
"your credit and preferences for this project."),
|
||||
_("Update"),
|
||||
_("Report all completed work, get latest credit, "
|
||||
"get latest preferences, and possibly get more work."),
|
||||
ID_TASK_PROJECT_UPDATE
|
||||
);
|
||||
pGroup->m_Tasks.push_back( pItem );
|
||||
|
||||
pItem = new CTaskItem(
|
||||
_("Suspend project"),
|
||||
_("Suspend"),
|
||||
_("Stop work for this project "
|
||||
"(you can resume later)."),
|
||||
ID_TASK_PROJECT_SUSPEND
|
||||
|
@ -144,7 +142,7 @@ CViewProjects::CViewProjects(wxNotebook* pNotebook) :
|
|||
pGroup->m_Tasks.push_back( pItem );
|
||||
|
||||
pItem = new CTaskItem(
|
||||
_("Detach from project"),
|
||||
_("Detach"),
|
||||
_("Detach this computer from this project. "
|
||||
"Work in progress will be lost. "
|
||||
"You can update the project first to report "
|
||||
|
@ -192,6 +190,8 @@ CViewProjects::CViewProjects(wxNotebook* pNotebook) :
|
|||
m_pListPane->InsertColumn(COLUMN_AVGCREDIT, _("Avg. credit"), wxLIST_FORMAT_RIGHT, 80);
|
||||
m_pListPane->InsertColumn(COLUMN_RESOURCESHARE, _("Resource share"), wxLIST_FORMAT_CENTRE, 85);
|
||||
m_pListPane->InsertColumn(COLUMN_STATUS, _("Status"), wxLIST_FORMAT_LEFT, 150);
|
||||
|
||||
UpdateSelection();
|
||||
}
|
||||
|
||||
|
||||
|
@ -248,9 +248,16 @@ void CViewProjects::OnProjectSuspend( wxCommandEvent& event ) {
|
|||
wxASSERT(NULL != m_pTaskPane);
|
||||
wxASSERT(NULL != m_pListPane);
|
||||
|
||||
pFrame->UpdateStatusText(_("Suspending project..."));
|
||||
pDoc->ProjectSuspend(m_pListPane->GetFirstSelected());
|
||||
pFrame->UpdateStatusText(wxT(""));
|
||||
PROJECT* project = pDoc->project(m_pListPane->GetFirstSelected());
|
||||
if (project->suspended_via_gui) {
|
||||
pFrame->UpdateStatusText(_("Resuming project..."));
|
||||
pDoc->ProjectResume(m_pListPane->GetFirstSelected());
|
||||
pFrame->UpdateStatusText(wxT(""));
|
||||
} else {
|
||||
pFrame->UpdateStatusText(_("Suspending project..."));
|
||||
pDoc->ProjectSuspend(m_pListPane->GetFirstSelected());
|
||||
pFrame->UpdateStatusText(wxT(""));
|
||||
}
|
||||
|
||||
UpdateSelection();
|
||||
pFrame->ProcessRefreshView();
|
||||
|
@ -259,30 +266,6 @@ void CViewProjects::OnProjectSuspend( wxCommandEvent& event ) {
|
|||
}
|
||||
|
||||
|
||||
void CViewProjects::OnProjectResume( wxCommandEvent& event ) {
|
||||
wxLogTrace(wxT("Function Start/End"), wxT("CViewProjects::OnProjectResume - Function Begin"));
|
||||
|
||||
CMainDocument* pDoc = wxGetApp().GetDocument();
|
||||
CMainFrame* pFrame = wxGetApp().GetFrame();
|
||||
|
||||
wxASSERT(NULL != pDoc);
|
||||
wxASSERT(wxDynamicCast(pDoc, CMainDocument));
|
||||
wxASSERT(NULL != pFrame);
|
||||
wxASSERT(wxDynamicCast(pFrame, CMainFrame));
|
||||
wxASSERT(NULL != m_pTaskPane);
|
||||
wxASSERT(NULL != m_pListPane);
|
||||
|
||||
pFrame->UpdateStatusText(_("Resuming project..."));
|
||||
pDoc->ProjectResume(m_pListPane->GetFirstSelected());
|
||||
pFrame->UpdateStatusText(wxT(""));
|
||||
|
||||
UpdateSelection();
|
||||
pFrame->ProcessRefreshView();
|
||||
|
||||
wxLogTrace(wxT("Function Start/End"), wxT("CViewProjects::OnProjectResume - Function End"));
|
||||
}
|
||||
|
||||
|
||||
void CViewProjects::OnProjectNoNewWork( wxCommandEvent& event ) {
|
||||
wxLogTrace(wxT("Function Start/End"), wxT("CViewProjects::OnProjectNoNewWork - Function Begin"));
|
||||
|
||||
|
@ -296,9 +279,16 @@ void CViewProjects::OnProjectNoNewWork( wxCommandEvent& event ) {
|
|||
wxASSERT(NULL != m_pTaskPane);
|
||||
wxASSERT(NULL != m_pListPane);
|
||||
|
||||
pFrame->UpdateStatusText(_("Telling project to not fetch additional work..."));
|
||||
pDoc->ProjectNoMoreWork(m_pListPane->GetFirstSelected());
|
||||
pFrame->UpdateStatusText(wxT(""));
|
||||
PROJECT* project = pDoc->project(m_pListPane->GetFirstSelected());
|
||||
if (project->dont_request_more_work) {
|
||||
pFrame->UpdateStatusText(_("Telling project to allow additional work downloads..."));
|
||||
pDoc->ProjectAllowMoreWork(m_pListPane->GetFirstSelected());
|
||||
pFrame->UpdateStatusText(wxT(""));
|
||||
} else {
|
||||
pFrame->UpdateStatusText(_("Telling project to not fetch additional work..."));
|
||||
pDoc->ProjectNoMoreWork(m_pListPane->GetFirstSelected());
|
||||
pFrame->UpdateStatusText(wxT(""));
|
||||
}
|
||||
|
||||
UpdateSelection();
|
||||
pFrame->ProcessRefreshView();
|
||||
|
@ -307,28 +297,6 @@ void CViewProjects::OnProjectNoNewWork( wxCommandEvent& event ) {
|
|||
}
|
||||
|
||||
|
||||
void CViewProjects::OnProjectAllowNewWork( wxCommandEvent& event ) {
|
||||
wxLogTrace(wxT("Function Start/End"), wxT("CViewProjects::OnProjectAllowNewWork - Function Begin"));
|
||||
|
||||
CMainDocument* pDoc = wxGetApp().GetDocument();
|
||||
CMainFrame* pFrame = wxGetApp().GetFrame();
|
||||
|
||||
wxASSERT(NULL != pDoc);
|
||||
wxASSERT(wxDynamicCast(pDoc, CMainDocument));
|
||||
wxASSERT(NULL != pFrame);
|
||||
wxASSERT(wxDynamicCast(pFrame, CMainFrame));
|
||||
wxASSERT(NULL != m_pTaskPane);
|
||||
wxASSERT(NULL != m_pListPane);
|
||||
|
||||
pFrame->UpdateStatusText(_("Telling project to allow additional work downloads..."));
|
||||
pDoc->ProjectAllowMoreWork(m_pListPane->GetFirstSelected());
|
||||
pFrame->UpdateStatusText(wxT(""));
|
||||
|
||||
UpdateSelection();
|
||||
pFrame->ProcessRefreshView();
|
||||
|
||||
wxLogTrace(wxT("Function Start/End"), wxT("CViewProjects::OnProjectAllowNewWork - Function End"));
|
||||
}
|
||||
|
||||
|
||||
void CViewProjects::OnProjectReset( wxCommandEvent& event ) {
|
||||
|
@ -647,7 +615,7 @@ void CViewProjects::UpdateSelection() {
|
|||
pGroup->button(BTN_NOWORK)->SetToolTip(wxString("Allow fetching new work for this project"));
|
||||
} else {
|
||||
pGroup->button(BTN_NOWORK)->SetLabel(wxString("No new work"));
|
||||
pGroup->button(BTN_NOWORK)->SetToolTip(wxString("Don't allow fetching new work for this project"));
|
||||
pGroup->button(BTN_NOWORK)->SetToolTip(wxString("Don't fetch new work for this project"));
|
||||
}
|
||||
pGroup->button(BTN_RESET)->Enable();
|
||||
pGroup->button(BTN_DETACH)->Enable();
|
||||
|
|
|
@ -59,9 +59,7 @@ public:
|
|||
|
||||
void OnProjectUpdate( wxCommandEvent& event );
|
||||
void OnProjectSuspend( wxCommandEvent& event );
|
||||
void OnProjectResume( wxCommandEvent& event );
|
||||
void OnProjectNoNewWork( wxCommandEvent& event );
|
||||
void OnProjectAllowNewWork( wxCommandEvent& event );
|
||||
void OnProjectReset( wxCommandEvent& event );
|
||||
void OnProjectDetach( wxCommandEvent& event );
|
||||
void OnProjectAttach( wxCommandEvent& event );
|
||||
|
|
|
@ -42,6 +42,9 @@
|
|||
#define COLUMN_REPORTDEADLINE 6
|
||||
#define COLUMN_STATUS 7
|
||||
|
||||
#define BTN_SUSPEND 0
|
||||
#define BTN_GRAPHICS 1
|
||||
#define BTN_ABORT 2
|
||||
|
||||
CWork::CWork() {
|
||||
m_strProjectName = wxEmptyString;
|
||||
|
@ -71,7 +74,6 @@ IMPLEMENT_DYNAMIC_CLASS(CViewWork, CBOINCBaseView)
|
|||
|
||||
BEGIN_EVENT_TABLE (CViewWork, CBOINCBaseView)
|
||||
EVT_BUTTON(ID_TASK_WORK_SUSPEND, CViewWork::OnWorkSuspend)
|
||||
EVT_BUTTON(ID_TASK_WORK_RESUME, CViewWork::OnWorkResume)
|
||||
EVT_BUTTON(ID_TASK_WORK_SHOWGRAPHICS, CViewWork::OnWorkShowGraphics)
|
||||
EVT_BUTTON(ID_TASK_WORK_ABORT, CViewWork::OnWorkAbort)
|
||||
EVT_LIST_ITEM_SELECTED(ID_LIST_WORKVIEW, CViewWork::OnListSelected)
|
||||
|
@ -100,16 +102,9 @@ CViewWork::CViewWork(wxNotebook* pNotebook) :
|
|||
|
||||
pItem = new CTaskItem(
|
||||
_("Suspend"),
|
||||
_("Suspend the result."),
|
||||
_("Suspend work on the result."),
|
||||
ID_TASK_WORK_SUSPEND
|
||||
);
|
||||
pGroup->m_Tasks.push_back( pItem );
|
||||
|
||||
pItem = new CTaskItem(
|
||||
_("Resume"),
|
||||
_("Resume a suspended result."),
|
||||
ID_TASK_WORK_RESUME
|
||||
);
|
||||
pGroup->m_Tasks.push_back( pItem );
|
||||
|
||||
pItem = new CTaskItem(
|
||||
|
@ -120,9 +115,9 @@ CViewWork::CViewWork(wxNotebook* pNotebook) :
|
|||
pGroup->m_Tasks.push_back( pItem );
|
||||
|
||||
pItem = new CTaskItem(
|
||||
_("Abort result"),
|
||||
_("Delete the result from the work queue. "
|
||||
"This will prevent you from being granted credit for the result."),
|
||||
_("Abort"),
|
||||
_("Abandon work on the result. "
|
||||
"You will get no credit for it."),
|
||||
ID_TASK_WORK_ABORT
|
||||
);
|
||||
pGroup->m_Tasks.push_back( pItem );
|
||||
|
@ -140,6 +135,8 @@ CViewWork::CViewWork(wxNotebook* pNotebook) :
|
|||
m_pListPane->InsertColumn(COLUMN_TOCOMPLETION, _("To completion"), wxLIST_FORMAT_RIGHT, 100);
|
||||
m_pListPane->InsertColumn(COLUMN_REPORTDEADLINE, _("Report deadline"), wxLIST_FORMAT_LEFT, 150);
|
||||
m_pListPane->InsertColumn(COLUMN_STATUS, _("Status"), wxLIST_FORMAT_LEFT, 135);
|
||||
|
||||
UpdateSelection();
|
||||
}
|
||||
|
||||
|
||||
|
@ -172,9 +169,16 @@ void CViewWork::OnWorkSuspend( wxCommandEvent& event ) {
|
|||
wxASSERT(NULL != m_pTaskPane);
|
||||
wxASSERT(NULL != m_pListPane);
|
||||
|
||||
pFrame->UpdateStatusText(_("Suspending result..."));
|
||||
pDoc->WorkSuspend(m_pListPane->GetFirstSelected());
|
||||
pFrame->UpdateStatusText(wxT(""));
|
||||
RESULT* result = pDoc->result(m_pListPane->GetFirstSelected());
|
||||
if (result->suspended_via_gui) {
|
||||
pFrame->UpdateStatusText(_("Resuming result..."));
|
||||
pDoc->WorkResume(m_pListPane->GetFirstSelected());
|
||||
pFrame->UpdateStatusText(wxT(""));
|
||||
} else {
|
||||
pFrame->UpdateStatusText(_("Suspending result..."));
|
||||
pDoc->WorkSuspend(m_pListPane->GetFirstSelected());
|
||||
pFrame->UpdateStatusText(wxT(""));
|
||||
}
|
||||
|
||||
UpdateSelection();
|
||||
pFrame->ProcessRefreshView();
|
||||
|
@ -182,31 +186,6 @@ void CViewWork::OnWorkSuspend( wxCommandEvent& event ) {
|
|||
wxLogTrace(wxT("Function Start/End"), wxT("CViewWork::OnWorkSuspend - Function End"));
|
||||
}
|
||||
|
||||
|
||||
void CViewWork::OnWorkResume( wxCommandEvent& event ) {
|
||||
wxLogTrace(wxT("Function Start/End"), wxT("CViewWork::OnWorkResume - Function Begin"));
|
||||
|
||||
CMainDocument* pDoc = wxGetApp().GetDocument();
|
||||
CMainFrame* pFrame = wxGetApp().GetFrame();
|
||||
|
||||
wxASSERT(NULL != pDoc);
|
||||
wxASSERT(wxDynamicCast(pDoc, CMainDocument));
|
||||
wxASSERT(NULL != pFrame);
|
||||
wxASSERT(wxDynamicCast(pFrame, CMainFrame));
|
||||
wxASSERT(NULL != m_pTaskPane);
|
||||
wxASSERT(NULL != m_pListPane);
|
||||
|
||||
pFrame->UpdateStatusText(_("Resuming result..."));
|
||||
pDoc->WorkResume(m_pListPane->GetFirstSelected());
|
||||
pFrame->UpdateStatusText(wxT(""));
|
||||
|
||||
UpdateSelection();
|
||||
pFrame->ProcessRefreshView();
|
||||
|
||||
wxLogTrace(wxT("Function Start/End"), wxT("CViewWork::OnWorkResume - Function End"));
|
||||
}
|
||||
|
||||
|
||||
void CViewWork::OnWorkShowGraphics( wxCommandEvent& event ) {
|
||||
wxLogTrace(wxT("Function Start/End"), wxT("CViewWork::OnWorkShowGraphics - Function Begin"));
|
||||
|
||||
|
@ -226,29 +205,36 @@ void CViewWork::OnWorkShowGraphics( wxCommandEvent& event ) {
|
|||
|
||||
pDoc->GetConnectedComputerName(strMachineName);
|
||||
|
||||
RESULT* result = pDoc->result(m_pListPane->GetFirstSelected());
|
||||
|
||||
// TODO: implement hide as well as show
|
||||
if (1) {
|
||||
#ifdef _WIN32
|
||||
if (!strMachineName.empty()) {
|
||||
iAnswer = wxMessageBox(
|
||||
_("Are you sure you wish to display graphics on a remote machine?"),
|
||||
_("Show graphics"),
|
||||
wxYES_NO | wxICON_QUESTION,
|
||||
this
|
||||
);
|
||||
} else {
|
||||
iAnswer = wxYES;
|
||||
}
|
||||
if (!strMachineName.empty()) {
|
||||
iAnswer = wxMessageBox(
|
||||
_("Are you sure you wish to display graphics on a remote machine?"),
|
||||
_("Show graphics"),
|
||||
wxYES_NO | wxICON_QUESTION,
|
||||
this
|
||||
);
|
||||
} else {
|
||||
iAnswer = wxYES;
|
||||
}
|
||||
#else
|
||||
iAnswer = wxYES;
|
||||
iAnswer = wxYES;
|
||||
#endif
|
||||
|
||||
if (wxYES == iAnswer) {
|
||||
pDoc->WorkShowGraphics(
|
||||
m_pListPane->GetFirstSelected(),
|
||||
false,
|
||||
wxGetApp().m_strDefaultWindowStation,
|
||||
wxGetApp().m_strDefaultDesktop,
|
||||
wxGetApp().m_strDefaultDisplay
|
||||
);
|
||||
if (wxYES == iAnswer) {
|
||||
pDoc->WorkShowGraphics(
|
||||
m_pListPane->GetFirstSelected(),
|
||||
false,
|
||||
wxGetApp().m_strDefaultWindowStation,
|
||||
wxGetApp().m_strDefaultDesktop,
|
||||
wxGetApp().m_strDefaultDisplay
|
||||
);
|
||||
}
|
||||
|
||||
pFrame->UpdateStatusText(wxT(""));
|
||||
}
|
||||
|
||||
pFrame->UpdateStatusText(wxT(""));
|
||||
|
@ -450,6 +436,31 @@ wxInt32 CViewWork::UpdateCache(long item, long column, wxString& strNewData) {
|
|||
|
||||
|
||||
void CViewWork::UpdateSelection() {
|
||||
CTaskItemGroup* pGroup = m_TaskGroups[0];
|
||||
|
||||
if (m_pListPane->GetSelectedItemCount() == 0) {
|
||||
pGroup->button(BTN_SUSPEND)->Disable();
|
||||
pGroup->button(BTN_GRAPHICS)->Disable();
|
||||
pGroup->button(BTN_ABORT)->Disable();
|
||||
} else {
|
||||
CMainDocument* pDoc = wxGetApp().GetDocument();
|
||||
RESULT* result = pDoc->result(m_pListPane->GetFirstSelected());
|
||||
pGroup->button(BTN_SUSPEND)->Enable();
|
||||
if (result->suspended_via_gui) {
|
||||
pGroup->button(BTN_SUSPEND)->SetLabel(wxString("Resume"));
|
||||
pGroup->button(BTN_SUSPEND)->SetToolTip(wxString("Resume work for this result"));
|
||||
} else {
|
||||
pGroup->button(BTN_SUSPEND)->SetLabel(wxString("Suspend"));
|
||||
pGroup->button(BTN_SUSPEND)->SetToolTip(wxString("Suspend work for this result"));
|
||||
}
|
||||
if (result->supports_graphics) {
|
||||
pGroup->button(BTN_GRAPHICS)->Enable();
|
||||
} else {
|
||||
pGroup->button(BTN_GRAPHICS)->Disable();
|
||||
}
|
||||
pGroup->button(BTN_ABORT)->Enable();
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -59,7 +59,6 @@ public:
|
|||
virtual const char** GetViewIcon();
|
||||
|
||||
void OnWorkSuspend( wxCommandEvent& event );
|
||||
void OnWorkResume( wxCommandEvent& event );
|
||||
void OnWorkShowGraphics( wxCommandEvent& event );
|
||||
void OnWorkAbort( wxCommandEvent& event );
|
||||
|
||||
|
|
|
@ -194,6 +194,7 @@ public:
|
|||
double rss_bytes;
|
||||
double estimated_cpu_time_remaining;
|
||||
bool supports_graphics;
|
||||
int graphics_mode_acked;
|
||||
|
||||
APP* app;
|
||||
WORKUNIT* wup;
|
||||
|
|
Loading…
Reference in New Issue