summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristopher Davis <brainblasted@disroot.org>2021-02-10 21:52:21 -0800
committerAlexander Mikhaylenko <alexm@gnome.org>2021-02-11 19:32:00 +0500
commitc64544d439856602fcb2648aff3a2ecf27bbfffe (patch)
tree026afe0bec5c175ae78576b592442c5cd14bbc1f
parentc38919af14358249e10101816f8834a300e9824c (diff)
downloadepiphany-c64544d439856602fcb2648aff3a2ecf27bbfffe.tar.gz
data-view: Use HdyStatusPage for empty states
libhandy now provides a built-in empty page widget. For consistency across apps, we should use it for our empty states. Use the actual app icon instead of web-browser-symbolic while we're here.
-rw-r--r--src/preferences/ephy-data-view.c18
-rw-r--r--src/resources/gtk/data-view.ui133
2 files changed, 15 insertions, 136 deletions
diff --git a/src/preferences/ephy-data-view.c b/src/preferences/ephy-data-view.c
index a01047e08..995ac2663 100644
--- a/src/preferences/ephy-data-view.c
+++ b/src/preferences/ephy-data-view.c
@@ -18,6 +18,7 @@
* along with Epiphany. If not, see <http://www.gnu.org/licenses/>.
*/
+#include "config.h"
#include "ephy-data-view.h"
#include <ctype.h>
@@ -32,8 +33,7 @@ typedef struct {
GtkWidget *search_entry;
GtkWidget *search_button;
GtkWidget *stack;
- GtkWidget *empty_title_label;
- GtkWidget *empty_description_label;
+ GtkWidget *empty_page;
GtkWidget *spinner;
gboolean is_loading : 1;
@@ -200,10 +200,10 @@ ephy_data_view_set_property (GObject *object,
atk_object_set_description (gtk_widget_get_accessible (GTK_WIDGET (self)), g_value_get_string (value));
break;
case PROP_EMPTY_TITLE:
- gtk_label_set_text (GTK_LABEL (priv->empty_title_label), g_value_get_string (value));
+ hdy_status_page_set_title (HDY_STATUS_PAGE (priv->empty_page), g_value_get_string (value));
break;
case PROP_EMPTY_DESCRIPTION:
- gtk_label_set_text (GTK_LABEL (priv->empty_description_label), g_value_get_string (value));
+ hdy_status_page_set_description (HDY_STATUS_PAGE (priv->empty_page), g_value_get_string (value));
break;
case PROP_IS_LOADING:
ephy_data_view_set_is_loading (self, g_value_get_boolean (value));
@@ -252,10 +252,10 @@ ephy_data_view_get_property (GObject *object,
g_value_set_string (value, gtk_entry_get_placeholder_text (GTK_ENTRY (priv->search_entry)));
break;
case PROP_EMPTY_TITLE:
- g_value_set_string (value, gtk_label_get_text (GTK_LABEL (priv->empty_title_label)));
+ g_value_set_string (value, hdy_status_page_get_title (HDY_STATUS_PAGE (priv->empty_page)));
break;
case PROP_EMPTY_DESCRIPTION:
- g_value_set_string (value, gtk_label_get_text (GTK_LABEL (priv->empty_description_label)));
+ g_value_set_string (value, hdy_status_page_get_description (HDY_STATUS_PAGE (priv->empty_page)));
break;
case PROP_SEARCH_TEXT:
g_value_set_string (value, ephy_data_view_get_search_text (self));
@@ -445,8 +445,7 @@ ephy_data_view_class_init (EphyDataViewClass *klass)
gtk_widget_class_bind_template_child_private (widget_class, EphyDataView, header_bar);
gtk_widget_class_bind_template_child_private (widget_class, EphyDataView, back_button);
gtk_widget_class_bind_template_child_private (widget_class, EphyDataView, clear_button);
- gtk_widget_class_bind_template_child_private (widget_class, EphyDataView, empty_title_label);
- gtk_widget_class_bind_template_child_private (widget_class, EphyDataView, empty_description_label);
+ gtk_widget_class_bind_template_child_private (widget_class, EphyDataView, empty_page);
gtk_widget_class_bind_template_child_private (widget_class, EphyDataView, search_bar);
gtk_widget_class_bind_template_child_private (widget_class, EphyDataView, search_button);
gtk_widget_class_bind_template_child_private (widget_class, EphyDataView, search_entry);
@@ -467,6 +466,9 @@ ephy_data_view_init (EphyDataView *self)
hdy_search_bar_connect_entry (HDY_SEARCH_BAR (priv->search_bar), GTK_ENTRY (priv->search_entry));
+ hdy_status_page_set_icon_name (HDY_STATUS_PAGE (priv->empty_page),
+ APPLICATION_ID "-symbolic");
+
update (self);
}
diff --git a/src/resources/gtk/data-view.ui b/src/resources/gtk/data-view.ui
index 5bfff6c07..5d3396873 100644
--- a/src/resources/gtk/data-view.ui
+++ b/src/resources/gtk/data-view.ui
@@ -103,142 +103,19 @@
</packing>
</child>
<child>
- <object class="GtkScrolledWindow">
- <property name="can_focus">False</property>
- <property name="expand">True</property>
- <property name="hscrollbar_policy">never</property>
+ <object class="HdyStatusPage" id="empty_page">
<property name="visible">True</property>
- <child>
- <object class="GtkBox">
- <property name="can_focus">False</property>
- <property name="halign">center</property>
- <property name="orientation">vertical</property>
- <property name="valign">center</property>
- <property name="vexpand">True</property>
- <property name="visible">True</property>
- <child>
- <object class="GtkImage">
- <property name="can_focus">False</property>
- <property name="icon_name">web-browser-symbolic</property>
- <property name="icon_size">0</property>
- <property name="margin_bottom">18</property>
- <property name="pixel_size">128</property>
- <property name="valign">center</property>
- <property name="visible">True</property>
- <style>
- <class name="dim-label"/>
- </style>
- </object>
- </child>
- <child>
- <object class="GtkBox">
- <property name="can_focus">False</property>
- <property name="margin_end">12</property>
- <property name="margin_start">12</property>
- <property name="orientation">vertical</property>
- <property name="visible">True</property>
- <child>
- <object class="GtkLabel" id="empty_title_label">
- <property name="can_focus">False</property>
- <property name="halign">center</property>
- <property name="justify">center</property>
- <property name="margin_bottom">12</property>
- <property name="opacity">0.5</property>
- <property name="visible">True</property>
- <property name="wrap">True</property>
- <attributes>
- <attribute name="scale" value="2"/>
- <attribute name="weight" value="bold"/>
- </attributes>
- </object>
- </child>
- <child>
- <object class="GtkLabel" id="empty_description_label">
- <property name="can_focus">False</property>
- <property name="justify">center</property>
- <property name="margin_bottom">6</property>
- <property name="opacity">0.5</property>
- <property name="use_markup">True</property>
- <property name="visible">True</property>
- <property name="wrap">True</property>
- </object>
- </child>
- </object>
- </child>
- </object>
- </child>
</object>
<packing>
<property name="name">empty</property>
</packing>
</child>
<child>
- <object class="GtkScrolledWindow">
- <property name="can_focus">False</property>
- <property name="expand">True</property>
- <property name="hscrollbar_policy">never</property>
+ <object class="HdyStatusPage">
<property name="visible">True</property>
- <child>
- <object class="GtkBox">
- <property name="can_focus">False</property>
- <property name="halign">center</property>
- <property name="orientation">vertical</property>
- <property name="valign">center</property>
- <property name="vexpand">True</property>
- <property name="visible">True</property>
- <child>
- <object class="GtkImage">
- <property name="can_focus">False</property>
- <property name="icon_name">edit-find-symbolic</property>
- <property name="icon_size">0</property>
- <property name="margin_bottom">18</property>
- <property name="pixel_size">128</property>
- <property name="valign">center</property>
- <property name="visible">True</property>
- <style>
- <class name="dim-label"/>
- </style>
- </object>
- </child>
- <child>
- <object class="GtkBox">
- <property name="can_focus">False</property>
- <property name="margin_end">12</property>
- <property name="margin_start">12</property>
- <property name="orientation">vertical</property>
- <property name="visible">True</property>
- <child>
- <object class="GtkLabel">
- <property name="can_focus">False</property>
- <property name="halign">center</property>
- <property name="justify">center</property>
- <property name="label" translatable="yes">No Results Found</property>
- <property name="margin_bottom">12</property>
- <property name="opacity">0.5</property>
- <property name="visible">True</property>
- <property name="wrap">True</property>
- <attributes>
- <attribute name="scale" value="2"/>
- <attribute name="weight" value="bold"/>
- </attributes>
- </object>
- </child>
- <child>
- <object class="GtkLabel">
- <property name="can_focus">False</property>
- <property name="justify">center</property>
- <property name="label" translatable="yes">Try a different search</property>
- <property name="margin_bottom">6</property>
- <property name="opacity">0.5</property>
- <property name="use_markup">True</property>
- <property name="visible">True</property>
- <property name="wrap">True</property>
- </object>
- </child>
- </object>
- </child>
- </object>
- </child>
+ <property name="icon_name">edit-find-symbolic</property>
+ <property name="title" translatable="yes">No Results Found</property>
+ <property name="description" translatable="yes">Try a different search</property>
</object>
<packing>
<property name="name">no-results</property>