gtranslator r3611 - in trunk/src: . dialogs
- From: icq svn gnome org
- To: svn-commits-list gnome org
- Subject: gtranslator r3611 - in trunk/src: . dialogs
- Date: Mon, 22 Sep 2008 09:39:02 +0000 (UTC)
Author: icq
Date: Mon Sep 22 09:39:02 2008
New Revision: 3611
URL: http://svn.gnome.org/viewvc/gtranslator?rev=3611&view=rev
Log:
Applyed patch with translation memory ui
Modified:
trunk/src/application.c
trunk/src/dialogs/preferences-dialog.c
trunk/src/dialogs/preferences-dialog.glade
trunk/src/msg.c
trunk/src/msg.h
trunk/src/prefs-manager.c
trunk/src/prefs-manager.h
trunk/src/tab.c
trunk/src/tab.h
trunk/src/window.c
trunk/src/window.h
Modified: trunk/src/application.c
==============================================================================
--- trunk/src/application.c (original)
+++ trunk/src/application.c Mon Sep 22 09:39:02 2008
@@ -227,6 +227,9 @@
if (app->priv->tm)
g_object_unref (app->priv->tm);
+ if (app->priv->tm)
+ g_object_unref (app->priv->tm);
+
G_OBJECT_CLASS (gtranslator_application_parent_class)->finalize (object);
}
@@ -549,3 +552,11 @@
return G_OBJECT (app->priv->tm);
}
+
+GObject *
+gtranslator_application_get_translation_memory (GtranslatorApplication *app)
+{
+ g_return_val_if_fail (GTR_IS_APPLICATION (app), NULL);
+
+ return G_OBJECT (app->priv->tm);
+}
Modified: trunk/src/dialogs/preferences-dialog.c
==============================================================================
--- trunk/src/dialogs/preferences-dialog.c (original)
+++ trunk/src/dialogs/preferences-dialog.c Mon Sep 22 09:39:02 2008
@@ -77,7 +77,16 @@
GtkWidget *add_button;
GtkWidget *edit_button;
GtkWidget *delete_button;
-
+
+ /*Translation Memory*/
+ GtkWidget *directory_entry;
+ GtkWidget *search_button;
+ GtkWidget *add_database_button;
+
+ GtkWidget *show_tm_options_checkbutton;
+ GtkWidget *missing_words_spinbutton;
+ GtkWidget *sentence_length_spinbutton;
+
/*PO header->Personal information*/
GtkWidget *name_entry;
GtkWidget *email_entry;
@@ -581,6 +590,255 @@
dlg);
}
+/***************Translation Memory pages****************/
+static void
+response_filechooser_cb (GtkDialog *dialog,
+ gint response_id,
+ gpointer user_data)
+{
+ GtranslatorPreferencesDialog *dlg;
+
+ dlg = (GtranslatorPreferencesDialog *)user_data;
+
+
+ if (response_id == GTK_RESPONSE_YES) {
+ gtk_entry_set_text (GTK_ENTRY (dlg->priv->directory_entry),
+ gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (dialog)));
+ gtranslator_prefs_manager_set_tm_dir (gtk_file_chooser_get_current_folder_uri (GTK_FILE_CHOOSER (dialog)));
+ gtk_widget_destroy (GTK_WIDGET (dialog));
+ } else {
+ gtk_widget_destroy (GTK_WIDGET (dialog));
+ }
+}
+
+static void
+on_search_button_pulsed (GtkButton *button,
+ gpointer data)
+{
+ GtkWidget *filechooser;
+ GtranslatorPreferencesDialog *dlg;
+
+ dlg = (GtranslatorPreferencesDialog *)data;
+
+ filechooser = gtk_file_chooser_dialog_new ("Select PO directory",
+ NULL,
+ GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER,
+ GTK_STOCK_CANCEL,
+ GTK_RESPONSE_CANCEL,
+ GTK_STOCK_OK,
+ GTK_RESPONSE_YES,
+ NULL);
+
+ g_signal_connect (GTK_DIALOG (filechooser), "response",
+ G_CALLBACK (response_filechooser_cb),
+ dlg);
+
+ gtk_dialog_run (GTK_DIALOG (filechooser));
+}
+
+static void
+gtranslator_project_utils_scan_dir (GFile *dir,
+ GList **list,
+ const gchar *po_name)
+{
+ GFileInfo *info;
+ GError *error;
+ GFile *file;
+ GFileEnumerator *enumerator;
+
+ error = NULL;
+ enumerator = g_file_enumerate_children (dir,
+ G_FILE_ATTRIBUTE_STANDARD_NAME,
+ G_FILE_QUERY_INFO_NOFOLLOW_SYMLINKS,
+ NULL,
+ &error);
+ if (enumerator)
+ {
+ error = NULL;
+
+ while ((info = g_file_enumerator_next_file (enumerator, NULL, &error)) != NULL)
+ {
+ const gchar *name;
+ gchar *filename;
+
+ name = g_file_info_get_name (info);
+ file = g_file_get_child (dir, name);
+
+ if (po_name != NULL)
+ {
+ if (g_str_has_suffix (po_name, ".po"))
+ filename = g_strdup (po_name);
+ else
+ filename = g_strconcat (po_name, ".po", NULL);
+ }
+ else
+ filename = g_strdup (".po");
+
+ if (g_str_has_suffix (name, filename))
+ *list = g_list_prepend (*list, g_file_get_path (file));
+ g_free (filename);
+
+ gtranslator_project_utils_scan_dir (file, list, po_name);
+ g_object_unref (file);
+ g_object_unref (info);
+ }
+ g_file_enumerator_close (enumerator, NULL, NULL);
+ g_object_unref (enumerator);
+
+ if (error)
+ {
+ g_warning (error->message);
+ }
+ }
+}
+
+
+static void
+on_add_database_button_pulsed (GtkButton *button,
+ gpointer data)
+{
+ GList *files_list = NULL;
+ GList *l = NULL;
+ GFile *dir;
+ const gchar *dir_name;
+ GtranslatorPo *po;
+ GtranslatorTranslationMemory *tm;
+ GtkWidget *dialog;
+
+ tm = (GtranslatorTranslationMemory *)gtranslator_application_get_translation_memory (GTR_APP);
+
+ dir_name = gtranslator_prefs_manager_get_tm_dir ();
+
+ dir = g_file_new_for_uri (dir_name);
+
+ gtranslator_project_utils_scan_dir (dir, &files_list, NULL);
+
+ for (l = files_list; l; l = l->next) {
+ GList *msg_list = NULL;
+ GList *l2 = NULL;
+ gchar *file_uri;
+
+ po = gtranslator_po_new ();
+ file_uri = (gchar*)l->data;
+
+ gtranslator_po_parse (po, file_uri, NULL);
+ msg_list = gtranslator_po_get_messages (po);
+
+ for (l2 = msg_list; l2; l2 = l2->next) {
+ GtranslatorMsg *msg;
+ msg = (GtranslatorMsg *)l2->data;
+ if (gtranslator_msg_is_translated (msg))
+ gtranslator_translation_memory_store (tm,
+ gtranslator_msg_get_msgid (msg),
+ gtranslator_msg_get_msgstr (msg));
+ }
+ //g_list_foreach (msg_list, (GFunc)g_object_unref, NULL);
+ //g_list_free (msg_list);
+ g_free (file_uri);
+ g_object_unref (po);
+ }
+ //g_list_foreach (files_list, (GFunc)g_object_unref, NULL);
+ //g_list_free (files_list);
+
+ dialog = gtk_message_dialog_new (NULL,
+ GTK_DIALOG_MODAL,
+ GTK_MESSAGE_INFO,
+ GTK_BUTTONS_CLOSE,
+ NULL);
+
+ gtk_message_dialog_set_markup (GTK_MESSAGE_DIALOG (dialog),
+ _("<span weight=\"bold\" size=\"large\">Strings added to database</span>"));
+
+ g_signal_connect_swapped (dialog,
+ "response",
+ G_CALLBACK (gtk_widget_destroy),
+ dialog);
+ gtk_dialog_run (GTK_DIALOG (dialog));
+}
+
+static void
+on_show_tm_options_checkbutton_changed (GtkToggleButton *button,
+ gpointer user_data)
+{
+ gtranslator_prefs_manager_set_show_tm_options (gtk_toggle_button_get_active(button));
+}
+
+static void
+on_missing_words_spinbutton_changed (GtkSpinButton *spinbutton,
+ gpointer data)
+{
+ gint value;
+
+ value = gtk_spin_button_get_value_as_int (spinbutton);
+
+ gtranslator_prefs_manager_set_missing_words (value);
+}
+
+static void
+on_sentence_length_spinbutton_changed (GtkSpinButton *spinbutton,
+ gpointer data)
+{
+ gint value;
+
+ value = gtk_spin_button_get_value_as_int (spinbutton);
+
+ gtranslator_prefs_manager_set_sentence_length (value);
+}
+
+static void
+directory_entry_changed(GObject *gobject,
+ GParamSpec *arg1,
+ GtranslatorPreferencesDialog *dlg)
+{
+ const gchar *text;
+
+ g_return_if_fail(GTK_ENTRY(gobject) == GTK_ENTRY(dlg->priv->directory_entry));
+
+ text = gtk_entry_get_text(GTK_ENTRY(gobject));
+
+ if(text)
+ gtranslator_prefs_manager_set_tm_dir (text);
+}
+
+
+static void
+setup_tm_pages(GtranslatorPreferencesDialog *dlg)
+{
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (dlg->priv->show_tm_options_checkbutton),
+ gtranslator_prefs_manager_get_show_tm_options ());
+
+ gtk_spin_button_set_value (GTK_SPIN_BUTTON (dlg->priv->missing_words_spinbutton),
+ (gdouble) gtranslator_prefs_manager_get_missing_words ());
+
+ gtk_spin_button_set_value (GTK_SPIN_BUTTON (dlg->priv->sentence_length_spinbutton),
+ (gdouble) gtranslator_prefs_manager_get_sentence_length ());
+
+ g_signal_connect (GTK_BUTTON (dlg->priv->search_button), "clicked",
+ G_CALLBACK (on_search_button_pulsed),
+ dlg);
+
+ g_signal_connect(dlg->priv->directory_entry, "notify::text",
+ G_CALLBACK(directory_entry_changed),
+ dlg);
+
+ g_signal_connect (GTK_BUTTON (dlg->priv->add_database_button), "clicked",
+ G_CALLBACK (on_add_database_button_pulsed),
+ dlg);
+
+ g_signal_connect (GTK_TOGGLE_BUTTON (dlg->priv->show_tm_options_checkbutton), "toggled",
+ G_CALLBACK (on_show_tm_options_checkbutton_changed),
+ dlg);
+
+ g_signal_connect (GTK_SPIN_BUTTON (dlg->priv->missing_words_spinbutton), "value-changed",
+ G_CALLBACK (on_missing_words_spinbutton_changed),
+ dlg);
+
+ g_signal_connect (GTK_SPIN_BUTTON (dlg->priv->sentence_length_spinbutton), "value-changed",
+ G_CALLBACK (on_sentence_length_spinbutton_changed),
+ dlg);
+}
+
+/***************Plugins pages****************/
static void
setup_plugin_pages(GtranslatorPreferencesDialog *dlg)
{
@@ -864,6 +1122,7 @@
setup_editor_pages(dlg);
setup_profile_pages(dlg);
setup_interface_pages(dlg);
+ setup_tm_pages (dlg);
setup_plugin_pages(dlg);
}
Modified: trunk/src/dialogs/preferences-dialog.glade
==============================================================================
--- trunk/src/dialogs/preferences-dialog.glade (original)
+++ trunk/src/dialogs/preferences-dialog.glade Mon Sep 22 09:39:02 2008
@@ -667,6 +667,265 @@
</packing>
</child>
<child>
+ <widget class="GtkVBox" id="memories_vbox">
+ <property name="visible">True</property>
+ <property name="border_width">12</property>
+ <property name="spacing">18</property>
+ <child>
+ <widget class="GtkVBox" id="vbox9">
+ <property name="visible">True</property>
+ <property name="spacing">6</property>
+ <child>
+ <widget class="GtkLabel" id="label20">
+ <property name="visible">True</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes"><b>Database:</b></property>
+ <property name="use_markup">True</property>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkAlignment" id="alignment1">
+ <property name="visible">True</property>
+ <property name="right_padding">12</property>
+ <child>
+ <widget class="GtkHBox" id="hbox8">
+ <property name="visible">True</property>
+ <property name="spacing">18</property>
+ <child>
+ <widget class="GtkLabel" id="label25">
+ <property name="visible">True</property>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkVBox" id="vbox11">
+ <property name="visible">True</property>
+ <property name="spacing">6</property>
+ <child>
+ <widget class="GtkLabel" id="label26">
+ <property name="visible">True</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">Select directory contains PO files:</property>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkHBox" id="hbox9">
+ <property name="visible">True</property>
+ <property name="spacing">6</property>
+ <child>
+ <widget class="GtkEntry" id="directory_entry">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="xalign">0.0099999997764825821</property>
+ </widget>
+ </child>
+ <child>
+ <widget class="GtkButton" id="search_button">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="label" translatable="yes">gtk-find</property>
+ <property name="use_stock">True</property>
+ <property name="response_id">0</property>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkButton" id="add_database_button">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="label" translatable="yes">Add to Database</property>
+ <property name="response_id">0</property>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </widget>
+ </child>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkVBox" id="vbox10">
+ <property name="visible">True</property>
+ <property name="spacing">6</property>
+ <child>
+ <widget class="GtkLabel" id="label21">
+ <property name="visible">True</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes"><b>Configuration:</b></property>
+ <property name="use_markup">True</property>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkAlignment" id="alignment2">
+ <property name="visible">True</property>
+ <property name="right_padding">12</property>
+ <child>
+ <widget class="GtkHBox" id="hbox7">
+ <property name="visible">True</property>
+ <property name="spacing">18</property>
+ <child>
+ <widget class="GtkLabel" id="label22">
+ <property name="visible">True</property>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkTable" id="table1">
+ <property name="visible">True</property>
+ <property name="n_rows">3</property>
+ <property name="n_columns">2</property>
+ <property name="column_spacing">12</property>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <widget class="GtkSpinButton" id="sentence_length_spinbutton">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="adjustment">2 0 100 1 10 10</property>
+ </widget>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
+ <property name="top_attach">2</property>
+ <property name="bottom_attach">3</property>
+ <property name="x_options">GTK_FILL</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkLabel" id="label24">
+ <property name="visible">True</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">Max. difference in sentence length:</property>
+ </widget>
+ <packing>
+ <property name="top_attach">2</property>
+ <property name="bottom_attach">3</property>
+ <property name="x_options">GTK_FILL</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkSpinButton" id="missing_words_spinbutton">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="adjustment">2 0 100 1 10 10</property>
+ </widget>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
+ <property name="top_attach">1</property>
+ <property name="bottom_attach">2</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkLabel" id="label23">
+ <property name="visible">True</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">Max. # of missing words:</property>
+ </widget>
+ <packing>
+ <property name="top_attach">1</property>
+ <property name="bottom_attach">2</property>
+ <property name="x_options">GTK_FILL</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkCheckButton" id="show_tm_options_checkbutton">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">Show options in translated messages</property>
+ <property name="response_id">0</property>
+ <property name="draw_indicator">True</property>
+ </widget>
+ </child>
+ </widget>
+ <packing>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </widget>
+ </child>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="position">4</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkLabel" id="memory_page_label">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Translation Memory</property>
+ </widget>
+ <packing>
+ <property name="type">tab</property>
+ <property name="position">4</property>
+ <property name="tab_fill">False</property>
+ </packing>
+ </child>
+ <child>
<widget class="GtkVBox" id="plugins_box">
<property name="visible">True</property>
<property name="spacing">6</property>
@@ -675,7 +934,7 @@
</child>
</widget>
<packing>
- <property name="position">4</property>
+ <property name="position">5</property>
</packing>
</child>
<child>
@@ -685,7 +944,7 @@
</widget>
<packing>
<property name="type">tab</property>
- <property name="position">4</property>
+ <property name="position">5</property>
<property name="tab_fill">False</property>
</packing>
</child>
Modified: trunk/src/msg.c
==============================================================================
--- trunk/src/msg.c (original)
+++ trunk/src/msg.c Mon Sep 22 09:39:02 2008
@@ -47,6 +47,8 @@
GtkTreeRowReference *row_reference;
gint po_position;
+
+ gchar **tm_list;
};
static gchar *message_error = NULL;
@@ -536,3 +538,17 @@
/*Are there any other way to do this?*/
return message_error;
}
+
+
+gchar **
+gtranslator_msg_get_tm_list (GtranslatorMsg *msg)
+{
+ return msg->priv->tm_list;
+}
+
+void
+gtranslator_msg_set_tm_list (GtranslatorMsg *msg,
+ gchar **tm_list)
+{
+ msg->priv->tm_list = tm_list;
+}
Modified: trunk/src/msg.h
==============================================================================
--- trunk/src/msg.h (original)
+++ trunk/src/msg.h Mon Sep 22 09:39:02 2008
@@ -141,6 +141,10 @@
gchar *gtranslator_msg_check (GtranslatorMsg *msg);
+gchar **gtranslator_msg_get_tm_list (GtranslatorMsg *msg);
+void gtranslator_msg_set_tm_list (GtranslatorMsg *msg,
+ gchar **tm_list);
+
G_END_DECLS
#endif /* __MSG_H__ */
Modified: trunk/src/prefs-manager.c
==============================================================================
--- trunk/src/prefs-manager.c (original)
+++ trunk/src/prefs-manager.c Mon Sep 22 09:39:02 2008
@@ -333,6 +333,23 @@
GPM_GDL_STYLE,
GPM_DEFAULT_GDL_STYLE)
+/* Translation Memory */
+DEFINE_STRING_PREF (tm_dir,
+ GPM_TM_DIR,
+ GPM_DEFAULT_TM_DIR)
+
+DEFINE_INT_PREF (show_tm_options,
+ GPM_TM_SHOW_TM_OPTIONS,
+ GPM_DEFAULT_TM_SHOW_TM_OPTIONS)
+
+DEFINE_INT_PREF (missing_words,
+ GPM_TM_MISSING_WORDS,
+ GPM_DEFAULT_TM_MISSING_WORDS)
+
+DEFINE_INT_PREF (sentence_length,
+ GPM_TM_SENTENCE_LENGTH,
+ GPM_DEFAULT_TM_SENTENCE_LENGTH)
+
/* The following functions are taken from gconf-client.c
* and partially modified.
* The licensing terms on these is:
Modified: trunk/src/prefs-manager.h
==============================================================================
--- trunk/src/prefs-manager.h (original)
+++ trunk/src/prefs-manager.h Mon Sep 22 09:39:02 2008
@@ -70,6 +70,12 @@
#define GPM_TRANSFER_ENCODING GPM_LANGUAGE_SETTINGS_DIR "/transfer_encoding"
#define GPM_TEAM_EMAIL GPM_LANGUAGE_SETTINGS_DIR "/team_email"
+/* Translation Memory */
+#define GPM_TM_DIR GPM_PREFS_DIR "/tm/dir_entry"
+#define GPM_TM_SHOW_TM_OPTIONS GPM_PREFS_DIR "/tm/show_tm_options"
+#define GPM_TM_MISSING_WORDS GPM_PREFS_DIR "/tm/missing_words"
+#define GPM_TM_SENTENCE_LENGTH GPM_PREFS_DIR "/tm/sentence_lenght"
+
/*FIXME: With profiles i think that this has to change*/
#define GPM_PLURAL_FORM GPM_LANGUAGE_SETTINGS_DIR "/plural_form"
@@ -115,6 +121,12 @@
/* Interface */
#define GPM_DEFAULT_GDL_STYLE 2 //Both icons and text
+/* Translation Memory */
+#define GPM_DEFAULT_TM_DIR (const gchar*) ""
+#define GPM_DEFAULT_TM_SHOW_TM_OPTIONS 0 /*FALSE*/
+#define GPM_DEFAULT_TM_MISSING_WORDS 2
+#define GPM_DEFAULT_TM_SENTENCE_LENGTH 2
+
/** LIFE CYCLE MANAGEMENT FUNCTIONS **/
gboolean gtranslator_prefs_manager_init (void);
@@ -197,4 +209,17 @@
void gtranslator_prefs_manager_set_gdl_style (gint style);
gint gtranslator_prefs_manager_get_gdl_style (void);
+/*Translation Memory*/
+void gtranslator_prefs_manager_set_tm_dir (const gchar *dir);
+const gchar * gtranslator_prefs_manager_get_tm_dir (void);
+
+void gtranslator_prefs_manager_set_show_tm_options (gboolean show_tm_options);
+gboolean gtranslator_prefs_manager_get_show_tm_options (void);
+
+void gtranslator_prefs_manager_set_missing_words (gint timeout);
+gint gtranslator_prefs_manager_get_missing_words (void);
+
+void gtranslator_prefs_manager_set_sentence_length (gint timeout);
+gint gtranslator_prefs_manager_get_sentence_length (void);
+
#endif /* __GTR_PREFS_MANAGER_H__ */
Modified: trunk/src/tab.c
==============================================================================
--- trunk/src/tab.c (original)
+++ trunk/src/tab.c Mon Sep 22 09:39:02 2008
@@ -61,6 +61,7 @@
GtkWidget *comment_pane;
GtkWidget *comment;
+ GtkWidget *translation_memory;
/*Message area*/
GtkWidget *message_area;
@@ -84,6 +85,7 @@
{
SHOWED_MESSAGE,
MESSAGE_CHANGED,
+ MESSAGE_EDITION_FINISHED,
LAST_SIGNAL
};
@@ -431,7 +433,7 @@
GtkWidget *image;
GtkWidget *vertical_box;
GtkWidget *label_widget;
-
+ GtkWidget *notebook, *tm_layout, *tm, *comments_label, *tm_label, *scroll;
GtranslatorTabPrivate *priv = tab->priv;
/*
@@ -467,10 +469,23 @@
/*
* Comment
- */
- priv->comment = gtranslator_comment_panel_new(GTK_WIDGET(tab));
- gtk_paned_pack2(GTK_PANED(priv->comment_pane), priv->comment, TRUE, TRUE);
+ */
+ comments_label = gtk_label_new ("Comments");
+ tm_label = gtk_label_new ("Translation Memory");
+
+ priv->comment = gtranslator_comment_panel_new (GTK_WIDGET (tab));
gtk_widget_show (priv->comment);
+
+ priv->translation_memory = gtranslator_translation_memory_ui_new (GTK_WIDGET (tab));
+ gtk_widget_show (priv->translation_memory);
+
+ notebook = gtk_notebook_new ();
+ gtk_widget_show (notebook);
+
+ gtk_paned_pack2(GTK_PANED(priv->comment_pane), notebook, TRUE, TRUE);
+
+ gtk_notebook_append_page (GTK_NOTEBOOK (notebook), priv->comment, comments_label);
+ gtk_notebook_append_page (GTK_NOTEBOOK (notebook), priv->translation_memory, tm_label);
/*
* Content pane; this is where the message table and message area go
@@ -576,6 +591,16 @@
g_cclosure_marshal_VOID__POINTER,
G_TYPE_NONE, 1,
G_TYPE_POINTER);
+
+ signals[MESSAGE_EDITION_FINISHED] =
+ g_signal_new("message-edition-finished",
+ G_OBJECT_CLASS_TYPE (klass),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (GtranslatorTabClass, message_edition_finished),
+ NULL, NULL,
+ g_cclosure_marshal_VOID__POINTER,
+ G_TYPE_NONE, 1,
+ G_TYPE_POINTER);
}
/***************************** Public funcs ***********************************/
@@ -787,6 +812,12 @@
message_error = gtranslator_msg_check(current_msg->data);
if(message_error == NULL)
{
+ /*
+ * Emitting message-edition-finished signal
+ */
+ g_signal_emit (G_OBJECT (tab), signals[MESSAGE_EDITION_FINISHED],
+ 0, GTR_MSG (current_msg->data));
+
gtranslator_tab_show_message(tab, to_go->data);
set_message_area(tab, NULL);
}
Modified: trunk/src/tab.h
==============================================================================
--- trunk/src/tab.h (original)
+++ trunk/src/tab.h Mon Sep 22 09:39:02 2008
@@ -69,6 +69,8 @@
GtranslatorMsg *msg);
void (* message_changed) (GtranslatorTab *tab,
GtranslatorMsg *msg);
+ void (* message_edition_finished) (GtranslatorTab *tab,
+ GtranslatorMsg *msg);
};
/*
Modified: trunk/src/window.c
==============================================================================
--- trunk/src/window.c (original)
+++ trunk/src/window.c Mon Sep 22 09:39:02 2008
@@ -80,6 +80,8 @@
GtkUIManager *ui_manager;
GtkRecentManager *recent_manager;
GtkWidget *recent_menu;
+
+ GtkWidget *tm_menu;
gint width;
gint height;
@@ -181,7 +183,9 @@
{ "EditFuzzy", NULL, N_("Toggle _Fuzzy Status"), "<control>U",
N_("Toggle fuzzy status of a message"),
G_CALLBACK (gtranslator_message_status_toggle_fuzzy) },
-
+ { "EditTranslationMemory", NULL, N_("_Translation Memory"), NULL, NULL, NULL},
+
+
/* View menu */
{ "ViewSidePane", NULL, N_("Side _Pane"), "F9",
N_("Show or hide the side pane in the current window"),
@@ -1184,7 +1188,8 @@
GError *error = NULL;
GtkWidget *dockbar;
GtkWidget *hbox_dock;
-
+ GtkWidget *tm_widget;
+
GtranslatorWindowPrivate *priv = window->priv;
/*
@@ -1250,6 +1255,11 @@
"/MainMenu/FileMenu/FileRecentFilesMenu");
gtk_menu_item_set_submenu (GTK_MENU_ITEM (widget), priv->recent_menu);
+ /*
+ * Translation Memory
+ */
+ priv->tm_menu= gtk_ui_manager_get_widget (priv->ui_manager,
+ "/MainMenu/EditMenu/EditTranslationMemory");
/*
* Toolbar
@@ -1855,3 +1865,9 @@
set_sensitive_according_to_window (window);
}
+
+GtkWidget
+*gtranslator_window_get_tm_menu (GtranslatorWindow *window)
+{
+ return window->priv->tm_menu;
+}
Modified: trunk/src/window.h
==============================================================================
--- trunk/src/window.h (original)
+++ trunk/src/window.h Mon Sep 22 09:39:02 2008
@@ -131,6 +131,8 @@
void _gtranslator_window_close_tab (GtranslatorWindow *window,
GtranslatorTab *tab);
+GtkWidget *gtranslator_window_get_tm_menu (GtranslatorWindow *window);
+
G_END_DECLS
#endif /* __WINDOW_H__ */
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]