Jelajahi Sumber

show option to search for description, full text, quick paste

git-svn-id: svn://svn.code.sf.net/p/ditto-cp/code/trunk@669 595ec19a-5cb4-439b-94a8-42fb3063c22c
sabrogden 12 tahun lalu
induk
melakukan
09494caa87
14 mengubah file dengan 291 tambahan dan 113 penghapusan
  1. 12 0
      CP_Main.rc
  2. 2 8
      CP_Main.vcxproj
  3. 41 21
      CP_Main.vcxproj.filters
  4. 9 9
      CP_Main_10.sln
  5. 3 0
      Debug/Language/English.xml
  6. 18 12
      DittoSetup/BuildDitto.bld
  7. 1 1
      FormatSQL.h
  8. 30 0
      Options.cpp
  9. 10 0
      Options.h
  10. 151 60
      QPasteWnd.cpp
  11. 5 0
      QPasteWnd.h
  12. 9 2
      Resource.h
  13. TEMPAT SAMPAH
      res/cog_16_16.png
  14. TEMPAT SAMPAH
      res/cog_22_22.png

+ 12 - 0
CP_Main.rc

@@ -305,6 +305,16 @@ BEGIN
     END
 END
 
+IDR_MENU_SEARCH MENU
+BEGIN
+    POPUP "Menu"
+    BEGIN
+        MENUITEM "Search Description",          ID_MENU_SEARCHDESCRIPTION
+        MENUITEM "Search Full Text",            ID_MENU_SEARCHFULLTEXT
+        MENUITEM "Search Quick Paste",          ID_MENU_SEARCHQUICKPASTE
+    END
+END
+
 
 /////////////////////////////////////////////////////////////////////////////
 //
@@ -933,6 +943,8 @@ IDR_FILE_COPY           AVI                     "res\\FILECOPY.AVI"
 
 IDB_OPEN_FOLDER_PNG     PNG                     "res\\folder_open.png"
 IDB_LEFT_ARROW_PNG      PNG                     "res\\left-blue.png"
+IDB_COG_22_22           PNG                     "res\\cog_22_22.png"
+IDB_COG_16_16           PNG                     "res\\cog_16_16.png"
 
 /////////////////////////////////////////////////////////////////////////////
 //

+ 2 - 8
CP_Main.vcxproj

@@ -1883,17 +1883,12 @@
     <None Include="res\back1.bmp" />
     <None Include="res\back2.bmp" />
     <None Include="res\bitmap1.bmp" />
-    <None Include="res\bitmap2.bmp" />
-    <None Include="res\bitmap_s.bmp" />
     <None Include="res\bmp00001.bmp" />
     <None Include="res\bmp00002.bmp" />
     <None Include="res\bmp00003.bmp" />
-    <None Include="res\bmp00004.bmp" />
-    <None Include="res\bmp00005.bmp" />
-    <None Include="res\bmp00006.bmp" />
-    <None Include="res\bmp00007.bmp" />
-    <None Include="res\bmp00008.bmp" />
     <None Include="res\closed_f.bmp" />
+    <None Include="res\cog_16_16.png" />
+    <None Include="res\cog_22_22.png" />
     <None Include="res\CP_Main.ico" />
     <None Include="res\CP_Main.rc2" />
     <None Include="res\CP_MainDoc.ico" />
@@ -1925,7 +1920,6 @@
       <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
     </CustomBuild>
     <None Include="res\FILECOPY.AVI" />
-    <None Include="ReadMe.txt" />
   </ItemGroup>
   <ItemGroup>
     <ProjectReference Include="U3Stop\U3Stop.vcxproj">

+ 41 - 21
CP_Main.vcxproj.filters

@@ -325,8 +325,12 @@
     <ClCompile Include="EditWithButton.cpp">
       <Filter>source</Filter>
     </ClCompile>
-    <ClCompile Include="DPI.cpp" />
-    <ClCompile Include="GdipButton.cpp" />
+    <ClCompile Include="GdipButton.cpp">
+      <Filter>source</Filter>
+    </ClCompile>
+    <ClCompile Include="DPI.cpp">
+      <Filter>source</Filter>
+    </ClCompile>
   </ItemGroup>
   <ItemGroup>
     <ClInclude Include="sqlite\CppSQLite3.h">
@@ -695,9 +699,15 @@
     <ClInclude Include="EditWithButton.h">
       <Filter>header</Filter>
     </ClInclude>
-    <ClInclude Include="DPI.h" />
-    <ClInclude Include="CGdiPlusBitmap.h" />
-    <ClInclude Include="GdipButton.h" />
+    <ClInclude Include="GdipButton.h">
+      <Filter>header</Filter>
+    </ClInclude>
+    <ClInclude Include="CGdiPlusBitmap.h">
+      <Filter>header</Filter>
+    </ClInclude>
+    <ClInclude Include="DPI.h">
+      <Filter>header</Filter>
+    </ClInclude>
   </ItemGroup>
   <ItemGroup>
     <ResourceCompile Include="CP_Main.rc">
@@ -713,7 +723,6 @@
     </CustomBuild>
   </ItemGroup>
   <ItemGroup>
-    <None Include="ReadMe.txt" />
     <None Include="res\back.bmp">
       <Filter>res</Filter>
     </None>
@@ -777,27 +786,38 @@
     <None Include="res\Ditto2_NoCopyCb.ico">
       <Filter>res</Filter>
     </None>
-    <None Include="res\bmp00004.bmp" />
-    <None Include="res\bitmap2.bmp" />
     <None Include="res\search_close.bmp">
       <Filter>res</Filter>
     </None>
     <None Include="res\search_normal.bmp">
       <Filter>res</Filter>
     </None>
-    <None Include="res\bitmap_s.bmp" />
-    <None Include="res\bmp00005.bmp" />
-    <None Include="res\bmp00006.bmp" />
-    <None Include="res\bmp00007.bmp" />
-    <None Include="res\bmp00008.bmp" />
-    <None Include="res\search_normal_200.bmp" />
-    <None Include="res\search_normal_125.bmp" />
-    <None Include="res\search_normal_150.bmp" />
-    <None Include="res\folder_open.png" />
-    <None Include="res\left-blue.png" />
-    <None Include="res\search_close_125.bmp" />
-    <None Include="res\search_close_150.bmp" />
-    <None Include="res\search_close_200.bmp" />
+    <None Include="res\folder_open.png">
+      <Filter>res</Filter>
+    </None>
+    <None Include="res\search_close_125.bmp">
+      <Filter>res</Filter>
+    </None>
+    <None Include="res\search_normal_200.bmp">
+      <Filter>res</Filter>
+    </None>
+    <None Include="res\search_close_150.bmp">
+      <Filter>res</Filter>
+    </None>
+    <None Include="res\search_close_200.bmp">
+      <Filter>res</Filter>
+    </None>
+    <None Include="res\search_normal_125.bmp">
+      <Filter>res</Filter>
+    </None>
+    <None Include="res\search_normal_150.bmp">
+      <Filter>res</Filter>
+    </None>
+    <None Include="res\left-blue.png">
+      <Filter>res</Filter>
+    </None>
+    <None Include="res\cog_16_16.png" />
+    <None Include="res\cog_22_22.png" />
   </ItemGroup>
   <ItemGroup>
     <Filter Include="sqlite">

+ 9 - 9
CP_Main_10.sln

@@ -1,6 +1,6 @@
 Microsoft Visual Studio Solution File, Format Version 11.00
 # Visual Studio 2010
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CP_Main", "CP_Main.vcxproj", "{86BF16D0-77B0-8955-B18E-4F78C3083D5E}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CP_Main", "CP_Main.vcxproj", "{8ECC3EF2-AF07-27B6-A773-779874943C0D}"
 	ProjectSection(ProjectDependencies) = postProject
 		{F08A8736-1116-4166-AF88-CF533E41E958} = {F08A8736-1116-4166-AF88-CF533E41E958}
 		{CF8F6379-5340-4494-8E59-2807ADF37B95} = {CF8F6379-5340-4494-8E59-2807ADF37B95}
@@ -23,14 +23,14 @@ Global
 		Release|x64 = Release|x64
 	EndGlobalSection
 	GlobalSection(ProjectConfigurationPlatforms) = postSolution
-		{86BF16D0-77B0-8955-B18E-4F78C3083D5E}.Debug|Win32.ActiveCfg = Debug|Win32
-		{86BF16D0-77B0-8955-B18E-4F78C3083D5E}.Debug|Win32.Build.0 = Debug|Win32
-		{86BF16D0-77B0-8955-B18E-4F78C3083D5E}.Debug|x64.ActiveCfg = Debug|x64
-		{86BF16D0-77B0-8955-B18E-4F78C3083D5E}.Debug|x64.Build.0 = Debug|x64
-		{86BF16D0-77B0-8955-B18E-4F78C3083D5E}.Release|Win32.ActiveCfg = Release|Win32
-		{86BF16D0-77B0-8955-B18E-4F78C3083D5E}.Release|Win32.Build.0 = Release|Win32
-		{86BF16D0-77B0-8955-B18E-4F78C3083D5E}.Release|x64.ActiveCfg = Release|x64
-		{86BF16D0-77B0-8955-B18E-4F78C3083D5E}.Release|x64.Build.0 = Release|x64
+		{8ECC3EF2-AF07-27B6-A773-779874943C0D}.Debug|Win32.ActiveCfg = Debug|Win32
+		{8ECC3EF2-AF07-27B6-A773-779874943C0D}.Debug|Win32.Build.0 = Debug|Win32
+		{8ECC3EF2-AF07-27B6-A773-779874943C0D}.Debug|x64.ActiveCfg = Debug|x64
+		{8ECC3EF2-AF07-27B6-A773-779874943C0D}.Debug|x64.Build.0 = Debug|x64
+		{8ECC3EF2-AF07-27B6-A773-779874943C0D}.Release|Win32.ActiveCfg = Release|Win32
+		{8ECC3EF2-AF07-27B6-A773-779874943C0D}.Release|Win32.Build.0 = Release|Win32
+		{8ECC3EF2-AF07-27B6-A773-779874943C0D}.Release|x64.ActiveCfg = Release|x64
+		{8ECC3EF2-AF07-27B6-A773-779874943C0D}.Release|x64.Build.0 = Release|x64
 		{CF8F6379-5340-4494-8E59-2807ADF37B95}.Debug|Win32.ActiveCfg = Debug|Win32
 		{CF8F6379-5340-4494-8E59-2807ADF37B95}.Debug|Win32.Build.0 = Debug|Win32
 		{CF8F6379-5340-4494-8E59-2807ADF37B95}.Debug|x64.ActiveCfg = Debug|x64

+ 3 - 0
Debug/Language/English.xml

@@ -303,6 +303,9 @@
 		<Item English_Text = "Add-Ins" ID = "Add_Ins"></Item> 
 		
 		<Item English_Text = "Copy Buffers" ID = "CopyBuffers"></Item>
+		
+		<Item English_Text = "Search Options" ID = "SearchOptionsTooltip"></Item>
+		<Item English_Text = "Groups" ID = "GroupsTooltip"></Item>
 				
 	</Ditto_String_Table>
 	<Ditto_Options_Sheet>

+ 18 - 12
DittoSetup/BuildDitto.bld

@@ -1,5 +1,5 @@
 <?xml version='1.0' encoding='utf-8'?>
-<project version='8' encrypted='1'>
+<project version='7' encrypted='1'>
 	<steps type='0'>
 		<step action='Set Macro'>
 			<MacroName>LOGFILE</MacroName>
@@ -33,12 +33,11 @@
 		</step>
 		<step action='Subversion'>
 			<Files>%branch%</Files>
-			<Host>ditto-cp.svn.sourceforge.net</Host>
+			<Host>svn.code.sf.net</Host>
 			<LocalPath>%workDir%</LocalPath>
 			<Password encrypted='1'>MM3MPOs8MuGmarG4tqE=</Password>
-			<Port>443</Port>
-			<Protocol>https</Protocol>
-			<Repository>/svnroot/ditto-cp</Repository>
+			<Protocol>http</Protocol>
+			<Repository>/p/ditto-cp/code/</Repository>
 			<SVNPath>C:\Program Files (x86)\SlikSvn\bin</SVNPath>
 			<Subcommand>checkout</Subcommand>
 			<Username>sabrogden</Username>
@@ -123,28 +122,33 @@ End If
 			<name>Build Ditto 32</name>
 		</step>
 		<step action='Group'>
+			<checked type='11'>0</checked>
 			<indent type='3'>1</indent>
 			<name>Sign App Code</name>
 		</step>
 		<step action='Run Program'>
+			<checked type='11'>0</checked>
 			<command>"c:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\signtool.exe" sign /f "C:\Users\sab.000\Desktop\Ditto_Cert\Ditto.pfx" /p Hastings /t http://timestamp.comodoca.com/authenticode %workDir%\%branch%\Release64\Ditto.exe</command>
 			<indent type='3'>2</indent>
 			<name>Sign Ditto.exe 64</name>
 			<outputfrom type='3'>1</outputfrom>
 		</step>
 		<step action='Run Program'>
+			<checked type='11'>0</checked>
 			<command>"c:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\signtool.exe" sign /f "C:\Users\sab.000\Desktop\Ditto_Cert\Ditto.pfx" /p Hastings /t http://timestamp.comodoca.com/authenticode %workDir%\%branch%\Release64\Addins\DittoUtil.dll</command>
 			<indent type='3'>2</indent>
 			<name>Sign DittoUtil.dll 64</name>
 			<outputfrom type='3'>1</outputfrom>
 		</step>
 		<step action='Run Program'>
+			<checked type='11'>0</checked>
 			<command>"c:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\signtool.exe" sign /f "C:\Users\sab.000\Desktop\Ditto_Cert\Ditto.pfx" /p Hastings /t http://timestamp.comodoca.com/authenticode %workDir%\%branch%\Release\Ditto.exe</command>
 			<indent type='3'>2</indent>
 			<name>Sign Ditto.exe</name>
 			<outputfrom type='3'>1</outputfrom>
 		</step>
 		<step action='Run Program'>
+			<checked type='11'>0</checked>
 			<command>"c:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\signtool.exe" sign /f "C:\Users\sab.000\Desktop\Ditto_Cert\Ditto.pfx" /p Hastings /t http://timestamp.comodoca.com/authenticode %workDir%\%branch%\Release\Addins\DittoUtil.dll</command>
 			<indent type='3'>2</indent>
 			<name>Sign DittoUtil.dll</name>
@@ -218,7 +222,7 @@ End If
 		</step>
 		<step action='7-Zip'>
 			<Action>Update</Action>
-			<Exe>C:\Program Files\7-Zip\7z.exe</Exe>
+			<Exe>C:\Program Files (x86)\7-Zip\7z.exe</Exe>
 			<Filename>%workDir%\%branch%\DittoSetup\output\DittoDebug_%versionFileName%.7z</Filename>
 			<I><![CDATA[*.map
 *.pdb
@@ -237,16 +241,19 @@ DittoSetup*]]></X>
 			<name>Zip Debug Files</name>
 		</step>
 		<step action='Group'>
+			<checked type='11'>0</checked>
 			<indent type='3'>1</indent>
 			<name>Sign Installers</name>
 		</step>
 		<step action='Run Program'>
+			<checked type='11'>0</checked>
 			<command>"c:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\signtool.exe" sign /f "C:\Users\sab.000\Desktop\Ditto_Cert\Ditto.pfx" /p Hastings /t http://timestamp.comodoca.com/authenticode %workDir%\%branch%\DittoSetup\Output\DittoSetup_%versionFileName%.exe</command>
 			<indent type='3'>2</indent>
 			<name>Sign Ditto Installer</name>
 			<outputfrom type='3'>1</outputfrom>
 		</step>
 		<step action='Run Program'>
+			<checked type='11'>0</checked>
 			<command>"c:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\signtool.exe" sign /f "C:\Users\sab.000\Desktop\Ditto_Cert\Ditto.pfx" /p Hastings /t http://timestamp.comodoca.com/authenticode %workDir%\%branch%\DittoSetup\Output\DittoSetup_64bit_%versionFileName%.exe</command>
 			<indent type='3'>2</indent>
 			<name>Sign Ditto 64 Installer</name>
@@ -312,15 +319,14 @@ var sc_security="b3f57099";
 		</step>
 		<step action='Subversion'>
 			<Files>%branch%</Files>
-			<Host>ditto-cp.svn.sourceforge.net</Host>
+			<Host>svn.code.sf.net</Host>
 			<LocalPath>%workDir%</LocalPath>
 			<Password encrypted='1'>MM3MPOs8MuGmarG4tqE=</Password>
-			<Port>443</Port>
-			<Protocol>https</Protocol>
-			<Repository>/svnroot/ditto-cp</Repository>
+			<Protocol>http</Protocol>
+			<Repository>/p/ditto-cp/code/</Repository>
 			<SVNPath>C:\Program Files (x86)\SlikSvn\bin</SVNPath>
 			<Subcommand>log</Subcommand>
-			<Switches>-r {2012-1-5}:{2012-12-31}</Switches>
+			<Switches>-r {2012-11-9}:{2013-12-31}</Switches>
 			<Username>sabrogden</Username>
 			<indent type='3'>2</indent>
 			<name>SVN Log Messages</name>
@@ -375,7 +381,7 @@ var sc_security="b3f57099";
 			<value>3</value>
 		</macro>
 		<macro name='verMinor'>
-			<value>18</value>
+			<value>19</value>
 		</macro>
 		<macro name='verRevision'>
 			<value>0</value>

+ 1 - 1
FormatSQL.h

@@ -17,7 +17,7 @@ public:
 
 	void Parse(CString cs);
 
-	CString GetSQLString()				{ return m_csWhere; }
+	CString GetSQLString()				{ return _T("(") + m_csWhere + _T(")"); }
 	void	SetVariable(CString cs)		{ m_csVariable = cs;}
 
 protected:

+ 30 - 0
Options.cpp

@@ -1995,4 +1995,34 @@ DWORD CGetSetOptions::GetTimeBeforeExpandWindow()
 DWORD CGetSetOptions::GetUseGuiThreadInfoForFocus()
 {
 	return GetProfileLong(_T("UseGuiThreadInfoForFocus"), 1);
+}
+
+void CGetSetOptions::SetSearchDescription(BOOL val)
+{
+	SetProfileLong(_T("SearchDescription"), val);
+}
+
+BOOL CGetSetOptions::GetSearchDescription()
+{
+	return GetProfileLong(_T("SearchDescription"), 1);
+}
+
+void CGetSetOptions::SetSearchFullText(BOOL val)
+{
+	SetProfileLong(_T("SearchFullText"), val);
+}
+
+BOOL CGetSetOptions::GetSearchFullText()
+{
+	return GetProfileLong(_T("SearchFullText"), 0);
+}
+
+void CGetSetOptions::SetSearchQuickPaste(BOOL val)
+{
+	SetProfileLong(_T("SearchQuickPaste"), val);
+}
+
+BOOL CGetSetOptions::GetSearchQuickPaste()
+{
+	return GetProfileLong(_T("SearchQuickPaste"), 0);
 }

+ 10 - 0
Options.h

@@ -417,6 +417,16 @@ public:
 	static DWORD	GetTimeBeforeExpandWindow();
 
 	static DWORD	GetUseGuiThreadInfoForFocus();
+
+	static void		SetSearchDescription(BOOL val);
+	static BOOL		GetSearchDescription();
+
+	static void		SetSearchFullText(BOOL val);
+	static BOOL		GetSearchFullText();
+
+	static void		SetSearchQuickPaste(BOOL val);
+	static BOOL		GetSearchQuickPaste();
+
 };
 
 // global for easy access and for initialization of fast access variables

+ 151 - 60
QPasteWnd.cpp

@@ -30,6 +30,7 @@
 #define ID_SHOW_GROUPS_BOTTOM	0x205
 #define ID_SHOW_GROUPS_TOP		0x206
 #define ID_BACK_BUTTON			0x207
+#define ID_SEARCH_DESCRIPTION_BUTTON 0x208
 
 
 #define QPASTE_WIDTH			200
@@ -172,6 +173,7 @@ ON_COMMAND(ID_MENU_NEWGROUP, OnMenuNewGroup)
 ON_COMMAND(ID_MENU_NEWGROUPSELECTION, OnMenuNewGroupSelection)
 ON_MESSAGE(NM_GROUP_TREE_MESSAGE, OnGroupTreeMessage)
 ON_COMMAND(ID_BACK_BUTTON, OnBackButton)
+ON_COMMAND(ID_SEARCH_DESCRIPTION_BUTTON, OnSearchDescription)
 ON_MESSAGE(CB_UPDOWN, OnUpDown)
 ON_MESSAGE(NM_INACTIVE_TOOLTIPWND, OnToolTipWndInactive)
 ON_MESSAGE(NM_SET_LIST_COUNT, OnSetListCount)
@@ -191,6 +193,9 @@ ON_MESSAGE(NM_ALL_SELECTED, OnSelectAll)
 ON_MESSAGE(NM_SHOW_HIDE_SCROLLBARS, OnShowHideScrollBar)
 ON_MESSAGE(NM_CANCEL_SEARCH, OnCancelFilter)
 ON_MESSAGE(NM_POST_OPTIONS_WINDOW, OnPostOptions)
+ON_COMMAND(ID_MENU_SEARCHDESCRIPTION, OnMenuSearchDescription)
+ON_COMMAND(ID_MENU_SEARCHFULLTEXT, OnMenuSearchFullText)
+ON_COMMAND(ID_MENU_SEARCHQUICKPASTE, OnMenuSearchQuickPaste)
 //ON_WM_CTLCOLOR()
 //ON_WM_ERASEBKGND()
 //ON_WM_PAINT()
@@ -253,12 +258,19 @@ int CQPasteWnd::OnCreate(LPCREATESTRUCT lpCreateStruct)
     //m_ShowGroupsFolderBottom.LoadBitmaps(IDB_CLOSED_FOLDER, IDB_CLOSED_FOLDER_PRESSED, IDB_CLOSED_FOLDER_FOCUSED);
 	m_ShowGroupsFolderBottom.LoadStdImage(IDB_OPEN_FOLDER_PNG, _T("PNG"));
     m_ShowGroupsFolderBottom.ShowWindow(SW_SHOW);
+	m_ShowGroupsFolderBottom.SetToolTipText(theApp.m_Language.GetString(_T("GroupsTooltip"), _T("Groups")));
 
     m_BackButton.Create(NULL, WS_CHILD | BS_OWNERDRAW | WS_TABSTOP, CRect(0, 0, 0, 0), this, ID_BACK_BUTTON);
     m_BackButton.LoadStdImage(IDB_LEFT_ARROW_PNG, _T("PNG"));
     m_BackButton.ShowWindow(SW_SHOW);
 
+	m_searchOptionsButton.Create(NULL, WS_CHILD | BS_OWNERDRAW | WS_TABSTOP, CRect(0, 0, 0, 0), this, ID_SEARCH_DESCRIPTION_BUTTON);
+	m_searchOptionsButton.LoadStdImage(IDB_COG_16_16, _T("PNG"));
+	m_searchOptionsButton.SetToolTipText(theApp.m_Language.GetString(_T("SearchOptionsTooltip"), _T("Search options")));
+	m_searchOptionsButton.ShowWindow(SW_SHOW);
+
     m_stGroup.Create(_T(""), WS_CHILD | WS_VISIBLE, CRect(0, 0, 0, 0), this, ID_GROUP_TEXT);
+	
 
     //Set the z-order
     m_lstHeader.SetWindowPos(this, 0, 0, 0, 0, SWP_NOSIZE | SWP_NOMOVE);
@@ -380,7 +392,9 @@ void CQPasteWnd::MoveControls()
 	}
 
 	m_lstHeader.MoveWindow(0, topOfListBox, cx+extraSize, cy - listBoxBottomOffset-topOfListBox + extraSize);
-    m_search.MoveWindow(theApp.m_metrics.ScaleX(20), cy - theApp.m_metrics.ScaleY(21), cx - theApp.m_metrics.ScaleX(22), theApp.m_metrics.ScaleY(20));
+    m_search.MoveWindow(theApp.m_metrics.ScaleX(20), cy - theApp.m_metrics.ScaleY(21), cx - theApp.m_metrics.ScaleX(40), theApp.m_metrics.ScaleY(20));
+
+	m_searchOptionsButton.MoveWindow(cx - theApp.m_metrics.ScaleX(18), cy - theApp.m_metrics.ScaleY(19), 16, 16);
 
     m_ShowGroupsFolderBottom.MoveWindow(theApp.m_metrics.ScaleY(2), cy - theApp.m_metrics.ScaleY(18), theApp.m_metrics.ScaleX(16), theApp.m_metrics.ScaleY(16));
 }
@@ -970,50 +984,92 @@ BOOL CQPasteWnd::FillList(CString csSQLSearch /*=""*/)
     }
     else
     {
-        CFormatSQL SQLFormat;
-		CString preSql;
+        CFormatSQL descriptionFormat;
+		CString descriptionSql;
+		CFormatSQL quickPasteFormat;
+		CString quickPasteSql;
+		CFormatSQL fullTextFormat;
+		CString fullTextSql;
+
+		//If other are off then always search the description
+		if(CGetSetOptions::GetSearchDescription() ||
+			(CGetSetOptions::GetSearchFullText() == FALSE && CGetSetOptions::GetSearchQuickPaste() == FALSE))
+		{
+			descriptionFormat.SetVariable("Main.mText");
+
+			descriptionFormat.Parse(csSQLSearch);
+			descriptionSql = descriptionFormat.GetSQLString();
+		}
 
 		if(csSQLSearch.Left(3) == _T("/q ") ||
-			csSQLSearch.Left(3) == _T("\\q "))
+			csSQLSearch.Left(3) == _T("\\q ") ||
+			CGetSetOptions::GetSearchQuickPaste())
 		{
-			SQLFormat.SetVariable("Main.QuickPasteText");
+			quickPasteFormat.SetVariable("Main.QuickPasteText");
 			csSQLSearch.TrimLeft(_T("/q "));
 			csSQLSearch.TrimLeft(_T("\\q "));
 
-			if(csSQLSearch == "")
-			{
-				return FALSE;
-			}
+			quickPasteFormat.Parse(csSQLSearch);
+			quickPasteSql = quickPasteFormat.GetSQLString();
 		}
-		else if(csSQLSearch.Left(3) == _T("/f ") ||
-			csSQLSearch.Left(3) == _T("\\f "))
+		
+		if(csSQLSearch.Left(3) == _T("/f ") ||
+			csSQLSearch.Left(3) == _T("\\f ") ||
+			CGetSetOptions::GetSearchFullText())
 		{
-			preSql = _T("Data.strClipBoardFormat = 'CF_UNICODETEXT' AND ");
 			dataJoin = _T("INNER JOIN Data on Data.lParentID = Main.lID");
 
-			SQLFormat.SetVariable("Data.ooData");
 			csSQLSearch.TrimLeft(_T("/f "));
 			csSQLSearch.TrimLeft(_T("\\f "));
 
-			if(csSQLSearch == "")
+			fullTextFormat.SetVariable("Data.ooData");
+			fullTextFormat.Parse(csSQLSearch);
+			fullTextSql = fullTextFormat.GetSQLString();
+
+			fullTextSql.Insert(1, _T("Data.strClipBoardFormat = 'CF_UNICODETEXT' AND "));
+
+			//If we are also search for other formats limit it them to unicode text, otherwise multiple rows could be returned
+			if(descriptionSql != _T(""))
+			{
+				descriptionSql.Insert(1, _T("Data.strClipBoardFormat = 'CF_UNICODETEXT' AND "));
+			}
+
+			if(quickPasteSql != _T(""))
 			{
-				return FALSE;
+				quickPasteSql.Insert(1, _T("Data.strClipBoardFormat = 'CF_UNICODETEXT' AND "));
 			}
 		}
-		else
+
+		strFilter = _T("(");
+
+		if(descriptionSql != _T(""))
 		{
-			SQLFormat.SetVariable("Main.mText");
+			strFilter += descriptionSql;
 		}
 
-        SQLFormat.Parse(csSQLSearch);
+		if(quickPasteSql != _T(""))
+		{
+			if(descriptionSql != _T(""))
+			{
+				strFilter += _T(" OR ");
+			}
 
-        strFilter = SQLFormat.GetSQLString();
+			strFilter += quickPasteSql;
+		}
 
-		if(preSql.IsEmpty() == FALSE)
+		if(fullTextSql != _T(""))
 		{
-			strFilter.Insert(0, preSql);
+			if(descriptionSql != _T("") ||
+				quickPasteSql != _T(""))
+			{
+				strFilter += _T(" OR ");
+			}
+
+			strFilter += fullTextSql;
 		}
 
+		strFilter += _T(")");		
+
         if(strParentFilter.IsEmpty() == FALSE)
         {
             strFilter += " AND ";
@@ -1084,50 +1140,11 @@ void CQPasteWnd::OnRclickQuickPaste(NMHDR *pNMHDR, LRESULT *pResult)
         }
 
         theApp.m_Addins.AddPrePasteAddinsToMenu(cmSubMenu);
-
-		//HideMenuGroup(cmSubMenu, "Groups");
-		//HideMenuGroup(cmSubMenu, "Quick Options");
-		//HideMenuGroup(cmSubMenu, "Send To");
-		//HideMenuGroup(cmSubMenu, "Add-Ins");
-		//HideMenuGroup(cmSubMenu, "Quick Properties");
         
 		theApp.m_Language.UpdateRightClickMenu(cmSubMenu);
 
         SetMenuChecks(cmSubMenu);
 
-		//cmSubMenu->RemoveMenu(32860, MF_BYCOMMAND);
-		//cmSubMenu->RemoveMenu(32775, MF_BYCOMMAND);
-		//cmSubMenu->RemoveMenu(32867, MF_BYCOMMAND); 
-		//cmSubMenu->RemoveMenu(32855, MF_BYCOMMAND);
-		//cmSubMenu->RemoveMenu(32853, MF_BYCOMMAND);
-		//cmSubMenu->RemoveMenu(32819, MF_BYCOMMAND);
-
-		//CString csMenuText;
-		//int nCount = cmSubMenu->GetMenuItemCount();
-		//int pos = 0;
-		//bool lastMenuEmpty = false;
-		//for(int i = 0; i < nCount; i++)
-		//{
-		//	cmSubMenu->GetMenuString(pos, csMenuText, MF_BYPOSITION);
-		//	if(csMenuText.IsEmpty())
-		//	{
-		//		if(lastMenuEmpty)
-		//		{
-		//			cmSubMenu->RemoveMenu(pos, MF_BYPOSITION);
-		//		}
-		//		else
-		//		{
-		//			pos++;
-		//			lastMenuEmpty = true;
-		//		}
-		//	}
-		//	else
-		//	{
-		//		pos++;
-		//		lastMenuEmpty = false;
-		//	}
-		//}
-
         cmSubMenu->TrackPopupMenu(TPM_LEFTALIGN | TPM_TOPALIGN | TPM_RIGHTBUTTON, pp.x, pp.y, this, NULL);
     }
 
@@ -3065,6 +3082,80 @@ void CQPasteWnd::OnBackButton()
     theApp.EnterGroupID(theApp.m_GroupParentID);
 }
 
+void CQPasteWnd::OnSearchDescription()
+{
+	POINT pp;
+	CMenu cmPopUp;
+	CMenu *cmSubMenu = NULL;
+
+	GetCursorPos(&pp);
+	if(cmPopUp.LoadMenu(IDR_MENU_SEARCH) != 0)
+	{
+		cmSubMenu = cmPopUp.GetSubMenu(0);
+		if(!cmSubMenu)
+		{
+			return ;
+		}
+
+		GetCursorPos(&pp);
+
+		if(CGetSetOptions::GetSearchDescription())
+			cmSubMenu->CheckMenuItem(ID_MENU_SEARCHDESCRIPTION, MF_CHECKED);
+
+		if(CGetSetOptions::GetSearchFullText())
+			cmSubMenu->CheckMenuItem(ID_MENU_SEARCHFULLTEXT, MF_CHECKED);
+
+		if(CGetSetOptions::GetSearchQuickPaste())
+			cmSubMenu->CheckMenuItem(ID_MENU_SEARCHQUICKPASTE, MF_CHECKED);
+				
+
+		//theApp.m_Language.UpdateRightClickMenu(cmSubMenu);
+
+		
+
+		cmSubMenu->TrackPopupMenu(TPM_LEFTALIGN | TPM_TOPALIGN | TPM_RIGHTBUTTON, pp.x, pp.y, this, NULL);
+	}
+}
+
+void CQPasteWnd::OnMenuSearchDescription()
+{
+	CGetSetOptions::SetSearchDescription(!CGetSetOptions::GetSearchDescription());
+
+	CString csText;
+	m_search.GetWindowText(csText);
+
+	if(csText != _T(""))
+	{
+		FillList(csText);
+	}
+}
+
+void CQPasteWnd::OnMenuSearchFullText()
+{
+	CGetSetOptions::SetSearchFullText(!CGetSetOptions::GetSearchFullText());
+
+	CString csText;
+	m_search.GetWindowText(csText);
+
+	if(csText != _T(""))
+	{
+		FillList(csText);
+	}
+}
+
+void CQPasteWnd::OnMenuSearchQuickPaste()
+{
+	CGetSetOptions::SetSearchQuickPaste(!CGetSetOptions::GetSearchQuickPaste());
+
+	CString csText;
+	m_search.GetWindowText(csText);
+
+	if(csText != _T(""))
+	{
+		FillList(csText);
+	}
+}
+
 void CQPasteWnd::OnSearchEditChange()
 {
     if(g_Opt.m_bFindAsYouType == FALSE)

+ 5 - 0
QPasteWnd.h

@@ -106,6 +106,7 @@ public:
     CGroupTree m_GroupTree;
     CGdipButton m_ShowGroupsFolderBottom;
     CGdipButton m_BackButton;
+	CGdipButton m_searchOptionsButton;
 
     CString m_SQL;
     CString m_CountSQL;
@@ -279,6 +280,7 @@ protected:
     afx_msg void OnMenuNewGroup();
     afx_msg void OnMenuNewGroupSelection();
     afx_msg void OnBackButton();
+	afx_msg void OnSearchDescription();
     afx_msg LRESULT OnUpDown(WPARAM wParam, LPARAM lParam);
     afx_msg LRESULT OnItemDeleted(WPARAM wParam, LPARAM lParam);
     LRESULT OnToolTipWndInactive(WPARAM wParam, LPARAM lParam);
@@ -293,6 +295,9 @@ protected:
     afx_msg void CQPasteWnd::OnAddinSelect(UINT id);
     afx_msg LRESULT OnSelectAll(WPARAM wParam, LPARAM lParam);
 	afx_msg LRESULT OnShowHideScrollBar(WPARAM wParam, LPARAM lParam);
+	afx_msg void OnMenuSearchDescription();
+	afx_msg void OnMenuSearchFullText();
+	afx_msg void OnMenuSearchQuickPaste();
 	//afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor);
 	//afx_msg BOOL OnEraseBkgnd(CDC* pDC);
 	//afx_msg void OnPaint();

+ 9 - 2
Resource.h

@@ -44,6 +44,10 @@
 #define IDB_OPEN_FOLDER_PNG             179
 #define IDB_PNG1                        180
 #define IDB_LEFT_ARROW_PNG              180
+#define IDR_MENU_SEARCH                 181
+#define IDB_COG_22_22                   182
+#define IDB_PNG2                        183
+#define IDB_COG_16_16                   183
 #define IDC_PATH                        1000
 #define IDC_GET_PATH                    1001
 #define IDC_SELECT_SOUND                1002
@@ -361,14 +365,17 @@
 #define ID_FIRST_COPYTODEVICE           32870
 #define ID_PASTE_PLAIN_TEXT             32871
 #define ID_FIRST_GLOBALHOTKEYS          32872
+#define ID_MENU_SEARCHDESCRIPTION       32873
+#define ID_MENU_SEARCHFULLTEXT          32874
+#define ID_MENU_SEARCHQUICKPASTE        32875
 
 // Next default values for new objects
 // 
 #ifdef APSTUDIO_INVOKED
 #ifndef APSTUDIO_READONLY_SYMBOLS
 #define _APS_3D_CONTROLS                     1
-#define _APS_NEXT_RESOURCE_VALUE        181
-#define _APS_NEXT_COMMAND_VALUE         32873
+#define _APS_NEXT_RESOURCE_VALUE        184
+#define _APS_NEXT_COMMAND_VALUE         32876
 #define _APS_NEXT_CONTROL_VALUE         2101
 #define _APS_NEXT_SYMED_VALUE           101
 #endif

TEMPAT SAMPAH
res/cog_16_16.png


TEMPAT SAMPAH
res/cog_22_22.png