Browse Source

moved more messages to shortcut key map/enums

git-svn-id: svn://svn.code.sf.net/p/ditto-cp/code/trunk@683 595ec19a-5cb4-439b-94a8-42fb3063c22c
sabrogden 12 years ago
parent
commit
6706f33818
4 changed files with 212 additions and 164 deletions
  1. 5 0
      ActionEnums.h
  2. 1 34
      QListCtrl.cpp
  3. 201 129
      QPasteWnd.cpp
  4. 5 1
      QPasteWnd.h

+ 5 - 0
ActionEnums.h

@@ -28,6 +28,11 @@ public:
 		HOMELIST,
 		BACKGRROUP,
 		TOGGLESHOWPERSISTANT,
+		PASTE_SELECTED,
+		DELETE_SELECTED,
+		CLIP_PROPERTIES,
+		PASTE_SELECTED_PLAIN_TEXT,
+		MOVE_CLIP_TO_GROUP,
 	};
 };
 

+ 1 - 34
QListCtrl.cpp

@@ -150,36 +150,6 @@ END_MESSAGE_MAP()
 void CQListCtrl::OnKeydown(NMHDR* pNMHDR, LRESULT* pResult) 
 {
 	LV_KEYDOWN* pLVKeyDown = (LV_KEYDOWN*)pNMHDR;
-		
-	switch (pLVKeyDown->wVKey)
-	{
-	case VK_RETURN:
-		{
-			ARRAY arr;
-			GetSelectionIndexes(arr);
-			SendSelection(arr);
-		}
-		break;
-		
-	case VK_ESCAPE:
-		GetParent()->SendMessage(NM_END, 0, 0);
-		break;
-		
-	case VK_RIGHT:
-		{
-			int nItem = GetNextItem(-1, LVNI_SELECTED);
-			if (nItem != -1)
-				GetParent()->SendMessage(NM_RIGHT, nItem, 0);
-		}
-		break;
-		
-	case VK_LEFT:
-		GetParent()->SendMessage(NM_LEFT, 0, 0);
-		break;
-	case VK_DELETE:
-		GetParent()->SendMessage(NM_DELETE, 0, 0);
-		break;
-	}
 	
 	*pResult = 0;
 }
@@ -619,10 +589,7 @@ void CQListCtrl::RefreshRow(int row)
 
 void CQListCtrl::OnSysKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags) 
 {
-	if(GetKeyState(VK_RETURN) & 0x800)
-		GetParent()->SendMessage(NM_PROPERTIES, 0, 0);
-	else
-		CListCtrl::OnSysKeyDown(nChar, nRepCnt, nFlags);
+	CListCtrl::OnSysKeyDown(nChar, nRepCnt, nFlags);
 }
 
 BOOL CQListCtrl::OnEraseBkgnd(CDC* pDC) 

+ 201 - 129
QPasteWnd.cpp

@@ -160,7 +160,6 @@ ON_MESSAGE(NM_SELECT, OnListSelect)
 ON_MESSAGE(NM_END, OnListEnd)
 ON_MESSAGE(CB_SEARCH, OnSearch)
 ON_MESSAGE(NM_DELETE, OnDelete)
-ON_MESSAGE(NM_PROPERTIES, OnProperties)
 ON_NOTIFY(NM_GETTOOLTIPTEXT, ID_LIST_HEADER, OnGetToolTipText)
 ON_MESSAGE(NM_SELECT_DB_ID, OnListSelect_DB_ID)
 ON_MESSAGE(NM_SELECT_INDEX, OnListSelect_Index)
@@ -336,6 +335,11 @@ int CQPasteWnd::OnCreate(LPCREATESTRUCT lpCreateStruct)
 	m_actions.AddAccel(ActionEnums::HOMELIST, VK_HOME);
 	m_actions.AddAccel(ActionEnums::BACKGRROUP, VK_BACK);
 	m_actions.AddAccel(ActionEnums::TOGGLESHOWPERSISTANT, ACCEL_MAKEKEY(VK_SPACE, HOTKEYF_CONTROL));
+	m_actions.AddAccel(ActionEnums::PASTE_SELECTED, VK_RETURN);
+	m_actions.AddAccel(ActionEnums::DELETE_SELECTED, VK_DELETE);
+	m_actions.AddAccel(ActionEnums::CLIP_PROPERTIES, ACCEL_MAKEKEY(VK_RETURN, HOTKEYF_ALT));
+	m_actions.AddAccel(ActionEnums::PASTE_SELECTED_PLAIN_TEXT, ACCEL_MAKEKEY(VK_RETURN, HOTKEYF_SHIFT));
+	m_actions.AddAccel(ActionEnums::MOVE_CLIP_TO_GROUP, 0);
 	
     return 0;
 }
@@ -1601,73 +1605,7 @@ void CQPasteWnd::OnMenuToggleConnectCV()
 
 void CQPasteWnd::OnMenuProperties()
 {
-    m_bHideWnd = false;
-
-    ARRAY IDs, Indexes;
-    m_lstHeader.GetSelectionItemData(IDs);
-    m_lstHeader.GetSelectionIndexes(Indexes);
-
-    INT_PTR size = IDs.GetSize();
-    if(size < 1)
-    {
-        return ;
-    }
-
-    int id = IDs[0];
-    int row = Indexes[0];
-
-    if(id < 0)
-    {
-        return ;
-    }
-
-    m_lstHeader.RemoveAllSelection();
-    m_lstHeader.SetSelection(row);
-
-    CCopyProperties props(id, this);
-    INT_PTR doModalRet = props.DoModal();
-
-    if(doModalRet == IDOK)
-    {
-        {
-			ATL::CCritSecLock csLock(m_CritSection.m_sect);
-            
-            if(row < (int)m_listItems.size())
-            {
-                CppSQLite3Query q = theApp.m_db.execQueryEx(_T("SELECT * FROM Main WHERE lID = %d"), id);
-                if(!q.eof())
-                {
-                    FillMainTable(m_listItems[row], q);
-                }
-            }
-
-			CF_DibTypeMap::iterator iterDib = m_cf_dibCache.find(id);
-			if(iterDib != m_cf_dibCache.end())
-			{
-				m_cf_dibCache.erase(iterDib);
-			}
-
-			CF_DibTypeMap::iterator iterRtf = m_cf_rtfCache.find(id);
-			if(iterRtf != m_cf_rtfCache.end())
-			{
-				m_cf_rtfCache.erase(iterRtf);
-			}
-        }
-
-        m_thread.FireLoadAccelerators();
-
-        m_lstHeader.RefreshVisibleRows();
-
-        if(props.m_lGroupChangedTo >= 0)
-        {
-            OpenID(props.m_lGroupChangedTo);
-        }
-
-        m_lstHeader.SetFocus();
-        m_lstHeader.SetListPos(row);
-    }
-
-    m_bHideWnd = true;
+    this->DoAction(ActionEnums::CLIP_PROPERTIES);
 }
 
 void CQPasteWnd::UpdateFont()
@@ -1724,22 +1662,22 @@ void CQPasteWnd::OnMenuAutohide()
 
 void CQPasteWnd::OnMenuViewfulldescription()
 {
-    m_lstHeader.ShowFullDescription();
+    this->DoAction(ActionEnums::SHOWDESCRIPTION);
 }
 
 void CQPasteWnd::OnMenuAllwaysontop()
 {
-    theApp.ShowPersistent(!g_Opt.m_bShowPersistent);
+	this->DoAction(ActionEnums::TOGGLESHOWPERSISTANT);
 }
 
 void CQPasteWnd::OnMenuNewGroup()
 {
-    NewGroup(false);
+	this->DoAction(ActionEnums::NEWGROUP);
 }
 
 void CQPasteWnd::OnMenuNewGroupSelection()
 {
-    NewGroup(true);
+	this->DoAction(ActionEnums::NEWGROUPSELECTION);
 }
 
 void CQPasteWnd::OnMenuQuickoptionsAllwaysshowdescription()
@@ -1772,7 +1710,7 @@ void CQPasteWnd::OnMenuQuickoptionsPromptfornewgroupnames()
 
 void CQPasteWnd::OnMenuViewgroups()
 {
-    OnShowGroupsTop();
+	this->DoAction(ActionEnums::SHOWGROUPS);
 }
 
 void CQPasteWnd::OnMenuQuickpropertiesSettoneverautodelete()
@@ -1997,33 +1935,12 @@ void CQPasteWnd::OnMenuSenttoPromptforip()
 
 void CQPasteWnd::OnMenuGroupsMovetogroup()
 {
-    m_bHideWnd = false;
-
-    CMoveToGroupDlg dlg;
-
-    INT_PTR nRet = dlg.DoModal();
-    if(nRet == IDOK)
-    {
-        int nGroup = dlg.GetSelectedGroup();
-
-		Log(StrF(_T("Move to Group, GroupId: %d"), nGroup));
-
-        if(nGroup >= -1)
-        {
-            CClipIDs IDs;
-            m_lstHeader.GetSelectionItemData(IDs);
-
-            IDs.MoveTo(nGroup);
-        }
-        FillList();
-    }
-
-    m_bHideWnd = true;
+    this->DoAction(ActionEnums::MOVE_CLIP_TO_GROUP);
 }
 
 void CQPasteWnd::OnMenuPasteplaintextonly()
 {
-    OpenSelection(true);
+    this->DoAction(ActionEnums::PASTE_SELECTED_PLAIN_TEXT);
 }
 
 void CQPasteWnd::OnPromptToDeleteClip()
@@ -2336,25 +2253,12 @@ void CQPasteWnd::OnMenuQuickoptionsShowclipsthatareingroupsinmainlist()
 
 void CQPasteWnd::OnMenuEdititem()
 {
-    if(m_lstHeader.GetSelectedCount() == 0)
-    {
-        return ;
-    }
-
-    CClipIDs IDs;
-    m_lstHeader.GetSelectionItemData(IDs);
-    theApp.EditItems(IDs, true);
-
-    HideQPasteWindow(false);
+	this->DoAction(ActionEnums::EDITCLIP);
 }
 
 void CQPasteWnd::OnMenuNewclip()
 {
-    CClipIDs IDs;
-    IDs.Add(-1);
-    theApp.EditItems(IDs, true);
-
-    HideQPasteWindow(false);
+	this->DoAction(ActionEnums::NEWCLIP);
 }
 
 
@@ -2679,6 +2583,22 @@ bool CQPasteWnd::DoAction(DWORD actionId)
 	case ActionEnums::TOGGLESHOWPERSISTANT:
 		ret = DoActionToggleShowPersistant();
 		break;
+	case ActionEnums::PASTE_SELECTED:
+		ret = DoActionPasteSelected();
+		break;
+	case ActionEnums::DELETE_SELECTED:
+		ret = DoActionDeleteSelected();
+		break;
+	case ActionEnums::CLIP_PROPERTIES:
+		ret = DoActionClipProperties();
+		break;
+	case ActionEnums::PASTE_SELECTED_PLAIN_TEXT:
+		ret = DoActionPasteSelectedPlainText();
+		break;
+	case ActionEnums::MOVE_CLIP_TO_GROUP:
+		ret = DoActionMoveClipToGroup();
+		break;
+
 	}
 
 	return ret;
@@ -2908,13 +2828,26 @@ bool CQPasteWnd::DoActionShowGroups()
 
 bool CQPasteWnd::DoActionNewClip()
 {
-	OnMenuNewclip();
+	CClipIDs IDs;
+	IDs.Add(-1);
+	theApp.EditItems(IDs, true);
+
+	HideQPasteWindow(false);
 	return true;
 }
 
 bool CQPasteWnd::DoActionEditClip()
 {
-	OnMenuEdititem();
+	if(m_lstHeader.GetSelectedCount() == 0)
+	{
+		return false;
+	}
+
+	CClipIDs IDs;
+	m_lstHeader.GetSelectionItemData(IDs);
+	theApp.EditItems(IDs, true);
+
+	HideQPasteWindow(false);
 	return true;
 }
 
@@ -2967,7 +2900,15 @@ bool CQPasteWnd::DoActionMoveLast()
 
 bool CQPasteWnd::DoActionCancelFilter()
 {
-	OnCancelFilter(0, 0);
+	FillList();
+
+	m_bHandleSearchTextChange = false;
+	m_search.SetWindowText(_T(""));
+	m_bHandleSearchTextChange = true;
+
+	MoveControls();
+
+	m_lstHeader.SetFocus();
 
 	return true;
 }
@@ -2981,9 +2922,13 @@ bool CQPasteWnd::DoActionHomeList()
 
 bool CQPasteWnd::DoActionBackGroup()
 {
-	theApp.EnterGroupID(theApp.m_GroupParentID);
+	if(::GetFocus() == m_lstHeader.GetSafeHwnd())
+	{
+		theApp.EnterGroupID(theApp.m_GroupParentID);
+		return true;
+	}
 
-	return true;
+	return false;
 }
 
 bool CQPasteWnd::DoActionToggleShowPersistant()
@@ -2993,32 +2938,159 @@ bool CQPasteWnd::DoActionToggleShowPersistant()
 	return true;
 }
 
-LRESULT CQPasteWnd::OnCancelFilter(WPARAM wParam, LPARAM lParam)
+bool CQPasteWnd::DoActionPasteSelected()
 {
-    FillList();
+	if(::GetFocus() == m_lstHeader.GetSafeHwnd())
+	{
+		OpenSelection(false);
+		return true;
+	}
 
-    m_bHandleSearchTextChange = false;
-    m_search.SetWindowText(_T(""));
-    m_bHandleSearchTextChange = true;
+	return false;
+}
 
-    MoveControls();
+bool CQPasteWnd::DoActionDeleteSelected()
+{
+	if(::GetFocus() == m_lstHeader.GetSafeHwnd())
+	{
+		DeleteSelectedRows();
+		return true;
+	}
 
-    m_lstHeader.SetFocus();
+	return false;
+}
 
-	return 1;
+bool CQPasteWnd::DoActionClipProperties()
+{
+	if(::GetFocus() == m_lstHeader.GetSafeHwnd())
+	{
+		m_bHideWnd = false;
+
+		ARRAY IDs, Indexes;
+		m_lstHeader.GetSelectionItemData(IDs);
+		m_lstHeader.GetSelectionIndexes(Indexes);
+
+		INT_PTR size = IDs.GetSize();
+		if(size < 1)
+		{
+			return false;
+		}
+
+		int id = IDs[0];
+		int row = Indexes[0];
+
+		if(id < 0)
+		{
+			return false;
+		}
+
+		m_lstHeader.RemoveAllSelection();
+		m_lstHeader.SetSelection(row);
+
+		CCopyProperties props(id, this);
+		INT_PTR doModalRet = props.DoModal();
+
+		if(doModalRet == IDOK)
+		{
+			{
+				ATL::CCritSecLock csLock(m_CritSection.m_sect);
+
+				if(row < (int)m_listItems.size())
+				{
+					CppSQLite3Query q = theApp.m_db.execQueryEx(_T("SELECT * FROM Main WHERE lID = %d"), id);
+					if(!q.eof())
+					{
+						FillMainTable(m_listItems[row], q);
+					}
+				}
+
+				CF_DibTypeMap::iterator iterDib = m_cf_dibCache.find(id);
+				if(iterDib != m_cf_dibCache.end())
+				{
+					m_cf_dibCache.erase(iterDib);
+				}
+
+				CF_DibTypeMap::iterator iterRtf = m_cf_rtfCache.find(id);
+				if(iterRtf != m_cf_rtfCache.end())
+				{
+					m_cf_rtfCache.erase(iterRtf);
+				}
+			}
+
+			m_thread.FireLoadAccelerators();
+
+			m_lstHeader.RefreshVisibleRows();
+
+			if(props.m_lGroupChangedTo >= 0)
+			{
+				OpenID(props.m_lGroupChangedTo);
+			}
+
+			m_lstHeader.SetFocus();
+			m_lstHeader.SetListPos(row);
+		}
+
+		m_bHideWnd = true;
+		return true;
+	}
+
+	return false;
 }
 
-LRESULT CQPasteWnd::OnPostOptions(WPARAM wParam, LPARAM lParam)
+bool CQPasteWnd::DoActionPasteSelectedPlainText()
 {
-	UpdateFont();
+	if(::GetFocus() == m_lstHeader.GetSafeHwnd())
+	{
+		OpenSelection(true);
+		return true;
+	}
+
+	return false;
+}
+
+bool CQPasteWnd::DoActionMoveClipToGroup()
+{
+	if(::GetFocus() == m_lstHeader.GetSafeHwnd())
+	{
+		m_bHideWnd = false;
 
+		CMoveToGroupDlg dlg;
+
+		INT_PTR nRet = dlg.DoModal();
+		if(nRet == IDOK)
+		{
+			int nGroup = dlg.GetSelectedGroup();
+
+			Log(StrF(_T("Move to Group, GroupId: %d"), nGroup));
+
+			if(nGroup >= -1)
+			{
+				CClipIDs IDs;
+				m_lstHeader.GetSelectionItemData(IDs);
+
+				IDs.MoveTo(nGroup);
+			}
+			FillList();
+		}
+
+		m_bHideWnd = true;
+		return true;
+	}
+
+	return false;
+}
+
+LRESULT CQPasteWnd::OnCancelFilter(WPARAM wParam, LPARAM lParam)
+{
+	this->DoAction(ActionEnums::CANCELFILTER);
 	return 1;
 }
 
-LRESULT CQPasteWnd::OnProperties(WPARAM wParam, LPARAM lParam)
+LRESULT CQPasteWnd::OnPostOptions(WPARAM wParam, LPARAM lParam)
 {
-    OnMenuProperties();
-    return TRUE;
+	UpdateFont();
+
+	return 1;
 }
 
 void CQPasteWnd::OnClose()

+ 5 - 1
QPasteWnd.h

@@ -226,6 +226,11 @@ public:
 	bool DoActionHomeList();
 	bool DoActionBackGroup();
 	bool DoActionToggleShowPersistant();
+	bool DoActionDeleteSelected();
+	bool DoActionPasteSelected();
+	bool DoActionClipProperties();
+	bool DoActionPasteSelectedPlainText();
+	bool DoActionMoveClipToGroup();
 
     // Generated message map functions
 protected:
@@ -317,7 +322,6 @@ protected:
     afx_msg LRESULT OnListEnd(WPARAM wParam, LPARAM lParam);
     afx_msg LRESULT OnSearch(WPARAM wParam, LPARAM lParam);
     afx_msg LRESULT OnDelete(WPARAM wParam, LPARAM lParam);
-    afx_msg LRESULT OnProperties(WPARAM wParam, LPARAM lParam);
     afx_msg void OnGetToolTipText(NMHDR *pNMHDR, LRESULT *pResult);
     afx_msg LRESULT OnListSelect_DB_ID(WPARAM wParam, LPARAM lParam);
     afx_msg LRESULT OnListSelect_Index(WPARAM wParam, LPARAM lParam);