[nautilus/wip/razvan/compression-support: 2/2] file-name-widgets: use a revealer to display errors
- From: Răzvan-Mihai Chițu <razvanchitu src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [nautilus/wip/razvan/compression-support: 2/2] file-name-widgets: use a revealer to display errors
- Date: Mon, 22 Aug 2016 12:14:53 +0000 (UTC)
commit 5f90d7e53b56fd537f040dbd4b8072cf241be245
Author: Razvan Chitu <razvan ch95 gmail com>
Date: Mon Aug 22 15:12:18 2016 +0300
file-name-widgets: use a revealer to display errors
Each file name widget has an error label for displaying error messages. However,
when there is no error, the label just takes up space for no reason. In order to
fix this, use a revealer to display error messages.
src/nautilus-compress-dialog-controller.c | 3 ++
src/nautilus-file-name-widget-controller.c | 22 ++++++++++++++++++++-
src/nautilus-new-folder-dialog-controller.c | 3 ++
src/nautilus-rename-file-popover-controller.c | 3 ++
src/resources/ui/nautilus-compress-dialog.ui | 16 +++++++++-----
src/resources/ui/nautilus-create-folder-dialog.ui | 13 ++++++-----
src/resources/ui/nautilus-rename-file-popover.ui | 9 ++++++-
7 files changed, 54 insertions(+), 15 deletions(-)
---
diff --git a/src/nautilus-compress-dialog-controller.c b/src/nautilus-compress-dialog-controller.c
index 9a31e65..ea4a78a 100644
--- a/src/nautilus-compress-dialog-controller.c
+++ b/src/nautilus-compress-dialog-controller.c
@@ -191,6 +191,7 @@ nautilus_compress_dialog_controller_new (GtkWindow *parent_window,
NautilusCompressDialogController *self;
g_autoptr (GtkBuilder) builder;
GtkWidget *compress_dialog;
+ GtkWidget *error_revealer;
GtkWidget *error_label;
GtkWidget *name_entry;
GtkWidget *activate_button;
@@ -202,6 +203,7 @@ nautilus_compress_dialog_controller_new (GtkWindow *parent_window,
builder = gtk_builder_new_from_resource ("/org/gnome/nautilus/ui/nautilus-compress-dialog.ui");
compress_dialog = GTK_WIDGET (gtk_builder_get_object (builder, "compress_dialog"));
+ error_revealer = GTK_WIDGET (gtk_builder_get_object (builder, "error_revealer"));
error_label = GTK_WIDGET (gtk_builder_get_object (builder, "error_label"));
name_entry = GTK_WIDGET (gtk_builder_get_object (builder, "name_entry"));
activate_button = GTK_WIDGET (gtk_builder_get_object (builder, "activate_button"));
@@ -214,6 +216,7 @@ nautilus_compress_dialog_controller_new (GtkWindow *parent_window,
parent_window);
self = g_object_new (NAUTILUS_TYPE_COMPRESS_DIALOG_CONTROLLER,
+ "error-revealer", error_revealer,
"error-label", error_label,
"name-entry", name_entry,
"activate-button", activate_button,
diff --git a/src/nautilus-file-name-widget-controller.c b/src/nautilus-file-name-widget-controller.c
index 6f0e4c0..0eb4745 100644
--- a/src/nautilus-file-name-widget-controller.c
+++ b/src/nautilus-file-name-widget-controller.c
@@ -6,6 +6,7 @@
#define FILE_NAME_DUPLICATED_LABEL_TIMEOUT 500
typedef struct {
+ GtkWidget *error_revealer;
GtkWidget *error_label;
GtkWidget *name_entry;
GtkWidget *activate_button;
@@ -22,7 +23,8 @@ enum {
};
enum {
- PROP_ERROR_LABEL = 1,
+ PROP_ERROR_REVEALER = 1,
+ PROP_ERROR_LABEL,
PROP_NAME_ENTRY,
PROP_ACTION_BUTTON,
PROP_CONTAINING_DIRECTORY,
@@ -108,6 +110,9 @@ duplicated_file_label_show (NautilusFileNameWidgetController *self)
_("A file with that name already exists."));
}
+ gtk_revealer_set_reveal_child (GTK_REVEALER (priv->error_revealer),
+ TRUE);
+
priv->duplicated_label_timeout_id = 0;
return G_SOURCE_REMOVE;
@@ -130,6 +135,8 @@ file_name_widget_controller_process_new_name (NautilusFileNameWidgetController *
&error_message);
gtk_label_set_label (GTK_LABEL (priv->error_label), error_message);
+ gtk_revealer_set_reveal_child (GTK_REVEALER (priv->error_revealer),
+ error_message != NULL);
existing_file = nautilus_directory_get_file_by_name (priv->containing_directory, name);
*duplicated_name = existing_file != NULL &&
@@ -259,6 +266,9 @@ nautilus_file_name_widget_controller_set_property (GObject *object,
priv = nautilus_file_name_widget_controller_get_instance_private (controller);
switch (prop_id) {
+ case PROP_ERROR_REVEALER:
+ priv->error_revealer = GTK_WIDGET (g_value_get_object (value));
+ break;
case PROP_ERROR_LABEL:
priv->error_label = GTK_WIDGET (g_value_get_object (value));
break;
@@ -350,6 +360,16 @@ nautilus_file_name_widget_controller_class_init (NautilusFileNameWidgetControlle
g_object_class_install_property (
object_class,
+ PROP_ERROR_REVEALER,
+ g_param_spec_object ("error-revealer",
+ "Error Revealer",
+ "The error label revealer",
+ GTK_TYPE_WIDGET,
+ G_PARAM_WRITABLE |
+ G_PARAM_CONSTRUCT_ONLY));
+
+ g_object_class_install_property (
+ object_class,
PROP_ERROR_LABEL,
g_param_spec_object ("error-label",
"Error Label",
diff --git a/src/nautilus-new-folder-dialog-controller.c b/src/nautilus-new-folder-dialog-controller.c
index 51da961..667e82b 100644
--- a/src/nautilus-new-folder-dialog-controller.c
+++ b/src/nautilus-new-folder-dialog-controller.c
@@ -60,6 +60,7 @@ nautilus_new_folder_dialog_controller_new (GtkWindow *parent_window,
NautilusNewFolderDialogController *self;
g_autoptr (GtkBuilder) builder;
GtkWidget *new_folder_dialog;
+ GtkWidget *error_revealer;
GtkWidget *error_label;
GtkWidget *name_entry;
GtkWidget *activate_button;
@@ -67,6 +68,7 @@ nautilus_new_folder_dialog_controller_new (GtkWindow *parent_window,
builder = gtk_builder_new_from_resource ("/org/gnome/nautilus/ui/nautilus-create-folder-dialog.ui");
new_folder_dialog = GTK_WIDGET (gtk_builder_get_object (builder, "create_folder_dialog"));
+ error_revealer = GTK_WIDGET (gtk_builder_get_object (builder, "error_revealer"));
error_label = GTK_WIDGET (gtk_builder_get_object (builder, "error_label"));
name_entry = GTK_WIDGET (gtk_builder_get_object (builder, "name_entry"));
activate_button = GTK_WIDGET (gtk_builder_get_object (builder, "ok_button"));
@@ -76,6 +78,7 @@ nautilus_new_folder_dialog_controller_new (GtkWindow *parent_window,
parent_window);
self = g_object_new (NAUTILUS_TYPE_NEW_FOLDER_DIALOG_CONTROLLER,
+ "error-revealer", error_revealer,
"error-label", error_label,
"name-entry", name_entry,
"activate-button", activate_button,
diff --git a/src/nautilus-rename-file-popover-controller.c b/src/nautilus-rename-file-popover-controller.c
index 36a7c34..7dfaad6 100644
--- a/src/nautilus-rename-file-popover-controller.c
+++ b/src/nautilus-rename-file-popover-controller.c
@@ -101,6 +101,7 @@ nautilus_rename_file_popover_controller_new (NautilusFile *target_file,
NautilusRenameFilePopoverController *self;
g_autoptr (GtkBuilder) builder;
GtkWidget *rename_file_popover;
+ GtkWidget *error_revealer;
GtkWidget *error_label;
GtkWidget *name_entry;
GtkWidget *activate_button;
@@ -112,6 +113,7 @@ nautilus_rename_file_popover_controller_new (NautilusFile *target_file,
builder = gtk_builder_new_from_resource ("/org/gnome/nautilus/ui/nautilus-rename-file-popover.ui");
rename_file_popover = GTK_WIDGET (gtk_builder_get_object (builder, "rename_file_popover"));
+ error_revealer = GTK_WIDGET (gtk_builder_get_object (builder, "error_revealer"));
error_label = GTK_WIDGET (gtk_builder_get_object (builder, "error_label"));
name_entry = GTK_WIDGET (gtk_builder_get_object (builder, "name_entry"));
activate_button = GTK_WIDGET (gtk_builder_get_object (builder, "rename_button"));
@@ -129,6 +131,7 @@ nautilus_rename_file_popover_controller_new (NautilusFile *target_file,
}
self = g_object_new (NAUTILUS_TYPE_RENAME_FILE_POPOVER_CONTROLLER,
+ "error-revealer", error_revealer,
"error-label", error_label,
"name-entry", name_entry,
"activate-button", activate_button,
diff --git a/src/resources/ui/nautilus-compress-dialog.ui b/src/resources/ui/nautilus-compress-dialog.ui
index 0aa9f11..5a13a37 100644
--- a/src/resources/ui/nautilus-compress-dialog.ui
+++ b/src/resources/ui/nautilus-compress-dialog.ui
@@ -42,12 +42,13 @@
</packing>
</child>
<child>
- <object class="GtkLabel" id="error_label">
- <property name="visible">True</property>
- <property name="xalign">0</property>
- <style>
- <class name="dim-label"/>
- </style>
+ <object class="GtkRevealer" id="error_revealer">
+ <child>
+ <object class="GtkLabel" id="error_label">
+ <property name="visible">True</property>
+ <property name="xalign">0</property>
+ </object>
+ </child>
</object>
<packing>
<property name="expand">False</property>
@@ -109,6 +110,9 @@
<object class="GtkLabel" id="description_label">
<property name="visible">True</property>
<property name="xalign">0</property>
+ <style>
+ <class name="dim-label"/>
+ </style>
</object>
<packing>
<property name="expand">False</property>
diff --git a/src/resources/ui/nautilus-create-folder-dialog.ui
b/src/resources/ui/nautilus-create-folder-dialog.ui
index 1e044bf..5d1cf6d 100644
--- a/src/resources/ui/nautilus-create-folder-dialog.ui
+++ b/src/resources/ui/nautilus-create-folder-dialog.ui
@@ -40,12 +40,13 @@
</packing>
</child>
<child>
- <object class="GtkLabel" id="error_label">
- <property name="visible">True</property>
- <property name="xalign">0</property>
- <style>
- <class name="dim-label"/>
- </style>
+ <object class="GtkRevealer" id="error_revealer">
+ <child>
+ <object class="GtkLabel" id="error_label">
+ <property name="visible">True</property>
+ <property name="xalign">0</property>
+ </object>
+ </child>
</object>
<packing>
<property name="expand">False</property>
diff --git a/src/resources/ui/nautilus-rename-file-popover.ui
b/src/resources/ui/nautilus-rename-file-popover.ui
index fb10559..4b987ec 100644
--- a/src/resources/ui/nautilus-rename-file-popover.ui
+++ b/src/resources/ui/nautilus-rename-file-popover.ui
@@ -48,9 +48,14 @@
</packing>
</child>
<child>
- <object class="GtkLabel" id="error_label">
+ <object class="GtkRevealer" id="error_revealer">
<property name="visible">True</property>
- <property name="halign">start</property>
+ <child>
+ <object class="GtkLabel" id="error_label">
+ <property name="visible">True</property>
+ <property name="xalign">0</property>
+ </object>
+ </child>
</object>
<packing>
<property name="left-attach">0</property>
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]