From d76054aaa73912cca449378e07305e3c0b1ad608 Mon Sep 17 00:00:00 2001 From: George Hazan Date: Sat, 28 Jul 2012 16:24:36 +0000 Subject: fixes for the dbchecker's wizard to operate correctly in the service mode git-svn-id: http://svn.miranda-ng.org/main/trunk@1226 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- plugins/DbChecker/src/dbchecker.h | 2 +- plugins/DbChecker/src/finished.cpp | 47 +++++--------------------------------- plugins/DbChecker/src/main.cpp | 17 ++++---------- plugins/DbChecker/src/wizard.cpp | 3 +-- 4 files changed, 13 insertions(+), 56 deletions(-) (limited to 'plugins/DbChecker/src') diff --git a/plugins/DbChecker/src/dbchecker.h b/plugins/DbChecker/src/dbchecker.h index 9554ff7134..51a8466c7c 100644 --- a/plugins/DbChecker/src/dbchecker.h +++ b/plugins/DbChecker/src/dbchecker.h @@ -67,7 +67,7 @@ extern HINSTANCE hInst; extern DbToolOptions opts; extern HANDLE hEventRun, hEventAbort; extern int errorCount; -extern bool bServiceMode; +extern bool bServiceMode, bLaunchMiranda; int DoMyControlProcessing(HWND hdlg, UINT message, WPARAM wParam, LPARAM lParam, INT_PTR *bReturn); diff --git a/plugins/DbChecker/src/finished.cpp b/plugins/DbChecker/src/finished.cpp index 96da1a0917..e4d6697bae 100644 --- a/plugins/DbChecker/src/finished.cpp +++ b/plugins/DbChecker/src/finished.cpp @@ -16,9 +16,9 @@ You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ + #include "dbchecker.h" -#define WM_LAUNCHMIRANDA (WM_USER+1) INT_PTR CALLBACK FinishedDlgProc(HWND hdlg, UINT message, WPARAM wParam, LPARAM lParam) { INT_PTR bReturn; @@ -28,6 +28,7 @@ INT_PTR CALLBACK FinishedDlgProc(HWND hdlg, UINT message, WPARAM wParam, LPARAM switch(message) { case WM_INITDIALOG: EnableWindow(GetDlgItem(GetParent(hdlg), IDC_BACK), FALSE); + EnableWindow(GetDlgItem(GetParent(hdlg), IDOK), FALSE); SetDlgItemText(GetParent(hdlg), IDCANCEL, TranslateT("&Finish")); SetWindowLongPtr(GetDlgItem(hdlg, IDC_DBFILE), GWL_STYLE, GetWindowLongPtr(GetDlgItem(hdlg, IDC_DBFILE), GWL_STYLE)|SS_PATHELLIPSIS); SetDlgItemText(hdlg, IDC_DBFILE, opts.filename); @@ -40,47 +41,11 @@ INT_PTR CALLBACK FinishedDlgProc(HWND hdlg, UINT message, WPARAM wParam, LPARAM TranslateDialogDefault(hdlg); return TRUE; - case WM_LAUNCHMIRANDA: - if (IsDlgButtonChecked(hdlg, IDC_LAUNCHMIRANDA)) { - TCHAR dbFile[MAX_PATH], dbPath[MAX_PATH], *str2; - _tcscpy(dbPath, opts.filename); - str2 = _tcsrchr(dbPath, '\\'); - if (str2 == NULL) { - _tcscpy(dbFile, dbPath); - dbPath[ 0 ] = 0; - } - else { - _tcscpy(dbFile, str2+1); - *str2 = 0; - } - str2 = _tcsrchr(dbFile, '.'); - if (str2 != NULL) - *str2 = 0; - _tcscat(dbPath, _T("\\miranda32.exe")); - if (GetFileAttributes(dbPath) == INVALID_FILE_ATTRIBUTES) { - GetModuleFileName(NULL, dbPath, SIZEOF(dbPath)); - if ((str2 = _tcsrchr(dbPath, '\\')) != NULL) - *str2 = 0; - else - dbPath[0] = 0; - _tcscat(dbPath, _T("\\miranda32.exe")); - } - ShellExecute(hdlg, NULL, dbPath, dbFile, _T(""), 0); - } - break; - case WZN_CANCELCLICKED: - SendMessage(hdlg, WM_LAUNCHMIRANDA, 0, 0); - break; - - case WM_COMMAND: - switch(LOWORD(wParam)) { - case IDOK: - SendMessage(hdlg, WM_LAUNCHMIRANDA, 0, 0); - SendMessage(GetParent(hdlg), WZM_GOTOPAGE, IDD_SELECTDB, (LPARAM)SelectDbDlgProc); - break; - } - break; + bLaunchMiranda = true; + CallService(MS_DB_SETDEFAULTPROFILE, (WPARAM)opts.filename, 0); + EndDialog( GetParent(hdlg), 1); + return TRUE; } return FALSE; } diff --git a/plugins/DbChecker/src/main.cpp b/plugins/DbChecker/src/main.cpp index 209bef8a70..4a98a5dd1d 100644 --- a/plugins/DbChecker/src/main.cpp +++ b/plugins/DbChecker/src/main.cpp @@ -22,7 +22,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. HINSTANCE hInst; int hLangpack = 0; -bool bServiceMode = false; +bool bServiceMode = false, bLaunchMiranda = false; static HANDLE hLaunchFunc; @@ -47,7 +47,7 @@ PLUGININFOEX pluginInfoEx = BOOL WINAPI DllMain(HINSTANCE hinstDLL,DWORD fdwReason,LPVOID lpvReserved) { - hInst=hinstDLL; + hInst = hinstDLL; return TRUE; } @@ -63,23 +63,16 @@ extern "C" __declspec(dllexport) const MUUID MirandaInterfaces[] = {MIID_SERVICE static INT_PTR ServiceMode(WPARAM, LPARAM) { + bLaunchMiranda = false; bServiceMode = true; - return SERVICE_MONOPOLY; // unload db and open a wizard -} - -static int OnModulesLoaded(WPARAM, LPARAM) -{ - if (bServiceMode) - DialogBox(hInst, MAKEINTRESOURCE(IDD_WIZARD), NULL, WizardDlgProc); - return 0; + DialogBox(hInst, MAKEINTRESOURCE(IDD_WIZARD), NULL, WizardDlgProc); + return (bLaunchMiranda) ? SERVICE_CONTINUE : SERVICE_FAILED; } extern "C" __declspec(dllexport) int Load(void) { mir_getLP(&pluginInfoEx); - HookEvent(ME_SYSTEM_MODULESLOADED, OnModulesLoaded); - hLaunchFunc = CreateServiceFunction(MS_SERVICEMODE_LAUNCH, ServiceMode); return 0; } diff --git a/plugins/DbChecker/src/wizard.cpp b/plugins/DbChecker/src/wizard.cpp index 835bb9d563..7a49a06daf 100644 --- a/plugins/DbChecker/src/wizard.cpp +++ b/plugins/DbChecker/src/wizard.cpp @@ -97,6 +97,7 @@ INT_PTR CALLBACK WizardDlgProc(HWND hdlg, UINT message, WPARAM wParam, LPARAM lP case WM_INITDIALOG: SendMessage(hdlg, WM_SETICON, ICON_SMALL, (LPARAM)LoadIcon(hInst, MAKEINTRESOURCE(IDI_DBTOOL))); hdlgPage = NULL; + bLaunchMiranda = false; SendMessage(hdlg, WZM_GOTOPAGE, IDD_WELCOME, (LPARAM)WelcomeDlgProc); TranslateDialogDefault(hdlg); return TRUE; @@ -139,8 +140,6 @@ INT_PTR CALLBACK WizardDlgProc(HWND hdlg, UINT message, WPARAM wParam, LPARAM lP DestroyWindow(hdlgPage); if (hBoldFont != NULL) DeleteObject(hBoldFont); if (hEmfHeaderLogo != NULL) DeleteEnhMetaFile(hEmfHeaderLogo); - if (bServiceMode) - PostQuitMessage(0); break; } return FALSE; -- cgit v1.2.3