summaryrefslogtreecommitdiff
path: root/writerperfect/source/common/WPFTEncodingDialog.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'writerperfect/source/common/WPFTEncodingDialog.cxx')
-rw-r--r--writerperfect/source/common/WPFTEncodingDialog.cxx78
1 files changed, 21 insertions, 57 deletions
diff --git a/writerperfect/source/common/WPFTEncodingDialog.cxx b/writerperfect/source/common/WPFTEncodingDialog.cxx
index dbd5356e5030..a86d888466b2 100644
--- a/writerperfect/source/common/WPFTEncodingDialog.cxx
+++ b/writerperfect/source/common/WPFTEncodingDialog.cxx
@@ -78,82 +78,46 @@ std::pair<OUStringLiteral, OUStringLiteral> const s_encodings[]
std::size_t const numEncodings = SAL_N_ELEMENTS(s_encodings);
-void insertEncodings(ListBox* box)
+void insertEncodings(weld::ComboBoxText& box)
{
for (std::size_t i = 0; i < numEncodings; ++i)
- {
- sal_IntPtr nAt = box->InsertEntry(s_encodings[i].second);
- box->SetEntryData(nAt, reinterpret_cast<void*>(static_cast<sal_uIntPtr>(i)));
- }
+ box.append(s_encodings[i].first, s_encodings[i].second);
}
-void selectEncoding(ListBox* box, const OUString& encoding)
+void selectEncoding(weld::ComboBoxText& box, const OUString& encoding)
{
- for (std::size_t i = 0; i < numEncodings; ++i)
- {
- if (encoding != s_encodings[i].first)
- continue;
- box->SelectEntryPos(i);
- return;
- }
+ box.set_active_id(encoding);
}
-OUString getEncoding(ListBox const* box)
-{
- sal_uIntPtr pos = reinterpret_cast<sal_uIntPtr>(box->GetSelectedEntryData());
- if (pos >= numEncodings)
- return OUString();
- return s_encodings[pos].first;
-}
+OUString getEncoding(const weld::ComboBoxText& box) { return box.get_active_id(); }
}
-WPFTEncodingDialog::WPFTEncodingDialog(const OUString& title, const OUString& encoding)
- : ModalDialog(nullptr, "WPFTEncodingDialog", "writerperfect/ui/wpftencodingdialog.ui")
- , m_pLbCharset()
- , m_pBtnOk()
- , m_pBtnCancel()
+WPFTEncodingDialog::WPFTEncodingDialog(weld::Window* pParent, const OUString& title,
+ const OUString& encoding)
+ : GenericDialogController(pParent, "writerperfect/ui/wpftencodingdialog.ui",
+ "WPFTEncodingDialog")
, m_userHasCancelled(false)
+ , m_xLbCharset(m_xBuilder->weld_combo_box_text("comboboxtext"))
+ , m_xBtnOk(m_xBuilder->weld_button("ok"))
+ , m_xBtnCancel(m_xBuilder->weld_button("cancel"))
{
- get(m_pLbCharset, "comboboxtext");
- get(m_pBtnOk, "ok");
- get(m_pBtnCancel, "cancel");
+ m_xBtnCancel->connect_clicked(LINK(this, WPFTEncodingDialog, CancelHdl));
- m_pBtnCancel->SetClickHdl(LINK(this, WPFTEncodingDialog, CancelHdl));
+ insertEncodings(*m_xLbCharset);
+ m_xLbCharset->make_sorted();
+ selectEncoding(*m_xLbCharset, encoding);
- insertEncodings(m_pLbCharset);
- m_pLbCharset->SetStyle(m_pLbCharset->GetStyle() | WB_SORT);
- // m_pLbCharset->set_height_request(6 * m_pLbCharset->GetTextHeight());
- m_pLbCharset->SetDoubleClickHdl(LINK(this, WPFTEncodingDialog, DoubleClickHdl));
- selectEncoding(m_pLbCharset, encoding);
- m_pLbCharset->Show();
-
- SetText(title);
+ m_xDialog->set_title(title);
}
-WPFTEncodingDialog::~WPFTEncodingDialog() { disposeOnce(); }
+WPFTEncodingDialog::~WPFTEncodingDialog() {}
-OUString WPFTEncodingDialog::GetEncoding() const { return getEncoding(m_pLbCharset); }
+OUString WPFTEncodingDialog::GetEncoding() const { return getEncoding(*m_xLbCharset); }
-IMPL_LINK_NOARG(WPFTEncodingDialog, CancelHdl, Button*, void)
+IMPL_LINK_NOARG(WPFTEncodingDialog, CancelHdl, weld::Button&, void)
{
m_userHasCancelled = true;
- Close();
-}
-
-IMPL_LINK(WPFTEncodingDialog, DoubleClickHdl, ListBox&, rLb, void)
-{
- if (&rLb == m_pLbCharset)
- {
- m_pBtnOk->Click();
- }
-}
-
-void WPFTEncodingDialog::dispose()
-{
- m_pLbCharset.disposeAndClear();
- m_pBtnOk.disposeAndClear();
- m_pBtnCancel.disposeAndClear();
- ModalDialog::dispose();
+ m_xDialog->response(RET_CANCEL);
}
}