summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/m_chat_int.h3
-rw-r--r--src/mir_app/res/resource.rc9
-rw-r--r--src/mir_app/src/chat.h2
-rw-r--r--src/mir_app/src/chat_svc.cpp1
-rw-r--r--src/mir_app/src/mir_app.def1
-rw-r--r--src/mir_app/src/mir_app64.def1
-rw-r--r--src/mir_app/src/resource.h7
-rw-r--r--src/mir_app/src/srmm_log.cpp66
-rw-r--r--src/mir_app/src/srmm_main.cpp1
9 files changed, 50 insertions, 41 deletions
diff --git a/include/m_chat_int.h b/include/m_chat_int.h
index 431ffd2a34..1cd4797197 100644
--- a/include/m_chat_int.h
+++ b/include/m_chat_int.h
@@ -398,8 +398,7 @@ namespace Chat
bDoubleClick4Privat,
bLogIndentEnabled,
bLogLimitNames,
- bStripFormat,
- bEnableCustomLogs;
+ bStripFormat;
extern MIR_APP_EXPORT CMOption<uint32_t>
iPopupFlags,
diff --git a/src/mir_app/res/resource.rc b/src/mir_app/res/resource.rc
index fd51407196..0933ec329e 100644
--- a/src/mir_app/res/resource.rc
+++ b/src/mir_app/res/resource.rc
@@ -683,10 +683,11 @@ STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD
EXSTYLE WS_EX_CONTROLPARENT
FONT 8, "MS Shell Dlg", 0, 0, 0x1
BEGIN
- LTEXT "Choose needed logger from listed below:",IDC_STATIC,2,3,299,8
- LISTBOX IDC_LIST,0,16,305,189,LBS_SORT | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP
- CONTROL "Enable custom loggers in group chats",IDC_ENABLE_CUSTOM,
- "Button",BS_AUTOCHECKBOX | WS_TABSTOP,5,210,297,12
+ GROUPBOX "Choose a log viewer",IDC_STATIC,7,5,292,76
+ LTEXT "For the private chats",IDC_STATIC,20,18,272,8
+ LTEXT "For the group chats",IDC_STATIC,20,48,272,8
+ COMBOBOX IDC_LOGGER,20,29,222,30,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_TABSTOP
+ COMBOBOX IDC_LOGGER_GC,20,60,222,30,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_TABSTOP
END
IDD_OPT_LANGUAGES DIALOGEX 0, 0, 301, 191
diff --git a/src/mir_app/src/chat.h b/src/mir_app/src/chat.h
index 41a4f67cac..270a57ce32 100644
--- a/src/mir_app/src/chat.h
+++ b/src/mir_app/src/chat.h
@@ -153,6 +153,8 @@ CMStringW Chat_GetFolderName(SESSION_INFO *si = nullptr);
void Chat_Serialize(SESSION_INFO *si);
bool Chat_Unserialize(SESSION_INFO *si);
+void CheckLogOptions(void);
+
EXTERN_C MIR_APP_DLL(HANDLE) Srmm_AddButton(const BBButton *bbdi, HPLUGIN _hLang);
#pragma comment(lib,"comctl32.lib")
diff --git a/src/mir_app/src/chat_svc.cpp b/src/mir_app/src/chat_svc.cpp
index cbefe28564..4276d8c5f1 100644
--- a/src/mir_app/src/chat_svc.cpp
+++ b/src/mir_app/src/chat_svc.cpp
@@ -32,7 +32,6 @@ CMOption<bool> Chat::bUseGroup(CHAT_MODULE, "UseGroup", true);
CMOption<bool> Chat::bDoubleClick4Privat(CHAT_MODULE, "DoubleClick4Privat", false);
CMOption<bool> Chat::bShowContactStatus(CHAT_MODULE, "ShowContactStatus", true);
CMOption<bool> Chat::bContactStatusFirst(CHAT_MODULE, "ContactStatusFirst", false);
-CMOption<bool> Chat::bEnableCustomLogs(SRMM_MODULE, "EnableCustomLogs", false);
CMOption<bool> Chat::bFlashWindow(CHAT_MODULE, "FlashWindow", false);
CMOption<bool> Chat::bFlashWindowHighlight(CHAT_MODULE, "FlashWindowHighlight", false);
diff --git a/src/mir_app/src/mir_app.def b/src/mir_app/src/mir_app.def
index f5b4697d98..0041a0dba8 100644
--- a/src/mir_app/src/mir_app.def
+++ b/src/mir_app/src/mir_app.def
@@ -885,7 +885,6 @@ Clist_GroupSaveExpanded @1003 NONAME
??0MAsyncObject@@QAE@XZ @1016 NONAME
??1MAsyncObject@@UAE@XZ @1017 NONAME
??_7MAsyncObject@@6B@ @1018 NONAME
-?bEnableCustomLogs@Chat@@3V?$CMOption@_N@@A @1019 NONAME
?Srmm_IsCustomLogUsed@@YG_N_N@Z @1020 NONAME
?IconFlashTime@Clist@@3V?$CMOption@I@@A @1021 NONAME
?Srmm_Quote@@YG?AV?$CMStringT@_WV?$ChTraitsCRT@_W@@@@PB_WH@Z @1022 NONAME
diff --git a/src/mir_app/src/mir_app64.def b/src/mir_app/src/mir_app64.def
index bb13b5bd53..5390e1d7fc 100644
--- a/src/mir_app/src/mir_app64.def
+++ b/src/mir_app/src/mir_app64.def
@@ -885,7 +885,6 @@ Clist_GroupSaveExpanded @1003 NONAME
??0MAsyncObject@@QEAA@XZ @1016 NONAME
??1MAsyncObject@@UEAA@XZ @1017 NONAME
??_7MAsyncObject@@6B@ @1018 NONAME
-?bEnableCustomLogs@Chat@@3V?$CMOption@_N@@A @1019 NONAME
?Srmm_IsCustomLogUsed@@YA_N_N@Z @1020 NONAME
?IconFlashTime@Clist@@3V?$CMOption@I@@A @1021 NONAME
?Srmm_Quote@@YA?AV?$CMStringT@_WV?$ChTraitsCRT@_W@@@@PEB_WH@Z @1022 NONAME
diff --git a/src/mir_app/src/resource.h b/src/mir_app/src/resource.h
index 6151d191c1..65b746277a 100644
--- a/src/mir_app/src/resource.h
+++ b/src/mir_app/src/resource.h
@@ -585,7 +585,6 @@
#define IDC_RADIO1 1740
#define IDC_RADIO2 1741
#define IDC_ADDCHECK 1742
-#define IDC_ENABLE_CUSTOM 1743
#define IDC_GETMOREPLUGINS 1744
#define IDC_DISABLEMENUICONS 1745
#define IDC_SM_ENABLED 1746
@@ -604,6 +603,8 @@
#define IDC_OFFLINE_AUTOSIZE_SPIN 1758
#define IDC_OFFLINE_DELETE 1759
#define IDC_SHOWPASSWORD 1760
+#define IDC_LOGGER 1761
+#define IDC_LOGGER_GC 1762
#define IDC_EFFECT_COLOUR_TEXT1 1853
#define IDC_EFFECT_COLOUR_SPIN1 1854
#define IDC_EXTRAORDER 1889
@@ -696,9 +697,9 @@
//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
-#define _APS_NEXT_RESOURCE_VALUE 340
+#define _APS_NEXT_RESOURCE_VALUE 341
#define _APS_NEXT_COMMAND_VALUE 40018
-#define _APS_NEXT_CONTROL_VALUE 1761
+#define _APS_NEXT_CONTROL_VALUE 1762
#define _APS_NEXT_SYMED_VALUE 101
#endif
#endif
diff --git a/src/mir_app/src/srmm_log.cpp b/src/mir_app/src/srmm_log.cpp
index 793fa2bcea..00e2982282 100644
--- a/src/mir_app/src/srmm_log.cpp
+++ b/src/mir_app/src/srmm_log.cpp
@@ -30,19 +30,24 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
static OBJLIST<SrmmLogWindowClass> g_arLogClasses(1, PtrKeySortT);
static CMOption<char *> g_logger(SRMM_MODULE, "Logger", "built-in");
+static CMOption<char *> g_loggerGC(SRMM_MODULE, "LoggerGC", "built-in");
+
+void CheckLogOptions()
+{
+ if (db_get_b(0, SRMM_MODULE, "EnableCustomLogs")) {
+ g_loggerGC = (char*)g_logger;
+ db_unset(0, SRMM_MODULE, "EnableCustomLogs");
+ }
+}
/////////////////////////////////////////////////////////////////////////////////////////
static bool sttEnableCustomLogs(CMsgDialog *pDlg)
{
// always enable custom log viewers for private chats
- if (!pDlg || !pDlg->isChat())
+ if (!pDlg)
return true;
- // if custom log viewers are disable, use build-in one
- if (!Chat::bEnableCustomLogs)
- return false;
-
// check if custom viewers are forbidden for this particular account
auto *szProto = Proto_GetBaseAccountName(pDlg->m_hContact);
if (szProto) {
@@ -69,9 +74,9 @@ MIR_APP_DLL(SrmmLogWindowClass *) Srmm_GetWindowClass(CMsgDialog *pDlg)
if (sttEnableCustomLogs(pDlg)) {
CMStringA szViewerName;
if (pDlg != nullptr)
- szViewerName = db_get_sm(pDlg->m_hContact, SRMSGMOD, "Logger");
+ szViewerName = db_get_sm(pDlg->m_hContact, SRMSGMOD, pDlg->isChat() ? "LoggerGC" : "Logger");
if (szViewerName.IsEmpty())
- szViewerName = g_logger;
+ szViewerName = pDlg->isChat() ? g_loggerGC : g_logger;
for (auto &it : g_arLogClasses)
if (szViewerName == it->szShortName)
@@ -87,8 +92,8 @@ MIR_APP_DLL(SrmmLogWindowClass *) Srmm_GetWindowClass(CMsgDialog *pDlg)
MIR_APP_DLL(bool) Srmm_IsCustomLogUsed(bool forGroupChats)
{
- if (forGroupChats && !Chat::bEnableCustomLogs)
- return false;
+ if (forGroupChats)
+ return mir_strcmp(g_loggerGC, "built-in") != 0;
return mir_strcmp(g_logger, "built-in") != 0;
}
@@ -113,42 +118,46 @@ static class CSrmmLogOptionsDlg *pDialog = nullptr;
class CSrmmLogOptionsDlg : public CDlgBase
{
- CCtrlListBox m_list;
- CCtrlCheck chkCustomLogs;
+ CCtrlCombo cmbLogger, cmbLoggerGC;
+
+ void PopulateCombo(const char *pszClass, CCtrlCombo &ctrl)
+ {
+ ctrl.ResetContent();
+
+ for (auto &it : g_arLogClasses) {
+ int idx = ctrl.AddString(TranslateW_LP(it->wszScreenName, it->pPlugin), LPARAM(it));
+ if (!mir_strcmp(it->szShortName, pszClass))
+ ctrl.SetCurSel(idx);
+ }
+ }
public:
CSrmmLogOptionsDlg() :
CDlgBase(g_plugin, IDD_OPT_SRMMLOG),
- m_list(this, IDC_LIST),
- chkCustomLogs(this, IDC_ENABLE_CUSTOM)
+ cmbLogger(this, IDC_LOGGER),
+ cmbLoggerGC(this, IDC_LOGGER_GC)
{
- CreateLink(chkCustomLogs, Chat::bEnableCustomLogs);
-
- m_list.OnSelChange = Callback(this, &CSrmmLogOptionsDlg::onChange_List);
}
bool OnInitDialog() override
{
pDialog = this;
-
- auto *pClass = Srmm_GetWindowClass(0);
- for (auto &it : g_arLogClasses) {
- int idx = m_list.AddString(TranslateW_LP(it->wszScreenName, it->pPlugin), LPARAM(it));
- if (it == pClass)
- m_list.SetCurSel(idx);
- }
-
+ PopulateCombo(g_logger, cmbLogger);
+ PopulateCombo(g_loggerGC, cmbLoggerGC);
return true;
}
bool OnApply() override
{
- int idx = m_list.GetCurSel();
- if (idx == -1)
+ if (auto *pLogger = (SrmmLogWindowClass *)cmbLogger.GetCurData())
+ g_logger = pLogger->szShortName;
+ else
return false;
- if (auto *pLogger = (SrmmLogWindowClass *)m_list.GetItemData(idx))
- g_logger = pLogger->szShortName;
+ if (auto *pLogger = (SrmmLogWindowClass *)cmbLoggerGC.GetCurData())
+ g_loggerGC = pLogger->szShortName;
+ else
+ return false;
if (!m_bExiting) {
PostMessage(m_hwndParent, WM_CLOSE, 1, 0);
@@ -164,7 +173,6 @@ public:
void Rebuild()
{
- m_list.ResetContent();
OnInitDialog();
}
diff --git a/src/mir_app/src/srmm_main.cpp b/src/mir_app/src/srmm_main.cpp
index 9f08f8c221..af9b4007bc 100644
--- a/src/mir_app/src/srmm_main.cpp
+++ b/src/mir_app/src/srmm_main.cpp
@@ -198,6 +198,7 @@ int LoadSrmmModule()
g_hCurHyperlinkHand = LoadCursor(nullptr, IDC_HAND);
+ CheckLogOptions();
LoadSrmmToolbarModule();
CreateServiceFunction(MS_HISTORY_EMPTY, svcEmptyHistory);