Add Log Saving
This commit is contained in:
parent
27cd9e88a7
commit
0016f68829
11
src/entry.c
11
src/entry.c
@ -103,8 +103,9 @@ zenity_entry (ZenityData *data, ZenityEntryData *entry_data) {
|
|||||||
if (data->extra_label) {
|
if (data->extra_label) {
|
||||||
gint i = 0;
|
gint i = 0;
|
||||||
while (data->extra_label[i] != NULL) {
|
while (data->extra_label[i] != NULL) {
|
||||||
gtk_dialog_add_button (
|
gtk_dialog_add_button (GTK_DIALOG (dialog),
|
||||||
GTK_DIALOG (dialog), data->extra_label[i], i);
|
data->extra_label[i],
|
||||||
|
i + ZENITY_EXIT_CODE_LAST);
|
||||||
i++;
|
i++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -227,8 +228,10 @@ zenity_entry_dialog_response (GtkWidget *widget, int response, gpointer data) {
|
|||||||
|
|
||||||
default:
|
default:
|
||||||
if (zen_data->extra_label &&
|
if (zen_data->extra_label &&
|
||||||
response < g_strv_length (zen_data->extra_label))
|
(response - ZENITY_EXIT_CODE_LAST) <
|
||||||
printf ("%s\n", zen_data->extra_label[response]);
|
g_strv_length (zen_data->extra_label))
|
||||||
|
printf ("%s\n",
|
||||||
|
zen_data->extra_label[response - ZENITY_EXIT_CODE_LAST]);
|
||||||
zen_data->exit_code = zenity_util_return_exit_code (ZENITY_ESC);
|
zen_data->exit_code = zenity_util_return_exit_code (ZENITY_ESC);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
67
src/text.c
67
src/text.c
@ -176,11 +176,14 @@ zenity_text (ZenityData *data, ZenityTextData *text_data) {
|
|||||||
} else
|
} else
|
||||||
zenity_text_fill_entries_from_stdin (GTK_TEXT_VIEW (text_view));
|
zenity_text_fill_entries_from_stdin (GTK_TEXT_VIEW (text_view));
|
||||||
|
|
||||||
|
g_object_set_data (G_OBJECT (dialog), "text_buffer", text_buffer);
|
||||||
|
|
||||||
if (data->extra_label) {
|
if (data->extra_label) {
|
||||||
gint i = 0;
|
gint i = 0;
|
||||||
while (data->extra_label[i] != NULL) {
|
while (data->extra_label[i] != NULL) {
|
||||||
gtk_dialog_add_button (
|
gtk_dialog_add_button (GTK_DIALOG (dialog),
|
||||||
GTK_DIALOG (dialog), data->extra_label[i], i);
|
data->extra_label[i],
|
||||||
|
i + ZENITY_EXIT_CODE_LAST);
|
||||||
i++;
|
i++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -217,6 +220,56 @@ zenity_text (ZenityData *data, ZenityTextData *text_data) {
|
|||||||
gtk_main ();
|
gtk_main ();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
zenity_save (GtkWidget *widget, GtkWindow *parent_window) {
|
||||||
|
GtkFileChooserNative *dialog;
|
||||||
|
GtkFileChooser *chooser;
|
||||||
|
GtkFileFilter *filter;
|
||||||
|
gint res;
|
||||||
|
|
||||||
|
dialog = gtk_file_chooser_native_new ("Save File",
|
||||||
|
parent_window,
|
||||||
|
GTK_FILE_CHOOSER_ACTION_SAVE,
|
||||||
|
"Cancel",
|
||||||
|
"Save");
|
||||||
|
chooser = GTK_FILE_CHOOSER (dialog);
|
||||||
|
|
||||||
|
filter = gtk_file_filter_new ();
|
||||||
|
gtk_file_filter_set_name (filter, "Log Files");
|
||||||
|
gtk_file_filter_add_pattern (filter, "*.log");
|
||||||
|
gtk_file_chooser_add_filter (chooser, filter);
|
||||||
|
filter = gtk_file_filter_new ();
|
||||||
|
gtk_file_filter_set_name (filter, "All Files");
|
||||||
|
gtk_file_filter_add_pattern (filter, "*");
|
||||||
|
gtk_file_chooser_add_filter (chooser, filter);
|
||||||
|
|
||||||
|
gtk_file_chooser_set_do_overwrite_confirmation (chooser, TRUE);
|
||||||
|
|
||||||
|
gtk_file_chooser_set_current_name (
|
||||||
|
chooser, "minecraft-pi-reborn-crash.log");
|
||||||
|
|
||||||
|
res = gtk_native_dialog_run (GTK_NATIVE_DIALOG (dialog));
|
||||||
|
if (res == GTK_RESPONSE_ACCEPT) {
|
||||||
|
char *filename;
|
||||||
|
GtkTextBuffer *buffer;
|
||||||
|
GtkTextIter start;
|
||||||
|
GtkTextIter end;
|
||||||
|
char *text;
|
||||||
|
|
||||||
|
filename = gtk_file_chooser_get_filename (chooser);
|
||||||
|
buffer = GTK_TEXT_BUFFER (
|
||||||
|
g_object_get_data (G_OBJECT (widget), "text_buffer"));
|
||||||
|
gtk_text_buffer_get_start_iter (buffer, &start);
|
||||||
|
gtk_text_buffer_get_end_iter (buffer, &end);
|
||||||
|
text = gtk_text_buffer_get_text (buffer, &start, &end, FALSE);
|
||||||
|
gtk_text_buffer_set_modified (buffer, FALSE);
|
||||||
|
g_file_set_contents (filename, text, -1, NULL);
|
||||||
|
g_free (filename);
|
||||||
|
}
|
||||||
|
|
||||||
|
g_object_unref (dialog);
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
zenity_text_dialog_response (GtkWidget *widget, int response, gpointer data) {
|
zenity_text_dialog_response (GtkWidget *widget, int response, gpointer data) {
|
||||||
ZenityData *zen_data = data;
|
ZenityData *zen_data = data;
|
||||||
@ -230,10 +283,16 @@ zenity_text_dialog_response (GtkWidget *widget, int response, gpointer data) {
|
|||||||
zen_data->exit_code = zenity_util_return_exit_code (ZENITY_TIMEOUT);
|
zen_data->exit_code = zenity_util_return_exit_code (ZENITY_TIMEOUT);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case ZENITY_SAVE_BUTTON:
|
||||||
|
zenity_save (widget, GTK_WINDOW (gtk_widget_get_toplevel (widget)));
|
||||||
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
if (zen_data->extra_label &&
|
if (zen_data->extra_label &&
|
||||||
response < g_strv_length (zen_data->extra_label))
|
(response - ZENITY_EXIT_CODE_LAST) <
|
||||||
printf ("%s\n", zen_data->extra_label[response]);
|
g_strv_length (zen_data->extra_label))
|
||||||
|
printf ("%s\n",
|
||||||
|
zen_data->extra_label[response - ZENITY_EXIT_CODE_LAST]);
|
||||||
zenity_util_exit_code_with_data (ZENITY_ESC, zen_data);
|
zenity_util_exit_code_with_data (ZENITY_ESC, zen_data);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
11
src/tree.c
11
src/tree.c
@ -415,8 +415,9 @@ zenity_tree (ZenityData *data, ZenityTreeData *tree_data) {
|
|||||||
if (data->extra_label) {
|
if (data->extra_label) {
|
||||||
gint i = 0;
|
gint i = 0;
|
||||||
while (data->extra_label[i] != NULL) {
|
while (data->extra_label[i] != NULL) {
|
||||||
gtk_dialog_add_button (
|
gtk_dialog_add_button (GTK_DIALOG (dialog),
|
||||||
GTK_DIALOG (dialog), data->extra_label[i], i);
|
data->extra_label[i],
|
||||||
|
i + ZENITY_EXIT_CODE_LAST);
|
||||||
i++;
|
i++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -785,8 +786,10 @@ zenity_tree_dialog_response (GtkWidget *widget, int response, gpointer data) {
|
|||||||
|
|
||||||
default:
|
default:
|
||||||
if (zen_data->extra_label &&
|
if (zen_data->extra_label &&
|
||||||
response < g_strv_length (zen_data->extra_label))
|
(response - ZENITY_EXIT_CODE_LAST) <
|
||||||
printf ("%s\n", zen_data->extra_label[response]);
|
g_strv_length (zen_data->extra_label))
|
||||||
|
printf ("%s\n",
|
||||||
|
zen_data->extra_label[response - ZENITY_EXIT_CODE_LAST]);
|
||||||
zen_data->exit_code = zenity_util_return_exit_code (ZENITY_ESC);
|
zen_data->exit_code = zenity_util_return_exit_code (ZENITY_ESC);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -18,12 +18,14 @@ typedef struct {
|
|||||||
} ZenityData;
|
} ZenityData;
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
ZENITY_OK,
|
ZENITY_OK = 0,
|
||||||
ZENITY_CANCEL,
|
ZENITY_CANCEL,
|
||||||
ZENITY_ESC,
|
ZENITY_ESC,
|
||||||
ZENITY_ERROR,
|
ZENITY_ERROR,
|
||||||
ZENITY_EXTRA,
|
ZENITY_EXTRA,
|
||||||
ZENITY_TIMEOUT
|
ZENITY_TIMEOUT,
|
||||||
|
ZENITY_SAVE_BUTTON,
|
||||||
|
ZENITY_EXIT_CODE_LAST
|
||||||
} ZenityExitCode;
|
} ZenityExitCode;
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
|
@ -72,7 +72,7 @@
|
|||||||
<object class="GtkLabel" id="zenity_entry_text">
|
<object class="GtkLabel" id="zenity_entry_text">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can_focus">False</property>
|
<property name="can_focus">False</property>
|
||||||
<property name="label">_Enter new text:</property>
|
<property name="label">Enter new text:</property>
|
||||||
<property name="use_underline">True</property>
|
<property name="use_underline">True</property>
|
||||||
<property name="xalign">0</property>
|
<property name="xalign">0</property>
|
||||||
</object>
|
</object>
|
||||||
@ -237,11 +237,27 @@
|
|||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can_focus">False</property>
|
<property name="can_focus">False</property>
|
||||||
<property name="layout_style">end</property>
|
<property name="layout_style">end</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="zenity_text_save_button">
|
||||||
|
<property name="label">Save</property>
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">True</property>
|
||||||
|
<property name="can_default">True</property>
|
||||||
|
<property name="receives_default">True</property>
|
||||||
|
<property name="image_position">right</property>
|
||||||
|
</object>
|
||||||
|
<packing>
|
||||||
|
<property name="expand">False</property>
|
||||||
|
<property name="fill">False</property>
|
||||||
|
<property name="position">0</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkButton" id="zenity_text_close_button">
|
<object class="GtkButton" id="zenity_text_close_button">
|
||||||
<property name="label">OK</property>
|
<property name="label">OK</property>
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can_focus">True</property>
|
<property name="can_focus">True</property>
|
||||||
|
<property name="has_focus">True</property>
|
||||||
<property name="can_default">True</property>
|
<property name="can_default">True</property>
|
||||||
<property name="receives_default">True</property>
|
<property name="receives_default">True</property>
|
||||||
<property name="image_position">right</property>
|
<property name="image_position">right</property>
|
||||||
@ -250,7 +266,7 @@
|
|||||||
<packing>
|
<packing>
|
||||||
<property name="expand">False</property>
|
<property name="expand">False</property>
|
||||||
<property name="fill">False</property>
|
<property name="fill">False</property>
|
||||||
<property name="position">0</property>
|
<property name="position">1</property>
|
||||||
</packing>
|
</packing>
|
||||||
</child>
|
</child>
|
||||||
</object>
|
</object>
|
||||||
@ -276,7 +292,7 @@
|
|||||||
<object class="GtkLabel" id="zenity_text_label">
|
<object class="GtkLabel" id="zenity_text_label">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can_focus">False</property>
|
<property name="can_focus">False</property>
|
||||||
<property name="label">_Text information:</property>
|
<property name="label">Text information:</property>
|
||||||
<property name="use_underline">True</property>
|
<property name="use_underline">True</property>
|
||||||
<property name="xalign">0</property>
|
<property name="xalign">0</property>
|
||||||
</object>
|
</object>
|
||||||
@ -340,6 +356,7 @@
|
|||||||
</child>
|
</child>
|
||||||
<action-widgets>
|
<action-widgets>
|
||||||
<action-widget response="-7">zenity_text_close_button</action-widget>
|
<action-widget response="-7">zenity_text_close_button</action-widget>
|
||||||
|
<action-widget response="6">zenity_text_save_button</action-widget>
|
||||||
</action-widgets>
|
</action-widgets>
|
||||||
</object>
|
</object>
|
||||||
</interface>
|
</interface>
|
||||||
|
Reference in New Issue
Block a user