summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/mir_app/src/MDatabaseCommonCrypt.cpp22
-rw-r--r--src/mir_app/src/database.cpp10
-rw-r--r--src/mir_app/src/encrypt.h2
3 files changed, 15 insertions, 19 deletions
diff --git a/src/mir_app/src/MDatabaseCommonCrypt.cpp b/src/mir_app/src/MDatabaseCommonCrypt.cpp
index 29b804c6a6..ba9964b863 100644
--- a/src/mir_app/src/MDatabaseCommonCrypt.cpp
+++ b/src/mir_app/src/MDatabaseCommonCrypt.cpp
@@ -25,8 +25,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#include "database.h"
#include "encrypt.h"
-#define MS_DB_CHANGEPASSWORD "DB/UI/ChangePassword"
-
/////////////////////////////////////////////////////////////////////////////////////////
// Provider selection dialog
@@ -315,25 +313,20 @@ static int OnOptionsInit(PVOID obj, WPARAM wParam, LPARAM)
/////////////////////////////////////////////////////////////////////////////////////////
-static int OnModulesLoaded(PVOID obj, WPARAM, LPARAM)
+void InitCryptMenuItem(CMenuItem &mi)
{
- MDatabaseCommon *db = (MDatabaseCommon *)obj;
-
- HookEventObj(ME_OPT_INITIALISE, OnOptionsInit, obj);
+ auto *pDb = db_get_current();
- // main menu item
- CMenuItem mi(&g_plugin);
- mi.root = g_plugin.addRootMenu(MO_MAIN, LPGENW("Database"), 500000000, g_plugin.getIconHandle(IDI_DATABASE));
- Menu_ConfigureItem(mi.root, MCI_OPT_UID, "F7C5567C-D1EE-484B-B4F6-24677A5AAAEF");
+ HookEventObj(ME_OPT_INITIALISE, OnOptionsInit, pDb);
SET_UID(mi, 0x50321866, 0xba1, 0x46dd, 0xb3, 0xa6, 0xc3, 0xcc, 0x55, 0xf2, 0x42, 0x9e);
mi.flags = CMIF_UNICODE;
mi.position = 1000000001;
mi.hIcolibItem = Skin_GetIconHandle(SKINICON_OTHER_KEYS);
- mi.name.w = GetMenuTitle(db->usesPassword());
- mi.pszService = MS_DB_CHANGEPASSWORD;
+ mi.name.w = GetMenuTitle(pDb->usesPassword());
+ mi.pszService = "DB/UI/ChangePassword";
hSetPwdMenu = Menu_AddMainMenuItem(&mi);
- return 0;
+ CreateServiceFunctionObj(mi.pszService, ChangePassword, pDb);
}
/////////////////////////////////////////////////////////////////////////////////////////
@@ -455,9 +448,6 @@ int MDatabaseCommon::InitCrypt()
StoreCryptoKey();
}
- CreateServiceFunctionObj(MS_DB_CHANGEPASSWORD, ChangePassword, this);
- HookEventObj(ME_SYSTEM_MODULESLOADED, OnModulesLoaded, this);
-
m_bEncrypted = ReadEncryption();
return 0;
}
diff --git a/src/mir_app/src/database.cpp b/src/mir_app/src/database.cpp
index d3ee8296e6..8e90ab01b9 100644
--- a/src/mir_app/src/database.cpp
+++ b/src/mir_app/src/database.cpp
@@ -23,6 +23,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
#include "stdafx.h"
+#include "encrypt.h"
#include "profilemanager.h"
bool g_bDbCreated;
@@ -460,10 +461,11 @@ static INT_PTR CompactMe(void* obj, WPARAM, LPARAM)
static int OnModulesLoaded(WPARAM, LPARAM)
{
auto *pDb = db_get_current();
- if (pDb->GetDriver()->capabilities & MDB_CAPS_COMPACT) {
- CMenuItem mi(&g_plugin);
- mi.root = g_plugin.addRootMenu(MO_MAIN, LPGENW("Database"), 500000000, 0);
+ CMenuItem mi(&g_plugin);
+ mi.root = g_plugin.addRootMenu(MO_MAIN, LPGENW("Database"), 500000000, g_plugin.getIconHandle(IDI_DATABASE));
+
+ if (pDb->GetDriver()->capabilities & MDB_CAPS_COMPACT) {
SET_UID(mi, 0x98c0caf3, 0xBfe5, 0x4e31, 0xac, 0xf0, 0xab, 0x95, 0xb2, 0x9b, 0x9f, 0x73);
mi.position++;
mi.hIcolibItem = g_plugin.getIconHandle(IDI_DATABASE);
@@ -473,6 +475,8 @@ static int OnModulesLoaded(WPARAM, LPARAM)
CreateServiceFunctionObj(mi.pszService, CompactMe, pDb);
}
+
+ InitCryptMenuItem(mi);
return 0;
}
diff --git a/src/mir_app/src/encrypt.h b/src/mir_app/src/encrypt.h
index d05c9277a4..d340135f8b 100644
--- a/src/mir_app/src/encrypt.h
+++ b/src/mir_app/src/encrypt.h
@@ -43,3 +43,5 @@ struct MCryptoProvider : public CRYPTO_PROVIDER
};
extern OBJLIST<MCryptoProvider> arCryptoProviders;
+
+void InitCryptMenuItem(CMenuItem &mi);