diff options
author | Caolán McNamara <caolanm@redhat.com> | 2022-12-08 11:00:00 +0000 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2022-12-08 13:57:49 +0000 |
commit | ebc7e13c0a79dbc5f21e78bcd9bb63a58c585f4a (patch) | |
tree | f45d764822a0df5c9c6c7ea6e39e28505e92e6f8 /cui | |
parent | 00e5509f07e1e53d506fc824df32e38a266952b1 (diff) |
Resolves: tdf#146395 allow newlines in QR Codes
Change-Id: Ib390d97866ab013770e4f1cbdfb529296d64c140
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/143811
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'cui')
-rw-r--r-- | cui/source/dialogs/QrCodeGenDialog.cxx | 10 | ||||
-rw-r--r-- | cui/source/inc/QrCodeGenDialog.hxx | 2 | ||||
-rw-r--r-- | cui/uiconfig/ui/qrcodegen.ui | 80 |
3 files changed, 56 insertions, 36 deletions
diff --git a/cui/source/dialogs/QrCodeGenDialog.cxx b/cui/source/dialogs/QrCodeGenDialog.cxx index 3e7b48e7af86..e028d4d10e94 100644 --- a/cui/source/dialogs/QrCodeGenDialog.cxx +++ b/cui/source/dialogs/QrCodeGenDialog.cxx @@ -156,7 +156,7 @@ QrCodeGenDialog::QrCodeGenDialog(weld::Widget* pParent, Reference<XModel> xModel bool bEditExisting) : GenericDialogController(pParent, "cui/ui/qrcodegen.ui", "QrCodeGenDialog") , m_xModel(std::move(xModel)) - , m_xEdittext(m_xBuilder->weld_entry("edit_text")) + , m_xEdittext(m_xBuilder->weld_text_view("edit_text")) , m_xECC{ m_xBuilder->weld_radio_button("button_low"), m_xBuilder->weld_radio_button("button_medium"), m_xBuilder->weld_radio_button("button_quartile"), @@ -167,16 +167,22 @@ QrCodeGenDialog::QrCodeGenDialog(weld::Widget* pParent, Reference<XModel> xModel , mpParent(pParent) #endif { + m_xEdittext->set_size_request(m_xEdittext->get_approximate_digit_width() * 28, + m_xEdittext->get_height_rows(6)); if (!bEditExisting) { + OUString sSelection; // TODO: This only works in Writer doc. Should also work in shapes Reference<XIndexAccess> xSelections(m_xModel->getCurrentSelection(), UNO_QUERY); if (xSelections.is()) { Reference<XTextRange> xSelection(xSelections->getByIndex(0), UNO_QUERY); if (xSelection.is()) - m_xEdittext->set_text(xSelection->getString()); + sSelection = xSelection->getString(); } + if (!sSelection.isEmpty()) + m_xEdittext->set_text(sSelection); + m_xEdittext->select_region(0, -1); return; } diff --git a/cui/source/inc/QrCodeGenDialog.hxx b/cui/source/inc/QrCodeGenDialog.hxx index 2c205c6a85d4..001df88c5581 100644 --- a/cui/source/inc/QrCodeGenDialog.hxx +++ b/cui/source/inc/QrCodeGenDialog.hxx @@ -30,7 +30,7 @@ protected: private: css::uno::Reference<css::frame::XModel> m_xModel; - std::unique_ptr<weld::Entry> m_xEdittext; + std::unique_ptr<weld::TextView> m_xEdittext; std::unique_ptr<weld::RadioButton> m_xECC[4]; std::unique_ptr<weld::SpinButton> m_xSpinBorder; std::unique_ptr<weld::ComboBox> m_xComboType; diff --git a/cui/uiconfig/ui/qrcodegen.ui b/cui/uiconfig/ui/qrcodegen.ui index 4f015dccfde3..7078e3aa44a5 100644 --- a/cui/uiconfig/ui/qrcodegen.ui +++ b/cui/uiconfig/ui/qrcodegen.ui @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!-- Generated with glade 3.38.2 --> +<!-- Generated with glade 3.40.0 --> <interface domain="cui"> <requires lib="gtk+" version="3.20"/> <object class="GtkAdjustment" id="margin_value"> @@ -8,9 +8,12 @@ <property name="step-increment">1</property> <property name="page-increment">10</property> </object> + <object class="GtkTextBuffer" id="textbuffer1"> + <property name="text" translatable="yes" context="qrcodegen|edit_name">www.libreoffice.org</property> + </object> <object class="GtkDialog" id="QrCodeGenDialog"> - <property name="can_focus">False</property> - <property name="border_width">6</property> + <property name="can-focus">False</property> + <property name="border-width">6</property> <property name="title" translatable="yes" context="qrcodegen|QrCodeGenDialog">QR and Barcode</property> <property name="modal">True</property> <property name="default-width">0</property> @@ -95,43 +98,27 @@ <property name="visible">True</property> <property name="can-focus">False</property> <property name="hexpand">True</property> + <property name="vexpand">True</property> <property name="label-xalign">0</property> <property name="shadow-type">none</property> <child> - <!-- n-columns=2 n-rows=3 --> + <!-- n-columns=2 n-rows=4 --> <object class="GtkGrid"> <property name="visible">True</property> <property name="can-focus">False</property> <property name="margin-top">6</property> + <property name="hexpand">True</property> + <property name="vexpand">True</property> <property name="row-spacing">6</property> <property name="column-spacing">12</property> <child> - <object class="GtkEntry" id="edit_text"> - <property name="visible">True</property> - <property name="can-focus">True</property> - <property name="hexpand">True</property> - <property name="activates-default">True</property> - <property name="truncate-multiline">True</property> - <property name="placeholder-text" translatable="yes" context="qrcodegen|edit_name">www.libreoffice.org</property> - <child internal-child="accessible"> - <object class="AtkObject" id="edit_text-atkobject"> - <property name="AtkObject::accessible-description" translatable="yes" context="qr text">The text from which to generate the code.</property> - </object> - </child> - </object> - <packing> - <property name="left-attach">1</property> - <property name="top-attach">0</property> - </packing> - </child> - <child> <object class="GtkLabel" id="label_text"> <property name="visible">True</property> <property name="can-focus">False</property> <property name="halign">start</property> + <property name="valign">start</property> <property name="label" translatable="yes" context="qrcodegen|label_text" comments="Text to be stored in the QR">URL/Text:</property> <property name="use-underline">True</property> - <property name="mnemonic-widget">edit_text</property> <property name="xalign">0</property> </object> <packing> @@ -157,22 +144,22 @@ <child> <object class="GtkLabel" id="label_type"> <property name="visible">True</property> - <property name="can_focus">False</property> + <property name="can-focus">False</property> <property name="halign">start</property> <property name="label" translatable="yes" context="qrcodegen|label_type" comments="Select type">Type:</property> - <property name="use_underline">True</property> - <property name="mnemonic_widget">choose_type</property> + <property name="use-underline">True</property> + <property name="mnemonic-widget">choose_type</property> <property name="xalign">0</property> </object> <packing> - <property name="left_attach">0</property> - <property name="top_attach">3</property> + <property name="left-attach">0</property> + <property name="top-attach">3</property> </packing> </child> <child> <object class="GtkComboBoxText" id="choose_type"> <property name="visible">True</property> - <property name="can_focus">False</property> + <property name="can-focus">False</property> <property name="hexpand">True</property> <property name="active">0</property> <items> @@ -186,9 +173,8 @@ </child> </object> <packing> - <property name="left_attach">1</property> - <property name="top_attach">3</property> - <property name="width">2</property> + <property name="left-attach">1</property> + <property name="top-attach">3</property> </packing> </child> <child> @@ -347,6 +333,34 @@ <property name="top-attach">1</property> </packing> </child> + <child> + <object class="GtkScrolledWindow"> + <property name="visible">True</property> + <property name="can-focus">True</property> + <property name="hexpand">True</property> + <property name="vexpand">True</property> + <property name="hscrollbar-policy">always</property> + <property name="shadow-type">in</property> + <child> + <object class="GtkTextView" id="edit_text"> + <property name="visible">True</property> + <property name="can-focus">True</property> + <property name="hexpand">True</property> + <property name="vexpand">True</property> + <property name="buffer">textbuffer1</property> + <child internal-child="accessible"> + <object class="AtkObject" id="edit_text-atkobject"> + <property name="AtkObject::accessible-description" translatable="yes" context="qr text">The text from which to generate the code.</property> + </object> + </child> + </object> + </child> + </object> + <packing> + <property name="left-attach">1</property> + <property name="top-attach">0</property> + </packing> + </child> </object> </child> <child type="label"> |