OSDN Git Service

PATCH: [ 1342871 ] Disable Copy Filenames for folders
authorKimmo Varis <kimmov@gmail.com>
Mon, 31 Oct 2005 16:54:55 +0000 (16:54 +0000)
committerKimmo Varis <kimmov@gmail.com>
Mon, 31 Oct 2005 16:54:55 +0000 (16:54 +0000)
Src/Changes.txt
Src/DirView.cpp
Src/DirView.h

index 0337f67..6ecb779 100644 (file)
@@ -2,6 +2,8 @@
  RFE: [ 1324314 ] CTRL+W to close current diff
   Src: Merge.rc
   Src/Languages: *.rc
+ PATCH: [ 1342871 ] Disable Copy Filenames for folders
+  Src: DirView.cpp DirView.h
 
 2005-10-30 Kimmo
  PATCH: [ 1341813 ] VSS project linking misdetects project files
index d038505..83d6ff2 100644 (file)
@@ -162,6 +162,7 @@ BEGIN_MESSAGE_MAP(CDirView, CListView)
        ON_COMMAND(ID_DIR_COPY_PATHNAMES_RIGHT, OnCopyRightPathnames)
        ON_COMMAND(ID_DIR_COPY_PATHNAMES_BOTH, OnCopyBothPathnames)
        ON_COMMAND(ID_DIR_COPY_FILENAMES, OnCopyFilenames)
+       ON_UPDATE_COMMAND_UI(ID_DIR_COPY_FILENAMES, OnUpdateCopyFilenames)
        ON_COMMAND(ID_DIR_HIDE_FILENAMES, OnHideFilenames)
        ON_COMMAND(ID_DIR_MOVE_LEFT_TO_BROWSE, OnCtxtDirMoveLeftTo)
        ON_UPDATE_COMMAND_UI(ID_DIR_MOVE_LEFT_TO_BROWSE, OnUpdateCtxtDirMoveLeftTo)
@@ -1528,6 +1529,22 @@ void CDirView::DoUpdateDelete(CCmdUI* pCmdUI)
        pCmdUI->Enable(count > 0);
 }
 
+/**
+ * @brief Update dirview context menu "Copy Filenames" item
+ */
+void CDirView::DoUpdateCopyFilenames(CCmdUI* pCmdUI)
+{
+       int sel =- 1;
+       int count = 0;
+       while ((sel = m_pList->GetNextItem(sel, LVNI_SELECTED)) != -1)
+       {
+               const DIFFITEM& di = GetDiffItem(sel);
+               if (di.diffcode != 0 && !di.isDirectory())
+                       ++count;
+       }
+       pCmdUI->Enable(count > 0);
+}
+
 UINT CDirView::GetSelectedCount() const
 {
        return m_pList->GetSelectedCount();
@@ -2523,6 +2540,14 @@ void CDirView::OnCopyFilenames()
 }
 
 /**
+ * @brief Enable/Disable dirview Copy Filenames context menu item.
+ */
+void CDirView::OnUpdateCopyFilenames(CCmdUI* pCmdUI)
+{
+       DoUpdateCopyFilenames(pCmdUI);
+}
+
+/**
  * @brief hide selected item filenames (removes them from the ListView)
  */
 void CDirView::OnHideFilenames()
index b496512..1196de3 100644 (file)
@@ -338,6 +338,7 @@ protected:
        afx_msg void OnCopyRightPathnames();
        afx_msg void OnCopyBothPathnames();
        afx_msg void OnCopyFilenames();
+       afx_msg void OnUpdateCopyFilenames(CCmdUI* pCmdUI);
        afx_msg void OnHideFilenames();
        afx_msg void OnSize(UINT nType, int cx, int cy);
        afx_msg void OnCtxtDirMoveLeftTo();
@@ -375,6 +376,7 @@ private:
        void DoUpdateOpenLeftWith(CCmdUI* pCmdUI);
        void DoUpdateOpenRightWith(CCmdUI* pCmdUI);
        void DoUpdateDelete(CCmdUI* pCmdUI);
+       void DoUpdateCopyFilenames(CCmdUI* pCmdUI);
        void DoUpdateCtxtDirCopyLeftTo(CCmdUI* pCmdUI);
        void DoUpdateCtxtDirCopyRightTo(CCmdUI* pCmdUI);
        void DoUpdateCtxtDirMoveLeftTo(CCmdUI* pCmdUI);