summaryrefslogtreecommitdiff
path: root/src/nautilus-compress-dialog-controller.c
diff options
context:
space:
mode:
authorRazvan Chitu <razvan.ch95@gmail.com>2016-09-30 16:54:35 +0300
committerRazvan Chitu <razvan.ch95@gmail.com>2016-10-04 23:22:27 +0300
commit36e506a73c9648973b0b25222145b8ec2c89ef06 (patch)
treec2aaff0028147c59ab58acd9a18a6abf08768b6a /src/nautilus-compress-dialog-controller.c
parent335eabec52e26406c339a9992c432efe28f8ac5e (diff)
downloadnautilus-36e506a73c9648973b0b25222145b8ec2c89ef06.tar.gz
compress-dialog: fix dialog width changes
The compress dialog has a width allocation request that can be smaller than the width of description labels in various languages other than english. In order to fix this, use a label widget for each description and group them in a homogeneous GtkStack. https://bugzilla.gnome.org/show_bug.cgi?id=771435
Diffstat (limited to 'src/nautilus-compress-dialog-controller.c')
-rw-r--r--src/nautilus-compress-dialog-controller.c24
1 files changed, 10 insertions, 14 deletions
diff --git a/src/nautilus-compress-dialog-controller.c b/src/nautilus-compress-dialog-controller.c
index db4662d2a..3937181a8 100644
--- a/src/nautilus-compress-dialog-controller.c
+++ b/src/nautilus-compress-dialog-controller.c
@@ -26,16 +26,12 @@
#include "nautilus-global-preferences.h"
-#define ZIP_DESCRIPTION _("Compatible with all operating systems.")
-#define TAR_XZ_DESCRIPTION _("Smaller archives but Linux and Mac only.")
-#define SEVEN_ZIP_DESCRIPTION _("Smaller archives but must be installed on Windows and Mac.")
-
struct _NautilusCompressDialogController
{
NautilusFileNameWidgetController parent_instance;
GtkWidget *compress_dialog;
- GtkWidget *description_label;
+ GtkWidget *description_stack;
GtkWidget *name_entry;
GtkWidget *zip_radio_button;
GtkWidget *tar_xz_radio_button;
@@ -123,7 +119,7 @@ update_selected_format (NautilusCompressDialogController *self,
NautilusCompressionFormat format)
{
const char *extension;
- const char *description;
+ const char *description_label_name;
GtkWidget *active_button;
switch (format)
@@ -131,7 +127,7 @@ update_selected_format (NautilusCompressDialogController *self,
case NAUTILUS_COMPRESSION_ZIP:
{
extension = ".zip";
- description = ZIP_DESCRIPTION;
+ description_label_name = "zip-description-label";
active_button = self->zip_radio_button;
}
break;
@@ -139,7 +135,7 @@ update_selected_format (NautilusCompressDialogController *self,
case NAUTILUS_COMPRESSION_TAR_XZ:
{
extension = ".tar.xz";
- description = TAR_XZ_DESCRIPTION;
+ description_label_name = "tar-xz-description-label";
active_button = self->tar_xz_radio_button;
}
break;
@@ -147,7 +143,7 @@ update_selected_format (NautilusCompressDialogController *self,
case NAUTILUS_COMPRESSION_7ZIP:
{
extension = ".7z";
- description = SEVEN_ZIP_DESCRIPTION;
+ description_label_name = "seven-zip-description-label";
active_button = self->seven_zip_radio_button;
}
break;
@@ -161,8 +157,8 @@ update_selected_format (NautilusCompressDialogController *self,
self->extension = extension;
- gtk_label_set_text (GTK_LABEL (self->description_label),
- description);
+ gtk_stack_set_visible_child_name (GTK_STACK (self->description_stack),
+ description_label_name);
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (active_button),
TRUE);
@@ -239,7 +235,7 @@ nautilus_compress_dialog_controller_new (GtkWindow *parent_window,
GtkWidget *error_label;
GtkWidget *name_entry;
GtkWidget *activate_button;
- GtkWidget *description_label;
+ GtkWidget *description_stack;
GtkWidget *zip_radio_button;
GtkWidget *tar_xz_radio_button;
GtkWidget *seven_zip_radio_button;
@@ -254,7 +250,7 @@ nautilus_compress_dialog_controller_new (GtkWindow *parent_window,
zip_radio_button = GTK_WIDGET (gtk_builder_get_object (builder, "zip_radio_button"));
tar_xz_radio_button = GTK_WIDGET (gtk_builder_get_object (builder, "tar_xz_radio_button"));
seven_zip_radio_button = GTK_WIDGET (gtk_builder_get_object (builder, "seven_zip_radio_button"));
- description_label = GTK_WIDGET (gtk_builder_get_object (builder, "description_label"));
+ description_stack = GTK_WIDGET (gtk_builder_get_object (builder, "description_stack"));
gtk_window_set_transient_for (GTK_WINDOW (compress_dialog),
parent_window);
@@ -270,7 +266,7 @@ nautilus_compress_dialog_controller_new (GtkWindow *parent_window,
self->zip_radio_button = zip_radio_button;
self->tar_xz_radio_button = tar_xz_radio_button;
self->seven_zip_radio_button = seven_zip_radio_button;
- self->description_label = description_label;
+ self->description_stack = description_stack;
self->name_entry = name_entry;
self->response_handler_id = g_signal_connect (compress_dialog,