]> Pileus Git - ~andy/gtk/blobdiff - gtk/gtkcustompaperunixdialog.c
Small documentation tweak
[~andy/gtk] / gtk / gtkcustompaperunixdialog.c
index ffa1adde8edf7d4199f32649214cf24f060e1108..57494c94a3a22cd687a9f06ab154184b0ab8b56c 100644 (file)
@@ -13,9 +13,7 @@
  * Lesser General Public License for more details.
  *
  * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * License along with this library. If not, see <http://www.gnu.org/licenses/>.
  */
 
 
@@ -40,7 +38,8 @@
 #include "gtkprintbackend.h"
 #include "gtkprintutils.h"
 
-#define CUSTOM_PAPER_FILENAME ".gtk-custom-papers"
+#define LEGACY_CUSTOM_PAPER_FILENAME ".gtk-custom-papers"
+#define CUSTOM_PAPER_FILENAME "custom-papers"
 
 
 typedef struct
@@ -133,11 +132,23 @@ _gtk_print_get_default_user_units (void)
 }
 
 static char *
-custom_paper_get_filename (void)
+custom_paper_get_legacy_filename (void)
 {
   gchar *filename;
 
   filename = g_build_filename (g_get_home_dir (),
+                              LEGACY_CUSTOM_PAPER_FILENAME, NULL);
+  g_assert (filename != NULL);
+  return filename;
+}
+
+static char *
+custom_paper_get_filename (void)
+{
+  gchar *filename;
+
+  filename = g_build_filename (g_get_user_config_dir (),
+                               "gtk-3.0",
                               CUSTOM_PAPER_FILENAME, NULL);
   g_assert (filename != NULL);
   return filename;
@@ -158,6 +169,13 @@ _gtk_load_custom_papers (void)
   keyfile = g_key_file_new ();
   load_ok = g_key_file_load_from_file (keyfile, filename, 0, NULL);
   g_free (filename);
+  if (!load_ok)
+    {
+      /* try legacy file */
+      filename = custom_paper_get_legacy_filename ();
+      load_ok = g_key_file_load_from_file (keyfile, filename, 0, NULL);
+      g_free (filename);
+    }
   if (!load_ok)
     {
       g_key_file_free (keyfile);
@@ -211,7 +229,7 @@ _gtk_print_save_custom_papers (GtkListStore *store)
   GtkTreeModel *model = GTK_TREE_MODEL (store);
   GtkTreeIter iter;
   GKeyFile *keyfile;
-  gchar *filename, *data;
+  gchar *filename, *data, *parentdir;
   gsize len;
   gint i = 0;
 
@@ -235,9 +253,16 @@ _gtk_print_save_custom_papers (GtkListStore *store)
     }
 
   filename = custom_paper_get_filename ();
-  data = g_key_file_to_data (keyfile, &len, NULL);
-  g_file_set_contents (filename, data, len, NULL);
-  g_free (data);
+  parentdir = g_build_filename (g_get_user_config_dir (),
+                                "gtk-3.0",
+                                NULL);
+  if (g_mkdir_with_parents (parentdir, 0700) == 0)
+    {
+      data = g_key_file_to_data (keyfile, &len, NULL);
+      g_file_set_contents (filename, data, len, NULL);
+      g_free (data);
+    }
+  g_free (parentdir);
   g_free (filename);
 }
 
@@ -577,7 +602,7 @@ custom_paper_printer_data_func (GtkCellLayout   *cell_layout,
   if (printer)
     g_object_set (cell, "text",  gtk_printer_get_name (printer), NULL);
   else
-    g_object_set (cell, "text",  _("Margins from Printer..."), NULL);
+    g_object_set (cell, "text",  _("Margins from Printer"), NULL);
 
   if (printer)
     g_object_unref (printer);
@@ -987,7 +1012,7 @@ populate_dialog (GtkCustomPaperUnixDialog *dialog)
   GtkCustomPaperUnixDialogPrivate *priv = dialog->priv;
   GtkDialog *cpu_dialog = GTK_DIALOG (dialog);
   GtkWidget *action_area, *content_area;
-  GtkWidget *table, *label, *widget, *frame, *combo;
+  GtkWidget *grid, *label, *widget, *frame, *combo;
   GtkWidget *hbox, *vbox, *treeview, *scrolled, *toolbar, *button;
   GtkCellRenderer *cell;
   GtkTreeViewColumn *column;
@@ -1076,101 +1101,88 @@ populate_dialog (GtkCustomPaperUnixDialog *dialog)
   gtk_box_pack_start (GTK_BOX (hbox), vbox, TRUE, TRUE, 0);
   gtk_widget_show (vbox);
 
-  table = gtk_table_new (2, 2, FALSE);
+  grid = gtk_grid_new ();
 
-  gtk_table_set_row_spacings (GTK_TABLE (table), 6);
-  gtk_table_set_col_spacings (GTK_TABLE (table), 12);
+  gtk_grid_set_row_spacing (GTK_GRID (grid), 6);
+  gtk_grid_set_column_spacing (GTK_GRID (grid), 12);
 
   label = gtk_label_new_with_mnemonic (_("_Width:"));
   gtk_widget_set_halign (label, GTK_ALIGN_START);
   gtk_widget_set_valign (label, GTK_ALIGN_CENTER);
   gtk_widget_show (label);
-  gtk_table_attach (GTK_TABLE (table), label,
-                   0, 1, 0, 1, GTK_FILL, 0, 0, 0);
+  gtk_grid_attach (GTK_GRID (grid), label, 0, 0, 1, 1);
 
   widget = new_unit_widget (dialog, user_units, label);
   priv->width_widget = widget;
-  gtk_table_attach (GTK_TABLE (table), widget,
-                   1, 2, 0, 1, GTK_FILL, 0, 0, 0);
+  gtk_grid_attach (GTK_GRID (grid), widget, 1, 0, 1, 1);
   gtk_widget_show (widget);
 
   label = gtk_label_new_with_mnemonic (_("_Height:"));
   gtk_widget_set_halign (label, GTK_ALIGN_START);
   gtk_widget_set_valign (label, GTK_ALIGN_CENTER);
   gtk_widget_show (label);
-  gtk_table_attach (GTK_TABLE (table), label,
-                   0, 1, 1, 2, GTK_FILL, 0, 0, 0);
+  gtk_grid_attach (GTK_GRID (grid), label, 0, 1, 1, 1);
 
   widget = new_unit_widget (dialog, user_units, label);
   priv->height_widget = widget;
-  gtk_table_attach (GTK_TABLE (table), widget,
-                   1, 2, 1, 2, GTK_FILL, 0, 0, 0);
+  gtk_grid_attach (GTK_GRID (grid), widget, 1, 1, 1, 1);
   gtk_widget_show (widget);
 
-  frame = wrap_in_frame (_("Paper Size"), table);
-  gtk_widget_show (table);
+  frame = wrap_in_frame (_("Paper Size"), grid);
+  gtk_widget_show (grid);
   gtk_box_pack_start (GTK_BOX (vbox), frame, FALSE, FALSE, 0);
   gtk_widget_show (frame);
 
-  table = gtk_table_new (5, 2, FALSE);
-  gtk_table_set_row_spacings (GTK_TABLE (table), 6);
-  gtk_table_set_col_spacings (GTK_TABLE (table), 12);
+  grid = gtk_grid_new ();
+  gtk_grid_set_row_spacing (GTK_GRID (grid), 6);
+  gtk_grid_set_column_spacing (GTK_GRID (grid), 12);
 
   label = gtk_label_new_with_mnemonic (_("_Top:"));
   gtk_widget_set_halign (label, GTK_ALIGN_START);
   gtk_widget_set_valign (label, GTK_ALIGN_CENTER);
-  gtk_table_attach (GTK_TABLE (table), label,
-                   0, 1, 0, 1, GTK_FILL, 0, 0, 0);
+  gtk_grid_attach (GTK_GRID (grid), label, 0, 0, 1, 1);
   gtk_widget_show (label);
 
   widget = new_unit_widget (dialog, user_units, label);
   priv->top_widget = widget;
-  gtk_table_attach (GTK_TABLE (table), widget,
-                   1, 2, 0, 1, GTK_FILL, 0, 0, 0);
+  gtk_grid_attach (GTK_GRID (grid), widget, 1, 0, 1, 1);
   gtk_widget_show (widget);
 
   label = gtk_label_new_with_mnemonic (_("_Bottom:"));
   gtk_widget_set_halign (label, GTK_ALIGN_START);
   gtk_widget_set_valign (label, GTK_ALIGN_CENTER);
-  gtk_table_attach (GTK_TABLE (table), label,
-                   0, 1 , 1, 2, GTK_FILL, 0, 0, 0);
+  gtk_grid_attach (GTK_GRID (grid), label, 0, 1, 1, 1);
   gtk_widget_show (label);
 
   widget = new_unit_widget (dialog, user_units, label);
   priv->bottom_widget = widget;
-  gtk_table_attach (GTK_TABLE (table), widget,
-                   1, 2, 1, 2, GTK_FILL, 0, 0, 0);
+  gtk_grid_attach (GTK_GRID (grid), widget, 1, 1, 1, 1);
   gtk_widget_show (widget);
 
   label = gtk_label_new_with_mnemonic (_("_Left:"));
   gtk_widget_set_halign (label, GTK_ALIGN_START);
   gtk_widget_set_valign (label, GTK_ALIGN_CENTER);
-  gtk_table_attach (GTK_TABLE (table), label,
-                   0, 1, 2, 3, GTK_FILL, 0, 0, 0);
+  gtk_grid_attach (GTK_GRID (grid), label, 0, 2, 1, 1);
   gtk_widget_show (label);
 
   widget = new_unit_widget (dialog, user_units, label);
   priv->left_widget = widget;
-  gtk_table_attach (GTK_TABLE (table), widget,
-                   1, 2, 2, 3, GTK_FILL, 0, 0, 0);
+  gtk_grid_attach (GTK_GRID (grid), widget, 1, 2, 1, 1);
   gtk_widget_show (widget);
 
   label = gtk_label_new_with_mnemonic (_("_Right:"));
   gtk_widget_set_halign (label, GTK_ALIGN_START);
   gtk_widget_set_valign (label, GTK_ALIGN_CENTER);
-  gtk_table_attach (GTK_TABLE (table), label,
-                   0, 1, 3, 4, GTK_FILL, 0, 0, 0);
+  gtk_grid_attach (GTK_GRID (grid), label, 0, 3, 1, 1);
   gtk_widget_show (label);
 
   widget = new_unit_widget (dialog, user_units, label);
   priv->right_widget = widget;
-  gtk_table_attach (GTK_TABLE (table), widget,
-                   1, 2, 3, 4, GTK_FILL, 0, 0, 0);
+  gtk_grid_attach (GTK_GRID (grid), widget, 1, 3, 1, 1);
   gtk_widget_show (widget);
 
   hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
-  gtk_table_attach (GTK_TABLE (table), hbox,
-                   0, 2, 4, 5, GTK_FILL | GTK_EXPAND, 0, 0, 0);
+  gtk_grid_attach (GTK_GRID (grid), hbox, 0, 4, 2, 1);
   gtk_widget_show (hbox);
 
   combo = gtk_combo_box_new_with_model (GTK_TREE_MODEL (priv->printer_list));
@@ -1197,8 +1209,8 @@ populate_dialog (GtkCustomPaperUnixDialog *dialog)
   g_signal_connect_swapped (combo, "changed",
                            G_CALLBACK (margins_from_printer_changed), dialog);
 
-  frame = wrap_in_frame (_("Paper Margins"), table);
-  gtk_widget_show (table);
+  frame = wrap_in_frame (_("Paper Margins"), grid);
+  gtk_widget_show (grid);
   gtk_box_pack_start (GTK_BOX (vbox), frame, FALSE, FALSE, 0);
   gtk_widget_show (frame);