Forráskód Böngészése

Move to SourceForge and updated selecting a different DB

git-svn-id: svn://svn.code.sf.net/p/ditto-cp/code/trunk@5 595ec19a-5cb4-439b-94a8-42fb3063c22c
sabrogden 22 éve
szülő
commit
596f87f8f1
8 módosított fájl, 132 hozzáadás és 59 törlés
  1. 1 1
      CP_Main.dsp
  2. 12 12
      CP_Main.rc
  3. 25 3
      DatabaseUtilities.cpp
  4. 1 0
      DatabaseUtilities.h
  5. 3 3
      InternetUpdate.cpp
  6. 52 34
      MainFrm.cpp
  7. 2 0
      MainFrm.h
  8. 36 6
      OptionsGeneral.cpp

+ 1 - 1
CP_Main.dsp

@@ -108,7 +108,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 /nologo /subsystem:windows /machine:I386 /out:"Release/Ditto.exe"
-# ADD LINK32 /nologo /subsystem:windows /machine:I386 /out:"Release/Ditto_Pre2000.exe"
+# ADD LINK32 /nologo /subsystem:windows /machine:I386 /out:"Release/Ditto98.exe"
 
 !ELSEIF  "$(CFG)" == "CP_Main - Win32 Pre 2000 Debug"
 

+ 12 - 12
CP_Main.rc

@@ -314,7 +314,7 @@ BEGIN
     LTEXT           "Named Copy",IDC_STATIC,19,42,42,8
 END
 
-IDD_OPTIONS_GENERAL DIALOG DISCARDABLE  0, 0, 256, 166
+IDD_OPTIONS_GENERAL DIALOG DISCARDABLE  0, 0, 294, 166
 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
 CAPTION "General"
 FONT 8, "MS Sans Serif"
@@ -340,8 +340,8 @@ BEGIN
     PUSHBUTTON      "Check Now",IDC_CHECK_FOR_UPDATES,161,106,50,11
     CONTROL         "Set Database Path",IDC_SET_DB_PATH,"Button",
                     BS_AUTOCHECKBOX | WS_TABSTOP,23,79,76,10
-    EDITTEXT        IDC_PATH,23,89,198,12,ES_AUTOHSCROLL
-    PUSHBUTTON      "....",IDC_GET_PATH,222,89,14,12
+    EDITTEXT        IDC_PATH,23,89,248,12,ES_AUTOHSCROLL
+    PUSHBUTTON      "....",IDC_GET_PATH,273,89,14,12
 END
 
 IDD_SELECT_DB DIALOG DISCARDABLE  0, 0, 276, 46
@@ -444,8 +444,8 @@ END
 //
 
 VS_VERSION_INFO VERSIONINFO
- FILEVERSION 1,0,0,4
- PRODUCTVERSION 1,0,0,4
+ FILEVERSION 1,50,0,0
+ PRODUCTVERSION 1,50,0,0
  FILEFLAGSMASK 0x3fL
 #ifdef _DEBUG
  FILEFLAGS 0x1L
@@ -462,15 +462,15 @@ BEGIN
         BEGIN
             VALUE "Comments", "\0"
             VALUE "CompanyName", "\0"
-            VALUE "FileDescription", "CP_Main MFC Application\0"
-            VALUE "FileVersion", "1, 0, 0, 4\0"
+            VALUE "FileDescription", "Ditto\0"
+            VALUE "FileVersion", "1, 50, 0, 0\0"
             VALUE "InternalName", "CP_Main\0"
-            VALUE "LegalCopyright", "Copyright (C) 2002\0"
+            VALUE "LegalCopyright", "Copyright (C) 2003\0"
             VALUE "LegalTrademarks", "\0"
-            VALUE "OriginalFilename", "CP_Main.EXE\0"
+            VALUE "OriginalFilename", "Ditto\0"
             VALUE "PrivateBuild", "\0"
-            VALUE "ProductName", "CP_Main Application\0"
-            VALUE "ProductVersion", "1, 0, 0, 4\0"
+            VALUE "ProductName", "Ditto\0"
+            VALUE "ProductVersion", "1, 50, 0, 0\0"
             VALUE "SpecialBuild", "\0"
         END
     END
@@ -534,7 +534,7 @@ BEGIN
     IDD_OPTIONS_GENERAL, DIALOG
     BEGIN
         LEFTMARGIN, 7
-        RIGHTMARGIN, 249
+        RIGHTMARGIN, 287
         TOPMARGIN, 7
         BOTTOMMARGIN, 158
     END

+ 25 - 3
DatabaseUtilities.cpp

@@ -5,7 +5,7 @@
 #include "stdafx.h"
 #include "CP_Main.h"
 #include "DatabaseUtilities.h"
-#include "io.h"
+#include <io.h>
 
 //////////////////////////////////////////////////////////////////////
 // Construction/Destruction
@@ -141,8 +141,7 @@ BOOL CreateDB(CString csPath)
 
 	try
 	{
-		if(_access(csPath, 0) == 0)
-			DeleteFile(csPath);
+		EnsureDirectory(csPath);
 
 		db.Create(csPath);
 		
@@ -334,4 +333,27 @@ BOOL RemoveOldEntries()
 	}
 
 	return TRUE;
+}
+
+BOOL EnsureDirectory(CString csPath)
+{
+	char drive[_MAX_DRIVE];
+	char dir[_MAX_DIR];
+	char fname[_MAX_FNAME];
+	char ext[_MAX_EXT];
+
+	_splitpath(csPath, drive, dir, fname, ext);
+
+	CString csDir(drive);
+	csDir += dir;
+
+	if(_access(csDir, 0) == -1)
+	{
+		if(CreateDirectory(csDir, NULL))
+			return TRUE;
+	}
+	else
+		return TRUE;
+
+	return FALSE;
 }

+ 1 - 0
DatabaseUtilities.h

@@ -90,5 +90,6 @@ BOOL CheckDBExists(CString csDBPath);
 BOOL RemoveOldEntries();
 BOOL CreateDB(CString csPath);
 BOOL ValidDB(CString csPath);
+BOOL EnsureDirectory(CString csPath);
 
 #endif // !defined(AFX_DATABASEUTILITES_H__039F53EB_228F_4640_8009_3D2B1FF435D4__INCLUDED_)

+ 3 - 3
InternetUpdate.cpp

@@ -176,8 +176,8 @@ long CInternetUpdate::GetUpdateVersion()
 
 	//if nothing there get the default
 	if(csPath.IsEmpty())
-		csPath = "sabrogden.0Catch.com/DittoVersion.txt";
-
+		csPath = "osdn.dl.sourceforge.net/sourceforge/ditto-cp/DittoVersion.txt";
+	
 	CString csUrl = "http://" + csPath;
 	
 	CString csFile = CGetSetOptions::GetExeFileName();
@@ -277,7 +277,7 @@ CString CInternetUpdate::DownloadUpdate()
 
 	//if nothing there get the default
 	if(csPath.IsEmpty())
-		csPath = "sabrogden.0Catch.com/DittoSetup.exe";
+		csPath = "osdn.dl.sourceforge.net/sourceforge/ditto-cp/DittoSetup.exe";
 
 	CString csUrl = "http://" + csPath;
 	

+ 52 - 34
MainFrm.cpp

@@ -19,11 +19,12 @@ static char THIS_FILE[] = __FILE__;
 
 #define ONE_MINUTE				60000
 
-#define KILL_DB_TIMER				1
-#define HIDE_ICON_TIMER				2
-#define REMOVE_OLD_ENTRIES_TIMER	3
-#define CHECK_FOR_UPDATE			4
-#define CLOSE_APP					5
+#define KILL_DB_TIMER					1
+#define HIDE_ICON_TIMER					2
+#define REMOVE_OLD_ENTRIES_TIMER		3
+#define CHECK_FOR_UPDATE				4
+#define CLOSE_APP						5
+#define TIMER_CHECK_TOP_LEVEL_VIEWER	6
 
 /////////////////////////////////////////////////////////////////////////////
 // CMainFrame
@@ -64,6 +65,7 @@ static UINT indicators[] =
 
 CMainFrame::CMainFrame()
 {
+	m_lReconectCount = 0;
 }
 
 CMainFrame::~CMainFrame()
@@ -115,6 +117,8 @@ int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
 	SetTimer(CHECK_FOR_UPDATE, ONE_MINUTE*5, 0);
 	SetTimer(REMOVE_OLD_ENTRIES_TIMER, ONE_MINUTE*2, 0);
 
+	SetTimer(TIMER_CHECK_TOP_LEVEL_VIEWER, ONE_MINUTE, 0);
+
 	m_ulCopyGap = CGetSetOptions::GetCopyGap();
 
 	//Set up the clip board viewer
@@ -245,44 +249,58 @@ void CMainFrame::OnDrawClipboard()
 
 void CMainFrame::OnTimer(UINT nIDEvent) 
 {
-	if(nIDEvent == HIDE_ICON_TIMER)
+	switch(nIDEvent)
 	{
-		m_TrayIcon.HideIcon();
-		KillTimer(nIDEvent);
-	}
-	else if(nIDEvent == KILL_DB_TIMER)
-	{
-		if(QuickPaste.CloseQPasteWnd())
+	case HIDE_ICON_TIMER:
 		{
-			theApp.CloseDB();
-			AfxDaoTerm();
-			KillTimer(KILL_DB_TIMER);
+			m_TrayIcon.HideIcon();
+			KillTimer(nIDEvent);
 		}
-	}
-	else if(nIDEvent == REMOVE_OLD_ENTRIES_TIMER)
-	{
-		RemoveOldEntries();
-		KillTimer(REMOVE_OLD_ENTRIES_TIMER);
-	}
-	else if(nIDEvent == CHECK_FOR_UPDATE)
-	{
-		CInternetUpdate Update;
-		if(Update.CheckForUpdate(NULL, TRUE, FALSE))
+	case KILL_DB_TIMER:
+		{
+			if(QuickPaste.CloseQPasteWnd())
+			{
+				theApp.CloseDB();
+				AfxDaoTerm();
+				KillTimer(KILL_DB_TIMER);
+			}
+		}
+	case REMOVE_OLD_ENTRIES_TIMER:
 		{
-			SendMessage(WM_CLOSE, 0, 0);
+			RemoveOldEntries();
+			KillTimer(REMOVE_OLD_ENTRIES_TIMER);
 		}
+	case CHECK_FOR_UPDATE:
+		{
+			CInternetUpdate Update;
+			if(Update.CheckForUpdate(NULL, TRUE, FALSE))
+			{
+				SendMessage(WM_CLOSE, 0, 0);
+			}
 
-		KillTimer(CHECK_FOR_UPDATE);
-	}
-	else if(nIDEvent == CLOSE_APP)
-	{
-		if(theApp.m_bShowingOptions == false)
+			KillTimer(CHECK_FOR_UPDATE);
+		}
+	case CLOSE_APP:
 		{
-			PostMessage(WM_CLOSE, 0, 0);
-			KillTimer(CLOSE_APP);
+			if(theApp.m_bShowingOptions == false)
+			{
+				PostMessage(WM_CLOSE, 0, 0);
+				KillTimer(CLOSE_APP);
+			}
+		}
+	case TIMER_CHECK_TOP_LEVEL_VIEWER:
+		{
+			if(OnGetIsTopView(0, 0) == FALSE)
+			{
+				OnReconnectToCopyChain(0, 0);
+				m_lReconectCount++;
+
+				if(m_lReconectCount > 10)
+					KillTimer(TIMER_CHECK_TOP_LEVEL_VIEWER);
+			}
 		}
 	}
-	
+
 	CFrameWnd::OnTimer(nIDEvent);
 }
 

+ 2 - 0
MainFrm.h

@@ -53,6 +53,8 @@ protected:
 
 	ULONG m_ulCopyGap;
 
+	long  m_lReconectCount;
+
 // Generated message map functions
 protected:
 	//{{AFX_MSG(CMainFrame)

+ 36 - 6
OptionsGeneral.cpp

@@ -5,6 +5,7 @@
 #include "CP_Main.h"
 #include "OptionsGeneral.h"
 #include "InternetUpdate.h"
+#include <io.h>
 
 #ifdef _DEBUG
 #define new DEBUG_NEW
@@ -79,6 +80,8 @@ BOOL COptionsGeneral::OnInitDialog()
 	{
 		m_ePath.EnableWindow(FALSE);
 		m_btGetPath.EnableWindow(FALSE);
+		csPath = CGetSetOptions::GetDBPath();
+		m_ePath.SetWindowText(csPath);
 	}
 	else
 	{
@@ -110,17 +113,44 @@ BOOL COptionsGeneral::OnApply()
 		CString csPath;
 		m_ePath.GetWindowText(csPath);
 
+		bool bSetPath = true;
+
 		if(csPath.IsEmpty() == FALSE)
 		{
-			if(ValidDB(csPath) == FALSE)
+			if(_access(csPath, 0) == -1)
+			{
+				CString cs;
+				cs.Format("The database %s does not exist.\n\nCreate a new database?", csPath);
+
+				if(MessageBox(cs, "Ditto", MB_YESNO) == IDYES)
+				{
+					theApp.CloseDB();
+
+					// -- create a new one
+					if(CreateDB(csPath))
+					{
+						CGetSetOptions::SetDBPath(csPath);
+					}
+					else
+						MessageBox("Error Creating Database");
+
+					bSetPath = false;
+				}
+				else
+					return FALSE;
+			}
+			else
 			{
-				MessageBox("Invalid Database", "Ditto", MB_OK);
-				m_ePath.SetFocus();
-				return FALSE;
-			}			
+				if(ValidDB(csPath) == FALSE)
+				{
+					MessageBox("Invalid Database", "Ditto", MB_OK);
+					m_ePath.SetFocus();
+					return FALSE;
+				}
+			}
 		}	
 		
-		if(csPath != CGetSetOptions::GetDBPath(FALSE))
+		if((csPath != CGetSetOptions::GetDBPath(FALSE)) && (bSetPath))
 		{
 			CGetSetOptions::SetDBPath(csPath);
 			theApp.CloseDB();