Ignore:
Timestamp:
Jan 9, 2017, 11:09:38 AM (3 years ago)
Author:
jrpelegrina
Message:

Update new version: 3.15.02

File:
1 edited

Legend:

Unmodified
Added
Removed
  • filezilla/trunk/fuentes/src/interface/RemoteListView.cpp

    r130 r3185  
    12081208
    12091209        const CServer* pServer = m_pState->GetServer();
    1210         if (!pServer)
    1211         {
     1210        if (!pServer) {
    12121211                wxBell();
    12131212                return;
     
    12151214
    12161215        bool added = false;
    1217         bool startRecursive = false;
    12181216        long item = -1;
    1219         for (;;)
    1220         {
     1217
     1218        recursion_root root(m_pDirectoryListing->path, false);
     1219        for (;;) {
    12211220                item = GetNextItem(item, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED);
    12221221                if (item == -1)
     
    12341233                const wxString& name = entry.name;
    12351234
    1236                 if (entry.is_dir())
    1237                 {
     1235                if (entry.is_dir()) {
    12381236                        if (!idle)
    12391237                                continue;
     
    12411239                        local_path.AddSegment(CQueueView::ReplaceInvalidCharacters(name));
    12421240                        CServerPath remotePath = m_pDirectoryListing->path;
    1243                         if (remotePath.AddSegment(name))
    1244                         {
    1245                                 pRecursiveOperation->AddDirectoryToVisit(m_pDirectoryListing->path, name, local_path, entry.is_link());
    1246                                 startRecursive = true;
    1247                         }
    1248                 }
    1249                 else
    1250                 {
     1241                        if (remotePath.AddSegment(name)) {
     1242                                root.add_dir_to_visit(m_pDirectoryListing->path, name, local_path, entry.is_link());
     1243                        }
     1244                }
     1245                else {
    12511246                        wxString localFile = CQueueView::ReplaceInvalidCharacters(name);
    12521247                        if (m_pDirectoryListing->path.GetType() == VMS && COptions::Get()->GetOptionVal(OPTION_STRIP_VMS_REVISION))
     
    12611256                m_pQueue->QueueFile_Finish(!queueOnly);
    12621257
    1263         if (startRecursive)
    1264         {
     1258        if (!root.empty()) {
     1259                pRecursiveOperation->AddRecursionRoot(std::move(root));
    12651260                if (IsComparing())
    12661261                        ExitComparisonMode();
    12671262                CFilterManager filter;
    1268                 pRecursiveOperation->StartRecursiveOperation(queueOnly ? CRecursiveOperation::recursive_addtoqueue : CRecursiveOperation::recursive_download, m_pDirectoryListing->path, filter.GetActiveFilters(false));
     1263                pRecursiveOperation->StartRecursiveOperation(queueOnly ? CRecursiveOperation::recursive_addtoqueue : CRecursiveOperation::recursive_download,
     1264                                                                                                         filter.GetActiveFilters(false), m_pDirectoryListing->path);
    12691265        }
    12701266}
     
    14151411        std::deque<wxString> filesToDelete;
    14161412
    1417         bool startRecursive = false;
    1418         item = -1;
    1419         for (;;)
    1420         {
     1413        recursion_root root(m_pDirectoryListing->path, false);
     1414        for (item = -1; ;) {
    14211415                item = GetNextItem(item, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED);
    14221416                if (!item)
     
    14341428                const wxString& name = entry.name;
    14351429
    1436                 if (entry.is_dir() && (follow_symlink || !entry.is_link()))
    1437                 {
     1430                if (entry.is_dir() && (follow_symlink || !entry.is_link())) {
    14381431                        CServerPath remotePath = m_pDirectoryListing->path;
    1439                         if (remotePath.AddSegment(name))
    1440                         {
    1441                                 pRecursiveOperation->AddDirectoryToVisit(m_pDirectoryListing->path, name, CLocalPath(), true);
    1442                                 startRecursive = true;
     1432                        if (remotePath.AddSegment(name)) {
     1433                                root.add_dir_to_visit(m_pDirectoryListing->path, name, CLocalPath(), true);;
    14431434                        }
    14441435                }
     
    14501441                m_pState->m_pCommandQueue->ProcessCommand(new CDeleteCommand(m_pDirectoryListing->path, std::move(filesToDelete)));
    14511442
    1452         if (startRecursive)
    1453         {
     1443        if (!root.empty()) {
    14541444                if (IsComparing())
    14551445                        ExitComparisonMode();
     1446                pRecursiveOperation->AddRecursionRoot(std::move(root));
     1447               
    14561448                CFilterManager filter;
    1457                 pRecursiveOperation->StartRecursiveOperation(CRecursiveOperation::recursive_delete, m_pDirectoryListing->path, filter.GetActiveFilters(false));
     1449                pRecursiveOperation->StartRecursiveOperation(CRecursiveOperation::recursive_delete,
     1450                                                                                                         filter.GetActiveFilters(false), m_pDirectoryListing->path);
    14581451        }
    14591452}
     
    16911684        CRecursiveOperation* pRecursiveOperation = m_pState->GetRecursiveOperationHandler();
    16921685        wxASSERT(pRecursiveOperation);
     1686        recursion_root root(m_pDirectoryListing->path, false);
    16931687
    16941688        item = -1;
     
    17271721
    17281722                if (pChmodDlg->Recursive() && entry.is_dir())
    1729                         pRecursiveOperation->AddDirectoryToVisit(m_pDirectoryListing->path, entry.name);
     1723                        root.add_dir_to_visit(m_pDirectoryListing->path, entry.name);
    17301724        }
    17311725
     
    17351729
    17361730                pRecursiveOperation->SetChmodDialog(pChmodDlg);
     1731                pRecursiveOperation->AddRecursionRoot(std::move(root));
    17371732                CFilterManager filter;
    1738                 pRecursiveOperation->StartRecursiveOperation(CRecursiveOperation::recursive_chmod, m_pDirectoryListing->path, filter.GetActiveFilters(false));
     1733                pRecursiveOperation->StartRecursiveOperation(CRecursiveOperation::recursive_chmod,
     1734                                                                                                         filter.GetActiveFilters(false), m_pDirectoryListing->path);
    17391735
    17401736                // Refresh listing. This gets done implicitely by the recursive operation, so
     
    18521848
    18531849        int item = GetNextItem(-1, wxLIST_NEXT_ALL, wxLIST_STATE_FOCUSED);
    1854         if (item != -1)
    1855         {
     1850        if (item != -1) {
    18561851                int index = GetItemIndex(item);
    18571852                if (index != -1 && m_fileData[index].comparison_flags != fill)
     
    18741869                return;
    18751870
    1876         if (focused == _T(".."))
    1877         {
     1871        if (focused == _T("..")) {
    18781872                focused = _T("");
    18791873                SetItemState(0, wxLIST_STATE_FOCUSED, wxLIST_STATE_FOCUSED);
    18801874        }
    18811875
    1882         if (selectedNames.empty())
    1883         {
     1876        if (selectedNames.empty()) {
    18841877                if (focused.empty())
    18851878                        return;
    18861879
    1887                 for (unsigned int i = 1; i < m_indexMapping.size(); i++)
    1888                 {
     1880                for (unsigned int i = 1; i < m_indexMapping.size(); ++i) {
    18891881                        const int index = m_indexMapping[i];
    18901882                        if (m_fileData[index].comparison_flags == fill)
    18911883                                continue;
    18921884
    1893                         if ((*m_pDirectoryListing)[index].name == focused)
    1894                         {
     1885                        if ((*m_pDirectoryListing)[index].name == focused) {
    18951886                                SetItemState(i, wxLIST_STATE_FOCUSED, wxLIST_STATE_FOCUSED);
    18961887                                if (ensureVisible)
     
    19021893        }
    19031894
    1904         if (selectedNames.front() == _T(".."))
    1905         {
     1895        if (selectedNames.front() == _T("..")) {
    19061896                selectedNames.pop_front();
    19071897                SetItemState(0, wxLIST_STATE_SELECTED, wxLIST_STATE_SELECTED);
     
    23052295}
    23062296
    2307 bool CRemoteListView::GetNextFile(wxString& name, bool& dir, int64_t& size, CDateTime& date)
     2297bool CRemoteListView::get_next_file(wxString& name, bool& dir, int64_t& size, fz::datetime& date)
    23082298{
    23092299        if (++m_comparisonIndex >= (int)m_originalIndexMapping.size())
Note: See TracChangeset for help on using the changeset viewer.