diff options
Diffstat (limited to 'plugins/CloudFile/src/options.cpp')
-rw-r--r-- | plugins/CloudFile/src/options.cpp | 76 |
1 files changed, 33 insertions, 43 deletions
diff --git a/plugins/CloudFile/src/options.cpp b/plugins/CloudFile/src/options.cpp index e09b659bc1..ca9a860962 100644 --- a/plugins/CloudFile/src/options.cpp +++ b/plugins/CloudFile/src/options.cpp @@ -2,11 +2,18 @@ COptionsMain::COptionsMain() : CPluginDlgBase(hInstance, IDD_OPTIONS_MAIN, MODULE), + m_defaultService(this, IDC_DEFAULTSERVICE), + m_renameOnConflict(this, IDC_RENAMEONCONFLICT), + m_repalceOnConflict(this, IDC_REPLACEONCONFLICT), m_urlAutoSend(this, IDC_URL_AUTOSEND), m_urlPasteToMessageInputArea(this, IDC_URL_COPYTOMIA), - m_urlCopyToClipboard(this, IDC_URL_COPYTOCB), - m_services(this, IDC_SERVICES), isServiceListInit(false) + m_urlCopyToClipboard(this, IDC_URL_COPYTOCB) { + /*CreateLink(m_defaultService, "DefaultService", L""); + + CreateLink(m_renameOnConflict, "RenameOnConflict", DBVT_BYTE, 1); + CreateLink(m_repalceOnConflict, "RepalceOnConflict", DBVT_BYTE, 0);*/ + CreateLink(m_urlAutoSend, "UrlAutoSend", DBVT_BYTE, 1); CreateLink(m_urlPasteToMessageInputArea, "UrlPasteToMessageInputArea", DBVT_BYTE, 0); CreateLink(m_urlCopyToClipboard, "UrlCopyToClipboard", DBVT_BYTE, 0); @@ -16,58 +23,41 @@ void COptionsMain::OnInitDialog() { CDlgBase::OnInitDialog(); - m_services.SetExtendedListViewStyle(LVS_EX_FULLROWSELECT | LVS_EX_CHECKBOXES | LVS_EX_INFOTIP); - - m_services.AddColumn(0, TranslateT("Account name"), 50); + ptrA defaultService(db_get_sa(NULL, MODULE, "DefaultService")); + int iItem = m_defaultService.AddString(TranslateT("No")); + m_defaultService.SetCurSel(iItem); size_t count = Services.getCount(); for (size_t i = 0; i < count; i++) { CCloudService *service = Services[i]; - int iItem = m_services.AddItem(mir_wstrdup(service->GetText()), -1, (LPARAM)service); - //m_services.SetItem(iItem, 1, mir_a2u(service->GetModule)); - int isEnable = db_get_b(NULL, service->GetModule(), "IsEnable", TRUE); - m_services.SetCheckState(iItem, isEnable); + iItem = m_defaultService.AddString(mir_wstrdup(service->GetText()), (LPARAM)service); + if (!mir_strcmpi(service->GetModule(), defaultService)) + m_defaultService.SetCurSel(iItem); } - m_services.SetColumnWidth(0, LVSCW_AUTOSIZE_USEHEADER); - - isServiceListInit = true; + BYTE strategy = db_get_b(NULL, MODULE, "ConflictStrategy", OnConflict::NONE); + if (strategy == OnConflict::RENAME) + m_renameOnConflict.SetState(TRUE); + else if (strategy == OnConflict::REPLACE) + m_repalceOnConflict.SetState(TRUE); } void COptionsMain::OnApply() { - int count = m_services.GetItemCount(); - for (int iItem = 0; iItem < count; iItem++) - { - CCloudService *service = (CCloudService*)m_services.GetItemData(iItem); - - int isEnable = m_services.GetCheckState(iItem); - db_set_b(NULL, service->GetModule(), "IsEnable", isEnable); - } -} - -INT_PTR COptionsMain::DlgProc(UINT msg, WPARAM wParam, LPARAM lParam) -{ - switch (msg) - { - case WM_NOTIFY: - { - LPNMHDR lpnmHdr = (LPNMHDR)lParam; - if (lpnmHdr->idFrom == (UINT_PTR)m_services.GetCtrlId() && lpnmHdr->code == LVN_ITEMCHANGED) - { - LPNMLISTVIEW pnmv = (LPNMLISTVIEW)lParam; - if (pnmv->uChanged & LVIF_STATE && pnmv->uNewState & LVIS_STATEIMAGEMASK) - { - if (isServiceListInit) - NotifyChange(); - } - } - } - break; - } - - return CDlgBase::DlgProc(msg, wParam, lParam); + int iItem = m_defaultService.GetCurSel(); + CCloudService *service = (CCloudService*)m_defaultService.GetItemData(iItem); + if (service) + db_set_s(NULL, MODULE, "DefaultService", service->GetModule()); + else + db_unset(NULL, MODULE, "DefaultService"); + + if (m_renameOnConflict.GetState()) + db_set_b(NULL, MODULE, "ConflictStrategy", OnConflict::RENAME); + else if (m_repalceOnConflict.GetState()) + db_set_b(NULL, MODULE, "ConflictStrategy", OnConflict::REPLACE); + else + db_unset(NULL, MODULE, "ConflictStrategy"); } ///////////////////////////////////////////////////////////////////////////////// |