Эх сурвалжийг харах

1、添加更新按钮
2、修正load、store函数问题;

Jeff 5 жил өмнө
parent
commit
20a0d2c60e

+ 27 - 1
SATHelper/SATHelper/DlgService.cpp

@@ -7,6 +7,7 @@
 #include "afxdialogex.h"
 #include "SATClient.h"
 //#include "SATProtocol.h"
+#include "SVNProc.h"
 
 // CDlgService 对话框
 
@@ -32,6 +33,7 @@ void CDlgService::DoDataExchange(CDataExchange* pDX)
 	DDX_Control(pDX, BTN_ADD_ANDROID, m_btnAddAndroid);
 	DDX_Control(pDX, BTN_MI_INIT, m_btnMIInit);
 	DDX_Control(pDX, BTN_SCBC_INIT, m_btnSCBCInit);
+	DDX_Control(pDX, BTN_SVN_UPDATE, m_btnSVNUpdate);
 	DDX_Control(pDX, TX_TASKID, m_ctrlTaskId);
 	DDX_Control(pDX, LABLE_TASK_STATUS, m_lbTaskStatus);
 }
@@ -49,6 +51,7 @@ BEGIN_MESSAGE_MAP(CDlgService, CDialogEx)
 	ON_BN_CLICKED(BTN_SCBC_INIT, &CDlgService::OnBnClickedScbcInit)
 	ON_WM_SIZE()
 	ON_NOTIFY(NM_DBLCLK, IDC_LIST_TASK, &CDlgService::OnNMDblclkListTask)
+	ON_BN_CLICKED(BTN_SVN_UPDATE, &CDlgService::OnBnClickedSvnUpdate)
 END_MESSAGE_MAP()
 
 
@@ -235,6 +238,19 @@ void CDlgService::InitCtrl()
 	m_btnSCBCInit.m_nFlatStyle = CMFCButton::FlatStyle::BUTTONSTYLE_FLAT;
 	// 设置鼠标形状;
 	m_btnSCBCInit.SetMouseCursorHand();
+
+	color = RGB(237, 28, 36);
+	m_btnSVNUpdate.m_bTransparent = FALSE;
+	m_btnSVNUpdate.m_bDontUseWinXPTheme = TRUE;
+	// 设置背景色;
+	m_btnSVNUpdate.SetFaceColor(color, TRUE);
+	// 消除单击时黑色内圈;
+	m_btnSVNUpdate.m_bDrawFocus = FALSE;
+	// 设置按钮扁平样式;
+	m_btnSVNUpdate.m_nFlatStyle = CMFCButton::FlatStyle::BUTTONSTYLE_FLAT;
+	// 设置鼠标形状;
+	m_btnSVNUpdate.SetMouseCursorHand();
+
 }
 
 void CDlgService::FillData2Ctrl()
@@ -285,7 +301,7 @@ void CDlgService::AdjustLayout()
 	m_listDevices.SetWindowPos(nullptr, rcCtrl.left, rcCtrl.top, rcWnd.Width() - 10, rcCtrl.Height(), SWP_NOACTIVATE | SWP_NOZORDER);
 
 	// 第四行;
-	nWidth = (rcWnd.Width() - 20) / 2;
+	nWidth = (rcWnd.Width() - 30) / 3;
 	m_btnMIInit.GetWindowRect(rcCtrl);
 	ScreenToClient(&rcCtrl);
 	m_btnMIInit.SetWindowPos(nullptr, rcCtrl.left, rcCtrl.top, nWidth, rcCtrl.Height(), SWP_NOACTIVATE | SWP_NOZORDER);
@@ -294,6 +310,10 @@ void CDlgService::AdjustLayout()
 	ScreenToClient(&rcCtrl);
 	m_btnSCBCInit.SetWindowPos(nullptr, rcCtrl.right + 10, rcCtrl.top, nWidth, rcCtrl.Height(), SWP_NOACTIVATE | SWP_NOZORDER);
 
+	m_btnSCBCInit.GetWindowRect(rcCtrl);
+	ScreenToClient(&rcCtrl);
+	m_btnSVNUpdate.SetWindowPos(nullptr, rcCtrl.right + 10, rcCtrl.top, nWidth, rcCtrl.Height(), SWP_NOACTIVATE | SWP_NOZORDER);
+
 	// 第五行;
 	CWnd* pLableTask = GetDlgItem(LABLE_TASK);
 	CWnd* pLableTaskStatus = GetDlgItem(LABLE_TASK_STATUS);
@@ -464,3 +484,9 @@ void CDlgService::OnNMDblclkListTask(NMHDR* pNMHDR, LRESULT* pResult)
 		ShellExecute(NULL, _T("open"), strLogPath.GetString(), NULL, NULL, SW_SHOW);
 	}
 }
+
+void CDlgService::OnBnClickedSvnUpdate()
+{
+	// TODO: 在此添加控件通知处理程序代码
+	CSVNMgr::GetInstance()->Update();
+}

+ 2 - 0
SATHelper/SATHelper/DlgService.h

@@ -43,10 +43,12 @@ public:
 	afx_msg void OnDevicesDel();
 	CMFCButton m_btnMIInit;
 	CMFCButton m_btnSCBCInit;
+	CMFCButton m_btnSVNUpdate;
 	afx_msg void OnBnClickedMiInit();
 	afx_msg void OnBnClickedScbcInit();
 	afx_msg void OnSize(UINT nType, int cx, int cy);
 	CEdit m_ctrlTaskId;
 	CStatic m_lbTaskStatus;
 	afx_msg void OnNMDblclkListTask(NMHDR* pNMHDR, LRESULT* pResult);
+	afx_msg void OnBnClickedSvnUpdate();
 };

+ 2 - 0
SATHelper/SATHelper/MainFrm.cpp

@@ -388,6 +388,7 @@ int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
 	SetWindowText(CString(_T("SATHelper 版本")) + CString(Global::g_szVersion));
 
 	SetTimer(0, 60000, NULL);
+	CSVNMgr::GetInstance()->Load();
 
 	return 0;
 }
@@ -1799,6 +1800,7 @@ void CMainFrame::OnTimer(UINT_PTR nIDEvent)
 		if (CSVNMgr::GetInstance()->CheckNewVersion(_T("http://192.168.1.103:8580/btc_execute_se/ajaxInteractiveManage!getSvnVersion.action"), _T("")))
 		{
 			m_trayIcon.SetInfo(_T("SVN资源有更新!"), _T("更新提醒!"));
+			CSVNMgr::GetInstance()->Store();
 		}
 	}
 	CMDIFrameWndEx::OnTimer(nIDEvent);

+ 2 - 1
SATHelper/SATHelper/Resource.h

@@ -143,6 +143,7 @@
 #define LABLE_TASK_STATUS               1020
 #define TX_TASKID                       1021
 #define IDC_STATIC_VERSION              1022
+#define BTN_SVN_UPDATE                  1023
 #define ID_WRITE_PASTEASHYPERLINK       32770
 #define ID_TRAYMENU_RECONNECT           32771
 #define ID_TRAYMENU_EXIT                32772
@@ -202,7 +203,7 @@
 #ifndef APSTUDIO_READONLY_SYMBOLS
 #define _APS_NEXT_RESOURCE_VALUE        327
 #define _APS_NEXT_COMMAND_VALUE         32831
-#define _APS_NEXT_CONTROL_VALUE         1023
+#define _APS_NEXT_CONTROL_VALUE         1024
 #define _APS_NEXT_SYMED_VALUE           310
 #endif
 #endif

+ 3 - 2
SATHelper/SATHelper/SATHelper.rc

@@ -508,8 +508,9 @@ BEGIN
     LTEXT           "任务ID:",LABLE_TASK,2,123,27,8
     EDITTEXT        TX_TASKID,37,120,96,14,ES_AUTOHSCROLL | ES_READONLY
     LTEXT           "执行中",LABLE_TASK_STATUS,138,123,25,8
-    PUSHBUTTON      "mi Init",BTN_MI_INIT,3,95,79,14
-    PUSHBUTTON      "scbc Init",BTN_SCBC_INIT,87,95,79,14
+    PUSHBUTTON      "mi Init",BTN_MI_INIT,3,95,46,14
+    PUSHBUTTON      "scbc Init",BTN_SCBC_INIT,76,95,31,14
+    PUSHBUTTON      "SVN Update",BTN_SVN_UPDATE,111,95,50,14
 END
 
 

+ 15 - 2
SATHelper/SATHelper/SVNProc.cpp

@@ -348,7 +348,7 @@ BOOL CSVNMgr::HasNewVersion()
 void CSVNMgr::Load(LPCTSTR lpFileName)
 {
 	CFile file;
-	if (!file.Open(lpFileName, CFile::modeRead)) {
+	if (file.Open(lpFileName, CFile::modeRead)) {
 		CArchive ar(&file, CArchive::load);
 		m_arySVN.Serialize(ar);
 		ar.Close();
@@ -359,7 +359,7 @@ void CSVNMgr::Load(LPCTSTR lpFileName)
 void CSVNMgr::Store(LPCTSTR lpFileName)
 {
 	CFile file;
-	if (!file.Open(lpFileName, CFile::modeWrite | CFile::modeCreate)) {
+	if (file.Open(lpFileName, CFile::modeWrite | CFile::modeCreate)) {
 		CArchive ar(&file, CArchive::store);
 		m_arySVN.Serialize(ar);
 		ar.Flush();
@@ -381,3 +381,16 @@ BOOL CSVNMgr::CheckNewVersion(std::string url, std::string strContent)
 	return HasNewVersion();
 }
 
+void CSVNMgr::Update()
+{
+	CSVNProc* pSVN = NULL;
+	int nSize = m_arySVN.GetSize();
+	for (int i = 0; i < nSize; i++) {
+		pSVN = m_arySVN.GetAt(i);
+		if (pSVN) {
+			if (pSVN->m_bNeedUpdate)
+				pSVN->Rollback(pSVN->m_strSVNAddress.GetString(), pSVN->m_strSVNSavePath.GetString(), pSVN->m_dwSVNVersion);
+		}
+	}
+}
+

+ 1 - 0
SATHelper/SATHelper/SVNProc.h

@@ -91,6 +91,7 @@ public:
 	void Store(LPCTSTR lpFileName = _T("svn.data"));
 	// ¼ì²â°æ±¾:ÓÐа汾·µ»ØTRUE;
 	BOOL CheckNewVersion(std::string url, std::string strContent);
+	void Update();
 };
 
 #endif // __SVN_PROC__ 

+ 2 - 1
SATHelper/SATHelper/resource.h

@@ -143,6 +143,7 @@
 #define LABLE_TASK_STATUS               1020
 #define TX_TASKID                       1021
 #define IDC_STATIC_VERSION              1022
+#define BTN_SVN_UPDATE                  1023
 #define ID_WRITE_PASTEASHYPERLINK       32770
 #define ID_TRAYMENU_RECONNECT           32771
 #define ID_TRAYMENU_EXIT                32772
@@ -202,7 +203,7 @@
 #ifndef APSTUDIO_READONLY_SYMBOLS
 #define _APS_NEXT_RESOURCE_VALUE        327
 #define _APS_NEXT_COMMAND_VALUE         32831
-#define _APS_NEXT_CONTROL_VALUE         1023
+#define _APS_NEXT_CONTROL_VALUE         1024
 #define _APS_NEXT_SYMED_VALUE           310
 #endif
 #endif