Kaydet (Commit) d2313a5d authored tarafından Caolán McNamara's avatar Caolán McNamara

Resolves: tdf#122467 drop down field name is too narrow

ellipise only when we have to

Change-Id: I79820dc84fc9ac0a755700c70bca9edbb14cf371
Reviewed-on: https://gerrit.libreoffice.org/66000
Tested-by: Jenkins
Reviewed-by: 's avatarCaolán McNamara <caolanm@redhat.com>
Tested-by: 's avatarCaolán McNamara <caolanm@redhat.com>
üst 096b4555
......@@ -99,7 +99,6 @@
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes" context="queryfilterdialog|label2">Operator</property>
<property name="ellipsize">end</property>
<property name="xalign">0</property>
</object>
<packing>
......@@ -112,7 +111,6 @@
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes" context="queryfilterdialog|label5">Field name</property>
<property name="ellipsize">end</property>
</object>
<packing>
<property name="left_attach">1</property>
......@@ -124,7 +122,6 @@
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes" context="queryfilterdialog|label6">Condition</property>
<property name="ellipsize">end</property>
</object>
<packing>
<property name="left_attach">2</property>
......@@ -135,7 +132,7 @@
<object class="GtkComboBoxText" id="field1">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="hexpand">True</property>
<property name="active">0</property>
<items>
<item translatable="yes" context="queryfilterdialog|field1">- none -</item>
</items>
......@@ -150,6 +147,7 @@
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="hexpand">True</property>
<property name="active">0</property>
<items>
<item translatable="yes" context="queryfilterdialog|cond1">=</item>
<item translatable="yes" context="queryfilterdialog|cond1">&lt;&gt;</item>
......@@ -172,7 +170,7 @@
<object class="GtkComboBoxText" id="field2">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="hexpand">True</property>
<property name="active">0</property>
<items>
<item translatable="yes" context="queryfilterdialog|field2">- none -</item>
</items>
......@@ -186,7 +184,7 @@
<object class="GtkComboBoxText" id="field3">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="hexpand">True</property>
<property name="active">0</property>
<items>
<item translatable="yes" context="queryfilterdialog|field3">- none -</item>
</items>
......@@ -201,6 +199,7 @@
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="hexpand">True</property>
<property name="active">0</property>
</object>
<packing>
<property name="left_attach">2</property>
......@@ -212,6 +211,7 @@
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="hexpand">True</property>
<property name="active">0</property>
</object>
<packing>
<property name="left_attach">2</property>
......@@ -223,7 +223,6 @@
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes" context="queryfilterdialog|label7">Value</property>
<property name="ellipsize">end</property>
</object>
<packing>
<property name="left_attach">3</property>
......@@ -234,6 +233,7 @@
<object class="GtkEntry" id="value1">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="hexpand">True</property>
<property name="activates_default">True</property>
</object>
<packing>
......@@ -245,6 +245,7 @@
<object class="GtkEntry" id="value2">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="hexpand">True</property>
<property name="activates_default">True</property>
</object>
<packing>
......@@ -256,6 +257,7 @@
<object class="GtkEntry" id="value3">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="hexpand">True</property>
<property name="activates_default">True</property>
</object>
<packing>
......@@ -267,7 +269,7 @@
<object class="GtkComboBoxText" id="op2">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="hexpand">True</property>
<property name="active">0</property>
<items>
<item translatable="yes" context="queryfilterdialog|op2">AND</item>
<item translatable="yes" context="queryfilterdialog|op2">OR</item>
......@@ -282,7 +284,7 @@
<object class="GtkComboBoxText" id="op3">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="hexpand">True</property>
<property name="active">0</property>
<items>
<item translatable="yes" context="queryfilterdialog|op3">AND</item>
<item translatable="yes" context="queryfilterdialog|op3">OR</item>
......
......@@ -6398,6 +6398,7 @@ class GtkInstanceComboBox : public GtkInstanceContainer, public vcl::ISearchable
private:
GtkComboBox* m_pComboBox;
GtkTreeModel* m_pTreeModel;
GtkCellRenderer* m_pTextRenderer;
GtkMenu* m_pMenu;
std::unique_ptr<comphelper::string::NaturalStringSorter> m_xSorter;
vcl::QuickSelectionEngine m_aQuickSelectionEngine;
......@@ -6710,23 +6711,19 @@ public:
if (!g_list_length(cells))
{
//Always use the same text column renderer layout
GtkCellRenderer* text_renderer = gtk_cell_renderer_text_new();
gtk_cell_layout_pack_end(GTK_CELL_LAYOUT(m_pComboBox), text_renderer, true);
gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(m_pComboBox), text_renderer, "text", 0, nullptr);
g_object_set(G_OBJECT(text_renderer), "ellipsize", PANGO_ELLIPSIZE_MIDDLE, nullptr);
m_pTextRenderer = gtk_cell_renderer_text_new();
gtk_cell_layout_pack_end(GTK_CELL_LAYOUT(m_pComboBox), m_pTextRenderer, true);
gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(m_pComboBox), m_pTextRenderer, "text", 0, nullptr);
}
else
{
// this bit isn't great, I really want to be able to ellipse the text in the comboboxtext itself and let
// the popup menu render them in full, in the interim allow the text to wrap in both cases
GtkCellRenderer* cell = static_cast<GtkCellRenderer*>(cells->data);
g_object_set(G_OBJECT(cell), "ellipsize", PANGO_ELLIPSIZE_MIDDLE, nullptr);
m_pTextRenderer = static_cast<GtkCellRenderer*>(cells->data);
if (g_list_length(cells) == 2)
{
//The ComboBox is always going to show the column associated with
//the entry when there is one, left to its own devices this image
//column will be after it, but we want it before
gtk_cell_layout_reorder(GTK_CELL_LAYOUT(m_pComboBox), cell, 1);
gtk_cell_layout_reorder(GTK_CELL_LAYOUT(m_pComboBox), m_pTextRenderer, 1);
}
}
g_list_free(cells);
......@@ -6773,7 +6770,18 @@ public:
GtkCellRenderer* cell = static_cast<GtkCellRenderer*>(cells->data);
GtkRequisition size;
gtk_cell_renderer_get_preferred_size(cell, m_pWidget, &size, nullptr);
gtk_cell_renderer_set_fixed_size(cell, nWidth, size.height);
if (nWidth < size.width)
{
// this bit isn't great, I really want to be able to ellipse the text in the comboboxtext itself and let
// the popup menu render them in full, in the interim ellipse both
g_object_set(G_OBJECT(m_pTextRenderer), "ellipsize", PANGO_ELLIPSIZE_MIDDLE, nullptr);
gtk_cell_renderer_set_fixed_size(cell, nWidth, size.height);
}
else
{
g_object_set(G_OBJECT(m_pTextRenderer), "ellipsize", PANGO_ELLIPSIZE_NONE, nullptr);
gtk_cell_renderer_set_fixed_size(cell, size.width, size.height);
}
g_list_free(cells);
gtk_widget_set_size_request(m_pWidget, nWidth, nHeight);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment