[glom] C++14: ImageGlom: Use std::unique_ptr to simplify code.
- From: Murray Cumming <murrayc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [glom] C++14: ImageGlom: Use std::unique_ptr to simplify code.
- Date: Thu, 25 Feb 2016 12:13:03 +0000 (UTC)
commit 5ca2fcf1eab57fdab159c38fd9b578e34e16c4fe
Author: Murray Cumming <murrayc murrayc com>
Date: Thu Feb 25 10:57:04 2016 +0100
C++14: ImageGlom: Use std::unique_ptr to simplify code.
glom/utility_widgets/imageglom.cc | 27 +++++++++------------------
glom/utility_widgets/imageglom.h | 4 ++--
2 files changed, 11 insertions(+), 20 deletions(-)
---
diff --git a/glom/utility_widgets/imageglom.cc b/glom/utility_widgets/imageglom.cc
index 3f8f3f4..608042d 100644
--- a/glom/utility_widgets/imageglom.cc
+++ b/glom/utility_widgets/imageglom.cc
@@ -48,20 +48,16 @@ ImageGlom::type_vec_ustrings ImageGlom::m_evince_supported_mime_types;
ImageGlom::type_vec_ustrings ImageGlom::m_gdkpixbuf_supported_mime_types;
ImageGlom::ImageGlom()
-: m_ev_scrolled_window(nullptr),
- m_ev_view(nullptr),
- m_ev_document_model(nullptr),
- m_image(nullptr)
+: m_ev_view(nullptr),
+ m_ev_document_model(nullptr)
{
init();
}
ImageGlom::ImageGlom(BaseObjectType* cobject, const Glib::RefPtr<Gtk::Builder>& /* builder */)
: Gtk::EventBox(cobject),
- m_ev_scrolled_window(nullptr),
m_ev_view(nullptr),
- m_ev_document_model(nullptr),
- m_image(nullptr)
+ m_ev_document_model(nullptr)
{
init();
}
@@ -95,7 +91,7 @@ void ImageGlom::init_widgets(bool use_evince)
m_ev_view = EV_VIEW(ev_view_new());
gtk_widget_show(GTK_WIDGET(m_ev_view));
- m_ev_scrolled_window = Gtk::manage(new Gtk::ScrolledWindow());
+ m_ev_scrolled_window = std::make_unique<Gtk::ScrolledWindow>();
gtk_container_add(GTK_CONTAINER(m_ev_scrolled_window->gobj()), GTK_WIDGET(m_ev_view));
//gtk_widget_add_events(GTK_WIDGET(m_ev_view), GDK_BUTTON_PRESS_MASK);
@@ -108,26 +104,21 @@ void ImageGlom::init_widgets(bool use_evince)
sigc::mem_fun(*this, &ImageGlom::on_button_press_event), false);
}
- if(m_image)
- {
- delete m_image;
- m_image = nullptr;
- }
+ m_image.reset();
- widget = m_ev_scrolled_window;
+ widget = m_ev_scrolled_window.get();
}
else
{
- m_image = Gtk::manage(new Gtk::Image());
+ m_image = std::make_unique<Gtk::Image>();
if(m_ev_view)
{
gtk_widget_destroy(GTK_WIDGET(m_ev_view));
m_ev_view = nullptr;
- delete m_ev_scrolled_window;
- m_ev_scrolled_window = nullptr;
+ m_ev_scrolled_window.reset();
}
- widget = m_image;
+ widget = m_image.get();
}
widget->show();
diff --git a/glom/utility_widgets/imageglom.h b/glom/utility_widgets/imageglom.h
index 6d84986..13f42b8 100644
--- a/glom/utility_widgets/imageglom.h
+++ b/glom/utility_widgets/imageglom.h
@@ -111,13 +111,13 @@ private:
Gtk::Frame m_frame;
//For anything supported by Evince:
- Gtk::ScrolledWindow* m_ev_scrolled_window;
+ std::unique_ptr<Gtk::ScrolledWindow> m_ev_scrolled_window;
EvView* m_ev_view;
EvDocumentModel* m_ev_document_model;
//For anything supported by GdkPixbuf,
//or for representative thumbnails and icons:
- Gtk::Image* m_image;
+ std::unique_ptr<Gtk::Image> m_image;
Glib::RefPtr<Gdk::Pixbuf> m_pixbuf_original; //Only stored temporarily, because it could be big.
Glib::RefPtr<Gdk::Pixbuf> m_pixbuf_clipboard; //When copy is used, store it here until it is pasted.
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]