OSDN Git Service

Add "Swap Panes" menu item to Folder Compare Window (2)
authorTakashi Sawanaka <sdottaka@users.sourceforge.net>
Sat, 30 Jan 2016 11:11:56 +0000 (20:11 +0900)
committerTakashi Sawanaka <sdottaka@users.sourceforge.net>
Sat, 30 Jan 2016 11:11:56 +0000 (20:11 +0900)
Src/7zCommon.cpp
Src/7zCommon.h
Src/DirDoc.cpp
Src/DirDoc.h

index 26b9425..922903e 100644 (file)
@@ -255,6 +255,14 @@ CTempPathContext *CTempPathContext::DeleteHead()
        return pParent;\r
 }\r
 \r
+void CTempPathContext::Swap(int idx1, int idx2)
+{
+       std::swap(m_strDisplayRoot[idx1], m_strDisplayRoot[idx2]);
+       std::swap(m_strRoot[idx1], m_strRoot[idx2]);
+       if (m_pParent)
+               m_pParent->Swap(idx1, idx2);
+}
+\r
 /**\r
  * @brief Return installed or local version of 7-Zip.\r
  */\r
index 754aad5..477adc2 100644 (file)
@@ -28,6 +28,7 @@ public:
        String m_strDisplayRoot[3];
        String m_strRoot[3];
        CTempPathContext *DeleteHead();
+       void Swap(int idx1, int idx2);
 };
 
 /**
index 43fed2d..d0f9fa7 100644 (file)
@@ -639,8 +639,11 @@ void CDirDoc::Swap(int idx1, int idx2)
 {
        std::swap(m_bRO[idx1], m_bRO[idx2]);
        std::swap(m_strDesc[idx1], m_strDesc[idx2]);
+       if (m_pTempPathContext)
+               m_pTempPathContext->Swap(idx1, idx2);
        m_pCtxt->Swap(idx1, idx2);
        m_pCompareStats->Swap(idx1, idx2);
        for (int nIndex = 0; nIndex < m_nDirs; nIndex++)
                UpdateHeaderPath(nIndex);
+       SetTitle(NULL);
 }
index d23efbb..1ac6ccb 100644 (file)
@@ -99,7 +99,7 @@ public:
        void AddMergeDoc(IMergeDoc * pMergeDoc);
        void MergeDocClosing(IMergeDoc * pMergeDoc);
        CDiffThread m_diffThread;
-       void UpdateHeaderPath(BOOL bLeft);
+       void UpdateHeaderPath(int nIndex);
        void AbortCurrentScan();
        bool IsCurrentScanAbortable() const;
        void SetDescriptions(const String strDesc[]);