* 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/>.
*/
#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
}
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;
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);
GtkTreeModel *model = GTK_TREE_MODEL (store);
GtkTreeIter iter;
GKeyFile *keyfile;
- gchar *filename, *data;
+ gchar *filename, *data, *parentdir;
gsize len;
gint i = 0;
}
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);
}
"transient-for", parent,
"modal", parent != NULL,
"destroy-with-parent", TRUE,
- //"resizable", FALSE,
+ "resizable", FALSE,
NULL);
return result;
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);
wrap_in_frame (const gchar *label,
GtkWidget *child)
{
- GtkWidget *frame, *alignment, *label_widget;
+ GtkWidget *frame, *label_widget;
gchar *bold_text;
label_widget = gtk_label_new (NULL);
frame = gtk_box_new (GTK_ORIENTATION_VERTICAL, 6);
gtk_box_pack_start (GTK_BOX (frame), label_widget, FALSE, FALSE, 0);
- alignment = gtk_alignment_new (0.0, 0.0, 1.0, 1.0);
- gtk_alignment_set_padding (GTK_ALIGNMENT (alignment),
- 0, 0, 12, 0);
- gtk_box_pack_start (GTK_BOX (frame), alignment, FALSE, FALSE, 0);
+ gtk_widget_set_margin_left (child, 12);
+ gtk_widget_set_halign (child, GTK_ALIGN_FILL);
+ gtk_widget_set_valign (child, GTK_ALIGN_FILL);
- gtk_container_add (GTK_CONTAINER (alignment), child);
+ gtk_box_pack_start (GTK_BOX (frame), child, FALSE, FALSE, 0);
gtk_widget_show (frame);
- gtk_widget_show (alignment);
return frame;
}
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;
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));
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);
}
gtk_window_present (GTK_WINDOW (dialog));
-
load_print_backends (dialog);
}