diff options
-rw-r--r-- | include/m_chat_int.h | 3 | ||||
-rw-r--r-- | src/mir_app/res/resource.rc | 9 | ||||
-rw-r--r-- | src/mir_app/src/chat.h | 2 | ||||
-rw-r--r-- | src/mir_app/src/chat_svc.cpp | 1 | ||||
-rw-r--r-- | src/mir_app/src/mir_app.def | 1 | ||||
-rw-r--r-- | src/mir_app/src/mir_app64.def | 1 | ||||
-rw-r--r-- | src/mir_app/src/resource.h | 7 | ||||
-rw-r--r-- | src/mir_app/src/srmm_log.cpp | 66 | ||||
-rw-r--r-- | src/mir_app/src/srmm_main.cpp | 1 |
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); |