Browse Source

Added option to allow back to back duplicates

scott brogden 5 years ago
parent
commit
7ab5abd3f9
4 changed files with 36 additions and 2 deletions
  1. 14 0
      AdvGeneral.cpp
  2. 5 2
      Clip.cpp
  3. 13 0
      Options.cpp
  4. 4 0
      Options.h

+ 14 - 0
AdvGeneral.cpp

@@ -129,6 +129,7 @@ END_MESSAGE_MAP()
 #define SETTING_COPY_SAVE_DELAY 78
 #define SETTING_EDITOR_FONT_SIZE 79
 #define SETTING_MOVE_SELECTION_ON_OPEN_HOTKEY 80
+#define SETTING_ALOW_BACK_TO_BACK_DUPLICATES 81
 
 BOOL CAdvGeneral::OnInitDialog()
 {
@@ -163,6 +164,8 @@ BOOL CAdvGeneral::OnInitDialog()
 	AddTrueFalse(pGroupTest, _T("Add File Drop when dragging clips"), CGetSetOptions::GetAddCFHDROP_OnDrag(), SETTING_ADD_CF_HDROP_ON_DRAG);
 
 	AddTrueFalse(pGroupTest, _T("Allow Duplicates"), CGetSetOptions::GetAllowDuplicates(), SETTING_ALLOW_DUPLICATES);
+	AddTrueFalse(pGroupTest, _T("Allow Back To Back Duplicates (if allowing duplicates)"), CGetSetOptions::GetAllowBackToBackDuplicates(), SETTING_ALOW_BACK_TO_BACK_DUPLICATES);
+
 	AddTrueFalse(pGroupTest, _T("Always Show Scroll Bar"), CGetSetOptions::GetShowScrollBar(), SETTING_ALWAYS_SHOW_SCROLL_BAR);
 	pGroupTest->AddSubItem(new CMFCPropertyGridProperty(_T("Amount of text to save for description"), g_Opt.m_bDescTextSize, _T(""), SETTING_DESC_SIZE));
 	pGroupTest->AddSubItem(new CMFCPropertyGridProperty(_T("Copy and save clipboard delay (ms)"), (long)CGetSetOptions::GetCopyAndSveDelay(), _T(""), SETTING_COPY_SAVE_DELAY));
@@ -630,6 +633,17 @@ void CAdvGeneral::OnBnClickedOk()
 					CGetSetOptions::SetAllowDuplicates(val);
 				}
 				break;
+			case SETTING_ALOW_BACK_TO_BACK_DUPLICATES:
+				if (wcscmp(pNewValue->bstrVal, pOrigValue->bstrVal) != 0)
+				{
+					BOOL val = false;
+					if (wcscmp(pNewValue->bstrVal, L"True") == 0)
+					{
+						val = true;
+					}
+					CGetSetOptions::SetAllowBackToBackDuplicates(val);
+				}
+				break;
 			case SETTING_REGEX_FILTERING_1:
 			case SETTING_REGEX_FILTERING_2:
 			case SETTING_REGEX_FILTERING_3:

+ 5 - 2
Clip.cpp

@@ -817,8 +817,11 @@ int CClip::FindDuplicate()
 		//the last copied item
 		if(g_Opt.m_bAllowDuplicates)
 		{
-			if(m_CRC == m_LastAddedCRC)
-				return m_lastAddedID;
+			if (g_Opt.m_allowBackToBackDuplicates == FALSE)
+			{
+				if (m_CRC == m_LastAddedCRC)
+					return m_lastAddedID;
+			}
 		}
 		else
 		{

+ 13 - 0
Options.cpp

@@ -77,6 +77,7 @@ int CGetSetOptions::m_doubleKeyStrokeTimeout = 350;
 int CGetSetOptions::m_firstTenHotKeysStart = 1;
 int CGetSetOptions::m_firstTenHotKeysFontSize = 5;
 BOOL CGetSetOptions::m_moveSelectionOnOpenHotkey = TRUE;
+BOOL CGetSetOptions::m_allowBackToBackDuplicates = FALSE;
 
 CGetSetOptions::CGetSetOptions()
 {
@@ -200,6 +201,7 @@ void CGetSetOptions::LoadSettings()
 	m_firstTenHotKeysStart = GetFirstTenHotKeysStart();
 	m_firstTenHotKeysFontSize = GetFirstTenHotKeysFontSize();
 	m_moveSelectionOnOpenHotkey = GetMoveSelectionOnOpenHotkey();
+	m_allowBackToBackDuplicates = GetAllowBackToBackDuplicates();
 
 	GetExtraNetworkPassword(true);
 
@@ -2883,4 +2885,15 @@ void CGetSetOptions::SetMoveSelectionOnOpenHotkey(BOOL val)
 {
 	m_moveSelectionOnOpenHotkey = val;
 	SetProfileLong("MoveSelectionOnOpenHotkey", val);
+}
+
+BOOL CGetSetOptions::GetAllowBackToBackDuplicates()
+{
+	return GetProfileLong("AllowBackToBackDuplicates", FALSE);
+}
+
+void CGetSetOptions::SetAllowBackToBackDuplicates(BOOL val)
+{
+	m_allowBackToBackDuplicates = val;
+	SetProfileLong("AllowBackToBackDuplicates", val);
 }

+ 4 - 0
Options.h

@@ -647,6 +647,10 @@ public:
 	static BOOL GetMoveSelectionOnOpenHotkey();
 	static void SetMoveSelectionOnOpenHotkey(BOOL val);
 
+	static BOOL m_allowBackToBackDuplicates;
+	static BOOL GetAllowBackToBackDuplicates();
+	static void SetAllowBackToBackDuplicates(BOOL val);
+
 
 };