[gimp] app: remove gimp_session_write_position()
- From: Michael Natterer <mitch src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gimp] app: remove gimp_session_write_position()
- Date: Fri, 20 May 2016 22:02:35 +0000 (UTC)
commit 9f3052583bfd87712c0b122604f30ffb39c9fdfa
Author: Michael Natterer <mitch gimp org>
Date: Sat May 21 00:00:07 2016 +0200
app: remove gimp_session_write_position()
and un-overengineer the session position accuracy code a bit.
app/tests.c | 8 +---
app/widgets/gimpsessioninfo-book.c | 12 +++++-
app/widgets/gimpsessioninfo-dock.c | 12 +++++-
app/widgets/gimpsessioninfo.c | 55 +++++++++++---------------
app/widgets/gimpsessioninfo.h | 78 ++++++++++++++++++------------------
app/widgets/gimpwidgets-utils.c | 20 ---------
app/widgets/gimpwidgets-utils.h | 3 -
7 files changed, 84 insertions(+), 104 deletions(-)
---
diff --git a/app/tests.c b/app/tests.c
index 5633e3e..048543e 100644
--- a/app/tests.c
+++ b/app/tests.c
@@ -99,8 +99,7 @@ static Gimp *
gimp_init_for_gui_testing_internal (gboolean show_gui,
GFile *gimprc)
{
- GimpSessionInfoClass *klass;
- Gimp *gimp;
+ Gimp *gimp;
#if defined (G_OS_WIN32)
/* g_test_init() sets warnings always fatal, which is a usually a good
@@ -119,8 +118,7 @@ gimp_init_for_gui_testing_internal (gboolean show_gui,
gegl_init (NULL, NULL);
/* Introduce an error margin for positions written to sessionrc */
- klass = g_type_class_ref (GIMP_TYPE_SESSION_INFO);
- gimp_session_info_class_set_position_accuracy (klass, 5);
+ gimp_session_info_set_position_accuracy (5);
/* from app_run() */
gimp = gimp_new ("Unit Tested GIMP", NULL, NULL, FALSE, TRUE, TRUE, !show_gui,
@@ -135,8 +133,6 @@ gimp_init_for_gui_testing_internal (gboolean show_gui,
gimp_initialize (gimp, gimp_status_func_dummy);
gimp_restore (gimp, gimp_status_func_dummy);
- g_type_class_unref (klass);
-
return gimp;
}
diff --git a/app/widgets/gimpsessioninfo-book.c b/app/widgets/gimpsessioninfo-book.c
index f46de22..42ca5ad 100644
--- a/app/widgets/gimpsessioninfo-book.c
+++ b/app/widgets/gimpsessioninfo-book.c
@@ -31,9 +31,9 @@
#include "gimpdialogfactory.h"
#include "gimpdock.h"
#include "gimpdockbook.h"
+#include "gimpsessioninfo.h"
#include "gimpsessioninfo-book.h"
#include "gimpsessioninfo-dockable.h"
-#include "gimpwidgets-utils.h"
enum
@@ -79,7 +79,15 @@ gimp_session_info_book_serialize (GimpConfigWriter *writer,
gimp_config_writer_open (writer, "book");
if (info->position != 0)
- gimp_session_write_position (writer, info->position);
+ {
+ gint position;
+
+ position = gimp_session_info_apply_position_accuracy (info->position);
+
+ gimp_config_writer_open (writer, "position");
+ gimp_config_writer_printf (writer, "%d", position);
+ gimp_config_writer_close (writer);
+ }
gimp_config_writer_open (writer, "current-page");
gimp_config_writer_printf (writer, "%d", info->current_page);
diff --git a/app/widgets/gimpsessioninfo-dock.c b/app/widgets/gimpsessioninfo-dock.c
index 9d2f2db..e5e8f9a 100644
--- a/app/widgets/gimpsessioninfo-dock.c
+++ b/app/widgets/gimpsessioninfo-dock.c
@@ -33,12 +33,12 @@
#include "gimpdockbook.h"
#include "gimpdockcontainer.h"
#include "gimpdockwindow.h"
+#include "gimpsessioninfo.h"
#include "gimpsessioninfo-aux.h"
#include "gimpsessioninfo-book.h"
#include "gimpsessioninfo-dock.h"
#include "gimpsessioninfo-private.h"
#include "gimptoolbox.h"
-#include "gimpwidgets-utils.h"
enum
@@ -126,7 +126,15 @@ gimp_session_info_dock_serialize (GimpConfigWriter *writer,
}
if (dock_info->position != 0)
- gimp_session_write_position (writer, dock_info->position);
+ {
+ gint position;
+
+ position = gimp_session_info_apply_position_accuracy (dock_info->position);
+
+ gimp_config_writer_open (writer, "position");
+ gimp_config_writer_printf (writer, "%d", position);
+ gimp_config_writer_close (writer);
+ }
for (list = dock_info->books; list; list = g_list_next (list))
gimp_session_info_book_serialize (writer, list->data);
diff --git a/app/widgets/gimpsessioninfo.c b/app/widgets/gimpsessioninfo.c
index 00b40bf..35ba739 100644
--- a/app/widgets/gimpsessioninfo.c
+++ b/app/widgets/gimpsessioninfo.c
@@ -162,13 +162,12 @@ gimp_session_info_serialize (GimpConfig *config,
GimpConfigWriter *writer,
gpointer data)
{
- GimpSessionInfo *info = GIMP_SESSION_INFO (config);
- GimpSessionInfoClass *klass = GIMP_SESSION_INFO_GET_CLASS (info);
- GList *iter = NULL;
- gint x_to_write;
- gint y_to_write;
- gint w_to_write;
- gint h_to_write;
+ GimpSessionInfo *info = GIMP_SESSION_INFO (config);
+ GList *iter = NULL;
+ gint x;
+ gint y;
+ gint width;
+ gint height;
if (info->p->factory_entry && info->p->factory_entry->identifier)
{
@@ -177,23 +176,19 @@ gimp_session_info_serialize (GimpConfig *config,
gimp_config_writer_close (writer);
}
- x_to_write = gimp_session_info_class_apply_position_accuracy (klass,
- info->p->x);
- y_to_write = gimp_session_info_class_apply_position_accuracy (klass,
- info->p->y);
- w_to_write = gimp_session_info_class_apply_position_accuracy (klass,
- info->p->width);
- h_to_write = gimp_session_info_class_apply_position_accuracy (klass,
- info->p->height);
+ x = gimp_session_info_apply_position_accuracy (info->p->x);
+ y = gimp_session_info_apply_position_accuracy (info->p->y);
+ width = gimp_session_info_apply_position_accuracy (info->p->width);
+ height = gimp_session_info_apply_position_accuracy (info->p->height);
gimp_config_writer_open (writer, "position");
- gimp_config_writer_printf (writer, "%d %d", x_to_write, y_to_write);
+ gimp_config_writer_printf (writer, "%d %d", x, y);
gimp_config_writer_close (writer);
if (info->p->width > 0 && info->p->height > 0)
{
gimp_config_writer_open (writer, "size");
- gimp_config_writer_printf (writer, "%d %d", w_to_write, h_to_write);
+ gimp_config_writer_printf (writer, "%d %d", width, height);
gimp_config_writer_close (writer);
}
@@ -1046,8 +1041,10 @@ gimp_session_info_get_height (GimpSessionInfo *info)
return info->p->height;
}
+static gint position_accuracy = 0;
+
/**
- * gimp_session_info_class_set_position_accuracy:
+ * gimp_session_info_set_position_accuracy:
* @accuracy:
*
* When writing sessionrc, make positions and sizes a multiple of
@@ -1057,34 +1054,28 @@ gimp_session_info_get_height (GimpSessionInfo *info)
* might impose.
**/
void
-gimp_session_info_class_set_position_accuracy (GimpSessionInfoClass *klass,
- gint accuracy)
+gimp_session_info_set_position_accuracy (gint accuracy)
{
- g_return_if_fail (GIMP_IS_SESSION_INFO_CLASS (klass));
-
- klass->position_accuracy = accuracy;
+ position_accuracy = accuracy;
}
/**
- * gimp_session_info_class_apply_position_accuracy:
+ * gimp_session_info_apply_position_accuracy:
* @position:
*
* Rounds @position to the nearest multiple of what was set with
- * gimp_session_info_class_set_position_accuracy().
+ * gimp_session_info_set_position_accuracy().
*
* Returns: Result.
**/
gint
-gimp_session_info_class_apply_position_accuracy (GimpSessionInfoClass *klass,
- gint position)
+gimp_session_info_apply_position_accuracy (gint position)
{
- g_return_val_if_fail (GIMP_IS_SESSION_INFO_CLASS (klass), position);
-
- if (klass->position_accuracy > 0)
+ if (position_accuracy > 0)
{
- gint to_floor = position + klass->position_accuracy / 2;
+ gint to_floor = position + position_accuracy / 2;
- return to_floor - to_floor % klass->position_accuracy;
+ return to_floor - to_floor % position_accuracy;
}
return position;
diff --git a/app/widgets/gimpsessioninfo.h b/app/widgets/gimpsessioninfo.h
index c631f80..db5f7e9 100644
--- a/app/widgets/gimpsessioninfo.h
+++ b/app/widgets/gimpsessioninfo.h
@@ -52,48 +52,48 @@ struct _GimpSessionInfo
struct _GimpSessionInfoClass
{
GimpObjectClass parent_class;
-
- gint position_accuracy;
};
-GType gimp_session_info_get_type (void) G_GNUC_CONST;
-GimpSessionInfo * gimp_session_info_new (void);
-void gimp_session_info_restore (GimpSessionInfo *info,
- GimpDialogFactory *factory,
- GdkScreen *screen,
- gint monitor);
-void gimp_session_info_apply_geometry (GimpSessionInfo *info,
- GdkScreen *screen,
- gint
current_monitor,
- gboolean
apply_stored_monitor);
-void gimp_session_info_read_geometry (GimpSessionInfo *info,
- GdkEventConfigure *cevent);
-void gimp_session_info_get_info (GimpSessionInfo *info);
-void gimp_session_info_get_info_with_widget (GimpSessionInfo *info,
- GtkWidget *widget);
-void gimp_session_info_clear_info (GimpSessionInfo *info);
-gboolean gimp_session_info_is_singleton (GimpSessionInfo *info);
-gboolean gimp_session_info_is_session_managed (GimpSessionInfo *info);
-gboolean gimp_session_info_get_remember_size (GimpSessionInfo *info);
-gboolean gimp_session_info_get_remember_if_open (GimpSessionInfo *info);
-GtkWidget * gimp_session_info_get_widget (GimpSessionInfo *info);
-void gimp_session_info_set_widget (GimpSessionInfo *info,
- GtkWidget *widget);
-GimpDialogFactoryEntry * gimp_session_info_get_factory_entry (GimpSessionInfo *info);
-void gimp_session_info_set_factory_entry (GimpSessionInfo *info,
- GimpDialogFactoryEntry *entry);
-gboolean gimp_session_info_get_open (GimpSessionInfo *info);
-void gimp_session_info_append_book (GimpSessionInfo *info,
- GimpSessionInfoBook *book);
-gint gimp_session_info_get_x (GimpSessionInfo *info);
-gint gimp_session_info_get_y (GimpSessionInfo *info);
-gint gimp_session_info_get_width (GimpSessionInfo *info);
-gint gimp_session_info_get_height (GimpSessionInfo *info);
-void gimp_session_info_class_set_position_accuracy (GimpSessionInfoClass *klass,
- gint accuracy);
-gint gimp_session_info_class_apply_position_accuracy (GimpSessionInfoClass *klass,
- gint position);
+GType gimp_session_info_get_type (void) G_GNUC_CONST;
+
+GimpSessionInfo * gimp_session_info_new (void);
+
+void gimp_session_info_restore (GimpSessionInfo *info,
+ GimpDialogFactory *factory,
+ GdkScreen *screen,
+ gint monitor);
+void gimp_session_info_apply_geometry (GimpSessionInfo *info,
+ GdkScreen *screen,
+ gint current_monitor,
+ gboolean apply_stored_monitor);
+void gimp_session_info_read_geometry (GimpSessionInfo *info,
+ GdkEventConfigure *cevent);
+void gimp_session_info_get_info (GimpSessionInfo *info);
+void gimp_session_info_get_info_with_widget (GimpSessionInfo *info,
+ GtkWidget *widget);
+void gimp_session_info_clear_info (GimpSessionInfo *info);
+gboolean gimp_session_info_is_singleton (GimpSessionInfo *info);
+gboolean gimp_session_info_is_session_managed (GimpSessionInfo *info);
+gboolean gimp_session_info_get_remember_size (GimpSessionInfo *info);
+gboolean gimp_session_info_get_remember_if_open (GimpSessionInfo *info);
+GtkWidget * gimp_session_info_get_widget (GimpSessionInfo *info);
+void gimp_session_info_set_widget (GimpSessionInfo *info,
+ GtkWidget *widget);
+GimpDialogFactoryEntry *
+ gimp_session_info_get_factory_entry (GimpSessionInfo *info);
+void gimp_session_info_set_factory_entry (GimpSessionInfo *info,
+ GimpDialogFactoryEntry *entry);
+gboolean gimp_session_info_get_open (GimpSessionInfo *info);
+void gimp_session_info_append_book (GimpSessionInfo *info,
+ GimpSessionInfoBook *book);
+gint gimp_session_info_get_x (GimpSessionInfo *info);
+gint gimp_session_info_get_y (GimpSessionInfo *info);
+gint gimp_session_info_get_width (GimpSessionInfo *info);
+gint gimp_session_info_get_height (GimpSessionInfo *info);
+
+void gimp_session_info_set_position_accuracy (gint accuracy);
+gint gimp_session_info_apply_position_accuracy (gint position);
#endif /* __GIMP_SESSION_INFO_H__ */
diff --git a/app/widgets/gimpwidgets-utils.c b/app/widgets/gimpwidgets-utils.c
index 263b837..725ffd8 100644
--- a/app/widgets/gimpwidgets-utils.c
+++ b/app/widgets/gimpwidgets-utils.c
@@ -1386,23 +1386,3 @@ gimp_print_event (const GdkEvent *event)
return str;
}
-
-void
-gimp_session_write_position (GimpConfigWriter *writer,
- gint position)
-{
- GimpSessionInfoClass *klass;
- gint pos_to_write;
-
- klass = g_type_class_ref (GIMP_TYPE_SESSION_INFO);
-
- pos_to_write =
- gimp_session_info_class_apply_position_accuracy (klass,
- position);
-
- gimp_config_writer_open (writer, "position");
- gimp_config_writer_printf (writer, "%d", pos_to_write);
- gimp_config_writer_close (writer);
-
- g_type_class_unref (klass);
-}
diff --git a/app/widgets/gimpwidgets-utils.h b/app/widgets/gimpwidgets-utils.h
index e2a3f59..c8d9102 100644
--- a/app/widgets/gimpwidgets-utils.h
+++ b/app/widgets/gimpwidgets-utils.h
@@ -109,8 +109,5 @@ void gimp_widget_set_fully_opaque (GtkWidget *widget
const gchar * gimp_print_event (const GdkEvent *event);
-void gimp_session_write_position (GimpConfigWriter *writer,
- gint position);
-
#endif /* __APP_GIMP_WIDGETS_UTILS_H__ */
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]