mirror of https://github.com/BOINC/boinc.git
*** empty log message ***
svn path=/trunk/boinc/; revision=6756
This commit is contained in:
parent
7f446ee2db
commit
595d3f9c96
|
@ -9442,3 +9442,13 @@ Charlie 22 July 2005
|
|||
HowToBuildBOINC_XCode.rtf
|
||||
boinc.pbproj/
|
||||
project.pbxproj
|
||||
|
||||
Rom 22 July 2005
|
||||
- Enable scrollbars on the task pane
|
||||
- Only redraw the website buttons when a selection change event has
|
||||
occurred with the list pane.
|
||||
|
||||
clientgui/
|
||||
BOINCBaseView.cpp, .h
|
||||
BOINCTaskCtrl.cpp, .h
|
||||
ViewProjects.cpp
|
||||
|
|
|
@ -44,6 +44,8 @@ CBOINCBaseView::CBOINCBaseView(wxNotebook* pNotebook, wxString strName) :
|
|||
m_bProcessingTaskRenderEvent = false;
|
||||
m_bProcessingListRenderEvent = false;
|
||||
|
||||
m_bForceUpdateSelection = true;
|
||||
|
||||
//
|
||||
// Setup View
|
||||
//
|
||||
|
@ -253,6 +255,7 @@ bool CBOINCBaseView::OnRestoreState(wxConfigBase* pConfig) {
|
|||
void CBOINCBaseView::OnListSelected(wxListEvent& event) {
|
||||
wxLogTrace(wxT("Function Start/End"), wxT("CBOINCBaseView::OnListSelected - Function Begin"));
|
||||
|
||||
m_bForceUpdateSelection = true;
|
||||
UpdateSelection();
|
||||
event.Skip();
|
||||
|
||||
|
@ -263,6 +266,7 @@ void CBOINCBaseView::OnListSelected(wxListEvent& event) {
|
|||
void CBOINCBaseView::OnListDeselected(wxListEvent& event) {
|
||||
wxLogTrace(wxT("Function Start/End"), wxT("CBOINCBaseView::OnListDeselected - Function Begin"));
|
||||
|
||||
m_bForceUpdateSelection = true;
|
||||
UpdateSelection();
|
||||
event.Skip();
|
||||
|
||||
|
|
|
@ -142,6 +142,8 @@ protected:
|
|||
bool m_bProcessingTaskRenderEvent;
|
||||
bool m_bProcessingListRenderEvent;
|
||||
|
||||
bool m_bForceUpdateSelection;
|
||||
|
||||
CBOINCTaskCtrl* m_pTaskPane;
|
||||
CBOINCListCtrl* m_pListPane;
|
||||
};
|
||||
|
|
|
@ -26,7 +26,7 @@
|
|||
#include "BOINCTaskCtrl.h"
|
||||
|
||||
|
||||
IMPLEMENT_DYNAMIC_CLASS(CBOINCTaskCtrl, wxPanel)
|
||||
IMPLEMENT_DYNAMIC_CLASS(CBOINCTaskCtrl, wxScrolledWindow)
|
||||
|
||||
|
||||
CBOINCTaskCtrl::CBOINCTaskCtrl() {}
|
||||
|
@ -36,9 +36,11 @@ CBOINCTaskCtrl::CBOINCTaskCtrl(CBOINCBaseView* pView, wxWindowID iTaskWindowID,
|
|||
wxScrolledWindow(pView, iTaskWindowID, wxDefaultPosition, wxSize(200, -1), iTaskWindowFlags)
|
||||
{
|
||||
m_pParent = pView;
|
||||
m_pBoxSizer = NULL;
|
||||
m_pSizer = NULL;
|
||||
|
||||
EnableScrolling(true, false);
|
||||
EnableScrolling(true, true);
|
||||
SetVirtualSize( 200, 1000 );
|
||||
SetScrollRate( 10, 10 );
|
||||
}
|
||||
|
||||
|
||||
|
@ -54,7 +56,7 @@ wxInt32 CBOINCTaskCtrl::DeleteTaskGroupAndTasks( CTaskItemGroup* pGroup ) {
|
|||
DeleteTask(pGroup, pItem);
|
||||
}
|
||||
if (pGroup->m_pStaticBoxSizer) {
|
||||
m_pBoxSizer->Detach(pGroup->m_pStaticBoxSizer);
|
||||
m_pSizer->Detach(pGroup->m_pStaticBoxSizer);
|
||||
pGroup->m_pStaticBoxSizer->Detach(pGroup->m_pStaticBox);
|
||||
|
||||
delete pGroup->m_pStaticBox;
|
||||
|
@ -150,8 +152,8 @@ wxInt32 CBOINCTaskCtrl::UpdateControls() {
|
|||
bCreateMainSizer = !GetSizer();
|
||||
if (bCreateMainSizer) {
|
||||
SetAutoLayout(TRUE);
|
||||
m_pBoxSizer = new wxBoxSizer(wxVERTICAL);
|
||||
m_pBoxSizer->Add(5, 5, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5);
|
||||
m_pSizer = new wxBoxSizer( wxVERTICAL );
|
||||
m_pSizer->Add(5, 5, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5);
|
||||
}
|
||||
|
||||
|
||||
|
@ -161,7 +163,7 @@ wxInt32 CBOINCTaskCtrl::UpdateControls() {
|
|||
if (!pGroup->m_pStaticBoxSizer) {
|
||||
pGroup->m_pStaticBox = new wxStaticBox(this, wxID_ANY, pGroup->m_strName);
|
||||
pGroup->m_pStaticBoxSizer = new wxStaticBoxSizer(pGroup->m_pStaticBox, wxVERTICAL);
|
||||
m_pBoxSizer->Add(pGroup->m_pStaticBoxSizer, 0, wxEXPAND|wxALL, 5);
|
||||
m_pSizer->Add(pGroup->m_pStaticBoxSizer, 0, wxEXPAND|wxALL, 5);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -182,12 +184,13 @@ wxInt32 CBOINCTaskCtrl::UpdateControls() {
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
if (bCreateMainSizer) {
|
||||
SetSizer(m_pBoxSizer);
|
||||
SetSizer(m_pSizer);
|
||||
}
|
||||
|
||||
Layout();
|
||||
// Force update layout and scrollbars, since nothing we do here
|
||||
// necessarily generates a size event which would do it for us.
|
||||
FitInside();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -54,9 +54,9 @@ public:
|
|||
|
||||
private:
|
||||
|
||||
CBOINCBaseView* m_pParent;
|
||||
CBOINCBaseView* m_pParent;
|
||||
|
||||
wxBoxSizer* m_pBoxSizer;
|
||||
wxBoxSizer* m_pSizer;
|
||||
};
|
||||
|
||||
|
||||
|
|
|
@ -654,51 +654,55 @@ void CViewProjects::UpdateSelection() {
|
|||
|
||||
// Update the websites list
|
||||
//
|
||||
if (m_TaskGroups.size() > 1) {
|
||||
if (m_bForceUpdateSelection) {
|
||||
if (m_TaskGroups.size() > 1) {
|
||||
|
||||
// Delete task group, objects, and controls.
|
||||
pGroup = m_TaskGroups[1];
|
||||
// Delete task group, objects, and controls.
|
||||
pGroup = m_TaskGroups[1];
|
||||
|
||||
m_pTaskPane->DeleteTaskGroupAndTasks(pGroup);
|
||||
for (i=0; i<pGroup->m_Tasks.size(); i++) {
|
||||
delete pGroup->m_Tasks[i];
|
||||
m_pTaskPane->DeleteTaskGroupAndTasks(pGroup);
|
||||
for (i=0; i<pGroup->m_Tasks.size(); i++) {
|
||||
delete pGroup->m_Tasks[i];
|
||||
}
|
||||
pGroup->m_Tasks.clear();
|
||||
delete pGroup;
|
||||
|
||||
pGroup = NULL;
|
||||
|
||||
m_TaskGroups.erase( m_TaskGroups.begin() + 1 );
|
||||
}
|
||||
pGroup->m_Tasks.clear();
|
||||
delete pGroup;
|
||||
|
||||
pGroup = NULL;
|
||||
// If something is selected create the tasks and controls
|
||||
if (m_pListPane->GetSelectedItemCount()) {
|
||||
project = pDoc->project(m_pListPane->GetFirstSelected());
|
||||
|
||||
m_TaskGroups.erase( m_TaskGroups.begin() + 1 );
|
||||
}
|
||||
// Create the web sites task group
|
||||
pGroup = new CTaskItemGroup( _("Web sites") );
|
||||
m_TaskGroups.push_back( pGroup );
|
||||
|
||||
// If something is selected create the tasks and controls
|
||||
if (m_pListPane->GetSelectedItemCount()) {
|
||||
project = pDoc->project(m_pListPane->GetFirstSelected());
|
||||
|
||||
// Create the web sites task group
|
||||
pGroup = new CTaskItemGroup( _("Web sites") );
|
||||
m_TaskGroups.push_back( pGroup );
|
||||
|
||||
// Default project url
|
||||
pItem = new CTaskItem(
|
||||
project->project_name.c_str(),
|
||||
wxT(""),
|
||||
project->master_url.c_str(),
|
||||
ID_TASK_PROJECT_WEB_PROJDEF_MIN
|
||||
);
|
||||
pGroup->m_Tasks.push_back(pItem);
|
||||
|
||||
|
||||
// Project defined urls
|
||||
for (i=0;(i<project->gui_urls.size())&&(i<=ID_TASK_PROJECT_WEB_PROJDEF_MAX);i++) {
|
||||
// Default project url
|
||||
pItem = new CTaskItem(
|
||||
project->gui_urls[i].name.c_str(),
|
||||
project->gui_urls[i].description.c_str(),
|
||||
project->gui_urls[i].url.c_str(),
|
||||
ID_TASK_PROJECT_WEB_PROJDEF_MIN + 1 + i
|
||||
project->project_name.c_str(),
|
||||
wxT(""),
|
||||
project->master_url.c_str(),
|
||||
ID_TASK_PROJECT_WEB_PROJDEF_MIN
|
||||
);
|
||||
pGroup->m_Tasks.push_back(pItem);
|
||||
|
||||
|
||||
// Project defined urls
|
||||
for (i=0;(i<project->gui_urls.size())&&(i<=ID_TASK_PROJECT_WEB_PROJDEF_MAX);i++) {
|
||||
pItem = new CTaskItem(
|
||||
project->gui_urls[i].name.c_str(),
|
||||
project->gui_urls[i].description.c_str(),
|
||||
project->gui_urls[i].url.c_str(),
|
||||
ID_TASK_PROJECT_WEB_PROJDEF_MIN + 1 + i
|
||||
);
|
||||
pGroup->m_Tasks.push_back(pItem);
|
||||
}
|
||||
}
|
||||
|
||||
m_bForceUpdateSelection = false;
|
||||
}
|
||||
|
||||
m_pTaskPane->UpdateControls();
|
||||
|
|
Loading…
Reference in New Issue