diff --git a/Gtkmm3/src/MyWin.cc b/Gtkmm3/src/MyWin.cc index 5cf83a9..6c95493 100644 --- a/Gtkmm3/src/MyWin.cc +++ b/Gtkmm3/src/MyWin.cc @@ -63,14 +63,9 @@ void MyWin::default_background(){ void MyWin::back_dialog(){ //Initalize dialog - auto dialog=new Gtk::FileChooserDialog("Open Image File", - Gtk::FILE_CHOOSER_ACTION_OPEN); - dialog->set_transient_for(*this); - dialog->signal_response().connect(sigc::bind( - sigc::mem_fun(*this,&MyWin::change_background),dialog)); - //Add button for dialog - dialog->add_button("OK",Gtk::RESPONSE_OK); - dialog->add_button("Cancel",Gtk::RESPONSE_CANCEL); + dialog=Gtk::FileChooserNative::create("Open a image file",*this,Gtk::FILE_CHOOSER_ACTION_OPEN, + "OK","Cancel"); + dialog->signal_response().connect(sigc::mem_fun(*this,&MyWin::change_background)); //Add Filter auto filter=Gtk::FileFilter::create(); filter->set_name("Image Files"); @@ -94,12 +89,12 @@ void MyWin::back_dialog(){ filter2->add_pattern("*"); dialog->add_filter(filter2); - dialog->show_all(); + dialog->show(); filter.reset(); filter2.reset(); } -void MyWin::change_background(int response,Gtk::FileChooserDialog *dialog){ +void MyWin::change_background(int response){ Glib::ustring filename; if(response==Gtk::RESPONSE_OK){ filename=dialog->get_filename(); @@ -112,7 +107,7 @@ void MyWin::change_background(int response,Gtk::FileChooserDialog *dialog){ pixbuf.reset(); sized.reset(); } - delete dialog; + dialog.reset(); } void MyWin::about_dialog(){ diff --git a/Gtkmm3/src/MyWin.hh b/Gtkmm3/src/MyWin.hh index fd4704c..0184f2b 100644 --- a/Gtkmm3/src/MyWin.hh +++ b/Gtkmm3/src/MyWin.hh @@ -15,6 +15,7 @@ private: Gtk::Box main_box; Gtk::PopoverMenu popover; Gtk::Image background; + Glib::RefPtr dialog; //Main Pages MyStack main_stack; @@ -26,7 +27,7 @@ private: //Signal Handlers void default_background(); void back_dialog(); - void change_background(int response,Gtk::FileChooserDialog *dialog); + void change_background(int response); void about_dialog(); void win_quit(); }; \ No newline at end of file