Просмотр исходного кода

- removed check to see if 0 sized rect is in window rect, was causing ditto to open at 0, 0 on multiple monitors
- use single instance of db, removed db instance from fill list thread
- check for C:\ and c:/ when setting or removing the read only flag

git-svn-id: svn://svn.code.sf.net/p/ditto-cp/code/trunk@534 595ec19a-5cb4-439b-94a8-42fb3063c22c

sabrogden 15 лет назад
Родитель
Сommit
6dbc33eeb5
4 измененных файлов с 21 добавлено и 62 удалено
  1. 13 2
      Addins/DittoUtil/ReadOnlyFlag.cpp
  2. 4 48
      QPasteWndThread.cpp
  3. 0 6
      QPasteWndThread.h
  4. 4 6
      QuickPaste.cpp

+ 13 - 2
Addins/DittoUtil/ReadOnlyFlag.cpp

@@ -63,17 +63,28 @@ bool CReadOnlyFlag::ResetReadOnlyFlag(const CDittoInfo &DittoInfo, IClip *pClip,
 							file = file.Mid(pos);
 							break;
 						}
+
+						csDrive =  drive;
+						csDrive += _T(":/");
+
+						pos = file.Find(csDrive);
+						if(pos >= 0)
+						{
+							file = file.Mid(pos);
+							break;
+						}
 					}
 				}
 			}
 
+			BOOL success = FALSE;
 			if(resetFlag)
 			{
-				::SetFileAttributes(file, FILE_ATTRIBUTE_NORMAL);
+				success = ::SetFileAttributes(file, FILE_ATTRIBUTE_NORMAL);
 			}
 			else
 			{
-				::SetFileAttributes(file, FILE_ATTRIBUTE_READONLY);
+				success = ::SetFileAttributes(file, FILE_ATTRIBUTE_READONLY);
 			}
 		}
 	}

+ 4 - 48
QPasteWndThread.cpp

@@ -24,7 +24,6 @@ CQPasteWndThread::~CQPasteWndThread(void)
 
 void CQPasteWndThread::OnTimeOut(void *param)
 {
-    CloseDatabase();
 }
 
 void CQPasteWndThread::OnEvent(int eventId, void *param)
@@ -59,8 +58,6 @@ void CQPasteWndThread::OnDoQuery(void *param)
 {
     CQPasteWnd *pasteWnd = (CQPasteWnd*)param;
 
-	OpenDatabase();
-
     static CEvent UpdateTimeEvent(TRUE, TRUE, _T("Ditto_Update_Clip_Time"), NULL);
     //If we pasted then wait for the time on the pasted event to be updated before we query the db
     DWORD dRet = WaitForSingleObject(UpdateTimeEvent, 2000);
@@ -83,7 +80,7 @@ void CQPasteWndThread::OnDoQuery(void *param)
 
     try
     {
-        lRecordCount = m_db.execScalar(CountSQL);
+        lRecordCount = theApp.m_db.execScalar(CountSQL);
         ::PostMessage(pasteWnd->m_hWnd, NM_SET_LIST_COUNT, lRecordCount, 0);
     }
     CATCH_SQLITE_EXCEPTION 
@@ -99,8 +96,6 @@ void CQPasteWndThread::OnLoadItems(void *param)
 
     ResetEvent(m_SearchingEvent);
 
-	OpenDatabase();
-
 	while(true)
 	{
 		long startTick = GetTickCount();
@@ -137,7 +132,7 @@ void CQPasteWndThread::OnLoadItems(void *param)
 
 				CMainTable table;
 
-				CppSQLite3Query q = m_db.execQuery(localSql);
+				CppSQLite3Query q = theApp.m_db.execQuery(localSql);
 				while(!q.eof())
 				{
 					pasteWnd->FillMainTable(table, q);
@@ -204,8 +199,6 @@ void CQPasteWndThread::OnLoadExtraData(void *param)
 {
     ResetEvent(m_SearchingEvent);
 
-	OpenDatabase();
-
     CQPasteWnd *pasteWnd = (CQPasteWnd*)param;
 
     Log(_T("Start of load extra data, Bitmaps/rtf"));
@@ -268,50 +261,13 @@ void CQPasteWndThread::OnLoadExtraData(void *param)
 void CQPasteWndThread::OnLoadAccelerators(void *param)
 {
     CQPasteWnd *pasteWnd = (CQPasteWnd*)param;
-    OpenDatabase();
-    pasteWnd->m_lstHeader.DestroyAndCreateAccelerator(TRUE, m_db);
+    pasteWnd->m_lstHeader.DestroyAndCreateAccelerator(TRUE, theApp.m_db);
 }
 
 void CQPasteWndThread::OnUnloadAccelerators(void *param)
 {
     CQPasteWnd *pasteWnd = (CQPasteWnd*)param;
-    OpenDatabase();
-    pasteWnd->m_lstHeader.DestroyAndCreateAccelerator(FALSE, m_db);
-}
-
-void CQPasteWndThread::OpenDatabase()
-{
-    try
-    {
-        if(m_dbPath.IsEmpty() == FALSE)
-        {
-            if(m_dbPath != CGetSetOptions::GetDBPath())
-            {
-                CloseDatabase();
-            }
-            else
-            {
-                return ;
-            }
-        }
-
-        m_dbPath = CGetSetOptions::GetDBPath();
-
-        DWORD dStart = GetTickCount();
-        m_db.open(m_dbPath);
-        Log(StrF(_T("Thread RunThread is starting time to open the database - %d"), GetTickCount() - dStart));
-    }
-    CATCH_SQLITE_EXCEPTION
-}
-
-void CQPasteWndThread::CloseDatabase()
-{
-    try
-    {
-        m_dbPath.Empty();
-        m_db.close();
-    }
-    CATCH_SQLITE_EXCEPTION
+    pasteWnd->m_lstHeader.DestroyAndCreateAccelerator(FALSE, theApp.m_db);
 }
 
 CString CQPasteWndThread::EnumName(eCQPasteWndThreadEvents e)

+ 0 - 6
QPasteWndThread.h

@@ -53,11 +53,5 @@ protected:
     void OnLoadAccelerators(void *param);
     void OnUnloadAccelerators(void *param);
 
-    void OpenDatabase();
-    void CloseDatabase();
-
 	CString EnumName(eCQPasteWndThreadEvents e);
-
-    CppSQLite3DB m_db;
-    CString m_dbPath;
 };

+ 4 - 6
QuickPaste.cpp

@@ -135,12 +135,10 @@ void CQuickPaste::ShowQPasteWnd(CWnd *pParent, bool bAtPrevPos, bool bFromKeyboa
 	{
 		CRect cr;
 		::GetWindowRect(theApp.m_activeWnd.ActiveWnd(), cr);
-		if(cr.PtInRect(ptCaret) == FALSE)
-		{
-			ptCaret = cr.CenterPoint();
-			ptCaret.x -= csSize.cx/2;
-			ptCaret.y -= csSize.cy/2;
-		}
+		
+		ptCaret = cr.CenterPoint();
+		ptCaret.x -= csSize.cx/2;
+		ptCaret.y -= csSize.cy/2;
 	}
 	
 	if(bAtPrevPos)