summaryrefslogtreecommitdiff
path: root/plugins/DbChecker/src
diff options
context:
space:
mode:
authorGeorge Hazan <george.hazan@gmail.com>2012-07-28 16:24:36 +0000
committerGeorge Hazan <george.hazan@gmail.com>2012-07-28 16:24:36 +0000
commitd76054aaa73912cca449378e07305e3c0b1ad608 (patch)
treed5d328db62e37e8322c72de6368c8790845147a8 /plugins/DbChecker/src
parentf3311cd7eb5e87b3718f763a3c08cd3764c84f51 (diff)
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
Diffstat (limited to 'plugins/DbChecker/src')
-rw-r--r--plugins/DbChecker/src/dbchecker.h2
-rw-r--r--plugins/DbChecker/src/finished.cpp47
-rw-r--r--plugins/DbChecker/src/main.cpp17
-rw-r--r--plugins/DbChecker/src/wizard.cpp3
4 files changed, 13 insertions, 56 deletions
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;