Ticket #136: 136.patch

File 136.patch, 10.1 kB (added by daikerjohn, 4 years ago)

Allow switching ETA and PPD with menus or keybindings. Note: Keybindings have changed for aesthetic purposes.

  • src/listViewClients.cpp

    old new  
    4242// FMC_COLOR_LIST_ODD_LINES creates a new wxColour object each time it is used 
    4343// Why not create it once for all in a fahmonConsts.cpp, using a 'extern ...' in the header file? 
    4444 
    45  
    46 // The columns 
    47 enum _LISTVIEW_COLUMN 
    48 { 
    49         LVC_STATUS, 
    50         LVC_PROGRESS, 
    51         LVC_NAME, 
    52         LVC_ETA, 
    53         LVC_PPD, 
    54         LVC_CORE, 
    55         LVC_PRCG, 
    56         LVC_CREDIT, 
    57         LVC_DOWNLOADED, 
    58         LVC_DEADLINE 
    59 }; 
    60  
    61  
    6245// The icons used in the list 
    6346enum _LISTVIEW_ICON 
    6447{ 
     
    151134        wxUint32     deadlineColumnWidth; 
    152135        wxImageList *imageList; 
    153136 
     137        wxString     etaColumnText; 
     138        wxString     ppdColumnText; 
     139 
     140        _PrefsGetString(PREF_LISTVIEWCLIENTS_ETATEXT,             etaColumnText); 
     141        _PrefsGetString(PREF_LISTVIEWCLIENTS_PPDTEXT,             ppdColumnText); 
     142 
    154143        // --- Create the columns and restore their size 
    155144        InsertColumn(LVC_STATUS,     wxT("")); 
    156145        InsertColumn(LVC_PROGRESS,   _("Progress")); 
    157146        InsertColumn(LVC_NAME,       _("Name")); 
    158         InsertColumn(LVC_ETA,        _("ETA")); 
    159         InsertColumn(LVC_PPD,        _("PPD")); 
     147        InsertColumn(LVC_ETA,        etaColumnText); /* _("ETA")); */ 
     148        InsertColumn(LVC_PPD,        ppdColumnText); /* _("PPD")); */ 
    160149        InsertColumn(LVC_CORE,       _("Core")); 
    161150        InsertColumn(LVC_PRCG,       _T("PRCG")); 
    162151        InsertColumn(LVC_CREDIT,     _("Credit")); 
     
    241230 
    242231ListViewClients::~ListViewClients(void) 
    243232{ 
     233        wxListItem col_header; 
     234//      wxString col_text(""); 
     235 
     236//      GetColumn(column, col_header); 
     237//      col_header.SetText(col_text); 
     238 
    244239        // Save the width of the columns 
    245240        _PrefsSetUint(PREF_LISTVIEWCLIENTS_PROGRESSCOLUMNWIDTH,   GetColumnWidth(LVC_PROGRESS)); 
    246241        _PrefsSetUint(PREF_LISTVIEWCLIENTS_NAMECOLUMNWIDTH,       GetColumnWidth(LVC_NAME)); 
     
    266261        // Save the sorting order 
    267262        _PrefsSetUint(PREF_LISTVIEWCLIENTS_SORTCOLUMN,    mSortColumn); 
    268263        _PrefsSetBool(PREF_LISTVIEWCLIENTS_SORTASCENDING, mSortAscending); 
     264 
     265        GetColumn(LVC_ETA, col_header); 
     266        _PrefsSetString(PREF_LISTVIEWCLIENTS_ETATEXT,        col_header.GetText()); 
     267 
     268        GetColumn(LVC_PPD, col_header); 
     269        _PrefsSetString(PREF_LISTVIEWCLIENTS_PPDTEXT,        col_header.GetText()); 
    269270} 
    270271 
    271272 
     
    10641065        } 
    10651066} 
    10661067 
     1068void ListViewClients::SetColumnHeader(int column, wxString text) { 
     1069        wxListItem col_header; 
     1070        wxString col_text(text); 
    10671071 
     1072        GetColumn(column, col_header); 
     1073        col_header.SetText(col_text); 
     1074        SetColumn(column, col_header); 
     1075} 
     1076 
    10681077bool DropFiles::OnDropFiles (wxCoord x, wxCoord y, const wxArrayString& filenames) 
    10691078{ 
    10701079        for (size_t n = 0; n < filenames.Count(); n++) { 
  • src/include/mainDialog.h

    old new  
    122122        DECLARE_EVENT_TYPE (EVT_NEW_MESSAGE_LOGGED, -1) /**< Sent when a new message has been added to the MessagesManager */ 
    123123END_DECLARE_EVENT_TYPES() 
    124124 
     125// The columns 
     126enum _LISTVIEW_COLUMN 
     127{ 
     128        LVC_STATUS, 
     129        LVC_PROGRESS, 
     130        LVC_NAME, 
     131        LVC_ETA, 
     132        LVC_PPD, 
     133        LVC_CORE, 
     134        LVC_PRCG, 
     135        LVC_CREDIT, 
     136        LVC_DOWNLOADED, 
     137        LVC_DEADLINE 
     138}; 
     139 
    125140#ifdef __WXMAC__ 
    126141/** 
    127142* Custom progress bar for OSX. 
     
    374389        void OnMenuToggleETADate(wxCommandEvent& event); 
    375390 
    376391        /** 
     392         * Event: Manages the 'Cycle PPD method' menu item. 
     393         * Toggle the PPD calc method. 
     394         * @param event The event itself. This is sent automatically. 
     395         **/ 
     396        void OnMenuTogglePPDCalc(wxCommandEvent& event); 
     397 
     398        /** 
    377399         * Event: Manages the 'check for update' menu item. 
    378400         * Check for updates to FahMon 
    379401         * @param event The event itself. This is sent automatically 
  • src/include/listViewClients.h

    old new  
    5252#define PREF_LISTVIEWCLIENTS_ETACOLUMNENABLED_DV true 
    5353 
    5454#define PREF_LISTVIEWCLIENTS_PPDCOLUMNWIDTH         wxT("ListViewClients.PPDColumnWidth") /**< Preference setting for the PPD column width */ 
    55 #define PREF_LISTVIEWCLIENTS_PPDCOLUMNWIDTH_DV      50 /**< Default value for PPD column width */ 
     55#define PREF_LISTVIEWCLIENTS_PPDCOLUMNWIDTH_DV      75 /**< Default value for PPD column width */ 
    5656 
    5757#define PREF_LISTVIEWCLIENTS_PPDCOLUMNENABLED    wxT("ListViewClients.PPDColumnEnabled") 
    5858#define PREF_LISTVIEWCLIENTS_PPDCOLUMNENABLED_DV true 
     
    8787#define PREF_LISTVIEWCLIENTS_DEADLINECOLUMNENABLED    wxT("ListViewClients.DeadlineColumnEnabled") 
    8888#define PREF_LISTVIEWCLIENTS_DEADLINECOLUMNENABLED_DV false 
    8989 
    90  
    9190#define PREF_LISTVIEWCLIENTS_SORTCOLUMN             wxT("ListViewClients.SortColumn") /**< Preference setting for column to sort by */ 
    9291#define PREF_LISTVIEWCLIENTS_SORTCOLUMN_DV          LVC_PROGRESS /**< Default value for sorting column */ 
    9392 
    9493#define PREF_LISTVIEWCLIENTS_SORTASCENDING          wxT("ListViewClients.SortAscending") /**< Preference setting for ascending sort */ 
    9594#define PREF_LISTVIEWCLIENTS_SORTASCENDING_DV       false /**< Default value for acscending sort */ 
    9695 
     96#define PREF_LISTVIEWCLIENTS_ETATEXT            wxT("ListViewClients.ETAText") 
     97#define PREF_LISTVIEWCLIENTS_ETATEXT_DV         wxT("ETA") /**< Default value for ETAText */ 
    9798 
     99#define PREF_LISTVIEWCLIENTS_PPDTEXT            wxT("ListViewClients.PPDText") 
     100#define PREF_LISTVIEWCLIENTS_PPDTEXT_DV         wxT("PPD") /**< Default value for PPDText */ 
     101 
    98102WX_DEFINE_ARRAY_INT(int, ArrayOfIndexes); /**< Definition for index array */ 
    99103 
    100104/** 
     
    264268         **/ 
    265269        void ShowClientFiles(void); 
    266270 
     271        /** 
     272         * Set the Header of a given column where 'col' is of 'enum _LISTVIEW_COLUMN' 
     273         **/ 
     274        void SetColumnHeader(int column, wxString text); 
    267275 
     276 
    268277private: 
    269278        DECLARE_EVENT_TABLE() 
    270279}; 
  • src/mainDialog.cpp

    old new  
    6060        MID_TOGGLELOG, 
    6161        MID_TOGGLE_MESSAGES_FRAME, 
    6262        MID_TOGGLE_ETADATE, 
     63        MID_TOGGLE_PPDCALC, 
    6364        MID_BENCHMARKS, 
    6465        MID_WWWJMOL, 
    6566        MID_WWWMYSTATS, 
     
    7980        LST_CLIENTS 
    8081}; 
    8182 
    82 enum _LISTVIEW_COLUMN 
    83 { 
    84         LVC_PROGRESS, 
    85         LVC_NAME, 
    86         LVC_ETA, 
    87         LVC_PPD 
    88 }; 
    8983 
    90  
    9184// Indexes of the miscellaneous parts of the status bar 
    9285enum _STATUSBAR_PART 
    9386{ 
     
    113106        EVT_MENU    (MID_UPDATEPROJECTS,        MainDialog::OnMenuUpdateProjects) 
    114107        EVT_MENU    (MID_TOGGLELOG,             MainDialog::OnMenuToggleLog) 
    115108        EVT_MENU    (MID_TOGGLE_MESSAGES_FRAME, MainDialog::OnMenuToggleMessagesFrame) 
     109        EVT_MENU    (MID_TOGGLE_PPDCALC,        MainDialog::OnMenuTogglePPDCalc) 
    116110        EVT_MENU    (MID_TOGGLE_ETADATE,        MainDialog::OnMenuToggleETADate) 
    117111        EVT_MENU    (MID_BENCHMARKS,            MainDialog::OnMenuBenchmarks) 
    118112        EVT_MENU    (wxID_PREFERENCES,          MainDialog::OnMenuPreferences) 
     
    652646        // The 'Monitoring' menu 
    653647        menu = new wxMenu(); 
    654648        #ifndef __WXMAC__ 
    655         menu->Append(MID_TOGGLELOG, _("&Show/Hide FAHLog\tF8"), _("Toggle the log file")); 
     649        menu->Append(MID_TOGGLE_ETADATE, _("&Cycle ETA Style\tF7"), _("Cycle through the different ETA display styles")); 
     650        menu->Append(MID_TOGGLE_PPDCALC, _("&Cycle PPD Calc\tF8"), _("Cycle through the different PPD calculation methods")); 
    656651        menu->AppendSeparator(); 
    657         menu->Append(MID_TOGGLE_ETADATE, _("&Cycle ETA Style\tF9"), _("Cycle through the different ETA display styles")); 
     652        menu->Append(MID_TOGGLELOG, _("&Show/Hide FAHLog\tF9"), _("Toggle the log file")); 
    658653        #else 
     654        menu->Append(MID_TOGGLE_ETADATE, _("&Cycle ETA Style\tCtrl+E"), _("Cycle through the different ETA display styles")); 
     655        menu->Append(MID_TOGGLE_PPDCALC, _("&Cycle PPD Calc\tCtrl+D"), _("Cycle through the different PPD calculation methods")); 
     656        menu->AppendSeparator(); 
    659657        menu->Append(MID_TOGGLELOG, _("&Show/Hide FAHLog\tCtrl+L"), _("Toggle the log file")); 
    660         menu->AppendSeparator(); 
    661         menu->Append(MID_TOGGLE_ETADATE, _("&Cycle ETA Style\tCtrl+E"), _("Cycle through the different ETA display styles")); 
    662658        #endif 
    663659        menu->AppendSeparator(); 
    664660        menu->Append(MID_TOGGLE_INFOPANEL, _("Show/Hide &WU Info panel"), _("Toggle the display of the Work Unit Information panel")); 
     
    12831279void MainDialog::OnPPDStylePrefChanged(void) 
    12841280{ 
    12851281        ClientsManager::GetInstance()->ReloadThreaded(CM_LOADALLF); 
     1282        mClientsList->UpdateAllClients(); 
    12861283} 
    12871284 
    12881285 
     
    13321329void MainDialog::OnMenuToggleETADate(wxCommandEvent& event) 
    13331330{ 
    13341331        wxUint32 etaStyle; 
     1332        wxString col_header; 
    13351333 
    13361334        _PrefsGetUint(PREF_ETA_DISPLAYSTYLE, etaStyle); 
    13371335        switch(etaStyle) 
    13381336        { 
    13391337                case ETADS_DATE_DAY_MONTH: 
    13401338                        _PrefsSetUint(PREF_ETA_DISPLAYSTYLE, ETADS_DATE_MONTH_DAY); 
     1339                        col_header = _T("ETA: MD"); 
    13411340                        OnETAStylePrefChanged(); 
    13421341                        break; 
    13431342 
    13441343                case ETADS_DATE_MONTH_DAY: 
    13451344                        _PrefsSetUint(PREF_ETA_DISPLAYSTYLE, ETADS_LEFT_TIME); 
     1345                        col_header = _T("ETA: Left"); 
    13461346                        OnETAStylePrefChanged(); 
    13471347                        break; 
    13481348 
    13491349                case ETADS_LEFT_TIME: 
    13501350                        _PrefsSetUint(PREF_ETA_DISPLAYSTYLE, ETADS_DATE_DAY_MONTH); 
     1351                        col_header = _T("ETA: DM"); 
    13511352                        OnETAStylePrefChanged(); 
    13521353                        break; 
    13531354 
    13541355                default: 
    13551356                        break; 
    13561357        } 
     1358        mClientsList->SetColumnHeader(LVC_ETA, col_header); 
    13571359        ShowClientInformation(mClientsList->GetSelectedClientId()); 
    13581360} 
    13591361 
     1362void MainDialog::OnMenuTogglePPDCalc(wxCommandEvent& event) 
     1363{ 
     1364        wxUint32 ppdStyle; 
     1365        wxString col_header; 
    13601366 
     1367        _PrefsGetUint(PREF_PPD_DISPLAYSTYLE, ppdStyle); 
     1368        switch(ppdStyle) 
     1369        { 
     1370                case PPDDS_ALL_FRAMES: 
     1371                        _PrefsSetUint(PREF_PPD_DISPLAYSTYLE, PPDDS_EFFECTIVE_FRAMES); 
     1372                        col_header = _T("PPD: Effect"); 
     1373                        OnPPDStylePrefChanged(); 
     1374                        break; 
     1375 
     1376                case PPDDS_LAST_FRAME: 
     1377                        _PrefsSetUint(PREF_PPD_DISPLAYSTYLE, PPDDS_ALL_FRAMES); 
     1378                        col_header = _T("PPD: All"); 
     1379                        OnPPDStylePrefChanged(); 
     1380                        break; 
     1381 
     1382                case PPDDS_THREE_FRAMES: 
     1383                        _PrefsSetUint(PREF_PPD_DISPLAYSTYLE, PPDDS_LAST_FRAME); 
     1384                        col_header = _T("PPD: Last"); 
     1385                        OnPPDStylePrefChanged(); 
     1386                        break; 
     1387 
     1388                case PPDDS_EFFECTIVE_FRAMES: 
     1389                        _PrefsSetUint(PREF_PPD_DISPLAYSTYLE, PPDDS_THREE_FRAMES); 
     1390                        col_header = _T("PPD: Three"); 
     1391                        OnPPDStylePrefChanged(); 
     1392                        break; 
     1393 
     1394                default: 
     1395                        break; 
     1396        } 
     1397        mClientsList->SetColumnHeader(LVC_PPD, col_header); 
     1398        ShowClientInformation(mClientsList->GetSelectedClientId()); 
     1399} 
     1400 
    13611401void MainDialog::OnUpdateCheck(wxCommandEvent& event) 
    13621402{ 
    13631403        CheckForUpdates(false);