Browse Source

added menu option to paste cf_text only and menu options for help

git-svn-id: svn://svn.code.sf.net/p/ditto-cp/code/trunk@123 595ec19a-5cb4-439b-94a8-42fb3063c22c
sabrogden 21 years ago
parent
commit
8011282008
11 changed files with 64 additions and 20 deletions
  1. 5 0
      CP_Main.rc
  2. 3 2
      HyperLink.h
  3. 7 2
      MainFrm.cpp
  4. 1 0
      MainFrm.h
  5. 8 4
      ProcessCopy.cpp
  6. 2 2
      ProcessCopy.h
  7. 7 1
      ProcessPaste.cpp
  8. 2 0
      ProcessPaste.h
  9. 21 6
      QPasteWnd.cpp
  10. 4 2
      QPasteWnd.h
  11. 4 1
      Resource.h

+ 5 - 0
CP_Main.rc

@@ -157,6 +157,8 @@ BEGIN
         MENUITEM "Show Quick Paste",            ID_FIRST_SHOWQUICKPASTE
         MENUITEM "Options",                     ID_FIRST_OPTION
         MENUITEM SEPARATOR
+        MENUITEM "Help",                        ID_FIRST_HELP
+        MENUITEM SEPARATOR
         MENUITEM "Connect To Clipboard",        ID_FIRST_TOGGLECONNECTCV
         MENUITEM SEPARATOR
         MENUITEM "Exit",                        ID_FIRST_EXIT
@@ -295,6 +297,7 @@ BEGIN
         END
         MENUITEM "View Full Description\tF3",   ID_MENU_VIEWFULLDESCRIPTION
         MENUITEM "View Groups\tCtrl-G",         ID_MENU_VIEWGROUPS
+        MENUITEM "Paste Plain Text Only",       ID_MENU_PASTEPLAINTEXTONLY
         MENUITEM SEPARATOR
         MENUITEM "Delete Entry\tDel",           ID_MENU_DELETE
         MENUITEM SEPARATOR
@@ -311,6 +314,8 @@ BEGIN
         MENUITEM SEPARATOR
         MENUITEM "Options...",                  ID_MENU_OPTIONS
         MENUITEM SEPARATOR
+        MENUITEM "Help",                        ID_MENU_HELP
+        MENUITEM SEPARATOR
         MENUITEM "Connect To Clipboard",        ID_MENU_TOGGLECONNECTCV
         MENUITEM SEPARATOR
         MENUITEM "Exit Program",                ID_MENU_EXITPROGRAM

+ 3 - 2
HyperLink.h

@@ -51,6 +51,8 @@ public:
     void SetAutoSize(BOOL bAutoSize = TRUE);
     BOOL GetAutoSize() const;
 
+	static HINSTANCE GotoURL(LPCTSTR url, int showcmd);
+
 // Overrides
     // ClassWizard generated virtual function overrides
     //{{AFX_VIRTUAL(CHyperLink)
@@ -62,9 +64,8 @@ public:
 
 // Implementation
 protected:
-    HINSTANCE GotoURL(LPCTSTR url, int showcmd);
     void ReportError(int nError);
-    LONG GetRegKey(HKEY key, LPCTSTR subkey, LPTSTR retdata);
+    static LONG GetRegKey(HKEY key, LPCTSTR subkey, LPTSTR retdata);
     void PositionWindow();
     void SetDefaultCursor();
 

+ 7 - 2
MainFrm.cpp

@@ -10,6 +10,7 @@
 #include "InternetUpdate.h"
 #include ".\mainfrm.h"
 #include "focusdll\focusdll.h"
+#include "HyperLink.h"
 
 #ifdef _DEBUG
 #define new DEBUG_NEW
@@ -31,12 +32,11 @@ BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd)
 	ON_WM_CREATE()
 	ON_COMMAND(ID_FIRST_OPTION, OnFirstOption)
 	ON_COMMAND(ID_FIRST_EXIT, OnFirstExit)
-//	ON_WM_CHANGECBCHAIN()
-//	ON_WM_DRAWCLIPBOARD()
 	ON_WM_TIMER()
 	ON_COMMAND(ID_FIRST_SHOWQUICKPASTE, OnFirstShowquickpaste)
 	ON_COMMAND(ID_FIRST_TOGGLECONNECTCV, OnFirstToggleConnectCV)
 	ON_UPDATE_COMMAND_UI(ID_FIRST_TOGGLECONNECTCV, OnUpdateFirstToggleConnectCV)
+	ON_COMMAND(ID_FIRST_HELP, OnFirstHelp)
 	//}}AFX_MSG_MAP
 	ON_MESSAGE(WM_HOTKEY, OnHotKey)
 	ON_MESSAGE(WM_SHOW_TRAY_ICON, OnShowTrayIcon)
@@ -576,3 +576,8 @@ LRESULT CMainFrame::OnFocusChanged(WPARAM wParam, LPARAM lParam)
 
 	return TRUE;
 }
+
+void CMainFrame::OnFirstHelp() 
+{
+	CHyperLink::GotoURL("Help\\DittoGettingStarted.htm", SW_SHOW);
+}

+ 1 - 0
MainFrm.h

@@ -71,6 +71,7 @@ protected:
 	afx_msg void OnFirstShowquickpaste();
 	afx_msg void OnFirstToggleConnectCV();
 	afx_msg void OnUpdateFirstToggleConnectCV(CCmdUI* pCmdUI);
+	afx_msg void OnFirstHelp();
 	//}}AFX_MSG
 	afx_msg LRESULT OnHotKey(WPARAM wParam, LPARAM lParam);
 	afx_msg LRESULT OnShowTrayIcon(WPARAM wParam, LPARAM lParam);

+ 8 - 4
ProcessCopy.cpp

@@ -145,8 +145,12 @@ CClipFormat* CClipFormats::FindFormat( UINT cfType )
 CClip - holds multiple CClipFormats and CopyClipboard() statistics
 \*----------------------------------------------------------------------------*/
 
-CClip::CClip() : m_ID(0), m_DataID(0), m_lTotalCopySize(0)
-{}
+CClip::CClip() : 
+m_ID(0), 
+m_DataID(0), 
+m_lTotalCopySize(0)
+{
+}
 
 CClip::~CClip()
 {
@@ -663,7 +667,7 @@ HGLOBAL CClip::LoadFormat( long lID, UINT cfType )
 		return hGlobal;
 }
 
-bool CClip::LoadFormats( long lID, CClipFormats& formats )
+bool CClip::LoadFormats( long lID, CClipFormats& formats, bool bOnlyLoad_CF_TEXT)
 {
 	CClipFormat cf;
 	HGLOBAL hGlobal = 0;
@@ -672,7 +676,7 @@ bool CClip::LoadFormats( long lID, CClipFormats& formats )
 	
 	try
 	{
-		BOOL bShiftIsDown = (GetKeyState(VK_SHIFT) & 0x8000);
+		BOOL bShiftIsDown = ((GetKeyState(VK_SHIFT) & 0x8000) || bOnlyLoad_CF_TEXT);
 		CDataTable recset;
 		
 		//Open the data table for all that have the parent id

+ 2 - 2
ProcessCopy.h

@@ -103,9 +103,9 @@ public:
 	// Allocates a Global containing the requested Clip's Format Data
 	static HGLOBAL LoadFormat( long lID, UINT cfType );
 	// Fills "formats" with the Data of all Formats in the db for the given Clip ID
-	static bool LoadFormats( long lID, CClipFormats& formats );
+	static bool LoadFormats( long lID, CClipFormats& formats, bool bOnlyLoad_CF_TEXT = false);
 	// Fills "types" with all Types in the db for the given Clip ID
-	static void LoadTypes( long lID, CClipTypes& types );
+	static void LoadTypes( long lID, CClipTypes& types);
 };
 
 

+ 7 - 1
ProcessPaste.cpp

@@ -702,6 +702,7 @@ COleClipSource
 COleClipSource::COleClipSource()
 {
 	m_bLoadedFormats = false;
+	m_bOnlyPaste_CF_TEXT = false;
 }
 
 COleClipSource::~COleClipSource()
@@ -734,7 +735,7 @@ BOOL COleClipSource::DoImmediateRender()
 	{
 		CClipFormats formats;
 		
-		CClip::LoadFormats( m_ClipIDs[0], formats );
+		CClip::LoadFormats(m_ClipIDs[0], formats, m_bOnlyPaste_CF_TEXT);
 		
 		return LoadFormats(&formats);
 	}
@@ -802,6 +803,7 @@ CProcessPaste::CProcessPaste()
 	m_pOle = new COleClipSource;
 	m_bSendPaste = true;
 	m_bActivateTarget = true;
+	m_bOnlyPaste_CF_TEXT = false;
 }
 
 CProcessPaste::~CProcessPaste()
@@ -811,6 +813,8 @@ CProcessPaste::~CProcessPaste()
 
 BOOL CProcessPaste::DoPaste()
 {
+	m_pOle->m_bOnlyPaste_CF_TEXT = m_bOnlyPaste_CF_TEXT;
+
 	if( m_pOle->DoImmediateRender() )
 	{
 		// MarkAsPasted() must be done first since it makes use of
@@ -829,8 +833,10 @@ BOOL CProcessPaste::DoPaste()
 		m_pOle->SetClipboard(); // m_pOle is now managed by the OLE clipboard
 		m_pOle = NULL; // m_pOle should not be accessed past this point
 		
+#ifndef _DEBUG
 		if(m_bSendPaste)
 			theApp.SendPaste(m_bActivateTarget);
+#endif
 		
 		return TRUE;
 	}

+ 2 - 0
ProcessPaste.h

@@ -93,6 +93,7 @@ class COleClipSource : public COleDataSource
 public:
 	CClipIDs	m_ClipIDs;
 	bool		m_bLoadedFormats;
+	bool		m_bOnlyPaste_CF_TEXT;
 
 	COleClipSource();
 	virtual ~COleClipSource();
@@ -116,6 +117,7 @@ public:
 	COleClipSource*	m_pOle;
 	bool m_bSendPaste;
 	bool m_bActivateTarget;
+	bool m_bOnlyPaste_CF_TEXT;
 
 	CProcessPaste();
 	~CProcessPaste();

+ 21 - 6
QPasteWnd.cpp

@@ -9,6 +9,7 @@
 #include "GroupName.h"
 #include ".\qpastewnd.h"
 #include "MoveToGroupDlg.h"
+#include "HyperLink.h"
 
 #ifdef _DEBUG
 #define new DEBUG_NEW
@@ -111,6 +112,8 @@ BEGIN_MESSAGE_MAP(CQPasteWnd, CWndEx)
 	ON_COMMAND(ID_MENU_SENTTO_FRIENDONE, OnMenuSenttoFriendone)
 	ON_COMMAND(ID_MENU_SENTTO_PROMPTFORIP, OnMenuSenttoPromptforip)
 	ON_COMMAND(ID_MENU_GROUPS_MOVETOGROUP, OnMenuGroupsMovetogroup)
+	ON_COMMAND(ID_MENU_PASTEPLAINTEXTONLY, OnMenuPasteplaintextonly)
+	ON_COMMAND(ID_MENU_HELP, OnMenuHelp)
 	//}}AFX_MSG_MAP
 	ON_MESSAGE(NM_SELECT, OnListSelect)
 	ON_MESSAGE(NM_END, OnListEnd)
@@ -422,34 +425,36 @@ bool CQPasteWnd::Add(const CString &csHeader, const CString &csText, int nID)
 	return true;
 }
 
-BOOL CQPasteWnd::OpenID( long lID )
+BOOL CQPasteWnd::OpenID(long lID, bool bOnlyLoad_CF_TEXT)
 {
 	if( theApp.EnterGroupID(lID) )
 		return TRUE;
 	
 	// else, it is a clip, so paste it
 	CProcessPaste paste;
+	paste.m_bOnlyPaste_CF_TEXT = bOnlyLoad_CF_TEXT;
 	paste.GetClipIDs().Add( lID );
 	paste.DoPaste();
 	theApp.OnPasteCompleted();
 	return TRUE;
 }
 
-BOOL CQPasteWnd::OpenSelection()
+BOOL CQPasteWnd::OpenSelection(bool bOnlyLoad_CF_TEXT)
 {
 	ARRAY IDs;
 	m_lstHeader.GetSelectionItemData( IDs );
     
 	int count = IDs.GetSize();
 	
-	if( count <= 0 )
+	if(count <= 0)
 		return FALSE;
 	
-	if( count == 1 )
-		return OpenID( IDs[0] );
+	if(count == 1)
+		return OpenID(IDs[0], bOnlyLoad_CF_TEXT);
 	// else count > 1
 	
 	CProcessPaste paste;
+	paste.m_bOnlyPaste_CF_TEXT = bOnlyLoad_CF_TEXT;
 	paste.GetClipIDs().Copy( IDs );
 	paste.DoPaste();
 	theApp.OnPasteCompleted();
@@ -1384,6 +1389,16 @@ void CQPasteWnd::OnMenuGroupsMovetogroup()
 	FillList();
 }
 
+void CQPasteWnd::OnMenuPasteplaintextonly() 
+{
+	OpenSelection(true);	
+}
+
+void CQPasteWnd::OnMenuHelp() 
+{
+	CHyperLink::GotoURL("Help\\DittoGettingStarted.htm", SW_SHOW);
+}
+
 
 ///////////////////////////////////////////////////////////////////////
 //END END Menu Stuff
@@ -2029,4 +2044,4 @@ LRESULT CQPasteWnd::OnGetClipData(LPARAM lParam, WPARAM wParam)
 	CATCHDAO
 
 	return bRet;
-}
+}

+ 4 - 2
QPasteWnd.h

@@ -79,8 +79,8 @@ public:
 
 	void DeleteSelectedRows();
 
-	BOOL OpenID( long lID );
-	BOOL OpenSelection();
+	BOOL OpenID(long lID, bool bOnlyLoad_CF_TEXT = false);
+	BOOL OpenSelection(bool bOnlyLoad_CF_TEXT = false);
 	BOOL OpenIndex( long nItem );
 	BOOL NewGroup( bool bGroupSelection = true );
 	// moves the caret to the given ID, selects it, and ensures it is visible.
@@ -165,6 +165,8 @@ protected:
 	afx_msg void OnMenuSenttoFriendone();
 	afx_msg void OnMenuSenttoPromptforip();
 	afx_msg void OnMenuGroupsMovetogroup();
+	afx_msg void OnMenuPasteplaintextonly();
+	afx_msg void OnMenuHelp();
 	//}}AFX_MSG
 	afx_msg LRESULT OnListSelect(WPARAM wParam, LPARAM lParam);
 	afx_msg LRESULT OnListEnd(WPARAM wParam, LPARAM lParam);

+ 4 - 1
Resource.h

@@ -193,6 +193,9 @@
 #define ID_MENU_SENTTO_FRIEND_FIFTEEN   32838
 #define ID_MENU_SENTTO_PROMPTFORIP      32839
 #define ID_MENU_GROUPS_MOVETOGROUP      32840
+#define ID_MENU_PASTEPLAINTEXTONLY      32841
+#define ID_MENU_HELP                    32842
+#define ID_FIRST_HELP                   32843
 
 // Next default values for new objects
 // 
@@ -200,7 +203,7 @@
 #ifndef APSTUDIO_READONLY_SYMBOLS
 #define _APS_3D_CONTROLS                     1
 #define _APS_NEXT_RESOURCE_VALUE        157
-#define _APS_NEXT_COMMAND_VALUE         32841
+#define _APS_NEXT_COMMAND_VALUE         32844
 #define _APS_NEXT_CONTROL_VALUE         2028
 #define _APS_NEXT_SYMED_VALUE           101
 #endif