Skip to content

Commit fb1f9e2

Browse files
dNechitacristina-suteu
authored andcommitted
glade/oscplot: Fix runtime GTK3 warning when creating plot
The warning: (osc:17335): Gtk-WARNING **: 13:53:21.583: Content added to the action area of a dialog using header bars The GtkDialogFileChooser that is being created via Glade has an built in GtkHeaderBar which has an action area where the 'Save' and 'Cancel' buttons are added. And this is not allowed, hence the above warning. The GTK2 version of the GtkDialogFileChooser didn't have a built in GtkHeaderBar. The solution was to create in Glade a simple GtkDialog to which a GtkFileChooserWidget has been added. A GtkDialog does not have a built in GtkHeaderBar. Signed-off-by: Dan Nechita <[email protected]>
1 parent a962a88 commit fb1f9e2

File tree

2 files changed

+26
-13
lines changed

2 files changed

+26
-13
lines changed

Diff for: glade/oscplot.glade

+18-7
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<?xml version="1.0" encoding="UTF-8"?>
2-
<!-- Generated with glade 3.38.2 -->
2+
<!-- Generated with glade 3.40.0 -->
33
<interface>
44
<requires lib="gtk+" version="3.0"/>
55
<object class="GtkAdjustment" id="adj_add_to_sample">
@@ -1608,19 +1608,16 @@
16081608
</object>
16091609
</child>
16101610
</object>
1611-
<object class="GtkFileChooserDialog" id="saveas_dialog">
1611+
<object class="GtkDialog" id="saveas_dialog">
16121612
<property name="can-focus">False</property>
1613-
<property name="border-width">5</property>
16141613
<property name="title" translatable="yes">ADI IIO oscilloscope - Save As</property>
1615-
<property name="role">GtkFileChooserDialog</property>
16161614
<property name="modal">True</property>
16171615
<property name="icon-name">adi-osc</property>
16181616
<property name="type-hint">dialog</property>
1619-
<property name="action">save</property>
1620-
<property name="do-overwrite-confirmation">True</property>
16211617
<child internal-child="vbox">
16221618
<object class="GtkBox" id="filechooserdialog-vbox3">
16231619
<property name="can-focus">False</property>
1620+
<property name="orientation">vertical</property>
16241621
<property name="spacing">2</property>
16251622
<child internal-child="action_area">
16261623
<object class="GtkButtonBox" id="filechooserdialog-action_area3">
@@ -1653,7 +1650,7 @@
16531650
<packing>
16541651
<property name="expand">False</property>
16551652
<property name="fill">True</property>
1656-
<property name="position">5</property>
1653+
<property name="position">1</property>
16571654
</packing>
16581655
</child>
16591656
</object>
@@ -1663,6 +1660,20 @@
16631660
<property name="position">0</property>
16641661
</packing>
16651662
</child>
1663+
<child>
1664+
<object class="GtkFileChooserWidget" id="saveas_filechooser_widget">
1665+
<property name="visible">True</property>
1666+
<property name="can-focus">False</property>
1667+
<property name="action">select-folder</property>
1668+
<property name="do-overwrite-confirmation">True</property>
1669+
<property name="search-mode">True</property>
1670+
</object>
1671+
<packing>
1672+
<property name="expand">False</property>
1673+
<property name="fill">True</property>
1674+
<property name="position">1</property>
1675+
</packing>
1676+
</child>
16661677
<child>
16671678
<object class="GtkHBox" id="hbox_ch_sel_label">
16681679
<property name="visible">True</property>

Diff for: oscplot.c

+8-6
Original file line numberDiff line numberDiff line change
@@ -274,6 +274,7 @@ struct _OscPlotPrivate
274274
GtkWidget *phase_label;
275275
GtkWidget *saveas_button;
276276
GtkWidget *saveas_dialog;
277+
GtkFileChooser *saveas_filechooser;
277278
GtkWidget *saveas_type_dialog;
278279
GtkWidget *title_edit_dialog;
279280
GtkWidget *fullscreen_button;
@@ -4550,14 +4551,14 @@ static void saveas_dialog_show(GtkWidget *w, OscPlot *plot)
45504551
{
45514552
OscPlotPrivate *priv = plot->priv;
45524553

4553-
gtk_file_chooser_set_action(GTK_FILE_CHOOSER (priv->saveas_dialog), GTK_FILE_CHOOSER_ACTION_SAVE);
4554-
gtk_file_chooser_set_do_overwrite_confirmation(GTK_FILE_CHOOSER(priv->saveas_dialog), TRUE);
4554+
gtk_file_chooser_set_action(priv->saveas_filechooser, GTK_FILE_CHOOSER_ACTION_SAVE);
4555+
gtk_file_chooser_set_do_overwrite_confirmation(priv->saveas_filechooser, TRUE);
45554556

45564557
if (!priv->saveas_filename) {
4557-
gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER (priv->saveas_dialog), getenv("HOME"));
4558+
gtk_file_chooser_set_current_folder(priv->saveas_filechooser, getenv("HOME"));
45584559
} else {
4559-
if (!gtk_file_chooser_set_filename(GTK_FILE_CHOOSER (priv->saveas_dialog), priv->saveas_filename))
4560-
gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER (priv->saveas_dialog), getenv("HOME"));
4560+
if (!gtk_file_chooser_set_filename(priv->saveas_filechooser, priv->saveas_filename))
4561+
gtk_file_chooser_set_current_folder(priv->saveas_filechooser, getenv("HOME"));
45614562
g_free(priv->saveas_filename);
45624563
priv->saveas_filename = NULL;
45634564
}
@@ -4794,7 +4795,7 @@ void cb_saveas_response(GtkDialog *dialog, gint response_id, OscPlot *plot)
47944795
/* Save as Dialog */
47954796
OscPlotPrivate *priv = plot->priv;
47964797

4797-
priv->saveas_filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (priv->saveas_dialog));
4798+
priv->saveas_filename = gtk_file_chooser_get_filename(priv->saveas_filechooser);
47984799

47994800
if (response_id == GTK_RESPONSE_ACCEPT) {
48004801
gint type = gtk_combo_box_get_active(GTK_COMBO_BOX(priv->cmb_saveas_type));
@@ -6985,6 +6986,7 @@ static void create_plot(OscPlot *plot)
69856986
priv->phase_label = GTK_WIDGET(gtk_builder_get_object(builder, "phase_info"));
69866987
priv->saveas_button = GTK_WIDGET(gtk_builder_get_object(builder, "save_as"));
69876988
priv->saveas_dialog = GTK_WIDGET(gtk_builder_get_object(builder, "saveas_dialog"));
6989+
priv->saveas_filechooser = GTK_FILE_CHOOSER(gtk_builder_get_object(builder, "saveas_filechooser_widget"));
69886990
priv->title_edit_dialog = GTK_WIDGET(gtk_builder_get_object(builder, "dialog_plot_title_edit"));
69896991
priv->fullscreen_button = GTK_WIDGET(gtk_builder_get_object(builder, "fullscreen"));
69906992
priv->menu_fullscreen = GTK_WIDGET(gtk_builder_get_object(builder, "menuitem_fullscreen"));

0 commit comments

Comments
 (0)