[gnome-disk-utility] Be smart about how many digits are shown in the create partition spinbuttons
- From: David Zeuthen <davidz src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-disk-utility] Be smart about how many digits are shown in the create partition spinbuttons
- Date: Tue, 4 Dec 2012 17:18:40 +0000 (UTC)
commit f72943f08af81172aad12a7e6a028335937fe288
Author: David Zeuthen <zeuthen gmail com>
Date: Tue Dec 4 12:16:39 2012 -0500
Be smart about how many digits are shown in the create partition spinbuttons
The guiding principle is that we want to show around three significant
figures. If the user needs more precision he can choose a smaller
unit.
Signed-off-by: David Zeuthen <zeuthen gmail com>
data/ui/create-partition-dialog.ui | 4 ++--
src/disks/gducreatepartitiondialog.c | 11 +++++++++++
2 files changed, 13 insertions(+), 2 deletions(-)
---
diff --git a/data/ui/create-partition-dialog.ui b/data/ui/create-partition-dialog.ui
index 3503810..6a4abf8 100644
--- a/data/ui/create-partition-dialog.ui
+++ b/data/ui/create-partition-dialog.ui
@@ -133,7 +133,7 @@
<property name="activates_default">True</property>
<property name="invisible_char_set">True</property>
<property name="adjustment">size-adjustment</property>
- <property name="digits">3</property>
+ <property name="digits">0</property>
</object>
<packing>
<property name="expand">False</property>
@@ -198,7 +198,7 @@
<property name="activates_default">True</property>
<property name="invisible_char_set">True</property>
<property name="adjustment">free-following-adjustment</property>
- <property name="digits">3</property>
+ <property name="digits">0</property>
</object>
<packing>
<property name="expand">True</property>
diff --git a/src/disks/gducreatepartitiondialog.c b/src/disks/gducreatepartitiondialog.c
index beccbc3..4cf65bb 100644
--- a/src/disks/gducreatepartitiondialog.c
+++ b/src/disks/gducreatepartitiondialog.c
@@ -52,6 +52,7 @@ typedef struct
GtkWidget *dos_error_infobar;
GtkWidget *dos_warning_infobar;
GtkWidget *size_spinbutton;
+ GtkWidget *free_following_spinbutton;
GtkAdjustment *size_adjustment;
GtkAdjustment *free_following_adjustment;
@@ -203,6 +204,7 @@ set_unit_num (CreatePartitionData *data,
gdouble value;
gdouble value_units;
gdouble max_size_units;
+ gint num_digits;
g_assert (unit_num < NUM_UNITS);
@@ -221,6 +223,11 @@ set_unit_num (CreatePartitionData *data,
value_units = value / unit_size;
max_size_units = ((gdouble) data->max_size) / unit_size;
+ /* show at least three digits in the spin buttons */
+ num_digits = 3.0 - ceil (log10 (max_size_units));
+ if (num_digits < 0)
+ num_digits = 0;
+
g_object_freeze_notify (G_OBJECT (data->size_adjustment));
g_object_freeze_notify (G_OBJECT (data->free_following_adjustment));
@@ -241,6 +248,9 @@ set_unit_num (CreatePartitionData *data,
100, /* page increment */
0.0); /* page_size */
+ gtk_spin_button_set_digits (GTK_SPIN_BUTTON (data->size_spinbutton), num_digits);
+ gtk_spin_button_set_digits (GTK_SPIN_BUTTON (data->free_following_spinbutton), num_digits);
+
gtk_adjustment_set_value (data->size_adjustment, value_units);
gtk_adjustment_set_value (data->free_following_adjustment, max_size_units - value_units);
@@ -464,6 +474,7 @@ gdu_create_partition_dialog_show (GduWindow *window,
NULL);
gtk_box_pack_start (GTK_BOX (data->infobar_vbox), data->dos_warning_infobar, TRUE, TRUE, 0);
data->size_spinbutton = GTK_WIDGET (gtk_builder_get_object (data->builder, "size-spinbutton"));
+ data->free_following_spinbutton = GTK_WIDGET (gtk_builder_get_object (data->builder, "free-following-spinbutton"));
data->size_adjustment = GTK_ADJUSTMENT (gtk_builder_get_object (data->builder, "size-adjustment"));
g_signal_connect (data->size_adjustment, "notify::value", G_CALLBACK (create_partition_property_changed), data);
data->free_following_adjustment = GTK_ADJUSTMENT (gtk_builder_get_object (data->builder, "free-following-adjustment"));
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]