Ticket #1531: filezilla_fileexist_mods_rev2390.patch

File filezilla_fileexist_mods_rev2390.patch, 39.4 KB (added by paolozambotti, 12 years ago)

Patch file more file exist actions based on rev. 2390

  • src/interface/defaultfileexistsdlg.h

     
    22#define __DEFAULTFILEEXISTSDLG_H__
    33
    44#include "dialogex.h"
     5#include "notification.h"
    56
    67class CDefaultFileExistsDlg : protected wxDialogEx
    78{
     
    1011
    1112    bool Load(wxWindow *parent, bool fromQueue);
    1213
    13     static int GetDefault(bool download);
    14     static void SetDefault(bool download, int action);
     14    static enum CFileExistsNotification::OverwriteAction GetDefault(bool download);
     15    static void SetDefault(bool download, enum CFileExistsNotification::OverwriteAction action);
    1516
    16     bool Run(int *downloadAction = 0, int *uploadAction = 0);
     17    bool Run(enum CFileExistsNotification::OverwriteAction *downloadAction = 0, enum CFileExistsNotification::OverwriteAction *uploadAction = 0);
    1718
    1819protected:
    19     static int m_defaults[2];
     20    static enum CFileExistsNotification::OverwriteAction m_defaults[2];
    2021};
    2122
    2223#endif //__DEFAULTFILEEXISTSDLG_H__
  • src/interface/defaultfileexistsdlg.cpp

     
    11#include "FileZilla.h"
    22#include "defaultfileexistsdlg.h"
     3#include "notification.h"
    34
    4 int CDefaultFileExistsDlg::m_defaults[2] = {-1, -1};
     5enum CFileExistsNotification::OverwriteAction CDefaultFileExistsDlg::m_defaults[2] = {CFileExistsNotification::unknown, CFileExistsNotification::unknown};
    56
    67CDefaultFileExistsDlg::CDefaultFileExistsDlg()
    78{
     
    2425
    2526    switch (m_defaults[0])
    2627    {
    27     case 0:
     28    case CFileExistsNotification::ask:
    2829        XRCCTRL(*this, "ID_DL_ASK", wxRadioButton)->SetValue(true);
    2930        break; 
    30     case 1:
     31    case CFileExistsNotification::overwrite:
    3132        XRCCTRL(*this, "ID_DL_OVERWRITE", wxRadioButton)->SetValue(true);
    3233        break;
    33     case 2:
     34    case CFileExistsNotification::overwriteNewer:
    3435        XRCCTRL(*this, "ID_DL_OVERWRITEIFNEWER", wxRadioButton)->SetValue(true);
    3536        break;
    36     case 3:
     37    case CFileExistsNotification::overwriteSize:
     38        XRCCTRL(*this, "ID_DL_OVERWRITESIZE", wxRadioButton)->SetValue(true);
     39        break;
     40    case CFileExistsNotification::overwriteSizeOrNewer:
     41        XRCCTRL(*this, "ID_DL_OVERWRITESIZEORNEWER", wxRadioButton)->SetValue(true);
     42        break;
     43    case CFileExistsNotification::resume:
    3744        XRCCTRL(*this, "ID_DL_RESUME", wxRadioButton)->SetValue(true);
    3845        break;
    39     case 4:
     46    case CFileExistsNotification::rename:
    4047        XRCCTRL(*this, "ID_DL_RENAME", wxRadioButton)->SetValue(true);
    4148        break;
    42     case 5:
     49    case CFileExistsNotification::skip:
    4350        XRCCTRL(*this, "ID_DL_SKIP", wxRadioButton)->SetValue(true);
    4451        break;
    4552    default:
     
    4956
    5057    switch (m_defaults[1])
    5158    {
    52     case 0:
     59    case CFileExistsNotification::ask:
    5360        XRCCTRL(*this, "ID_UL_ASK", wxRadioButton)->SetValue(true);
    5461        break; 
    55     case 1:
     62    case CFileExistsNotification::overwrite:
    5663        XRCCTRL(*this, "ID_UL_OVERWRITE", wxRadioButton)->SetValue(true);
    5764        break;
    58     case 2:
     65    case CFileExistsNotification::CFileExistsNotification::overwriteNewer:
    5966        XRCCTRL(*this, "ID_UL_OVERWRITEIFNEWER", wxRadioButton)->SetValue(true);
    6067        break;
    61     case 3:
     68    case CFileExistsNotification::CFileExistsNotification::overwriteSize:
     69        XRCCTRL(*this, "ID_UL_OVERWRITESIZE", wxRadioButton)->SetValue(true);
     70        break;
     71    case CFileExistsNotification::CFileExistsNotification::overwriteSizeOrNewer:
     72        XRCCTRL(*this, "ID_UL_OVERWRITESIZEORNEWER", wxRadioButton)->SetValue(true);
     73        break;
     74    case CFileExistsNotification::resume:
    6275        XRCCTRL(*this, "ID_UL_RESUME", wxRadioButton)->SetValue(true);
    6376        break;
    64     case 4:
     77    case CFileExistsNotification::rename:
    6578        XRCCTRL(*this, "ID_UL_RENAME", wxRadioButton)->SetValue(true);
    6679        break;
    67     case 5:
     80    case CFileExistsNotification::skip:
    6881        XRCCTRL(*this, "ID_UL_SKIP", wxRadioButton)->SetValue(true);
    6982        break;
    7083    default:
     
    7588    return true;
    7689}
    7790
    78 int CDefaultFileExistsDlg::GetDefault(bool download)
     91enum CFileExistsNotification::OverwriteAction CDefaultFileExistsDlg::GetDefault(bool download)
    7992{
    8093    return m_defaults[download ? 0 : 1];
    8194}
    8295
    83 bool CDefaultFileExistsDlg::Run(int *downloadAction, int *uploadAction)
     96bool CDefaultFileExistsDlg::Run(enum CFileExistsNotification::OverwriteAction *downloadAction, enum CFileExistsNotification::OverwriteAction *uploadAction)
    8497{
    8598    wxASSERT(!downloadAction || uploadAction);
    8699    wxASSERT(!uploadAction || downloadAction);
     
    88101    if (ShowModal() != wxID_OK)
    89102        return false;
    90103
    91     int action;
     104    enum CFileExistsNotification::OverwriteAction action;
    92105    if (XRCCTRL(*this, "ID_DL_ASK", wxRadioButton)->GetValue())
    93         action = 0;
     106        action = CFileExistsNotification::ask;
    94107    else if (XRCCTRL(*this, "ID_DL_OVERWRITE", wxRadioButton)->GetValue())
    95         action = 1;
     108        action = CFileExistsNotification::overwrite;
    96109    else if (XRCCTRL(*this, "ID_DL_OVERWRITEIFNEWER", wxRadioButton)->GetValue())
    97         action = 2;
     110        action = CFileExistsNotification::overwriteNewer;
     111    else if (XRCCTRL(*this, "ID_DL_OVERWRITESIZE", wxRadioButton)->GetValue())
     112        action = CFileExistsNotification::overwriteSize;
     113    else if (XRCCTRL(*this, "ID_DL_OVERWRITESIZEORNEWER", wxRadioButton)->GetValue())
     114        action = CFileExistsNotification::overwriteSizeOrNewer;
    98115    else if (XRCCTRL(*this, "ID_DL_RESUME", wxRadioButton)->GetValue())
    99         action = 3;
     116        action = CFileExistsNotification::resume;
    100117    else if (XRCCTRL(*this, "ID_DL_RENAME", wxRadioButton)->GetValue())
    101         action = 4;
     118        action = CFileExistsNotification::rename;
    102119    else if (XRCCTRL(*this, "ID_DL_SKIP", wxRadioButton)->GetValue())
    103         action = 5;
     120        action = CFileExistsNotification::skip;
    104121    else
    105         action = -1;
     122        action = CFileExistsNotification::unknown;
    106123   
    107124    if (downloadAction)
    108125        *downloadAction = action;
     
    110127        m_defaults[0] = action;
    111128
    112129    if (XRCCTRL(*this, "ID_UL_ASK", wxRadioButton)->GetValue())
    113         action = 0;
     130        action = CFileExistsNotification::ask;
    114131    else if (XRCCTRL(*this, "ID_UL_OVERWRITE", wxRadioButton)->GetValue())
    115         action = 1;
     132        action = CFileExistsNotification::overwrite;
    116133    else if (XRCCTRL(*this, "ID_UL_OVERWRITEIFNEWER", wxRadioButton)->GetValue())
    117         action = 2;
     134        action = CFileExistsNotification::overwriteNewer;
     135    else if (XRCCTRL(*this, "ID_UL_OVERWRITESIZE", wxRadioButton)->GetValue())
     136        action = CFileExistsNotification::overwriteSize;
     137    else if (XRCCTRL(*this, "ID_UL_OVERWRITESIZEORNEWER", wxRadioButton)->GetValue())
     138        action = CFileExistsNotification::overwriteSizeOrNewer;
    118139    else if (XRCCTRL(*this, "ID_UL_RESUME", wxRadioButton)->GetValue())
    119         action = 3;
     140        action = CFileExistsNotification::resume;
    120141    else if (XRCCTRL(*this, "ID_UL_RENAME", wxRadioButton)->GetValue())
    121         action = 4;
     142        action = CFileExistsNotification::rename;
    122143    else if (XRCCTRL(*this, "ID_UL_SKIP", wxRadioButton)->GetValue())
    123         action = 5;
     144        action = CFileExistsNotification::skip;
    124145    else
    125         action = -1;
     146        action = CFileExistsNotification::unknown;
    126147
    127148    if (uploadAction)
    128149        *uploadAction = action;
     
    132153    return true;
    133154}
    134155
    135 void CDefaultFileExistsDlg::SetDefault(bool download, int action)
     156void CDefaultFileExistsDlg::SetDefault(bool download, enum CFileExistsNotification::OverwriteAction action)
    136157{
    137     if (action < -1 || action > 5)
    138         action = -1;
     158    if (action < CFileExistsNotification::unknown || action > CFileExistsNotification::ACTION_COUNT)
     159        action = CFileExistsNotification::unknown;
    139160    m_defaults[download ? 0 : 1] = action;
    140161}
  • src/interface/resources/dialogs.xrc

     
    797797                    <flag>wxLEFT|wxRIGHT|wxTOP</flag>
    798798                    <border>5</border>
    799799                    <object class="wxRadioButton" name="ID_ACTION1">
    800                       <label>&amp;Overwrite</label>
     800                      <label>&amp;1 - Overwrite</label>
    801801                      <value>1</value>
    802802                    </object>
    803803                  </object>
     
    805805                    <flag>wxLEFT|wxRIGHT|wxTOP</flag>
    806806                    <border>5</border>
    807807                    <object class="wxRadioButton" name="ID_ACTION2">
    808                       <label>Overwrite &amp;if source newer</label>
     808                      <label>&amp;2 - Overwrite if source newer</label>
    809809                      <value>0</value>
    810810                    </object>
    811811                  </object>
    812812                  <object class="sizeritem">
    813813                    <flag>wxLEFT|wxRIGHT|wxTOP</flag>
    814814                    <border>5</border>
     815                    <object class="wxRadioButton" name="ID_ACTION7">
     816                      <label>&amp;3 - Overwrite if different size</label>
     817                      <value>0</value>
     818                    </object>
     819                  </object>
     820                  <object class="sizeritem">
     821                    <flag>wxLEFT|wxRIGHT|wxTOP</flag>
     822                    <border>5</border>
     823                    <object class="wxRadioButton" name="ID_ACTION6">
     824                      <label>&amp;4 - Overwrite if different size or source newer</label>
     825                      <value>0</value>
     826                    </object>
     827                  </object>
     828                  <object class="sizeritem">
     829                    <flag>wxLEFT|wxRIGHT|wxTOP</flag>
     830                    <border>5</border>
    815831                    <object class="wxRadioButton" name="ID_ACTION3">
    816                       <label>&amp;Resume</label>
     832                      <label>&amp;5 - Resume</label>
    817833                      <value>0</value>
    818834                    </object>
    819835                  </object>
     
    821837                    <flag>wxLEFT|wxRIGHT|wxTOP</flag>
    822838                    <border>5</border>
    823839                    <object class="wxRadioButton" name="ID_ACTION4">
    824                       <label>Re&amp;name</label>
     840                      <label>&amp;6 - Rename</label>
    825841                      <value>0</value>
    826842                    </object>
    827843                  </object>
     
    829845                    <flag>wxALL</flag>
    830846                    <border>5</border>
    831847                    <object class="wxRadioButton" name="ID_ACTION5">
    832                       <label>&amp;Skip</label>
     848                      <label>&amp;7 - Skip</label>
    833849                      <value>0</value>
    834850                    </object>
    835851                  </object>
     
    39453961                    <object class="wxGridSizer">
    39463962                      <object class="sizeritem">
    39473963                        <object class="wxRadioButton" name="ID_DL_DEFAULT">
    3948                           <label>Use &amp;default</label>
     3964                          <label>&amp;a - Use default</label>
    39493965                          <style>wxRB_GROUP</style>
    39503966                        </object>
    39513967                      </object>
    39523968                      <object class="sizeritem">
    39533969                        <object class="wxRadioButton" name="ID_DL_ASK">
    3954                           <label>&amp;Ask for action</label>
     3970                          <label>&amp;b - Ask for action</label>
    39553971                        </object>
    39563972                      </object>
    39573973                      <object class="sizeritem">
    39583974                        <object class="wxRadioButton" name="ID_DL_OVERWRITE">
    3959                           <label>&amp;Overwrite</label>
     3975                          <label>&amp;c - Overwrite</label>
    39603976                        </object>
    39613977                      </object>
    39623978                      <object class="sizeritem">
    39633979                        <object class="wxRadioButton" name="ID_DL_OVERWRITEIFNEWER">
    3964                           <label>Ov&amp;erwrite if source newer</label>
     3980                          <label>&amp;d - Overwrite if source newer</label>
    39653981                        </object>
    39663982                      </object>
    39673983                      <object class="sizeritem">
     3984                        <object class="wxRadioButton" name="ID_DL_OVERWRITESIZE">
     3985                          <label>&amp;e - Overwrite if different size</label>
     3986                        </object>
     3987                      </object>
     3988                      <object class="sizeritem">
     3989                        <object class="wxRadioButton" name="ID_DL_OVERWRITESIZEORNEWER">
     3990                          <label>&amp;f - Overwrite if different size or source newer</label>
     3991                        </object>
     3992                      </object>
     3993                      <object class="sizeritem">
    39683994                        <object class="wxRadioButton" name="ID_DL_RESUME">
    3969                           <label>&amp;Resume</label>
     3995                          <label>&amp;g - Resume</label>
    39703996                        </object>
    39713997                      </object>
    39723998                      <object class="sizeritem">
    39733999                        <object class="wxRadioButton" name="ID_DL_RENAME">
    3974                           <label>Re&amp;name</label>
     4000                          <label>&amp;h - Rename</label>
    39754001                        </object>
    39764002                      </object>
    39774003                      <object class="sizeritem">
    39784004                        <object class="wxRadioButton" name="ID_DL_SKIP">
    3979                           <label>S&amp;kip</label>
     4005                          <label>&amp;i - Skip</label>
    39804006                        </object>
    39814007                      </object>
    39824008                      <cols>1</cols>
     
    39974023                    <object class="wxGridSizer">
    39984024                      <object class="sizeritem">
    39994025                        <object class="wxRadioButton" name="ID_UL_DEFAULT">
    4000                           <label>Use d&amp;efault</label>
     4026                          <label>&amp;j - Use default</label>
    40014027                          <value>1</value>
    40024028                          <style>wxRB_GROUP</style>
    40034029                        </object>
    40044030                      </object>
    40054031                      <object class="sizeritem">
    40064032                        <object class="wxRadioButton" name="ID_UL_ASK">
    4007                           <label>A&amp;sk for action</label>
     4033                          <label>&amp;k - Ask for action</label>
    40084034                        </object>
    40094035                      </object>
    40104036                      <object class="sizeritem">
    40114037                        <object class="wxRadioButton" name="ID_UL_OVERWRITE">
    4012                           <label>O&amp;verwrite</label>
     4038                          <label>&amp;l - Overwrite</label>
    40134039                        </object>
    40144040                      </object>
    40154041                      <object class="sizeritem">
    40164042                        <object class="wxRadioButton" name="ID_UL_OVERWRITEIFNEWER">
    4017                           <label>Over&amp;write if source newer</label>
     4043                          <label>&amp;m - Overwrite if source newer</label>
    40184044                        </object>
    40194045                      </object>
    40204046                      <object class="sizeritem">
     4047                        <object class="wxRadioButton" name="ID_UL_OVERWRITESIZE">
     4048                          <label>&amp;n - Overwrite if different size</label>
     4049                        </object>
     4050                      </object>
     4051                      <object class="sizeritem">
     4052                        <object class="wxRadioButton" name="ID_UL_OVERWRITESIZEORNEWER">
     4053                          <label>&amp;o - Overwrite if different size or source newer</label>
     4054                        </object>
     4055                      </object>
     4056                      <object class="sizeritem">
    40214057                        <object class="wxRadioButton" name="ID_UL_RESUME">
    4022                           <label>Res&amp;ume</label>
     4058                          <label>&amp;p - Resume</label>
    40234059                        </object>
    40244060                      </object>
    40254061                      <object class="sizeritem">
    40264062                        <object class="wxRadioButton" name="ID_UL_RENAME">
    4027                           <label>Rena&amp;me</label>
     4063                          <label>&amp;q - Rename</label>
    40284064                        </object>
    40294065                      </object>
    40304066                      <object class="sizeritem">
    40314067                        <object class="wxRadioButton" name="ID_UL_SKIP">
    4032                           <label>Sk&amp;ip</label>
     4068                          <label>&amp;r - Skip</label>
    40334069                        </object>
    40344070                      </object>
    40354071                      <cols>1</cols>
     
    41054141                <object class="wxFlexGridSizer">
    41064142                  <object class="sizeritem">
    41074143                    <object class="wxRadioButton" name="ID_DL_ASK">
    4108                       <label>&amp;Ask for action</label>
     4144                      <label>&amp;b - Ask for action</label>
    41094145                      <style>wxRB_GROUP</style>
    41104146                    </object>
    41114147                  </object>
    41124148                  <object class="sizeritem">
    41134149                    <object class="wxRadioButton" name="ID_DL_OVERWRITE">
    4114                       <label>&amp;Overwrite</label>
     4150                      <label>&amp;d - Overwrite</label>
    41154151                    </object>
    41164152                  </object>
    41174153                  <object class="sizeritem">
    41184154                    <object class="wxRadioButton" name="ID_DL_OVERWRITEIFNEWER">
    4119                       <label>Ov&amp;erwrite if source newer</label>
     4155                      <label>&amp;e - Overwrite if source newer</label>
    41204156                    </object>
    41214157                  </object>
    41224158                  <object class="sizeritem">
     4159                    <object class="wxRadioButton" name="ID_DL_OVERWRITESIZE">
     4160                      <label>&amp;f - Overwrite if different size</label>
     4161                    </object>
     4162                  </object>
     4163                  <object class="sizeritem">
     4164                    <object class="wxRadioButton" name="ID_DL_OVERWRITESIZEORNEWER">
     4165                      <label>&amp;g - Overwrite if different size or source newer</label>
     4166                    </object>
     4167                  </object>
     4168                  <object class="sizeritem">
    41234169                    <object class="wxRadioButton" name="ID_DL_RESUME">
    4124                       <label>&amp;Resume</label>
     4170                      <label>&amp;h - Resume</label>
    41254171                    </object>
    41264172                  </object>
    41274173                  <object class="sizeritem">
    41284174                    <object class="wxRadioButton" name="ID_DL_RENAME">
    4129                       <label>Re&amp;name</label>
     4175                      <label>&amp;i - Rename</label>
    41304176                    </object>
    41314177                  </object>
    41324178                  <object class="sizeritem">
    41334179                    <object class="wxRadioButton" name="ID_DL_SKIP">
    4134                       <label>S&amp;kip</label>
     4180                      <label>&amp;j - Skip</label>
    41354181                    </object>
    41364182                  </object>
    41374183                  <cols>1</cols>
     
    41524198                <object class="wxFlexGridSizer">
    41534199                  <object class="sizeritem">
    41544200                    <object class="wxRadioButton" name="ID_UL_ASK">
    4155                       <label>A&amp;sk for action</label>
     4201                      <label>&amp;k - Ask for action</label>
    41564202                      <style>wxRB_GROUP</style>
    41574203                    </object>
    41584204                  </object>
    41594205                  <object class="sizeritem">
    41604206                    <object class="wxRadioButton" name="ID_UL_OVERWRITE">
    4161                       <label>O&amp;verwrite</label>
     4207                      <label>&amp;l - Overwrite</label>
    41624208                    </object>
    41634209                  </object>
    41644210                  <object class="sizeritem">
    41654211                    <object class="wxRadioButton" name="ID_UL_OVERWRITEIFNEWER">
    4166                       <label>Over&amp;write if source newer</label>
     4212                      <label>&amp;m - Overwrite if source newer</label>
    41674213                    </object>
    41684214                  </object>
    41694215                  <object class="sizeritem">
     4216                    <object class="wxRadioButton" name="ID_UL_OVERWRITESIZE">
     4217                      <label>&amp;n - Overwrite if different size</label>
     4218                    </object>
     4219                  </object>
     4220                  <object class="sizeritem">
     4221                    <object class="wxRadioButton" name="ID_UL_OVERWRITESIZEORNEWER">
     4222                      <label>&amp;o - Overwrite if different size or source newer</label>
     4223                    </object>
     4224                  </object>
     4225                  <object class="sizeritem">
    41704226                    <object class="wxRadioButton" name="ID_UL_RESUME">
    4171                       <label>Res&amp;ume</label>
     4227                      <label>&amp;q - Resume</label>
    41724228                    </object>
    41734229                  </object>
    41744230                  <object class="sizeritem">
    41754231                    <object class="wxRadioButton" name="ID_UL_RENAME">
    4176                       <label>Rena&amp;me</label>
     4232                      <label>&amp;r - Rename</label>
    41774233                    </object>
    41784234                  </object>
    41794235                  <object class="sizeritem">
    41804236                    <object class="wxRadioButton" name="ID_UL_SKIP">
    4181                       <label>Sk&amp;ip</label>
     4237                      <label>&amp;s - Skip</label>
    41824238                    </object>
    41834239                  </object>
    41844240                  <cols>1</cols>
     
    42124268          </object>
    42134269          <object class="sizeritem">
    42144270            <object class="wxCheckBox" name="ID_ASCIIRESUME">
    4215               <label>A&amp;llow resume of ASCII files</label>
     4271              <label>&amp;Allow resume of ASCII files</label>
    42164272            </object>
    42174273          </object>
    42184274          <object class="sizeritem">
  • src/interface/fileexistsdlg.cpp

     
    33
    44#include <wx/display.h>
    55#include <wx/string.h>
     6#include "notification.h"
    67
    78BEGIN_EVENT_TABLE(CFileExistsDlg, wxDialogEx)
    89EVT_BUTTON(XRCID("wxID_OK"), CFileExistsDlg::OnOK)
     
    1314CFileExistsDlg::CFileExistsDlg(CFileExistsNotification *pNotification)
    1415{
    1516    m_pNotification = pNotification;
    16     m_pAction1 = m_pAction2 = m_pAction3 = m_pAction4 = m_pAction5 = 0;
    17     m_action = 0;
     17    m_pAction1 = m_pAction2 = m_pAction3 = m_pAction4 = m_pAction5 = m_pAction6 = m_pAction7 = 0;
     18    m_action = CFileExistsNotification::ask;
    1819    m_always = false;
    1920    m_queueOnly = false;
    2021    m_directionOnly = false;
     
    3940    m_pAction3 = wxDynamicCast(FindWindow(XRCID("ID_ACTION3")), wxRadioButton);
    4041    m_pAction4 = wxDynamicCast(FindWindow(XRCID("ID_ACTION4")), wxRadioButton);
    4142    m_pAction5 = wxDynamicCast(FindWindow(XRCID("ID_ACTION5")), wxRadioButton);
     43    m_pAction6 = wxDynamicCast(FindWindow(XRCID("ID_ACTION6")), wxRadioButton);
     44    m_pAction7 = wxDynamicCast(FindWindow(XRCID("ID_ACTION7")), wxRadioButton);
    4245
    4346    wxString localFile = m_pNotification->localFile;
    4447
     
    255258void CFileExistsDlg::OnOK(wxCommandEvent& event)
    256259{
    257260    if (m_pAction1 && m_pAction1->GetValue())
    258         m_action = 0;
     261        m_action = CFileExistsNotification::overwrite;
    259262    else if (m_pAction2 && m_pAction2->GetValue())
    260         m_action = 1;
     263        m_action = CFileExistsNotification::overwriteNewer;
    261264    else if (m_pAction3 && m_pAction3->GetValue())
    262         m_action = 2;
     265        m_action = CFileExistsNotification::resume;
    263266    else if (m_pAction4 && m_pAction4->GetValue())
    264         m_action = 3;
     267        m_action = CFileExistsNotification::rename;
    265268    else if (m_pAction5 && m_pAction5->GetValue())
    266         m_action = 4;
     269        m_action = CFileExistsNotification::skip;
     270    else if (m_pAction6 && m_pAction6->GetValue())
     271        m_action = CFileExistsNotification::overwriteSizeOrNewer;
     272    else if (m_pAction7 && m_pAction7->GetValue())
     273        m_action = CFileExistsNotification::overwriteSize;
    267274    else
    268         m_action = 0;
     275        m_action = CFileExistsNotification::overwrite;
    269276
    270277    m_always = XRCCTRL(*this, "ID_ALWAYS", wxCheckBox)->GetValue();
    271278    m_directionOnly = XRCCTRL(*this, "ID_UPDOWNONLY", wxCheckBox)->GetValue();
     
    273280    EndModal(wxID_OK);
    274281}
    275282
    276 int CFileExistsDlg::GetAction() const
     283enum CFileExistsNotification::OverwriteAction CFileExistsDlg::GetAction() const
    277284{
    278285    return m_action;
    279286}
    280287
    281288void CFileExistsDlg::OnCancel(wxCommandEvent& event)
    282289{
    283     m_action = 4;
     290    m_action = CFileExistsNotification::skip;
    284291    EndModal(wxID_CANCEL);
    285292}
    286293
  • src/interface/fileexistsdlg.h

     
    22#define __FILEEXISTSDLG_H__
    33
    44#include "dialogex.h"
     5#include "notification.h"
    56
    67class CFileExistsDlg: public wxDialogEx
    78{   
     
    1718    /// Creates the controls and sizers
    1819    void CreateControls();
    1920   
    20     int GetAction() const;
     21    enum CFileExistsNotification::OverwriteAction GetAction() const;
    2122    bool Always(bool &directionOnly, bool &queueOnly) const;
    2223
    2324protected:
     
    2930    wxString GetPathEllipsis(wxString path, wxWindow *window);
    3031
    3132    CFileExistsNotification *m_pNotification;
    32     wxRadioButton *m_pAction1, *m_pAction2, *m_pAction3, *m_pAction4, *m_pAction5;
    33     int m_action;
     33    wxRadioButton *m_pAction1, *m_pAction2, *m_pAction3, *m_pAction4, *m_pAction5, *m_pAction6, *m_pAction7;
     34    enum CFileExistsNotification::OverwriteAction m_action;
    3435    bool m_always;
    3536    bool m_directionOnly;
    3637    bool m_queueOnly;
  • src/interface/optionspage_fileexists.cpp

     
    33#include "settingsdialog.h"
    44#include "optionspage.h"
    55#include "optionspage_fileexists.h"
     6#include "notification.h"
    67
    78bool COptionsPageFileExists::LoadPage()
    89{
    910    bool failure = false;
    1011
    11     const int dlAction = m_pOptions->GetOptionVal(OPTION_FILEEXISTS_DOWNLOAD);
     12    const enum CFileExistsNotification::OverwriteAction dlAction = (enum CFileExistsNotification::OverwriteAction)(m_pOptions->GetOptionVal(OPTION_FILEEXISTS_DOWNLOAD));
    1213    switch (dlAction)
    1314    {
    14     case 1:
     15    case CFileExistsNotification::overwrite:
    1516        SetRCheck(XRCID("ID_DL_OVERWRITE"), true, failure);
    1617        break;
    17     case 2:
     18    case CFileExistsNotification::overwriteNewer:
    1819        SetRCheck(XRCID("ID_DL_OVERWRITEIFNEWER"), true, failure);
    1920        break;
    20     case 3:
     21    case CFileExistsNotification::overwriteSize:
     22        SetRCheck(XRCID("ID_DL_OVERWRITESIZE"), true, failure);
     23        break;
     24    case CFileExistsNotification::overwriteSizeOrNewer:
     25        SetRCheck(XRCID("ID_DL_OVERWRITESIZEORNEWER"), true, failure);
     26        break;
     27    case CFileExistsNotification::resume:
    2128        SetRCheck(XRCID("ID_DL_RESUME"), true, failure);
    2229        break;
    23     case 4:
     30    case CFileExistsNotification::rename:
    2431        SetRCheck(XRCID("ID_DL_RENAME"), true, failure);
    2532        break;
    26     case 5:
     33    case CFileExistsNotification::skip:
    2734        SetRCheck(XRCID("ID_DL_SKIP"), true, failure);
    2835        break;
    2936    default:
     
    3138        break;
    3239    };
    3340
    34     const int ulAction = m_pOptions->GetOptionVal(OPTION_FILEEXISTS_UPLOAD);
     41    const enum CFileExistsNotification::OverwriteAction ulAction = (enum CFileExistsNotification::OverwriteAction)(m_pOptions->GetOptionVal(OPTION_FILEEXISTS_UPLOAD));
    3542    switch (ulAction)
    3643    {
    37     case 1:
     44    case CFileExistsNotification::overwrite:
    3845        SetRCheck(XRCID("ID_UL_OVERWRITE"), true, failure);
    3946        break;
    40     case 2:
     47    case CFileExistsNotification::overwriteNewer:
    4148        SetRCheck(XRCID("ID_UL_OVERWRITEIFNEWER"), true, failure);
    4249        break;
    43     case 3:
     50    case CFileExistsNotification::overwriteSize:
     51        SetRCheck(XRCID("ID_UL_OVERWRITESIZE"), true, failure);
     52        break;
     53    case CFileExistsNotification::overwriteSizeOrNewer:
     54        SetRCheck(XRCID("ID_UL_OVERWRITESIZEORNEWER"), true, failure);
     55        break;
     56    case CFileExistsNotification::resume:
    4457        SetRCheck(XRCID("ID_UL_RESUME"), true, failure);
    4558        break;
    46     case 4:
     59    case CFileExistsNotification::rename:
    4760        SetRCheck(XRCID("ID_UL_RENAME"), true, failure);
    4861        break;
    49     case 5:
     62    case CFileExistsNotification::skip:
    5063        SetRCheck(XRCID("ID_UL_SKIP"), true, failure);
    5164        break;
    5265    default:
     
    6174
    6275bool COptionsPageFileExists::SavePage()
    6376{
    64     int value;
     77    enum CFileExistsNotification::OverwriteAction value;
    6578    if (GetRCheck(XRCID("ID_DL_OVERWRITE")))
    66         value = 1;
     79        value = CFileExistsNotification::overwrite;
    6780    else if (GetRCheck(XRCID("ID_DL_OVERWRITEIFNEWER")))
    68         value = 2;
     81        value = CFileExistsNotification::overwriteNewer;
     82    else if (GetRCheck(XRCID("ID_DL_OVERWRITESIZE")))
     83        value = CFileExistsNotification::overwriteSize;
     84    else if (GetRCheck(XRCID("ID_DL_OVERWRITESIZEORNEWER")))
     85        value = CFileExistsNotification::overwriteSizeOrNewer;
    6986    else if (GetRCheck(XRCID("ID_DL_RESUME")))
    70         value = 3;
     87        value = CFileExistsNotification::resume;
    7188    else if (GetRCheck(XRCID("ID_DL_RENAME")))
    72         value = 4;
     89        value = CFileExistsNotification::rename;
    7390    else if (GetRCheck(XRCID("ID_DL_SKIP")))
    74         value = 5;
     91        value = CFileExistsNotification::skip;
    7592    else
    76         value = 0;
     93        value = CFileExistsNotification::ask;
    7794    m_pOptions->SetOption(OPTION_FILEEXISTS_DOWNLOAD, value);
    7895
    7996    if (GetRCheck(XRCID("ID_UL_OVERWRITE")))
    80         value = 1;
     97        value = CFileExistsNotification::overwrite;
    8198    else if (GetRCheck(XRCID("ID_UL_OVERWRITEIFNEWER")))
    82         value = 2;
     99        value = CFileExistsNotification::overwriteNewer;
     100    else if (GetRCheck(XRCID("ID_UL_OVERWRITESIZE")))
     101        value = CFileExistsNotification::overwriteSize;
     102    else if (GetRCheck(XRCID("ID_UL_OVERWRITESIZEORNEWER")))
     103        value = CFileExistsNotification::overwriteSizeOrNewer;
    83104    else if (GetRCheck(XRCID("ID_UL_RESUME")))
    84         value = 3;
     105        value = CFileExistsNotification::resume;
    85106    else if (GetRCheck(XRCID("ID_UL_RENAME")))
    86         value = 4;
     107        value = CFileExistsNotification::rename;
    87108    else if (GetRCheck(XRCID("ID_UL_SKIP")))
    88         value = 5;
     109        value = CFileExistsNotification::skip;
    89110    else
    90         value = 0;
     111        value = CFileExistsNotification::ask;
    91112    m_pOptions->SetOption(OPTION_FILEEXISTS_UPLOAD, value);
    92113
    93114    m_pOptions->SetOption(OPTION_ASCIIRESUME, GetCheck(XRCID("ID_ASCIIRESUME")));
  • src/interface/asyncrequestqueue.cpp

     
    3838
    3939            // Get the action, go up the hierarchy till one is found
    4040            int action = pFileExistsNotification->overwriteAction;
    41             if (action == -1)
     41            if (action == CFileExistsNotification::unknown)
    4242                action = CDefaultFileExistsDlg::GetDefault(pFileExistsNotification->download);
    43             if (action == -1)
     43            if (action == CFileExistsNotification::unknown)
    4444                action = COptions::Get()->GetOptionVal(pFileExistsNotification->download ? OPTION_FILEEXISTS_DOWNLOAD : OPTION_FILEEXISTS_UPLOAD);
    4545
    4646            // Ask and rename options require user interaction
    47             if (!action || action == 4)
     47            if (action == CFileExistsNotification::ask || action == CFileExistsNotification::rename)
    4848                break;
    4949
    50             if (action == 3 && pFileExistsNotification->ascii)
     50            if (action == CFileExistsNotification::resume && pFileExistsNotification->ascii)
    5151            {
    5252                // Check if resuming ascii files is allowed
    5353                if (!COptions::Get()->GetOptionVal(OPTION_ASCIIRESUME))
    5454                    // Overwrite instead
    55                     action = 1;
     55                    action = CFileExistsNotification::overwrite;
    5656            }
    5757
    5858            pFileExistsNotification->overwriteAction = (enum CFileExistsNotification::OverwriteAction)action;
     
    124124        CFileExistsNotification *pNotification = reinterpret_cast<CFileExistsNotification *>(entry.pNotification);
    125125
    126126        // Get the action, go up the hierarchy till one is found
    127         int action = pNotification->overwriteAction;
    128         if (action == -1)
     127        enum CFileExistsNotification::OverwriteAction action = pNotification->overwriteAction;
     128        if (action == CFileExistsNotification::unknown)
    129129            action = CDefaultFileExistsDlg::GetDefault(pNotification->download);
    130         if (action == -1)
    131             action = COptions::Get()->GetOptionVal(pNotification->download ? OPTION_FILEEXISTS_DOWNLOAD : OPTION_FILEEXISTS_UPLOAD);
     130        if (action == CFileExistsNotification::unknown)
     131            action = (enum CFileExistsNotification::OverwriteAction)(COptions::Get()->GetOptionVal(pNotification->download ? OPTION_FILEEXISTS_DOWNLOAD : OPTION_FILEEXISTS_UPLOAD));
    132132
    133         if (!action)
     133        if (action == CFileExistsNotification::ask)
    134134        {
    135135            CFileExistsDlg dlg(pNotification);
    136136            dlg.Create(m_pMainFrame);
     
    138138
    139139            if (res == wxID_OK)
    140140            {
    141                 action = dlg.GetAction() + 1;
     141                action = dlg.GetAction();
    142142
    143143                bool directionOnly, queueOnly;
    144144                if (dlg.Always(directionOnly, queueOnly))
     
    182182                }
    183183            }
    184184            else
    185                 action = 5;
     185                action = CFileExistsNotification::skip;
    186186        }
    187187
    188         if (action < 1 || action >= CFileExistsNotification::ACTION_COUNT)
     188        if (action == CFileExistsNotification::unknown || action == CFileExistsNotification::ask || action >= CFileExistsNotification::ACTION_COUNT)
    189189            action = CFileExistsNotification::skip;
    190190
    191191        if (action == CFileExistsNotification::resume && pNotification->ascii)
     
    193193            // Check if resuming ascii files is allowed
    194194            if (!COptions::Get()->GetOptionVal(OPTION_ASCIIRESUME))
    195195                // Overwrite instead
    196                 action = 1;
     196                action = CFileExistsNotification::overwrite;
    197197        }
    198198
    199199        switch (action)
  • src/interface/QueueView.cpp

     
    22512251    if (!dlg.Load(this, true))
    22522252        return;
    22532253
    2254     int downloadAction, uploadAction;
     2254    enum CFileExistsNotification::OverwriteAction downloadAction, uploadAction;
    22552255    if (!dlg.Run(&downloadAction, &uploadAction))
    22562256        return;
    22572257
  • src/include/notification.h

     
    153153        ask,
    154154        overwrite,
    155155        overwriteNewer, // Overwrite if source file is newer than target file
     156        overwriteSize,  // Overwrite if source file is is different in size than target file
     157        overwriteSizeOrNewer,   // Overwrite if source file is different in size or newer than target file
    156158        resume, // Overwrites if cannot be resumed
    157159        rename,
    158160        skip,
  • src/engine/sftpcontrolsocket.cpp

     
    793793                    ResetOperation(FZ_REPLY_OK);
    794794                }
    795795                break;
     796            case CFileExistsNotification::overwriteSize:
     797                if (pFileExistsNotification->localSize != pFileExistsNotification->remoteSize)
     798                    SendNextCommand();
     799                else
     800                {
     801                    if (pData->download)
     802                    {
     803                        wxString filename = pData->remotePath.FormatFilename(pData->remoteFile);
     804                        LogMessage(Status, _("Skipping download of %s"), filename.c_str());
     805                    }
     806                    else
     807                    {
     808                        LogMessage(Status, _("Skipping upload of %s"), pData->localFile.c_str());
     809                    }
     810                    ResetOperation(FZ_REPLY_OK);
     811                }
     812                break;
     813            case CFileExistsNotification::overwriteSizeOrNewer:
     814                if (!pFileExistsNotification->localTime.IsValid() || !pFileExistsNotification->remoteTime.IsValid())
     815                    SendNextCommand();
     816                else if (pFileExistsNotification->localSize != pFileExistsNotification->remoteSize)
     817                    SendNextCommand();
     818                else if (pFileExistsNotification->download && pFileExistsNotification->localTime.IsEarlierThan(pFileExistsNotification->remoteTime))
     819                    SendNextCommand();
     820                else if (!pFileExistsNotification->download && pFileExistsNotification->localTime.IsLaterThan(pFileExistsNotification->remoteTime))
     821                    SendNextCommand();
     822                else
     823                {
     824                    if (pData->download)
     825                    {
     826                        wxString filename = pData->remotePath.FormatFilename(pData->remoteFile);
     827                        LogMessage(Status, _("Skipping download of %s"), filename.c_str());
     828                    }
     829                    else
     830                    {
     831                        LogMessage(Status, _("Skipping upload of %s"), pData->localFile.c_str());
     832                    }
     833                    ResetOperation(FZ_REPLY_OK);
     834                }
     835                break;
    796836            case CFileExistsNotification::resume:
    797837                if (pData->download && pFileExistsNotification->localSize != -1)
    798838                    pData->resume = true;
  • src/engine/httpcontrolsocket.cpp

     
    215215                    ResetOperation(FZ_REPLY_OK);
    216216                }
    217217                break;
     218            case CFileExistsNotification::overwriteSize:
     219                if (pFileExistsNotification->localSize != pFileExistsNotification->remoteSize)
     220                    SendNextCommand();
     221                else
     222                {
     223                    if (pData->download)
     224                    {
     225                        wxString filename = pData->remotePath.FormatFilename(pData->remoteFile);
     226                        LogMessage(Status, _("Skipping download of %s"), filename.c_str());
     227                    }
     228                    else
     229                    {
     230                        LogMessage(Status, _("Skipping upload of %s"), pData->localFile.c_str());
     231                    }
     232                    ResetOperation(FZ_REPLY_OK);
     233                }
     234                break;
     235            case CFileExistsNotification::overwriteSizeOrNewer:
     236                if (!pFileExistsNotification->localTime.IsValid() || !pFileExistsNotification->remoteTime.IsValid())
     237                    SendNextCommand();
     238                else if (pFileExistsNotification->localSize != pFileExistsNotification->remoteSize)
     239                    SendNextCommand();
     240                else if (pFileExistsNotification->download && pFileExistsNotification->localTime.IsEarlierThan(pFileExistsNotification->remoteTime))
     241                    SendNextCommand();
     242                else if (!pFileExistsNotification->download && pFileExistsNotification->localTime.IsLaterThan(pFileExistsNotification->remoteTime))
     243                    SendNextCommand();
     244                else
     245                {
     246                    if (pData->download)
     247                    {
     248                        wxString filename = pData->remotePath.FormatFilename(pData->remoteFile);
     249                        LogMessage(Status, _("Skipping download of %s"), filename.c_str());
     250                    }
     251                    else
     252                    {
     253                        LogMessage(Status, _("Skipping upload of %s"), pData->localFile.c_str());
     254                    }
     255                    ResetOperation(FZ_REPLY_OK);
     256                }
     257                break;
    218258            case CFileExistsNotification::resume:
    219259                ResetOperation(FZ_REPLY_CRITICALERROR | FZ_REPLY_NOTSUPPORTED);
    220260                break;
  • src/engine/ftpcontrolsocket.cpp

     
    27262726                    ResetOperation(FZ_REPLY_OK);
    27272727                }
    27282728                break;
     2729            case CFileExistsNotification::overwriteSize:
     2730                if (pFileExistsNotification->localSize != pFileExistsNotification->remoteSize)
     2731                    SendNextCommand();
     2732                else
     2733                {
     2734                    if (pData->download)
     2735                    {
     2736                        wxString filename = pData->remotePath.FormatFilename(pData->remoteFile);
     2737                        LogMessage(Status, _("Skipping download of %s"), filename.c_str());
     2738                    }
     2739                    else
     2740                    {
     2741                        LogMessage(Status, _("Skipping upload of %s"), pData->localFile.c_str());
     2742                    }
     2743                    ResetOperation(FZ_REPLY_OK);
     2744                }
     2745                break;
     2746            case CFileExistsNotification::overwriteSizeOrNewer:
     2747                if (!pFileExistsNotification->localTime.IsValid() || !pFileExistsNotification->remoteTime.IsValid())
     2748                    SendNextCommand();
     2749                else if (pFileExistsNotification->localSize != pFileExistsNotification->remoteSize)
     2750                    SendNextCommand();
     2751                else if (pFileExistsNotification->download && pFileExistsNotification->localTime.IsEarlierThan(pFileExistsNotification->remoteTime))
     2752                    SendNextCommand();
     2753                else if (!pFileExistsNotification->download && pFileExistsNotification->localTime.IsLaterThan(pFileExistsNotification->remoteTime))
     2754                    SendNextCommand();
     2755                else
     2756                {
     2757                    if (pData->download)
     2758                    {
     2759                        wxString filename = pData->remotePath.FormatFilename(pData->remoteFile);
     2760                        LogMessage(Status, _("Skipping download of %s"), filename.c_str());
     2761                    }
     2762                    else
     2763                    {
     2764                        LogMessage(Status, _("Skipping upload of %s"), pData->localFile.c_str());
     2765                    }
     2766                    ResetOperation(FZ_REPLY_OK);
     2767                }
     2768                break;
    27292769            case CFileExistsNotification::resume:
    27302770                if (pData->download && pData->localFileSize != -1)
    27312771                    pData->resume = true;