[glom] C++11: Use nullptr.



commit 87ee5aebe5aa392080e579266cc0979be4583de3
Author: Murray Cumming <murrayc murrayc com>
Date:   Fri Jul 3 10:07:01 2015 +0200

    C++11: Use nullptr.

 glom/application.cc                                |    2 +-
 glom/appwindow.cc                                  |   44 ++++++------
 glom/bakery/appwindow_withdoc.cc                   |    6 +-
 glom/base_db.cc                                    |   16 ++--
 glom/box_reports.cc                                |    4 +-
 glom/box_withbuttons.cc                            |    4 +-
 glom/dialog_connection.cc                          |   12 ++--
 glom/dialog_existing_or_new.cc                     |    4 +-
 glom/dialog_invalid_data.cc                        |    4 +-
 glom/filechooser_export.cc                         |    8 +-
 glom/frame_glom.cc                                 |   80 ++++++++++----------
 glom/glom_test_connection.cc                       |    2 +-
 glom/import_csv/csv_parser.cc                      |    6 +-
 glom/import_csv/dialog_import_csv_progress.cc      |    2 +-
 glom/infobar_progress_creating.cc                  |    4 +-
 glom/libglom/connectionpool.cc                     |   26 +++---
 .../connectionpool_backends/postgres_self.cc       |    2 +-
 glom/libglom/data_structure/field.cc               |    2 +-
 glom/libglom/data_structure/glomconversions.cc     |    4 +-
 glom/libglom/db_utils.cc                           |    6 +-
 glom/libglom/document/bakery/document.cc           |    2 +-
 glom/libglom/document/bakery/document_xml.cc       |    2 +-
 glom/libglom/document/document.cc                  |    6 +-
 glom/libglom/init.cc                               |    2 +-
 glom/libglom/privs.cc                              |    2 +-
 glom/libglom/python_embed/py_glom_record.cc        |    2 +-
 glom/libglom/python_embed/py_glom_relatedrecord.cc |    2 +-
 glom/libglom/python_embed/py_glom_ui.cc            |    2 +-
 glom/libglom/report_builder.cc                     |    2 +-
 glom/libglom/spawn_with_feedback.cc                |   12 ++--
 glom/libglom/test_avahi_publisher.cc               |    4 +-
 glom/libglom/utils.cc                              |    2 +-
 glom/libglom/xml_utils.cc                          |    2 +-
 glom/libglom/xsl_utils.cc                          |    4 +-
 glom/main.cc                                       |    2 +-
 glom/mode_data/box_data.cc                         |    2 +-
 glom/mode_data/box_data_calendar_related.cc        |    4 +-
 glom/mode_data/box_data_details.cc                 |    2 +-
 glom/mode_data/box_data_list.cc                    |    2 +-
 glom/mode_data/box_data_list_related.cc            |    2 +-
 glom/mode_data/buttonglom.cc                       |    2 +-
 glom/mode_data/datawidget/cellcreation.cc          |    2 +-
 glom/mode_data/datawidget/cellrenderer_dblist.cc   |    6 +-
 glom/mode_data/datawidget/datawidget.cc            |   20 +++---
 glom/mode_data/datawidget/dialog_choose_date.cc    |    4 +-
 glom/mode_data/datawidget/dialog_choose_id.cc      |   24 +++---
 glom/mode_data/datawidget/dialog_new_record.cc     |    8 +-
 glom/mode_data/datawidget/label.cc                 |    2 +-
 glom/mode_data/db_adddel/db_adddel.cc              |    8 +-
 glom/mode_data/flowtablewithfields.cc              |   18 ++--
 glom/mode_design/dialog_add_related_table.cc       |   10 +-
 glom/mode_design/dialog_design.cc                  |    4 +-
 glom/mode_design/dialog_fields.cc                  |    2 +-
 glom/mode_design/dialog_initial_password.cc        |    4 +-
 glom/mode_design/dialog_relationships.cc           |    2 +-
 glom/mode_design/fields/box_db_table_definition.cc |    4 +-
 .../mode_design/fields/dialog_defaultformatting.cc |    4 +-
 glom/mode_design/fields/dialog_fielddefinition.cc  |    6 +-
 glom/mode_design/layout/combobox_fields.cc         |    2 +-
 glom/mode_design/layout/combobox_relationship.cc   |    4 +-
 glom/mode_design/layout/dialog_choose_field.cc     |   10 +-
 .../layout/dialog_choose_relationship.cc           |   16 ++--
 glom/mode_design/layout/dialog_layout.cc           |    6 +-
 .../layout/dialog_layout_calendar_related.cc       |   16 ++--
 glom/mode_design/layout/dialog_layout_details.cc   |   58 +++++++-------
 glom/mode_design/layout/dialog_layout_export.cc    |   16 ++--
 glom/mode_design/layout/dialog_layout_list.cc      |    2 +-
 .../layout/dialog_layout_list_related.cc           |   20 +++---
 .../layout/layout_item_dialogs/box_formatting.cc   |   70 +++++++++---------
 .../layout_item_dialogs/dialog_field_layout.cc     |   18 ++--
 .../layout_item_dialogs/dialog_field_summary.cc    |    6 +-
 .../layout_item_dialogs/dialog_fieldslist.cc       |   16 ++--
 .../layout_item_dialogs/dialog_formatting.cc       |    2 +-
 .../layout/layout_item_dialogs/dialog_group_by.cc  |   20 +++---
 .../layout_item_dialogs/dialog_imageobject.cc      |    6 +-
 .../layout/layout_item_dialogs/dialog_line.cc      |    4 +-
 .../layout/layout_item_dialogs/dialog_notebook.cc  |   10 +-
 .../layout_item_dialogs/dialog_sortfields.cc       |   14 ++--
 .../layout_item_dialogs/dialog_textobject.cc       |    6 +-
 .../mode_design/print_layouts/box_print_layouts.cc |    4 +-
 .../print_layouts/dialog_text_formatting.cc        |    6 +-
 .../print_layouts/window_print_layout_edit.cc      |   28 ++++----
 .../printoperation_relationshipsoverview.cc        |    2 +-
 .../window_relationships_overview.cc               |   10 +-
 .../report_layout/dialog_layout_report.cc          |   36 +++++-----
 .../script_library/dialog_new_script.cc            |    2 +-
 .../script_library/dialog_script_library.cc        |    2 +-
 .../translation/dialog_change_language.cc          |    2 +-
 .../translation/dialog_copy_translation.cc         |    2 +-
 .../translation/dialog_identify_original.cc        |    4 +-
 .../mode_design/translation/window_translations.cc |   20 +++---
 glom/mode_design/users/dialog_choose_user.cc       |    2 +-
 glom/mode_design/users/dialog_groups_list.cc       |   12 ++--
 glom/mode_design/users/dialog_new_group.cc         |    2 +-
 glom/mode_design/users/dialog_users_list.cc        |   20 +++---
 glom/navigation/box_tables.cc                      |    6 +-
 glom/print_layout/canvas_print_layout.cc           |   12 ++--
 glom/print_layout/printoperation_printlayout.cc    |    2 +-
 glom/python_embed/glom_python.cc                   |    8 +-
 glom/test_pyembed.cc                               |    2 +-
 glom/utility_widgets/adddel/adddel.cc              |    6 +-
 glom/utility_widgets/canvas/canvas_item_movable.cc |    2 +-
 glom/utility_widgets/canvas/canvas_text_movable.cc |    2 +-
 .../utility_widgets/canvas/test_canvas_editable.cc |    2 +-
 glom/utility_widgets/cellrendererlist.cc           |    2 +-
 glom/utility_widgets/dialog_flowtable.cc           |    6 +-
 glom/utility_widgets/dialog_image_load_progress.cc |    2 +-
 glom/utility_widgets/dialog_image_save_progress.cc |    2 +-
 .../eggspreadtablemm/eggspreadtabledndmm.cc        |    6 +-
 .../eggspreadtablemm/eggspreadtablemm.cc           |    6 +-
 .../eggspreadtablemm/test_spreadtablednd.cc        |    8 +-
 glom/utility_widgets/flowtable.cc                  |    2 +-
 glom/utility_widgets/imageglom.cc                  |   20 +++---
 glom/utility_widgets/layoutwidgetbase.cc           |    2 +-
 glom/utility_widgets/layoutwidgetmenu.cc           |    4 +-
 glom/utility_widgets/layoutwidgetutils.cc          |    4 +-
 glom/utility_widgets/notebooklabelglom.cc          |    4 +-
 glom/utility_widgets/placeholder.cc                |    6 +-
 glom/utils_ui.cc                                   |    8 +-
 glom/variablesmap.cc                               |    8 +-
 tests/glade_toplevels_instantiation.cc             |    6 +-
 tests/test_glade_derived_instantiation.cc          |    4 +-
 tests/test_selfhosting_new_then_image.cc           |    2 +-
 123 files changed, 522 insertions(+), 526 deletions(-)
---
diff --git a/glom/application.cc b/glom/application.cc
index 0d3b730..fce86a6 100644
--- a/glom/application.cc
+++ b/glom/application.cc
@@ -47,7 +47,7 @@ void Application::create_window(const Glib::RefPtr<Gio::File>& file)
 {
   //std::cout << G_STRFUNC << ": debug" << std::endl;
 
-  AppWindow* window = 0;
+  AppWindow* window = nullptr;
   Glom::Utils::get_glade_widget_derived_with_warning(window);
   g_assert(window);
 
diff --git a/glom/appwindow.cc b/glom/appwindow.cc
index 5a53dbd..420860a 100644
--- a/glom/appwindow.cc
+++ b/glom/appwindow.cc
@@ -71,7 +71,7 @@ static const Glib::ustring ACTION_GROUP_NAME_PRINT_LAYOUTS = "print-layouts-list
 //static const int GLOM_RESPONSE_BROWSE_NETWORK = 1;
 
 // Global application variable
-AppWindow* global_appwindow = 0;
+AppWindow* global_appwindow = nullptr;
 
 Glib::ustring AppWindow::m_current_locale;
 Glib::ustring AppWindow::m_original_locale;
@@ -83,20 +83,20 @@ AppWindow::AppWindow(BaseObjectType* cobject, const Glib::RefPtr<Gtk::Builder>&
 : GlomBakery::AppWindow_WithDoc("Glom"),
   Gtk::ApplicationWindow(cobject),
   m_builder(builder),
-  m_menubar(0),
-  m_pVBox(0),
+  m_menubar(nullptr),
+  m_pVBox(nullptr),
   m_VBox_PlaceHolder(Gtk::ORIENTATION_VERTICAL),
-  m_pBoxTop(0),
-  m_pFrame(0),
+  m_pBoxTop(nullptr),
+  m_pFrame(nullptr),
   m_bAboutShown(false),
-  m_pAbout(0),
+  m_pAbout(nullptr),
 #ifndef GLOM_ENABLE_CLIENT_ONLY
-  m_window_translations(0),
+  m_window_translations(nullptr),
 #endif // !GLOM_ENABLE_CLIENT_ONLY
 #ifndef GLOM_ENABLE_CLIENT_ONLY
   m_ui_save_extra_showextras(false),
   m_ui_save_extra_newdb_hosting_mode(Document::HOSTING_MODE_DEFAULT),
-  m_avahi_progress_dialog(0),
+  m_avahi_progress_dialog(nullptr),
 #endif // !GLOM_ENABLE_CLIENT_ONLY
   m_show_sql_debug(false)
 {
@@ -154,15 +154,15 @@ AppWindow::~AppWindow()
   }
 
   delete m_avahi_progress_dialog;
-  m_avahi_progress_dialog = 0;
+  m_avahi_progress_dialog = nullptr;
 
   #endif // !GLOM_ENABLE_CLIENT_ONLY
   
   delete m_pAbout;
-  m_pAbout = 0;
+  m_pAbout = nullptr;
 
   //This was set in the constructor:
-  global_appwindow = 0;
+  global_appwindow = nullptr;
 }
 
 #ifndef GLOM_ENABLE_CLIENT_ONLY
@@ -170,7 +170,7 @@ void AppWindow::on_connection_avahi_begin()
 {
   //Create the dialog:
   delete m_avahi_progress_dialog;
-  m_avahi_progress_dialog = 0;
+  m_avahi_progress_dialog = nullptr;
 
   m_avahi_progress_dialog = new Gtk::MessageDialog(UiUtils::bold_message(_("Glom: Generating Encryption 
Certificates")), true, Gtk::MESSAGE_INFO);
   m_avahi_progress_dialog->set_secondary_text(_("Please wait while Glom prepares your system for publishing 
over the network."));
@@ -456,7 +456,7 @@ void AppWindow::on_menu_help_about()
   {
     //Re-create About box:
     delete m_pAbout;
-    m_pAbout = 0;
+    m_pAbout = nullptr;
 
     m_pAbout = new Gtk::AboutDialog;
 
@@ -477,7 +477,7 @@ void AppWindow::on_menu_help_about()
 
     //TODO: Use this, instead of the C API, when we can depend on gtkmm 3.12, with a try/catch:
     //Glib::RefPtr<Gdk::Pixbuf> logo = Gdk::Pixbuf::create_from_resource(glom_icon_path);
-    GError* gerror = 0;
+    GError* gerror = nullptr;
     Glib::RefPtr<Gdk::Pixbuf> logo =
       Glib::wrap(gdk_pixbuf_new_from_resource(glom_icon_path.c_str(), &gerror));
     if(gerror)
@@ -594,13 +594,13 @@ void AppWindow::ui_warning_load_failed(int failure_code)
 void AppWindow::open_browsed_document(const EpcServiceInfo* server, const Glib::ustring& service_name)
 {
   gsize length = 0;
-  gchar *document_contents = 0;
+  gchar *document_contents = nullptr;
 
   bool keep_trying = true;
   while(keep_trying)
   {
     //Request a password to attempt retrieval of the document over the network:
-    Dialog_Connection* dialog_connection = 0;
+    Dialog_Connection* dialog_connection = nullptr;
     //Load the Glade file and instantiate its widgets to get the dialog stuff:
     Utils::get_glade_widget_derived_with_warning(dialog_connection);
     if(!dialog_connection)
@@ -626,7 +626,7 @@ void AppWindow::open_browsed_document(const EpcServiceInfo* server, const Glib::
       epc_consumer_set_username(consumer, username.c_str());
       epc_consumer_set_password(consumer, password.c_str());
 
-      GError *error = 0;
+      GError *error = nullptr;
       document_contents = (gchar*)epc_consumer_lookup(consumer, "document", &length, &error);
       if(error)
       {
@@ -655,7 +655,7 @@ void AppWindow::open_browsed_document(const EpcServiceInfo* server, const Glib::
     }
 
     delete dialog_connection;
-    dialog_connection = 0;
+    dialog_connection = nullptr;
 
   }
 
@@ -1293,7 +1293,7 @@ void AppWindow::update_userlevel_ui()
 bool AppWindow::offer_new_or_existing()
 {
   //Offer to load an existing document, or start a new one.
-  Dialog_ExistingOrNew* dialog_raw = 0;
+  Dialog_ExistingOrNew* dialog_raw = nullptr;
   Utils::get_glade_widget_derived_with_warning(dialog_raw);
   std::shared_ptr<Dialog_ExistingOrNew> dialog(dialog_raw);
   dialog->set_transient_for(*this);
@@ -2141,7 +2141,7 @@ Glib::ustring AppWindow::ui_file_select_save(const Glib::ustring& old_file_uri)
   AppWindow& app = *this;
 
   std::shared_ptr<Gtk::FileChooserDialog> fileChooser_Save;
-  Glom::FileChooserDialog_SaveExtras* fileChooser_SaveExtras = 0;
+  Glom::FileChooserDialog_SaveExtras* fileChooser_SaveExtras = nullptr;
 
   //Create the appropriate dialog, depending on how the caller set m_ui_save_extra_showextras:
   if(m_ui_save_extra_showextras)
@@ -2357,7 +2357,7 @@ void AppWindow::stop_self_hosting_of_document_database()
 
 void AppWindow::on_menu_developer_changelanguage()
 {
-  Dialog_ChangeLanguage* dialog = 0;
+  Dialog_ChangeLanguage* dialog = nullptr;
   Utils::get_glade_widget_derived_with_warning(dialog);
   if(!dialog) //Unlikely and it already warns on stderr.
     return;
@@ -2899,7 +2899,7 @@ AppWindow::enumSaveChanges AppWindow::ui_offer_to_save_changes()
 
   GlomBakery::Dialog_OfferSave::enumButtons buttonClicked = 
(GlomBakery::Dialog_OfferSave::enumButtons)pDialogQuestion->run();
   delete pDialogQuestion;
-  pDialogQuestion = 0;
+  pDialogQuestion = nullptr;
 
   if(buttonClicked == GlomBakery::Dialog_OfferSave::BUTTON_Save)
      result = GlomBakery::AppWindow_WithDoc::SAVECHANGES_Save;
diff --git a/glom/bakery/appwindow_withdoc.cc b/glom/bakery/appwindow_withdoc.cc
index 5043dd7..207004b 100644
--- a/glom/bakery/appwindow_withdoc.cc
+++ b/glom/bakery/appwindow_withdoc.cc
@@ -30,7 +30,7 @@ AppWindow_WithDoc::type_list_strings AppWindow_WithDoc::m_mime_types;
 
 AppWindow_WithDoc::AppWindow_WithDoc(const Glib::ustring& appname)
 : AppWindow(appname),
-  m_pDocument(0),
+  m_pDocument(nullptr),
   m_bCloseAfterSave(false)
 {
 }
@@ -39,7 +39,7 @@ AppWindow_WithDoc::~AppWindow_WithDoc()
 {
   //Delete the document:
   delete m_pDocument; //This will cause Document::signal_forget to be emitted, so the Views will then null 
their pointers as well. A smartpointer might be a better way to do this.
-  m_pDocument = 0;
+  m_pDocument = nullptr;
 }
 
 //static
@@ -155,7 +155,7 @@ bool AppWindow_WithDoc::open_document(const Glib::ustring& file_uri)
 
     //re-initialize document.
     delete pApp->m_pDocument;
-    pApp->m_pDocument = 0;
+    pApp->m_pDocument = nullptr;
     pApp->init_create_document();
 
     return false; //failed.
diff --git a/glom/base_db.cc b/glom/base_db.cc
index 5319239..cae5d8f 100644
--- a/glom/base_db.cc
+++ b/glom/base_db.cc
@@ -88,7 +88,7 @@ private:
 
 Base_DB::Base_DB()
 {
-  //m_pDocument = 0;
+  //m_pDocument = nullptr;
 }
 
 Base_DB::~Base_DB()
@@ -329,7 +329,7 @@ Glib::RefPtr<Gnome::Gda::Connection> Base_DB::get_connection()
   if(!sharedconnection)
   {
     std::cerr << G_STRFUNC << ": No connection yet." << std::endl;
-    return Glib::RefPtr<Gnome::Gda::Connection>(0);
+    return Glib::RefPtr<Gnome::Gda::Connection>();
   }
 
   Glib::RefPtr<Gnome::Gda::Connection> gda_connection = sharedconnection->get_gda_connection();
@@ -348,7 +348,7 @@ std::shared_ptr<LayoutItem_Field> Base_DB::offer_field_list_select_one_field(con
 {
   std::shared_ptr<LayoutItem_Field> result;
 
-  Dialog_ChooseField* dialog = 0;
+  Dialog_ChooseField* dialog = nullptr;
   Utils::get_glade_widget_derived_with_warning(dialog);
   if(!dialog) //Unlikely and it already warns on stderr.
     return result;
@@ -378,7 +378,7 @@ Base_DB::type_list_field_items Base_DB::offer_field_list(const Glib::ustring& ta
 {
   type_list_field_items result;
 
-  Dialog_ChooseField* dialog = 0;
+  Dialog_ChooseField* dialog = nullptr;
   Utils::get_glade_widget_derived_with_warning(dialog);
   if(!dialog) //Unlikely and it already warns on stderr.
     return result;
@@ -432,7 +432,7 @@ std::shared_ptr<LayoutItem_Field> Base_DB::offer_field_formatting(const std::sha
 {
   std::shared_ptr<LayoutItem_Field> result;
 
-  Dialog_FieldLayout* dialog = 0;
+  Dialog_FieldLayout* dialog = nullptr;
   Utils::get_glade_widget_derived_with_warning(dialog);
   if(!dialog) //Unlikely and it already warns on stderr.
     return result;
@@ -463,7 +463,7 @@ std::shared_ptr<LayoutItem_Text> Base_DB::offer_textobject(const std::shared_ptr
 {
   std::shared_ptr<LayoutItem_Text> result = start_textobject;
 
-  Dialog_TextObject* dialog = 0;
+  Dialog_TextObject* dialog = nullptr;
   Utils::get_glade_widget_derived_with_warning(dialog);
   if(!dialog) //Unlikely and it already warns on stderr.
     return result;
@@ -489,7 +489,7 @@ std::shared_ptr<LayoutItem_Image> Base_DB::offer_imageobject(const std::shared_p
 {
   std::shared_ptr<LayoutItem_Image> result = start_imageobject;
 
-  Dialog_ImageObject* dialog = 0;
+  Dialog_ImageObject* dialog = nullptr;
   Utils::get_glade_widget_derived_with_warning(dialog);
   if(!dialog) //Unlikely and it already warns on stderr.
     return result;
@@ -515,7 +515,7 @@ std::shared_ptr<LayoutItem_Notebook> Base_DB::offer_notebook(const std::shared_p
 {
   std::shared_ptr<LayoutItem_Notebook> result = start_notebook;
 
-  Dialog_Notebook* dialog = 0;
+  Dialog_Notebook* dialog = nullptr;
   Utils::get_glade_widget_derived_with_warning(dialog);
   if(!dialog) //Unlikely and it already warns on stderr.
     return result;
diff --git a/glom/box_reports.cc b/glom/box_reports.cc
index d9863e6..3516385 100644
--- a/glom/box_reports.cc
+++ b/glom/box_reports.cc
@@ -40,11 +40,11 @@ Box_Reports::Box_Reports(BaseObjectType* cobject, const Glib::RefPtr<Gtk::Builde
   m_colTitle(0)
 {
   //Get the Glade-instantiated widgets, and connect signal handlers:
-  Gtk::Button* pButtonCancel = 0;
+  Gtk::Button* pButtonCancel = nullptr;
   builder->get_widget("button_cancel", pButtonCancel);
   set_button_cancel(*pButtonCancel);
 
-  Gtk::Box* pAddDelParent = 0;
+  Gtk::Box* pAddDelParent = nullptr;
   builder->get_widget("vbox_adddel_parent", pAddDelParent);
   pAddDelParent->pack_start(m_AddDel);
 
diff --git a/glom/box_withbuttons.cc b/glom/box_withbuttons.cc
index c71aebc..2fbb01f 100644
--- a/glom/box_withbuttons.cc
+++ b/glom/box_withbuttons.cc
@@ -35,7 +35,7 @@ Box_WithButtons::Box_WithButtons()
   m_Box_Buttons(Gtk::ORIENTATION_HORIZONTAL, UiUtils::DEFAULT_SPACING_SMALL),
   m_Button_Cancel(_("_Cancel"))
 {
-  //m_pDocument = 0;
+  //m_pDocument = nullptr;
 
   //set_border_width(UiUtils::DEFAULT_SPACING_SMALL);
   set_spacing(UiUtils::DEFAULT_SPACING_SMALL);
@@ -49,7 +49,7 @@ Box_WithButtons::Box_WithButtons(BaseObjectType* cobject, const Glib::RefPtr<Gtk
   m_Box_Buttons(Gtk::ORIENTATION_HORIZONTAL, UiUtils::DEFAULT_SPACING_SMALL),
   m_Button_Cancel(_("_Cancel"))
 {
-  //m_pDocument = 0;
+  //m_pDocument = nullptr;
 
   //set_border_width(UiUtils::DEFAULT_SPACING_SMALL);
   set_spacing(UiUtils::DEFAULT_SPACING_SMALL);
diff --git a/glom/dialog_connection.cc b/glom/dialog_connection.cc
index 6b9a1cc..3efec00 100644
--- a/glom/dialog_connection.cc
+++ b/glom/dialog_connection.cc
@@ -40,11 +40,11 @@ const bool Dialog_Connection::glade_developer(false);
 Dialog_Connection::Dialog_Connection(BaseObjectType* cobject, const Glib::RefPtr<Gtk::Builder>& builder)
 : Gtk::Dialog(cobject),
   Base_DB(),
-  m_entry_host(0),
-  m_entry_user(0),
-  m_entry_password(0),
-  m_label_database(0),
-  m_label_note(0)
+  m_entry_host(nullptr),
+  m_entry_user(nullptr),
+  m_entry_password(nullptr),
+  m_label_database(nullptr),
+  m_label_note(nullptr)
 {
   builder->get_widget("entry_host", m_entry_host);
   builder->get_widget("entry_user", m_entry_user);
@@ -63,7 +63,7 @@ std::shared_ptr<SharedConnection> Dialog_Connection::connect_to_server_with_conn
 
   //TODO: BusyCursor busy_cursor(get_app_window());
 
-  std::shared_ptr<SharedConnection> result(0);
+  std::shared_ptr<SharedConnection> result;
 
   ConnectionPool* connection_pool = ConnectionPool::get_instance();
   g_assert(connection_pool);
diff --git a/glom/dialog_existing_or_new.cc b/glom/dialog_existing_or_new.cc
index c95996e..7ea4748 100644
--- a/glom/dialog_existing_or_new.cc
+++ b/glom/dialog_existing_or_new.cc
@@ -114,7 +114,7 @@ Dialog_ExistingOrNew::Dialog_ExistingOrNew(BaseObjectType* cobject, const Glib::
 {
 #ifdef GLOM_ENABLE_CLIENT_ONLY
   //Don't mention creation of new documents in client-only mode:
-  Gtk::Label* label = 0;
+  Gtk::Label* label = nullptr;
   builder->get_widget("existing_or_new_label", label);
   label->set_text(_("Open a Document"));
 #endif //GLOM_ENABLE_CLIENT_ONLY
@@ -294,7 +294,7 @@ Dialog_ExistingOrNew::~Dialog_ExistingOrNew()
   if(m_service_monitor)
   {
     g_object_unref(m_service_monitor);
-    m_service_monitor = 0;
+    m_service_monitor = nullptr;
   }
 
   // Release the service infos in the treestore
diff --git a/glom/dialog_invalid_data.cc b/glom/dialog_invalid_data.cc
index b4015f5..e7e6f1a 100644
--- a/glom/dialog_invalid_data.cc
+++ b/glom/dialog_invalid_data.cc
@@ -34,7 +34,7 @@ const bool Dialog_InvalidData::glade_developer(false);
  */
 bool glom_show_dialog_invalid_data(Field::glom_field_type glom_type)
 {
-  Dialog_InvalidData* dialog = 0;
+  Dialog_InvalidData* dialog = nullptr;
   Utils::get_glade_widget_derived_with_warning(dialog);
   if(!dialog) //Unlikely and it already warns on stderr.
     return false;
@@ -49,7 +49,7 @@ bool glom_show_dialog_invalid_data(Field::glom_field_type glom_type)
 
 Dialog_InvalidData::Dialog_InvalidData(BaseObjectType* cobject, const Glib::RefPtr<Gtk::Builder>& builder)
 : Gtk::Dialog(cobject),
-  m_label(0)
+  m_label(nullptr)
 {
   builder->get_widget("label_example_data", m_label);
 }
diff --git a/glom/filechooser_export.cc b/glom/filechooser_export.cc
index 481abcb..66544de 100644
--- a/glom/filechooser_export.cc
+++ b/glom/filechooser_export.cc
@@ -32,9 +32,9 @@ FileChooser_Export::FileChooser_Export()
   m_extra_widget(Gtk::ORIENTATION_HORIZONTAL, UiUtils::DEFAULT_SPACING_SMALL),
 #ifndef GLOM_ENABLE_CLIENT_ONLY
   m_button_format(_("Define Data _Format"), true /* use mnenomic */),
-  m_pDialogLayout(0),
+  m_pDialogLayout(nullptr),
 #endif //GLOM_ENABLE_CLIENT_ONLY
-  m_document(0)
+  m_document(nullptr)
 {
   add_button(_("_Cancel"), Gtk::RESPONSE_CANCEL);
   add_button(_("_Export"), Gtk::RESPONSE_OK);
@@ -52,7 +52,7 @@ FileChooser_Export::FileChooser_Export()
 
 #ifndef GLOM_ENABLE_CLIENT_ONLY
   //TODO: Use a generic layout dialog?
-  Dialog_Layout_Export* dialog = 0;
+  Dialog_Layout_Export* dialog = nullptr;
   Utils::get_glade_widget_derived_with_warning(dialog);
   if(!dialog)
     return;
@@ -67,7 +67,7 @@ FileChooser_Export::~FileChooser_Export()
 {
 #ifndef GLOM_ENABLE_CLIENT_ONLY
   delete m_pDialogLayout;
-  m_pDialogLayout = 0;
+  m_pDialogLayout = nullptr;
 #endif //GLOM_ENABLE_CLIENT_ONLY
 }
 
diff --git a/glom/frame_glom.cc b/glom/frame_glom.cc
index d626569..a582a6b 100644
--- a/glom/frame_glom.cc
+++ b/glom/frame_glom.cc
@@ -73,29 +73,29 @@ namespace Glom
 
 Frame_Glom::Frame_Glom(BaseObjectType* cobject, const Glib::RefPtr<Gtk::Builder>& builder)
 : PlaceHolder(cobject, builder),
-  m_pLabel_Table_DataMode(0),
-  m_pLabel_Table_FindMode(0),
+  m_pLabel_Table_DataMode(nullptr),
+  m_pLabel_Table_FindMode(nullptr),
   m_Box_RecordsCount(Gtk::ORIENTATION_HORIZONTAL, UiUtils::DEFAULT_SPACING_SMALL),
   m_Button_FindAll(_("Find All")),
-  m_stack_mode(0),
-  m_pBox_Tables(0),
-  m_pDialog_Tables(0),
-  m_pBox_QuickFind(0),
-  m_pEntry_QuickFind(0),
-  m_pButton_QuickFind(0),
+  m_stack_mode(nullptr),
+  m_pBox_Tables(nullptr),
+  m_pDialog_Tables(nullptr),
+  m_pBox_QuickFind(nullptr),
+  m_pEntry_QuickFind(nullptr),
+  m_pButton_QuickFind(nullptr),
 #ifndef GLOM_ENABLE_CLIENT_ONLY
-  m_pDialog_Reports(0),
-  m_pDialogLayoutReport(0),
-  m_pBox_Reports(0),
-  m_pDialog_PrintLayouts(0),
-  m_pDialogLayoutPrint(0),
-  m_pBox_PrintLayouts(0),
-  m_pDialog_Fields(0),
-  m_pDialog_Relationships(0),
-  m_dialog_addrelatedtable(0),
-  m_window_relationships_overview(0),
+  m_pDialog_Reports(nullptr),
+  m_pDialogLayoutReport(nullptr),
+  m_pBox_Reports(nullptr),
+  m_pDialog_PrintLayouts(nullptr),
+  m_pDialogLayoutPrint(nullptr),
+  m_pBox_PrintLayouts(nullptr),
+  m_pDialog_Fields(nullptr),
+  m_pDialog_Relationships(nullptr),
+  m_dialog_addrelatedtable(nullptr),
+  m_window_relationships_overview(nullptr),
 #endif // !GLOM_ENABLE_CLIENT_ONLY
-  m_pDialogConnection(0)
+  m_pDialogConnection(nullptr)
 {
   m_pLabel_Table_DataMode = Gtk::manage(new Gtk::Label(_("No Table Selected")));
   m_pLabel_Table_DataMode->show();
@@ -127,7 +127,7 @@ Frame_Glom::Frame_Glom(BaseObjectType* cobject, const Glib::RefPtr<Gtk::Builder>
   m_pBox_QuickFind->show_all_children();
   m_pBox_QuickFind->hide();
 
-  PlaceHolder* placeholder_quickfind = 0;
+  PlaceHolder* placeholder_quickfind = nullptr;
   builder->get_widget_derived("vbox_quickfind", placeholder_quickfind);
   if(placeholder_quickfind)
     placeholder_quickfind->add(*m_pBox_QuickFind);
@@ -180,7 +180,7 @@ Frame_Glom::~Frame_Glom()
     remove_view(m_pBox_Tables);
 
   delete m_pDialog_Tables;
-  m_pDialog_Tables = 0;
+  m_pDialog_Tables = nullptr;
 
   remove_view(&m_Notebook_Data); //Also a composite view.
   remove_view(&m_Notebook_Find); //Also a composite view.
@@ -190,7 +190,7 @@ Frame_Glom::~Frame_Glom()
   {
     remove_view(m_pDialogConnection);
     delete m_pDialogConnection;
-    m_pDialogConnection = 0;
+    m_pDialogConnection = nullptr;
   }
 
 #ifndef GLOM_ENABLE_CLIENT_ONLY
@@ -204,42 +204,42 @@ Frame_Glom::~Frame_Glom()
   {
     remove_view(m_pDialog_Relationships);
     delete m_pDialog_Relationships;
-    m_pDialog_Relationships = 0;
+    m_pDialog_Relationships = nullptr;
   }
 
   if(m_pDialogLayoutReport)
   {
     remove_view(m_pDialogLayoutReport);
     delete m_pDialogLayoutReport;
-    m_pDialogLayoutReport = 0;
+    m_pDialogLayoutReport = nullptr;
   }
 
   if(m_pDialogLayoutPrint)
   {
     remove_view(m_pDialogLayoutPrint);
     delete m_pDialogLayoutPrint;
-    m_pDialogLayoutPrint = 0;
+    m_pDialogLayoutPrint = nullptr;
   }
 
   if(m_pDialog_Fields)
   {
     remove_view(m_pDialog_Fields);
     delete m_pDialog_Fields;
-    m_pDialog_Fields = 0;
+    m_pDialog_Fields = nullptr;
   }
 
   if(m_dialog_addrelatedtable)
   {
     remove_view(m_dialog_addrelatedtable);
     delete m_dialog_addrelatedtable;
-    m_dialog_addrelatedtable = 0;
+    m_dialog_addrelatedtable = nullptr;
   }
 
   if(m_window_relationships_overview)
   {
     remove_view(m_window_relationships_overview);
     delete m_window_relationships_overview;
-    m_window_relationships_overview = 0;
+    m_window_relationships_overview = nullptr;
   }
 #endif // !GLOM_ENABLE_CLIENT_ONLY
 }
@@ -749,7 +749,7 @@ void Frame_Glom::on_menu_file_import()
     {
       file_chooser.hide();
 
-      Dialog_Import_CSV* dialog = 0;
+      Dialog_Import_CSV* dialog = nullptr;
       Glom::Utils::get_glade_widget_derived_with_warning(dialog);
       if(!dialog) //Unlikely and it already warns on stderr.
         return;
@@ -761,7 +761,7 @@ void Frame_Glom::on_menu_file_import()
       {
         dialog->hide();
 
-        Dialog_Import_CSV_Progress* progress_dialog = 0;
+        Dialog_Import_CSV_Progress* progress_dialog = nullptr;
         Glom::Utils::get_glade_widget_derived_with_warning(progress_dialog);
         int response = Gtk::RESPONSE_OK;
         if(!progress_dialog)
@@ -778,7 +778,7 @@ void Frame_Glom::on_menu_file_import()
 
           remove_view(progress_dialog);
           delete progress_dialog;
-          progress_dialog = 0;
+          progress_dialog = nullptr;
 
           // Force update from database so the newly added entries are shown
           show_table_refresh();
@@ -1095,7 +1095,7 @@ void Frame_Glom::on_menu_Tables_AddRelatedTable()
   {
     remove_view(m_dialog_addrelatedtable);
     delete m_dialog_addrelatedtable;
-    m_dialog_addrelatedtable = 0;
+    m_dialog_addrelatedtable = nullptr;
   }
 
   Utils::get_glade_widget_derived_with_warning(m_dialog_addrelatedtable);
@@ -1538,7 +1538,7 @@ void Frame_Glom::load_from_document()
 #ifndef GLOM_ENABLE_CLIENT_ONLY
 void Frame_Glom::on_menu_developer_database_preferences()
 {
-  Dialog_Database_Preferences* dialog = 0;
+  Dialog_Database_Preferences* dialog = nullptr;
   Utils::get_glade_widget_derived_with_warning(dialog);
   if(!dialog) //Unlikely and it already warns on stderr.
     return;
@@ -1656,7 +1656,7 @@ void Frame_Glom::on_menu_developer_relationships()
 
 void Frame_Glom::on_menu_developer_users()
 {
-  Dialog_GroupsList* dialog = 0;
+  Dialog_GroupsList* dialog = nullptr;
   Utils::get_glade_widget_derived_with_warning(dialog);
   if(!dialog) //Unlikely and it already warns on stderr.
     return;
@@ -1764,7 +1764,7 @@ void Frame_Glom::on_menu_developer_print_layouts()
 
 void Frame_Glom::on_menu_developer_script_library()
 {
-  Dialog_ScriptLibrary* dialog = 0;
+  Dialog_ScriptLibrary* dialog = nullptr;
   Utils::get_glade_widget_derived_with_warning(dialog);
   if(!dialog) //Unlikely and it already warns on stderr.
     return;
@@ -1936,7 +1936,7 @@ bool Frame_Glom::connection_request_initial_password(Glib::ustring& user, Glib::
     return false;
 
   //Ask for a new username and password to specify when creating a new self-hosted database.
-  Dialog_InitialPassword* dialog = 0;
+  Dialog_InitialPassword* dialog = nullptr;
   Utils::get_glade_widget_derived_with_warning(dialog);
   if(!dialog)
     return false;
@@ -1972,7 +1972,7 @@ bool Frame_Glom::connection_request_initial_password(Glib::ustring& user, Glib::
 
   remove_view(dialog);
   delete dialog;
-  dialog = 0;
+  dialog = nullptr;
 
   return (response == Gtk::RESPONSE_OK);
 }
@@ -2279,7 +2279,7 @@ bool Frame_Glom::connection_request_password_and_attempt(bool& database_not_foun
   {
     //We recreate the dialog each time to make sure it is clean of any changes:
     delete m_pDialogConnection;
-    m_pDialogConnection = 0;
+    m_pDialogConnection = nullptr;
 
     Utils::get_glade_widget_derived_with_warning(m_pDialogConnection);
     if(!m_pDialogConnection)
@@ -2307,7 +2307,7 @@ bool Frame_Glom::connection_request_password_and_attempt(bool& database_not_foun
   {
     //Later, if m_pDialogConnection is null then we assume we should use the known user/password:
     delete m_pDialogConnection;
-    m_pDialogConnection = 0;
+    m_pDialogConnection = nullptr;
   }
 
 
@@ -2391,7 +2391,7 @@ bool Frame_Glom::create_database(const Glib::ustring& database_name, const Glib:
   if(!result)
   {
     //Tell the user:
-    Gtk::Dialog* dialog = 0;
+    Gtk::Dialog* dialog = nullptr;
     Utils::get_glade_widget_with_warning("glom_developer.glade", "dialog_error_create_database", dialog);
     if(!dialog)
     {
diff --git a/glom/glom_test_connection.cc b/glom/glom_test_connection.cc
index 817e6a2..e3aa8bb 100644
--- a/glom/glom_test_connection.cc
+++ b/glom/glom_test_connection.cc
@@ -194,7 +194,7 @@ int main(int argc, char* argv[])
 
   //Specify the backend and backend-specific details to be used by the connectionpool.
   //This is usually done by ConnectionPool::setup_from_document():
-  Glom::ConnectionPoolBackends::Backend* backend = 0;
+  Glom::ConnectionPoolBackends::Backend* backend = nullptr;
 #ifdef GLOM_ENABLE_MYSQL
   if(group.m_arg_use_mysql)
   {
diff --git a/glom/import_csv/csv_parser.cc b/glom/import_csv/csv_parser.cc
index 58a9f5c..be71a4e 100644
--- a/glom/import_csv/csv_parser.cc
+++ b/glom/import_csv/csv_parser.cc
@@ -55,15 +55,11 @@ bool CsvParser::next_char_is_quote(const Glib::ustring::const_iterator& iter, co
 }
 
 CsvParser::CsvParser(const std::string& encoding_charset)
-: m_raw(0),
-  m_encoding(encoding_charset),
+: m_encoding(encoding_charset),
   m_input_position(0),
   m_in_quotes(false),
-  m_idle_connection(),
   m_line_number(0),
   m_state(STATE_NONE),
-  m_stream(),
-  m_rows(),
   m_row_index(0)
 {
 }
diff --git a/glom/import_csv/dialog_import_csv_progress.cc b/glom/import_csv/dialog_import_csv_progress.cc
index a3b2733..2db874b 100644
--- a/glom/import_csv/dialog_import_csv_progress.cc
+++ b/glom/import_csv/dialog_import_csv_progress.cc
@@ -38,7 +38,7 @@ const bool Dialog_Import_CSV_Progress::glade_developer(false);
 
 Dialog_Import_CSV_Progress::Dialog_Import_CSV_Progress(BaseObjectType* cobject, const 
Glib::RefPtr<Gtk::Builder>& builder)
 : Gtk::Dialog(cobject), 
-  m_data_source(0), 
+  m_data_source(nullptr), 
   m_current_row(0)
 {
   builder->get_widget("import_csv_progress_progress_bar", m_progress_bar);
diff --git a/glom/infobar_progress_creating.cc b/glom/infobar_progress_creating.cc
index bad1326..44543cd 100644
--- a/glom/infobar_progress_creating.cc
+++ b/glom/infobar_progress_creating.cc
@@ -29,8 +29,8 @@ namespace Glom
 
 Infobar_ProgressCreating::Infobar_ProgressCreating(BaseObjectType* cobject, const 
Glib::RefPtr<Gtk::Builder>& builder)
 : Gtk::InfoBar(cobject),
-  m_progress(0),
-  m_label_message(0)
+  m_progress(nullptr),
+  m_label_message(nullptr)
 {
   builder->get_widget("progressbar", m_progress);
   builder->get_widget("label_message", m_label_message);
diff --git a/glom/libglom/connectionpool.cc b/glom/libglom/connectionpool.cc
index 064c5a2..98d547f 100644
--- a/glom/libglom/connectionpool.cc
+++ b/glom/libglom/connectionpool.cc
@@ -104,16 +104,16 @@ void SharedConnection::close()
 }
 
 //init_db_details static data:
-ConnectionPool* ConnectionPool::m_instance = 0;
+ConnectionPool* ConnectionPool::m_instance = nullptr;
 
 ConnectionPool::ConnectionPool()
 :
-  m_epc_publisher(0),
-  m_dialog_epc_progress(0),
-  m_backend(0),
+  m_epc_publisher(nullptr),
+  m_dialog_epc_progress(nullptr),
+  m_backend(nullptr),
   m_sharedconnection_refcount(0),
   m_ready_to_connect(false),
-  m_pFieldTypes(0),
+  m_pFieldTypes(nullptr),
   m_show_debug_output(false),
   m_auto_server_shutdown(true),
   m_fake_connection(false)
@@ -123,7 +123,7 @@ ConnectionPool::ConnectionPool()
 ConnectionPool::~ConnectionPool()
 {
   delete m_pFieldTypes;
-  m_pFieldTypes = 0;
+  m_pFieldTypes = nullptr;
 }
 
 //static
@@ -200,7 +200,7 @@ void ConnectionPool::setup_from_document(const Document* document)
 void ConnectionPool::delete_instance()
 {
   delete m_instance;
-  m_instance = 0;
+  m_instance = nullptr;
 }
 
 bool ConnectionPool::get_ready_to_connect() const
@@ -239,7 +239,7 @@ bool ConnectionPool::get_backend_supports_cursor() const
 //static:
 std::shared_ptr<SharedConnection> ConnectionPool::get_and_connect()
 {
-  std::shared_ptr<SharedConnection> result(0);
+  std::shared_ptr<SharedConnection> result;
 
   ConnectionPool* connection_pool = ConnectionPool::get_instance();
   if(!connection_pool)
@@ -290,7 +290,7 @@ std::shared_ptr<SharedConnection> ConnectionPool::connect()
   //std::cout << G_STRFUNC << ": debug" << std::endl;
 
   //Don't try to connect if we don't have a backend to connect to.
-  g_return_val_if_fail(m_backend.get(), std::shared_ptr<SharedConnection>(0));
+  g_return_val_if_fail(m_backend.get(), std::shared_ptr<SharedConnection>());
 
   if(get_ready_to_connect() || m_fake_connection)
   {
@@ -398,7 +398,7 @@ std::shared_ptr<SharedConnection> ConnectionPool::connect()
     //std::cerr << G_STRFUNC << ": not ready to connect." << std::endl;
   }
 
-  return std::shared_ptr<SharedConnection>(0);
+  return std::shared_ptr<SharedConnection>();
 }
 
 void ConnectionPool::create_database(const SlotProgress& slot_progress, const Glib::ustring& database_name)
@@ -536,7 +536,7 @@ void ConnectionPool::invalidate_connection()
   m_sharedconnection_refcount = 0;
 
   delete m_pFieldTypes;
-  m_pFieldTypes = 0;
+  m_pFieldTypes = nullptr;
 }
 
 void ConnectionPool::on_sharedconnection_finished()
@@ -961,7 +961,7 @@ void ConnectionPool::avahi_start_publishing()
     epc_publisher_set_service_cookie(m_epc_publisher, m_database.c_str());
 
   //Start the publisher, serving HTTPS:
-  GError* error = 0;
+  GError* error = nullptr;
   epc_publisher_run_async(m_epc_publisher, &error);
   if(error)
   {
@@ -987,7 +987,7 @@ void ConnectionPool::avahi_stop_publishing()
   epc_publisher_quit(m_epc_publisher);
 #endif // !G_OS_WIN32
   g_object_unref(m_epc_publisher);
-  m_epc_publisher = 0;
+  m_epc_publisher = nullptr;
 }
 #endif // !G_OS_WIN32
 
diff --git a/glom/libglom/connectionpool_backends/postgres_self.cc 
b/glom/libglom/connectionpool_backends/postgres_self.cc
index 582a06c..6858adb 100644
--- a/glom/libglom/connectionpool_backends/postgres_self.cc
+++ b/glom/libglom/connectionpool_backends/postgres_self.cc
@@ -536,7 +536,7 @@ bool PostgresSelfHosted::set_network_shared(const SlotProgress& /* slot_progress
   const auto dbdir = Glib::filename_from_uri(dbdir_uri);
 
   const std::string dbdir_uri_config = dbdir_uri + "/config";
-  const char* default_conf_contents = 0;
+  const char* default_conf_contents = nullptr;
 
   // Choose the configuration contents based on 
   // whether we want to be network-shared:
diff --git a/glom/libglom/data_structure/field.cc b/glom/libglom/data_structure/field.cc
index b4636b7..7b41b88 100644
--- a/glom/libglom/data_structure/field.cc
+++ b/glom/libglom/data_structure/field.cc
@@ -277,7 +277,7 @@ Glib::ustring Field::to_file_format(const Gnome::Gda::Value& value, glom_field_t
     if(!value.gobj())
       return Glib::ustring();
  
-    gchar* str = 0;
+    gchar* str = nullptr;
     const auto value_type = value.get_value_type();
     if(value_type == GDA_TYPE_BINARY)
     {
diff --git a/glom/libglom/data_structure/glomconversions.cc b/glom/libglom/data_structure/glomconversions.cc
index fd0de72..2179ab1 100644
--- a/glom/libglom/data_structure/glomconversions.cc
+++ b/glom/libglom/data_structure/glomconversions.cc
@@ -82,7 +82,7 @@ Glib::ustring Conversions::format_date(const tm& tm_data)
 #define GLOM_NON_TRANSLATED_LOCALE_DATE_FORMAT "%x"
 
 // The % format to use to print and interpret dates, with 4-digit years:
-static const gchar* c_locale_date_format = 0;
+static const gchar* c_locale_date_format = nullptr;
 
 static inline const char* glom_get_locale_date_format()
 {
@@ -110,7 +110,7 @@ static inline const char* glom_get_locale_date_format()
 
     //std::cout << "DEBUG: LC_TIME: " << lc_time << std::endl;
 
-    char* old_lc_messages = 0;
+    char* old_lc_messages = nullptr;
     bool changed_lc_messages = false;
 
     if(lc_time)
diff --git a/glom/libglom/db_utils.cc b/glom/libglom/db_utils.cc
index e8dcfdf..0f6c270 100644
--- a/glom/libglom/db_utils.cc
+++ b/glom/libglom/db_utils.cc
@@ -55,7 +55,7 @@ static Glib::RefPtr<Gnome::Gda::Connection> get_connection()
   if(!sharedconnection)
   {
     std::cerr << G_STRFUNC << ": No connection yet." << std::endl;
-    return Glib::RefPtr<Gnome::Gda::Connection>(0);
+    return Glib::RefPtr<Gnome::Gda::Connection>();
   }
 
   Glib::RefPtr<Gnome::Gda::Connection> gda_connection = sharedconnection->get_gda_connection();
@@ -831,7 +831,7 @@ type_vec_fields get_fields_for_table_from_database(const Glib::ustring& table_na
     g_assert(quoted_table_name_c);
     Glib::ustring quoted_table_name(quoted_table_name_c);
     g_free (quoted_table_name_c);
-    quoted_table_name_c = 0;
+    quoted_table_name_c = nullptr;
 
     holder_table_name->set_value(quoted_table_name);
 
@@ -874,7 +874,7 @@ type_vec_fields get_fields_for_table_from_database(const Glib::ustring& table_na
       Glib::RefPtr<Gnome::Gda::MetaStore> store = connection->get_meta_store();
       Glib::RefPtr<Gnome::Gda::MetaStruct> metastruct =
         Gnome::Gda::MetaStruct::create(store, Gnome::Gda::META_STRUCT_FEATURE_NONE);
-      GdaMetaDbObject* meta_dbobject = 0;
+      GdaMetaDbObject* meta_dbobject = nullptr;
       try
       {
         meta_dbobject = metastruct->complement(Gnome::Gda::META_DB_TABLE,
diff --git a/glom/libglom/document/bakery/document.cc b/glom/libglom/document/bakery/document.cc
index 22eda3e..c79fdf3 100644
--- a/glom/libglom/document/bakery/document.cc
+++ b/glom/libglom/document/bakery/document.cc
@@ -32,7 +32,7 @@ Document::Document()
   m_bIsNew = true;
   m_bModified = false;
   m_bReadOnly = false;
-  m_pView = 0;
+  m_pView = nullptr;
 }
 
 Document::~Document()
diff --git a/glom/libglom/document/bakery/document_xml.cc b/glom/libglom/document/bakery/document_xml.cc
index 1cce544..1003290 100644
--- a/glom/libglom/document/bakery/document_xml.cc
+++ b/glom/libglom/document/bakery/document_xml.cc
@@ -25,7 +25,7 @@ namespace GlomBakery
 
 
 Document_XML::Document_XML()
-: m_pDOM_Document(0),
+: m_pDOM_Document(nullptr),
   m_write_formatted(false)
 {
 }
diff --git a/glom/libglom/document/document.cc b/glom/libglom/document/document.cc
index 27fdc74..c1e7c56 100644
--- a/glom/libglom/document/document.cc
+++ b/glom/libglom/document/document.cc
@@ -3277,7 +3277,7 @@ void Document::save_before_layout_group(xmlpp::Element* node, const std::shared_
 
   //g_warning("save_before_layout_group");
 
-  xmlpp::Element* child = 0;
+  xmlpp::Element* child = nullptr;
 
   std::shared_ptr<const LayoutItem_GroupBy> group_by = std::dynamic_pointer_cast<const 
LayoutItem_GroupBy>(group);
   if(group_by) //If it is a GroupBy report part.
@@ -3454,7 +3454,7 @@ void Document::save_before_layout_group(xmlpp::Element* node, const std::shared_
     }
     else
     {
-      xmlpp::Element* nodeItem = 0;
+      xmlpp::Element* nodeItem = nullptr;
 
       std::shared_ptr<const LayoutItem_FieldSummary> fieldsummary = std::dynamic_pointer_cast<const 
LayoutItem_FieldSummary>(item);
       if(fieldsummary) //If it is a summaryfield
@@ -5121,7 +5121,7 @@ Glib::ustring Document::extract_backup_file(const Glib::ustring& backup_uri, std
 
   std::string contents_glom_file;
 
-  struct archive_entry* entry = 0;
+  struct archive_entry* entry = nullptr;
   while(archive_read_next_header(a, &entry) == ARCHIVE_OK)
   {
     const auto pathname = archive_entry_pathname(entry);
diff --git a/glom/libglom/init.cc b/glom/libglom/init.cc
index ad4a355..4aa7ba8 100644
--- a/glom/libglom/init.cc
+++ b/glom/libglom/init.cc
@@ -48,7 +48,7 @@ void libglom_init()
 {
   //Threading is always enabled starting from GLib 2.31.0:
   //if(!Glib::thread_supported())
-  //Glib::thread_init(0); //So we can use GMutex.
+  //Glib::thread_init(nullptr); //So we can use GMutex.
 
   Gnome::Gda::init();
   Gio::init();
diff --git a/glom/libglom/privs.cc b/glom/libglom/privs.cc
index e6b63e0..b9ddb97 100644
--- a/glom/libglom/privs.cc
+++ b/glom/libglom/privs.cc
@@ -286,7 +286,7 @@ static Glib::RefPtr<Gnome::Gda::Connection> get_connection()
   if(!sharedconnection)
   {
     std::cerr << G_STRFUNC << ": No connection yet." << std::endl;
-    return Glib::RefPtr<Gnome::Gda::Connection>(0);
+    return Glib::RefPtr<Gnome::Gda::Connection>();
   }
 
   Glib::RefPtr<Gnome::Gda::Connection> gda_connection = sharedconnection->get_gda_connection();
diff --git a/glom/libglom/python_embed/py_glom_record.cc b/glom/libglom/python_embed/py_glom_record.cc
index 7e14f38..a8d9702 100644
--- a/glom/libglom/python_embed/py_glom_record.cc
+++ b/glom/libglom/python_embed/py_glom_record.cc
@@ -39,7 +39,7 @@ namespace Glom
 
 //Set the object's member data, from the parameters supplied when creating the object:
 PyGlomRecord::PyGlomRecord()
-: m_document(0),
+: m_document(nullptr),
   m_read_only(false)
 {
 }
diff --git a/glom/libglom/python_embed/py_glom_relatedrecord.cc 
b/glom/libglom/python_embed/py_glom_relatedrecord.cc
index 1d37f89..52d3814 100644
--- a/glom/libglom/python_embed/py_glom_relatedrecord.cc
+++ b/glom/libglom/python_embed/py_glom_relatedrecord.cc
@@ -35,7 +35,7 @@ namespace Glom
 {
 
 PyGlomRelatedRecord::PyGlomRelatedRecord()
-: m_document(0)
+: m_document(nullptr)
 {
 }
 
diff --git a/glom/libglom/python_embed/py_glom_ui.cc b/glom/libglom/python_embed/py_glom_ui.cc
index 42c7772..3aa7d56 100644
--- a/glom/libglom/python_embed/py_glom_ui.cc
+++ b/glom/libglom/python_embed/py_glom_ui.cc
@@ -26,7 +26,7 @@ namespace Glom
 {
 
 PyGlomUI::PyGlomUI()
-: m_callbacks(0)
+: m_callbacks(nullptr)
 {
 }
 
diff --git a/glom/libglom/report_builder.cc b/glom/libglom/report_builder.cc
index baba5b0..478150e 100644
--- a/glom/libglom/report_builder.cc
+++ b/glom/libglom/report_builder.cc
@@ -32,7 +32,7 @@ namespace Glom
 {
 
 ReportBuilder::ReportBuilder(const std::locale& locale)
-: m_document(0),
+: m_document(nullptr),
   m_locale(locale)
 {
   m_locale_id = Utils::locale_simplify(locale.name());
diff --git a/glom/libglom/spawn_with_feedback.cc b/glom/libglom/spawn_with_feedback.cc
index 0a38618..6c09115 100644
--- a/glom/libglom/spawn_with_feedback.cc
+++ b/glom/libglom/spawn_with_feedback.cc
@@ -105,7 +105,7 @@ private:
     // it can write to it.
     SECURITY_ATTRIBUTES security_attr;
     security_attr.nLength = sizeof(security_attr);
-    security_attr.lpSecurityDescriptor = 0;
+    security_attr.lpSecurityDescriptor = nullptr;
     security_attr.bInheritHandle = true;
 
     HANDLE result = CreateFile(filename.c_str(), GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_DELETE, 
&security_attr, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0);
@@ -168,11 +168,11 @@ public:
 #ifdef G_OS_WIN32
     startup_info.cb = sizeof(startup_info);
     startup_info.dwFlags = STARTF_USESTDHANDLES;
-    startup_info.lpReserved = 0;
-    startup_info.lpDesktop = 0;
-    startup_info.lpTitle = 0;
-    startup_info.cbReserved2 = 0;
-    startup_info.lpReserved2 = 0;
+    startup_info.lpReserved = nullptr;
+    startup_info.lpDesktop = nullptr;
+    startup_info.lpTitle = nullptr;
+    startup_info.cbReserved2 = nullptr;
+    startup_info.lpReserved2 = nullptr;
     startup_info.hStdInput = INVALID_HANDLE_VALUE;
 
     if(redirect & REDIRECT_STDOUT)
diff --git a/glom/libglom/test_avahi_publisher.cc b/glom/libglom/test_avahi_publisher.cc
index 4ee730f..a5cc1d6 100644
--- a/glom/libglom/test_avahi_publisher.cc
+++ b/glom/libglom/test_avahi_publisher.cc
@@ -31,7 +31,7 @@ TestWindow::TestWindow()
 : m_box(Gtk::ORIENTATION_VERTICAL, Glom::UiUtils::DEFAULT_SPACING_SMALL),
   m_button_start("Start"),
   m_button_stop("Stop"),
-  m_avahi_publisher(0)
+  m_avahi_publisher(nullptr)
 {
   set_border_width(10);
   add(m_box);
@@ -67,7 +67,7 @@ void TestWindow::on_button_stop()
   std::cout << "Stopping" << std::endl;
 
   delete m_avahi_publisher;
-  m_avahi_publisher = 0;
+  m_avahi_publisher = nullptr;
 }
 
 
diff --git a/glom/libglom/utils.cc b/glom/libglom/utils.cc
index 046facd..0c4aad1 100644
--- a/glom/libglom/utils.cc
+++ b/glom/libglom/utils.cc
@@ -1037,7 +1037,7 @@ static Glib::RefPtr<Gnome::Gda::Connection> get_connection()
   if(!sharedconnection)
   {
     std::cerr << G_STRFUNC << ": No connection yet." << std::endl;
-    return Glib::RefPtr<Gnome::Gda::Connection>(0);
+    return Glib::RefPtr<Gnome::Gda::Connection>();
   }
 
   Glib::RefPtr<Gnome::Gda::Connection> gda_connection = sharedconnection->get_gda_connection();
diff --git a/glom/libglom/xml_utils.cc b/glom/libglom/xml_utils.cc
index e644b19..1d7aa14 100644
--- a/glom/libglom/xml_utils.cc
+++ b/glom/libglom/xml_utils.cc
@@ -63,7 +63,7 @@ void set_node_attribute_value(xmlpp::Element* node, const Glib::ustring& strAttr
 
 xmlpp::Element* get_node_child_named(const xmlpp::Element* node, const Glib::ustring& strName)
 {
-  xmlpp::Element* nodeResult = 0;
+  xmlpp::Element* nodeResult = nullptr;
 
   if(node)
   { 
diff --git a/glom/libglom/xsl_utils.cc b/glom/libglom/xsl_utils.cc
index 595c92b..4653d17 100644
--- a/glom/libglom/xsl_utils.cc
+++ b/glom/libglom/xsl_utils.cc
@@ -71,7 +71,7 @@ static Glib::ustring xslt_process(const xmlpp::Document& xml_document, const std
   //std::cout << std::endl;
 
   Glib::RefPtr<Gio::File> file = Gio::File::create_for_uri(resource_path_xslt); //This must use a 
resource:// URI.
-  char* xslt_data = 0;
+  char* xslt_data = nullptr;
   gsize xslt_length = 0;
   try
   {
@@ -102,7 +102,7 @@ static Glib::ustring xslt_process(const xmlpp::Document& xml_document, const std
       xsltFreeStylesheet(cur);
 
       //Get the output text:
-      xmlChar* buffer = 0;
+      xmlChar* buffer = nullptr;
       int length = 0;
       xmlIndentTreeOutput = 1; //Format the output with extra white space. TODO: Is there a better way than 
this global variable?
       xmlDocDumpFormatMemoryEnc(pDocOutput, &buffer, &length, 0, 0);
diff --git a/glom/main.cc b/glom/main.cc
index dce1b4a..e4d1e85 100644
--- a/glom/main.cc
+++ b/glom/main.cc
@@ -121,7 +121,7 @@ int
 pgwin32_is_admin(void)
 {
   HANDLE    AccessToken;
-  char     *InfoBuffer = 0;
+  char     *InfoBuffer = nullptr;
   char    errbuf[256];
   PTOKEN_GROUPS Groups;
   PSID    AdministratorsSid;
diff --git a/glom/mode_data/box_data.cc b/glom/mode_data/box_data.cc
index e2f6aef..bf98afa 100644
--- a/glom/mode_data/box_data.cc
+++ b/glom/mode_data/box_data.cc
@@ -41,7 +41,7 @@ namespace Glom
 Box_Data::Box_Data()
 : m_Button_Find(_("_Find"), true)
 #ifndef GLOM_ENABLE_CLIENT_ONLY
-  ,m_pDialogLayout(0)
+  ,m_pDialogLayout(nullptr)
 #endif // !GLOM_ENABLE_CLIENT_ONLY
 {
   m_bUnstoredData = false;
diff --git a/glom/mode_data/box_data_calendar_related.cc b/glom/mode_data/box_data_calendar_related.cc
index 1b54da9..a10c481 100644
--- a/glom/mode_data/box_data_calendar_related.cc
+++ b/glom/mode_data/box_data_calendar_related.cc
@@ -33,7 +33,7 @@ namespace Glom
 {
 
 Box_Data_Calendar_Related::Box_Data_Calendar_Related()
-: m_pMenuPopup(0),
+: m_pMenuPopup(nullptr),
   m_query_column_date_field(-1)
 {
   set_size_request(400, -1); //An arbitrary default.
@@ -378,7 +378,7 @@ void Box_Data_Calendar_Related::on_dialog_layout_hide()
 #ifndef GLOM_ENABLE_CLIENT_ONLY
 Dialog_Layout* Box_Data_Calendar_Related::create_layout_dialog() const
 {
-  Dialog_Layout_Calendar_Related* dialog = 0;
+  Dialog_Layout_Calendar_Related* dialog = nullptr;
   Glom::Utils::get_glade_widget_derived_with_warning(dialog);
   return dialog;
 }
diff --git a/glom/mode_data/box_data_details.cc b/glom/mode_data/box_data_details.cc
index 2a8931b..1501fee 100644
--- a/glom/mode_data/box_data_details.cc
+++ b/glom/mode_data/box_data_details.cc
@@ -955,7 +955,7 @@ void Box_Data_Details::print_layout()
 #ifndef GLOM_ENABLE_CLIENT_ONLY
 Dialog_Layout* Box_Data_Details::create_layout_dialog() const
 {
-  Dialog_Layout_Details* dialog = 0;
+  Dialog_Layout_Details* dialog = nullptr;
   Glom::Utils::get_glade_widget_derived_with_warning(dialog);
   return dialog;
 }
diff --git a/glom/mode_data/box_data_list.cc b/glom/mode_data/box_data_list.cc
index 50faa19..0819245 100644
--- a/glom/mode_data/box_data_list.cc
+++ b/glom/mode_data/box_data_list.cc
@@ -553,7 +553,7 @@ void Box_Data_List::on_dialog_layout_hide()
 
 Dialog_Layout* Box_Data_List::create_layout_dialog() const
 {
-  Dialog_Layout_List* dialog = 0;
+  Dialog_Layout_List* dialog = nullptr;
   Glom::Utils::get_glade_widget_derived_with_warning(dialog);
   return dialog;
 }
diff --git a/glom/mode_data/box_data_list_related.cc b/glom/mode_data/box_data_list_related.cc
index 6517296..16b85e8 100644
--- a/glom/mode_data/box_data_list_related.cc
+++ b/glom/mode_data/box_data_list_related.cc
@@ -349,7 +349,7 @@ void Box_Data_List_Related::on_dialog_layout_hide()
 #ifndef GLOM_ENABLE_CLIENT_ONLY
 Dialog_Layout* Box_Data_List_Related::create_layout_dialog() const
 {
-  Dialog_Layout_List_Related* dialog = 0;
+  Dialog_Layout_List_Related* dialog = nullptr;
   Glom::Utils::get_glade_widget_derived_with_warning(dialog);
   return dialog;
 }
diff --git a/glom/mode_data/buttonglom.cc b/glom/mode_data/buttonglom.cc
index 68f5144..14d558f 100644
--- a/glom/mode_data/buttonglom.cc
+++ b/glom/mode_data/buttonglom.cc
@@ -63,7 +63,7 @@ AppWindow* ButtonGlom::get_appwindow() const
 #ifndef GLOM_ENABLE_CLIENT_ONLY
 void ButtonGlom::on_menu_properties_activate()
 {
-  Dialog_ButtonScript* dialog = 0;
+  Dialog_ButtonScript* dialog = nullptr;
   Utils::get_glade_widget_derived_with_warning(dialog);
   if(!dialog) //Unlikely and it already warns on stderr.
     return;
diff --git a/glom/mode_data/datawidget/cellcreation.cc b/glom/mode_data/datawidget/cellcreation.cc
index f24678b..576f9c6 100644
--- a/glom/mode_data/datawidget/cellcreation.cc
+++ b/glom/mode_data/datawidget/cellcreation.cc
@@ -67,7 +67,7 @@ static void apply_formatting(Gtk::CellRenderer* renderer, const std::shared_ptr<
 
 Gtk::CellRenderer* create_cell(const std::shared_ptr<const LayoutItem>& layout_item, const Glib::ustring& 
table_name, const Document* document, guint fixed_cell_height)
 {
-  Gtk::CellRenderer* cell = 0;
+  Gtk::CellRenderer* cell = nullptr;
 
   //Create the appropriate cellrenderer type:
   std::shared_ptr<const LayoutItem_Field> item_field = std::dynamic_pointer_cast<const 
LayoutItem_Field>(layout_item);
diff --git a/glom/mode_data/datawidget/cellrenderer_dblist.cc 
b/glom/mode_data/datawidget/cellrenderer_dblist.cc
index 8f9f17c..2501a29 100644
--- a/glom/mode_data/datawidget/cellrenderer_dblist.cc
+++ b/glom/mode_data/datawidget/cellrenderer_dblist.cc
@@ -31,7 +31,7 @@ namespace Glom
 
 CellRendererDbList::CellRendererDbList()
 : m_repacked_first_cell(false),
-  m_document(0)
+  m_document(nullptr)
 {
 }
 
@@ -127,7 +127,7 @@ void CellRendererDbList::repack_cells_fixed(Gtk::CellLayout* combobox)
   {
     for(guint col = cells.size(); col != m_vec_model_columns_value_fixed.size(); ++col)
     {
-      Gtk::CellRenderer* cell = 0;
+      Gtk::CellRenderer* cell = nullptr;
       if(m_db_layout_items.empty())
         cell = Gtk::manage(new Gtk::CellRendererText);
       else if(col < m_db_layout_items.size())
@@ -165,7 +165,7 @@ void CellRendererDbList::repack_cells_related(Gtk::CellLayout* combobox)
   guint i = 0;
   for(const auto& layout_item : m_db_layout_items)
   {
-    Gtk::CellRenderer* cell = 0;
+    Gtk::CellRenderer* cell = nullptr;
 
     if(i == 0 && !m_repacked_first_cell)
     {
diff --git a/glom/mode_data/datawidget/datawidget.cc b/glom/mode_data/datawidget/datawidget.cc
index 95f0d06..e3ebe69 100644
--- a/glom/mode_data/datawidget/datawidget.cc
+++ b/glom/mode_data/datawidget/datawidget.cc
@@ -45,7 +45,7 @@ namespace Glom
 
 static DataWidgetChildren::ComboChoices* create_combo_widget_for_field(const 
std::shared_ptr<LayoutItem_Field>& field)
 {
-  DataWidgetChildren::ComboChoices* result = 0;
+  DataWidgetChildren::ComboChoices* result = nullptr;
   bool as_radio_buttons = false;
   const auto restricted = field->get_formatting_used().get_choices_restricted(as_radio_buttons);
   if(restricted)
@@ -62,8 +62,8 @@ static DataWidgetChildren::ComboChoices* create_combo_widget_for_field(const std
 }
 
 DataWidget::DataWidget(const std::shared_ptr<LayoutItem_Field>& field, const Glib::ustring& table_name, 
const Document* document)
-:  m_child(0),
-   m_button_go_to_details(0)
+:  m_child(nullptr),
+   m_button_go_to_details(nullptr)
 {
   const auto glom_type = field->get_glom_type();
   set_layout_item(field, table_name);
@@ -73,7 +73,7 @@ DataWidget::DataWidget(const std::shared_ptr<LayoutItem_Field>& field, const Gli
   const auto title = Glib::ustring::compose(_("%1:"), item_get_title_or_name(field));
 
   m_child = 0;
-  LayoutWidgetField* pFieldWidget = 0;  
+  LayoutWidgetField* pFieldWidget = nullptr;  
   if(glom_type == Field::TYPE_BOOLEAN)
   {
     DataWidgetChildren::CheckButton* checkbutton = Gtk::manage( new DataWidgetChildren::CheckButton() );
@@ -191,7 +191,7 @@ DataWidget::DataWidget(const std::shared_ptr<LayoutItem_Field>& field, const Gli
        DbUtils::layout_field_should_have_navigation(table_name, field, document, 
          field_used_in_relationship_to_one);
 
-    Gtk::Box* hbox_parent = 0; //Only used if there are extra widgets.
+    Gtk::Box* hbox_parent = nullptr; //Only used if there are extra widgets.
 
     const bool with_extra_widgets = field_used_in_relationship_to_one || add_open_button || (glom_type == 
Field::TYPE_DATE);
     if(with_extra_widgets)
@@ -469,7 +469,7 @@ std::shared_ptr<LayoutItem_Field> DataWidget::offer_field_list(const Glib::ustri
 {
   std::shared_ptr<LayoutItem_Field> result;
 
-  Dialog_ChooseField* dialog = 0;
+  Dialog_ChooseField* dialog = nullptr;
   Utils::get_glade_widget_derived_with_warning(dialog);
 
   if(dialog)
@@ -496,7 +496,7 @@ std::shared_ptr<LayoutItem_Field> DataWidget::offer_field_layout(const std::shar
 {
   std::shared_ptr<LayoutItem_Field> result;
 
-  Dialog_FieldLayout* dialog = 0;
+  Dialog_FieldLayout* dialog = nullptr;
   Utils::get_glade_widget_derived_with_warning(dialog);
   if(!dialog) //Unlikely and it already warns on stderr.
     return result;
@@ -630,7 +630,7 @@ void DataWidget::on_button_new_id()
 
 void DataWidget::on_button_choose_date()
 {
-  DataWidgetChildren::Dialog_ChooseDate* dialog = 0;
+  DataWidgetChildren::Dialog_ChooseDate* dialog = nullptr;
   Utils::get_glade_widget_derived_with_warning(dialog);
 
   if(dialog)
@@ -668,7 +668,7 @@ bool DataWidget::offer_related_record_id_find(Gnome::Gda::Value& chosen_id)
   //Initialize output variable:
   chosen_id = Gnome::Gda::Value();
 
-  DataWidgetChildren::Dialog_ChooseID* dialog = 0;
+  DataWidgetChildren::Dialog_ChooseID* dialog = nullptr;
   Glom::Utils::get_glade_widget_derived_with_warning(dialog);
 
   if(dialog)
@@ -717,7 +717,7 @@ bool DataWidget::offer_related_record_id_new(Gnome::Gda::Value& chosen_id)
   //Initialize output variable:
   chosen_id = Gnome::Gda::Value();
 
-  DataWidgetChildren::Dialog_NewRecord* dialog = 0;
+  DataWidgetChildren::Dialog_NewRecord* dialog = nullptr;
   Glom::Utils::get_glade_widget_derived_with_warning(dialog);
 
   if(dialog)
diff --git a/glom/mode_data/datawidget/dialog_choose_date.cc b/glom/mode_data/datawidget/dialog_choose_date.cc
index ccef428..2fc14fa 100644
--- a/glom/mode_data/datawidget/dialog_choose_date.cc
+++ b/glom/mode_data/datawidget/dialog_choose_date.cc
@@ -33,13 +33,13 @@ const char* Dialog_ChooseDate::glade_id("dialog_choose_date");
 const bool Dialog_ChooseDate::glade_developer(false);
 
 Dialog_ChooseDate::Dialog_ChooseDate()
-: m_calendar(0)
+: m_calendar(nullptr)
 {
 }
 
 Dialog_ChooseDate::Dialog_ChooseDate(BaseObjectType* cobject, const Glib::RefPtr<Gtk::Builder>& builder)
 : Gtk::Dialog(cobject),
-  m_calendar(0)
+  m_calendar(nullptr)
 {
   builder->get_widget("calendar", m_calendar);
 
diff --git a/glom/mode_data/datawidget/dialog_choose_id.cc b/glom/mode_data/datawidget/dialog_choose_id.cc
index a6b6ba8..e4ce6cb 100644
--- a/glom/mode_data/datawidget/dialog_choose_id.cc
+++ b/glom/mode_data/datawidget/dialog_choose_id.cc
@@ -34,24 +34,24 @@ const char* Dialog_ChooseID::glade_id("dialog_find_id");
 const bool Dialog_ChooseID::glade_developer(false);
 
 Dialog_ChooseID::Dialog_ChooseID()
-: m_label_table_name(0),
-  m_pBox_QuickFind(0),
-  m_pEntry_QuickFind(0),
-  m_pButton_QuickFind(0),
-  m_vbox_parent(0),
-  m_document(0),
+: m_label_table_name(nullptr),
+  m_pBox_QuickFind(nullptr),
+  m_pEntry_QuickFind(nullptr),
+  m_pButton_QuickFind(nullptr),
+  m_vbox_parent(nullptr),
+  m_document(nullptr),
   m_stage(STAGE_INVALID)
 {
 }
 
 Dialog_ChooseID::Dialog_ChooseID(BaseObjectType* cobject, const Glib::RefPtr<Gtk::Builder>& builder)
 : Gtk::Dialog(cobject),
-  m_label_table_name(0),
-  m_pBox_QuickFind(0),
-  m_pEntry_QuickFind(0),
-  m_pButton_QuickFind(0),
-  m_vbox_parent(0),
-  m_document(0),
+  m_label_table_name(nullptr),
+  m_pBox_QuickFind(nullptr),
+  m_pEntry_QuickFind(nullptr),
+  m_pButton_QuickFind(nullptr),
+  m_vbox_parent(nullptr),
+  m_document(nullptr),
   m_stage(STAGE_INVALID)
 {
   builder->get_widget("label_table_name", m_label_table_name);
diff --git a/glom/mode_data/datawidget/dialog_new_record.cc b/glom/mode_data/datawidget/dialog_new_record.cc
index 12209bf..91ecd5d 100644
--- a/glom/mode_data/datawidget/dialog_new_record.cc
+++ b/glom/mode_data/datawidget/dialog_new_record.cc
@@ -34,15 +34,15 @@ const char* Dialog_NewRecord::glade_id("dialog_new_record");
 const bool Dialog_NewRecord::glade_developer(false);
 
 Dialog_NewRecord::Dialog_NewRecord()
-: m_label_table_name(0),
-  m_vbox_parent(0)
+: m_label_table_name(nullptr),
+  m_vbox_parent(nullptr)
 {
 }
 
 Dialog_NewRecord::Dialog_NewRecord(BaseObjectType* cobject, const Glib::RefPtr<Gtk::Builder>& builder)
 : Gtk::Dialog(cobject),
-  m_label_table_name(0),
-  m_vbox_parent(0)
+  m_label_table_name(nullptr),
+  m_vbox_parent(nullptr)
 {
   builder->get_widget("label_table_name", m_label_table_name);
   builder->get_widget("vbox_parent", m_vbox_parent);
diff --git a/glom/mode_data/datawidget/label.cc b/glom/mode_data/datawidget/label.cc
index 665a41f..e3afb17 100644
--- a/glom/mode_data/datawidget/label.cc
+++ b/glom/mode_data/datawidget/label.cc
@@ -83,7 +83,7 @@ void Label::on_menu_properties_activate()
   if(!textobject)
     return;
 
-  Dialog_TextObject* dialog = 0;
+  Dialog_TextObject* dialog = nullptr;
   Glom::Utils::get_glade_widget_derived_with_warning(dialog);
   if(!dialog) //Unlikely and it already warns on stderr.
     return;
diff --git a/glom/mode_data/db_adddel/db_adddel.cc b/glom/mode_data/db_adddel/db_adddel.cc
index 5f4ac37..eaf98ed 100644
--- a/glom/mode_data/db_adddel/db_adddel.cc
+++ b/glom/mode_data/db_adddel/db_adddel.cc
@@ -46,7 +46,7 @@ DbAddDel::DbAddDel()
   m_column_is_sorted(false),
   m_column_sorted_direction(false),
   m_column_sorted(0),
-  m_pMenuPopup(0),
+  m_pMenuPopup(nullptr),
   m_bAllowUserActions(true),
   m_bPreventUserSignals(false),
   m_bIgnoreTreeViewSignals(false),
@@ -57,7 +57,7 @@ DbAddDel::DbAddDel()
   m_validation_retry(false),
   m_allow_view(true),
   m_allow_view_details(false),
-  m_treeviewcolumn_button(0),
+  m_treeviewcolumn_button(nullptr),
   m_fixed_cell_height(0),
   m_rows_count_min(0),
   m_rows_count_max(0)
@@ -2052,7 +2052,7 @@ void DbAddDel::set_open_button_title(const Glib::ustring& title)
 void DbAddDel::show_hint_model()
 {
   treeview_delete_all_columns();
-  m_treeviewcolumn_button = 0; //When we removed the view columns, this was deleted because it's manage()ed.
+  m_treeviewcolumn_button = nullptr; //When we removed the view columns, this was deleted because it's 
manage()ed.
 
   m_model_hint = Gtk::ListStore::create(m_columns_hint);
   auto iter = m_model_hint->append();
@@ -2442,7 +2442,7 @@ void DbAddDel::treeview_delete_all_columns()
   UiUtils::treeview_delete_all_columns(&m_TreeView);
 
   //Reset this too, because we must have just deleted it:
-  m_treeviewcolumn_button = 0;
+  m_treeviewcolumn_button = nullptr;
 }
 
 const Gtk::Window* DbAddDel::get_app_window() const
diff --git a/glom/mode_data/flowtablewithfields.cc b/glom/mode_data/flowtablewithfields.cc
index 3ed2184..c803ca3 100644
--- a/glom/mode_data/flowtablewithfields.cc
+++ b/glom/mode_data/flowtablewithfields.cc
@@ -43,16 +43,16 @@ namespace Glom
 {
 
 FlowTableWithFields::Info::Info()
-: m_first(0),
-  m_first_eventbox(0),
-  m_second(0),
-  m_checkbutton(0)
+: m_first(nullptr),
+  m_first_eventbox(nullptr),
+  m_second(nullptr),
+  m_checkbutton(nullptr)
 {
 }
 
 FlowTableWithFields::FlowTableWithFields(const Glib::ustring& table_name)
 :
-  m_placeholder(0),
+  m_placeholder(nullptr),
   m_table_name(table_name),
   m_find_mode(false)
 {
@@ -326,7 +326,7 @@ Box_Data_Calendar_Related* FlowTableWithFields::create_related_calendar(const st
 
 void FlowTableWithFields::add_layout_portal(const std::shared_ptr<LayoutItem_Portal>& portal)
 {
-  Box_Data_Portal* portal_box = 0;
+  Box_Data_Portal* portal_box = nullptr;
   std::shared_ptr<LayoutItem_CalendarPortal> calendar_portal = 
std::dynamic_pointer_cast<LayoutItem_CalendarPortal>(portal);
   if(calendar_portal)
     portal_box = create_related_calendar(calendar_portal);
@@ -475,7 +475,7 @@ void FlowTableWithFields::add_field(const std::shared_ptr<LayoutItem_Field>& lay
   }
   else
   {
-    info.m_first = 0;
+    info.m_first = nullptr;
   }
 
   //info.m_group = layoutitem_field.m_group;
@@ -1261,7 +1261,7 @@ guint FlowTableWithFields::get_sub_flowtables_max_columns() const
 
 void FlowTableWithFields::on_menu_properties_activate()
 {
-  Dialog_FlowTable* dialog = 0;
+  Dialog_FlowTable* dialog = nullptr;
   Utils::get_glade_widget_derived_with_warning(dialog);
   if(!dialog) //Unlikely and it already warns on stderr.
     return;
@@ -1327,7 +1327,7 @@ bool FlowTableWithFields::on_button_press_event(GdkEventButton *event)
 //TODO: Rename this? It's not a simpler getter. It does UI.
 std::shared_ptr<LayoutItem_Portal> FlowTableWithFields::get_portal_relationship()
 {
-  Dialog_ChooseRelationship* dialog = 0;
+  Dialog_ChooseRelationship* dialog = nullptr;
   Utils::get_glade_widget_derived_with_warning(dialog);
   if(!dialog) //Unlikely and it already warns on stderr.
     return std::shared_ptr<LayoutItem_Portal>();
diff --git a/glom/mode_design/dialog_add_related_table.cc b/glom/mode_design/dialog_add_related_table.cc
index 9a7422e..881ac1f 100644
--- a/glom/mode_design/dialog_add_related_table.cc
+++ b/glom/mode_design/dialog_add_related_table.cc
@@ -32,11 +32,11 @@ const bool Dialog_AddRelatedTable::glade_developer(true);
 Dialog_AddRelatedTable::Dialog_AddRelatedTable(BaseObjectType* cobject, const Glib::RefPtr<Gtk::Builder>& 
builder)
 : Gtk::Dialog(cobject),
   Base_DB(),
-  m_entry_table_name(0),
-  m_entry_relationship_name(0),
-  m_combo_from_field(0),
-  m_button_edit_fields(0),
-  m_button_ok(0)
+  m_entry_table_name(nullptr),
+  m_entry_relationship_name(nullptr),
+  m_combo_from_field(nullptr),
+  m_button_edit_fields(nullptr),
+  m_button_ok(nullptr)
 {
   builder->get_widget("entry_related_table_name", m_entry_table_name);
   builder->get_widget("entry_relationship_name", m_entry_relationship_name);
diff --git a/glom/mode_design/dialog_design.cc b/glom/mode_design/dialog_design.cc
index 151e589..c20e1e5 100644
--- a/glom/mode_design/dialog_design.cc
+++ b/glom/mode_design/dialog_design.cc
@@ -29,9 +29,9 @@ namespace Glom
 
 Dialog_Design::Dialog_Design(BaseObjectType* cobject, const Glib::RefPtr<Gtk::Builder>& builder)
 : Gtk::Window(cobject),
-  m_label_table(0)
+  m_label_table(nullptr)
 {
-  Gtk::Button* button_close = 0;
+  Gtk::Button* button_close = nullptr;
   builder->get_widget("button_close",  button_close);
   button_close->signal_clicked().connect( sigc::mem_fun(*this, &Dialog_Design::on_button_close) );
 
diff --git a/glom/mode_design/dialog_fields.cc b/glom/mode_design/dialog_fields.cc
index 4c2e0c4..7c7b50a 100644
--- a/glom/mode_design/dialog_fields.cc
+++ b/glom/mode_design/dialog_fields.cc
@@ -32,7 +32,7 @@ const bool Dialog_Fields::glade_developer(true);
 
 Dialog_Fields::Dialog_Fields(BaseObjectType* cobject, const Glib::RefPtr<Gtk::Builder>& builder)
 : Dialog_Design(cobject, builder),
-  m_box(0)
+  m_box(nullptr)
 {
   builder->get_widget_derived("vbox_placeholder", m_box);
 
diff --git a/glom/mode_design/dialog_initial_password.cc b/glom/mode_design/dialog_initial_password.cc
index ac96406..c9a8266 100644
--- a/glom/mode_design/dialog_initial_password.cc
+++ b/glom/mode_design/dialog_initial_password.cc
@@ -32,8 +32,8 @@ const bool Dialog_InitialPassword::glade_developer(true);
 Dialog_InitialPassword::Dialog_InitialPassword(BaseObjectType* cobject, const Glib::RefPtr<Gtk::Builder>& 
builder)
 : Gtk::Dialog(cobject),
   Base_DB(),
-  m_entry_user(0),
-  m_entry_password(0)
+  m_entry_user(nullptr),
+  m_entry_password(nullptr)
 {
   builder->get_widget("entry_user", m_entry_user);
   builder->get_widget("entry_password", m_entry_password);
diff --git a/glom/mode_design/dialog_relationships.cc b/glom/mode_design/dialog_relationships.cc
index 88fd0b4..7eafbc6 100644
--- a/glom/mode_design/dialog_relationships.cc
+++ b/glom/mode_design/dialog_relationships.cc
@@ -32,7 +32,7 @@ const bool Dialog_Relationships::glade_developer(true);
 
 Dialog_Relationships::Dialog_Relationships(BaseObjectType* cobject, const Glib::RefPtr<Gtk::Builder>& 
builder)
 : Dialog_Design(cobject, builder),
-  m_box(0)
+  m_box(nullptr)
 {
   builder->get_widget_derived("vbox_placeholder", m_box);
 
diff --git a/glom/mode_design/fields/box_db_table_definition.cc 
b/glom/mode_design/fields/box_db_table_definition.cc
index 0384931..c611d50 100644
--- a/glom/mode_design/fields/box_db_table_definition.cc
+++ b/glom/mode_design/fields/box_db_table_definition.cc
@@ -31,8 +31,8 @@ namespace Glom
 {
 
 Box_DB_Table_Definition::Box_DB_Table_Definition()
-: m_dialog_field_definition(0),
-  m_dialog_default_formatting(0)
+: m_dialog_field_definition(nullptr),
+  m_dialog_default_formatting(nullptr)
 {
   init();
 }
diff --git a/glom/mode_design/fields/dialog_defaultformatting.cc 
b/glom/mode_design/fields/dialog_defaultformatting.cc
index 9b17368..67c1163 100644
--- a/glom/mode_design/fields/dialog_defaultformatting.cc
+++ b/glom/mode_design/fields/dialog_defaultformatting.cc
@@ -35,8 +35,8 @@ const bool Dialog_DefaultFormatting::glade_developer(true);
 
 Dialog_DefaultFormatting::Dialog_DefaultFormatting(BaseObjectType* cobject, const 
Glib::RefPtr<Gtk::Builder>& builder)
 : Dialog_Properties(cobject, builder),
-  m_box_formatting_placeholder(0),
-  m_box_formatting(0)
+  m_box_formatting_placeholder(nullptr),
+  m_box_formatting(nullptr)
 {
   //Get the place to put the Formatting stuff:
   builder->get_widget("box_formatting_placeholder", m_box_formatting_placeholder);
diff --git a/glom/mode_design/fields/dialog_fielddefinition.cc 
b/glom/mode_design/fields/dialog_fielddefinition.cc
index fbe1416..1d0367f 100644
--- a/glom/mode_design/fields/dialog_fielddefinition.cc
+++ b/glom/mode_design/fields/dialog_fielddefinition.cc
@@ -36,7 +36,7 @@ const bool Dialog_FieldDefinition::glade_developer(true);
 
 Dialog_FieldDefinition::Dialog_FieldDefinition(BaseObjectType* cobject, const Glib::RefPtr<Gtk::Builder>& 
builder)
 : Dialog_Properties(cobject, builder),
-  m_pDataWidget_DefaultValueSimple(0)
+  m_pDataWidget_DefaultValueSimple(nullptr)
 {
   builder->get_widget_derived("combobox_type", m_pCombo_Type);
 
@@ -140,7 +140,7 @@ void Dialog_FieldDefinition::set_field(const std::shared_ptr<const Field>& field
 
   //Create an appropriate DataWidget for the default value:
   delete m_pDataWidget_DefaultValueSimple;
-  m_pDataWidget_DefaultValueSimple = 0;
+  m_pDataWidget_DefaultValueSimple = nullptr;
 
   //We use a regular DataWidget for the default value, so we can reuse its functionality,
   //but it's not a real field - hence the special title.
@@ -366,7 +366,7 @@ void Dialog_FieldDefinition::on_combo_lookup_relationship_changed()
 void Dialog_FieldDefinition::on_button_edit_calculation()
 {
   //TODO: Share a global instance, to make this quicker?
-  Dialog_FieldCalculation* dialog = 0;
+  Dialog_FieldCalculation* dialog = nullptr;
   Utils::get_glade_widget_derived_with_warning(dialog);
   if(!dialog) //Unlikely and it already warns on stderr.
     return;
diff --git a/glom/mode_design/layout/combobox_fields.cc b/glom/mode_design/layout/combobox_fields.cc
index 1dc7bb6..bba4ad1 100644
--- a/glom/mode_design/layout/combobox_fields.cc
+++ b/glom/mode_design/layout/combobox_fields.cc
@@ -29,7 +29,7 @@ namespace Glom
 
 ComboBox_Fields::ComboBox_Fields(BaseObjectType* cobject, const Glib::RefPtr<Gtk::Builder>& /* builder */)
 : Gtk::ComboBox(cobject),
-  m_renderer_title(0)
+  m_renderer_title(nullptr)
 {
   m_model = Gtk::TreeStore::create(m_model_columns);
 
diff --git a/glom/mode_design/layout/combobox_relationship.cc 
b/glom/mode_design/layout/combobox_relationship.cc
index db96f7e..cd869ef 100644
--- a/glom/mode_design/layout/combobox_relationship.cc
+++ b/glom/mode_design/layout/combobox_relationship.cc
@@ -27,8 +27,8 @@ namespace Glom
 
 ComboBox_Relationship::ComboBox_Relationship(BaseObjectType* cobject, const Glib::RefPtr<Gtk::Builder>& /* 
builder */)
 : Gtk::ComboBox(cobject),
-  m_renderer_title(0),
-  m_renderer_fromfield(0)
+  m_renderer_title(nullptr),
+  m_renderer_fromfield(nullptr)
 {
   m_model = Gtk::TreeStore::create(m_model_columns);
 
diff --git a/glom/mode_design/layout/dialog_choose_field.cc b/glom/mode_design/layout/dialog_choose_field.cc
index 64511ef..82fdf40 100644
--- a/glom/mode_design/layout/dialog_choose_field.cc
+++ b/glom/mode_design/layout/dialog_choose_field.cc
@@ -33,11 +33,11 @@ const bool Dialog_ChooseField::glade_developer(true);
 
 Dialog_ChooseField::Dialog_ChooseField(BaseObjectType* cobject, const Glib::RefPtr<Gtk::Builder>& builder)
 : Gtk::Dialog(cobject),
-  m_combo_relationship(0),
-  m_button_select(0),
-  m_checkbutton_show_related_relationships(0),
-  m_treeview(0),
-  m_document(0)
+  m_combo_relationship(nullptr),
+  m_button_select(nullptr),
+  m_checkbutton_show_related_relationships(nullptr),
+  m_treeview(nullptr),
+  m_document(nullptr)
 {
   builder->get_widget("checkbutton_show_related_relationships", m_checkbutton_show_related_relationships);
   m_checkbutton_show_related_relationships->set_active(false); //Start with the simpler list, to avoid 
confusing people.
diff --git a/glom/mode_design/layout/dialog_choose_relationship.cc 
b/glom/mode_design/layout/dialog_choose_relationship.cc
index 3702499..d9ddf1c 100644
--- a/glom/mode_design/layout/dialog_choose_relationship.cc
+++ b/glom/mode_design/layout/dialog_choose_relationship.cc
@@ -29,19 +29,19 @@ const char* Dialog_ChooseRelationship::glade_id("dialog_choose_relationship");
 const bool Dialog_ChooseRelationship::glade_developer(true);
 
 Dialog_ChooseRelationship::Dialog_ChooseRelationship()
-: m_label_table_name(0),
-  m_button_select(0),
-  m_treeview(0),
-  m_document(0)
+: m_label_table_name(nullptr),
+  m_button_select(nullptr),
+  m_treeview(nullptr),
+  m_document(nullptr)
 {
 }
 
 Dialog_ChooseRelationship::Dialog_ChooseRelationship(BaseObjectType* cobject, const 
Glib::RefPtr<Gtk::Builder>& builder)
 : Gtk::Dialog(cobject),
-  m_label_table_name(0),
-  m_button_select(0),
-  m_treeview(0),
-  m_document(0)
+  m_label_table_name(nullptr),
+  m_button_select(nullptr),
+  m_treeview(nullptr),
+  m_document(nullptr)
 {
   builder->get_widget("button_select", m_button_select);
   builder->get_widget("label_table_name", m_label_table_name);
diff --git a/glom/mode_design/layout/dialog_layout.cc b/glom/mode_design/layout/dialog_layout.cc
index d022e1e..f1bbaf4 100644
--- a/glom/mode_design/layout/dialog_layout.cc
+++ b/glom/mode_design/layout/dialog_layout.cc
@@ -27,12 +27,12 @@ namespace Glom
 
 Dialog_Layout::Dialog_Layout(BaseObjectType* cobject, const Glib::RefPtr<Gtk::Builder>& builder, bool 
with_table_title)
 : Gtk::Dialog(cobject),
-  m_entry_table_title(0),
-  m_label_table_title(0),
+  m_entry_table_title(nullptr),
+  m_label_table_title(nullptr),
   m_editable_layout(true),
   m_modified(false)
 {
-  Gtk::Button* button = 0;
+  Gtk::Button* button = nullptr;
   builder->get_widget("button_close", button);
   button->signal_clicked().connect( sigc::mem_fun(*this, &Dialog_Layout::on_button_close) );
 
diff --git a/glom/mode_design/layout/dialog_layout_calendar_related.cc 
b/glom/mode_design/layout/dialog_layout_calendar_related.cc
index 683625a..3546b5f 100644
--- a/glom/mode_design/layout/dialog_layout_calendar_related.cc
+++ b/glom/mode_design/layout/dialog_layout_calendar_related.cc
@@ -37,13 +37,13 @@ const bool Dialog_Layout_Calendar_Related::glade_developer(true);
 
 Dialog_Layout_Calendar_Related::Dialog_Layout_Calendar_Related(BaseObjectType* cobject, const 
Glib::RefPtr<Gtk::Builder>& builder)
 : Dialog_Layout_List(cobject, builder),
-  m_combo_relationship(0),
-  m_checkbutton_show_child_relationships(0),
-  m_radio_navigation_automatic(0),
-  m_radio_navigation_specify(0),
-  m_label_navigation_automatic(0),
-  m_combo_navigation_specify(0),
-  m_combobox_date_field(0)
+  m_combo_relationship(nullptr),
+  m_checkbutton_show_child_relationships(nullptr),
+  m_radio_navigation_automatic(nullptr),
+  m_radio_navigation_specify(nullptr),
+  m_label_navigation_automatic(nullptr),
+  m_combo_navigation_specify(nullptr),
+  m_combobox_date_field(nullptr)
 {
   // Show the appropriate alternate widgets:
   m_box_table_widgets->hide();
@@ -87,7 +87,7 @@ Dialog_Layout_Calendar_Related::Dialog_Layout_Calendar_Related(BaseObjectType* c
 
   //The base class hid this, but we do want it here:
   //(We share one glade definition for several dialogs.)
-  Gtk::Frame* box_calendar = 0;
+  Gtk::Frame* box_calendar = nullptr;
   builder->get_widget("frame_calendar", box_calendar);
   box_calendar->show();
 
diff --git a/glom/mode_design/layout/dialog_layout_details.cc 
b/glom/mode_design/layout/dialog_layout_details.cc
index fc22680..3582f71 100644
--- a/glom/mode_design/layout/dialog_layout_details.cc
+++ b/glom/mode_design/layout/dialog_layout_details.cc
@@ -38,30 +38,30 @@ const bool Dialog_Layout_Details::glade_developer(true);
 
 Dialog_Layout_Details::Dialog_Layout_Details(BaseObjectType* cobject, const Glib::RefPtr<Gtk::Builder>& 
builder)
 : Dialog_Layout(cobject, builder),
-  m_treeview_fields(0),
-  m_treeview_column_title(0),
-  m_treeview_column_group_columns(0),
-  m_treeview_column_column_width(0),
-  m_box_table_widgets(0),
-  m_box_related_table_widgets(0),
-  m_box_related_navigation(0),
-  m_button_up(0),
-  m_button_down(0),
-  m_button_add_field(0),
-  m_button_add_group(0),
-  m_button_add_notebook(0),
-  m_button_add_related(0),
-  m_button_add_related_calendar(0),
-  m_button_add_button(0),
-  m_button_add_text(0),
-  m_button_add_image(0),
-  m_button_field_delete(0),
-  m_button_formatting(0),
-  m_button_edit(0),
-  m_label_table_name(0),
-  m_hbox_rows_count(0),
-  m_spinbutton_rows_count_min(0),
-  m_spinbutton_rows_count_max(0)
+  m_treeview_fields(nullptr),
+  m_treeview_column_title(nullptr),
+  m_treeview_column_group_columns(nullptr),
+  m_treeview_column_column_width(nullptr),
+  m_box_table_widgets(nullptr),
+  m_box_related_table_widgets(nullptr),
+  m_box_related_navigation(nullptr),
+  m_button_up(nullptr),
+  m_button_down(nullptr),
+  m_button_add_field(nullptr),
+  m_button_add_group(nullptr),
+  m_button_add_notebook(nullptr),
+  m_button_add_related(nullptr),
+  m_button_add_related_calendar(nullptr),
+  m_button_add_button(nullptr),
+  m_button_add_text(nullptr),
+  m_button_add_image(nullptr),
+  m_button_field_delete(nullptr),
+  m_button_formatting(nullptr),
+  m_button_edit(nullptr),
+  m_label_table_name(nullptr),
+  m_hbox_rows_count(nullptr),
+  m_spinbutton_rows_count_min(nullptr),
+  m_spinbutton_rows_count_max(nullptr)
 {
   // Get the alternate sets of widgets, only one of which should be shown:
   // Derived classes will hide one and show the other:
@@ -74,7 +74,7 @@ Dialog_Layout_Details::Dialog_Layout_Details(BaseObjectType* cobject, const Glib
   builder->get_widget("frame_lines", m_box_frame_lines);
   m_box_frame_lines->hide();
 
-  Gtk::Frame* box_calendar = 0;
+  Gtk::Frame* box_calendar = nullptr;
   builder->get_widget("frame_calendar", box_calendar);
   box_calendar->hide();
 
@@ -557,7 +557,7 @@ std::shared_ptr<LayoutItem_Button> Dialog_Layout_Details::offer_button_script_ed
 {
   std::shared_ptr<LayoutItem_Button> result;
 
-  Dialog_ButtonScript* dialog = 0;
+  Dialog_ButtonScript* dialog = nullptr;
   Glom::Utils::get_glade_widget_derived_with_warning(dialog);
   if(!dialog) //Unlikely and it already warns on stderr.
     return result;
@@ -586,7 +586,7 @@ std::shared_ptr<Relationship> Dialog_Layout_Details::offer_relationship_list(con
 {
   std::shared_ptr<Relationship> result = glom_sharedptr_clone(item);
 
-  Dialog_ChooseRelationship* dialog = 0;
+  Dialog_ChooseRelationship* dialog = nullptr;
   Utils::get_glade_widget_derived_with_warning(dialog);
   if(!dialog) //Unlikely and it already warns on stderr.
     return result;
@@ -1332,7 +1332,7 @@ void Dialog_Layout_Details::on_treeview_cell_edited_column_width(const Glib::ust
       if(layout_item)
       {
         //Convert the text to a number, using the same logic used by GtkCellRendererText when it stores 
numbers.
-        char* pchEnd = 0;
+        char* pchEnd = nullptr;
         const auto new_value = static_cast<guint>( strtod(new_text.c_str(), &pchEnd) );
 
         //Store the user's new value in the model:
@@ -1367,7 +1367,7 @@ void Dialog_Layout_Details::on_treeview_cell_edited_group_columns(const Glib::us
       //new_value << astream; //Get it out of the stream as the numerical type.
 
       //Convert the text to a number, using the same logic used by GtkCellRendererText when it stores 
numbers.
-      char* pchEnd = 0;
+      char* pchEnd = nullptr;
       guint new_value = static_cast<guint>( strtod(new_text.c_str(), &pchEnd) );
 
       //Don't allow a 0 columns_count:
diff --git a/glom/mode_design/layout/dialog_layout_export.cc b/glom/mode_design/layout/dialog_layout_export.cc
index f4a6ee9..9230dc5 100644
--- a/glom/mode_design/layout/dialog_layout_export.cc
+++ b/glom/mode_design/layout/dialog_layout_export.cc
@@ -34,16 +34,16 @@ const bool Dialog_Layout_Export::glade_developer(true);
 
 Dialog_Layout_Export::Dialog_Layout_Export(BaseObjectType* cobject, const Glib::RefPtr<Gtk::Builder>& 
builder)
 : Dialog_Layout(cobject, builder, false /* no table title */),
-  m_treeview_fields(0),
-  m_button_field_up(0),
-  m_button_field_down(0),
-  m_button_field_add(0),
-  m_button_field_delete(0),
-  m_button_field_edit(0),
-  m_label_table_name(0)
+  m_treeview_fields(nullptr),
+  m_button_field_up(nullptr),
+  m_button_field_down(nullptr),
+  m_button_field_add(nullptr),
+  m_button_field_delete(nullptr),
+  m_button_field_edit(nullptr),
+  m_label_table_name(nullptr)
 {
   builder->get_widget("label_table_name", m_label_table_name);
-  m_entry_table_title = 0; //Not in this glade file.
+  m_entry_table_title = nullptr; //Not in this glade file.
 
   builder->get_widget("treeview_fields", m_treeview_fields);
   if(m_treeview_fields)
diff --git a/glom/mode_design/layout/dialog_layout_list.cc b/glom/mode_design/layout/dialog_layout_list.cc
index d0d17ea..3c2eb85 100644
--- a/glom/mode_design/layout/dialog_layout_list.cc
+++ b/glom/mode_design/layout/dialog_layout_list.cc
@@ -44,7 +44,7 @@ Dialog_Layout_List::Dialog_Layout_List(BaseObjectType* cobject, const Glib::RefP
 
   //We don't want this part of the dialog:
   //(We share one glade definition for several dialogs.)
-  Gtk::Frame* box_calendar = 0;
+  Gtk::Frame* box_calendar = nullptr;
   builder->get_widget("frame_calendar", box_calendar); 
   box_calendar->hide();
 
diff --git a/glom/mode_design/layout/dialog_layout_list_related.cc 
b/glom/mode_design/layout/dialog_layout_list_related.cc
index 50afe02..8534ff6 100644
--- a/glom/mode_design/layout/dialog_layout_list_related.cc
+++ b/glom/mode_design/layout/dialog_layout_list_related.cc
@@ -39,16 +39,16 @@ const bool Dialog_Layout_List_Related::glade_developer(true);
 
 Dialog_Layout_List_Related::Dialog_Layout_List_Related(BaseObjectType* cobject, const 
Glib::RefPtr<Gtk::Builder>& builder)
 : Dialog_Layout_List(cobject, builder),
-  m_combo_relationship(0),
-  m_checkbutton_show_child_relationships(0),
-  m_radio_navigation_automatic(0),
-  m_radio_navigation_none(0),
-  m_radio_navigation_specify(0),
-  m_label_navigation_automatic(0),
-  m_combo_navigation_specify(0),
-  m_spinbutton_row_line_width(0),
-  m_spinbutton_column_line_width(0),
-  m_colorbutton_line(0),
+  m_combo_relationship(nullptr),
+  m_checkbutton_show_child_relationships(nullptr),
+  m_radio_navigation_automatic(nullptr),
+  m_radio_navigation_none(nullptr),
+  m_radio_navigation_specify(nullptr),
+  m_label_navigation_automatic(nullptr),
+  m_combo_navigation_specify(nullptr),
+  m_spinbutton_row_line_width(nullptr),
+  m_spinbutton_column_line_width(nullptr),
+  m_colorbutton_line(nullptr),
   m_for_print_layout(false)
 {  
   // Show the appropriate alternate widgets:
diff --git a/glom/mode_design/layout/layout_item_dialogs/box_formatting.cc 
b/glom/mode_design/layout/layout_item_dialogs/box_formatting.cc
index 7b8b70e..edb5051 100644
--- a/glom/mode_design/layout/layout_item_dialogs/box_formatting.cc
+++ b/glom/mode_design/layout/layout_item_dialogs/box_formatting.cc
@@ -34,42 +34,42 @@ const bool Box_Formatting::glade_developer(true);
 
 Box_Formatting::Box_Formatting(BaseObjectType* cobject, const Glib::RefPtr<Gtk::Builder>& builder)
 : Gtk::Box(cobject),
-  m_vbox_numeric_format(0),
-  m_checkbox_format_use_thousands(0),
-  m_checkbox_format_use_decimal_places(0),
-  m_entry_format_decimal_places(0),
-  m_entry_currency_symbol(0),
-  m_checkbox_format_color_negatives(0),
-  m_vbox_text_format(0),
-  m_combo_format_text_horizontal_alignment(0),
-  m_checkbox_format_text_multiline(0),
-  m_label_format_text_multiline_height(0),
-  m_spinbutton_format_text_multiline_height(0),
-  m_hbox_font(0),
-  m_checkbox_format_text_font(0),
-  m_fontbutton(0),
-  m_hbox_color_foreground(0),
-  m_checkbox_format_text_color_foreground(0),
-  m_colorbutton_foreground(0),
-  m_hbox_color_background(0),
-  m_checkbox_format_text_color_background(0),
-  m_colorbutton_background(0),
-  m_vbox_choices(0),
-  m_radiobutton_choices_custom(0),
-  m_radiobutton_choices_related(0),
-  m_checkbutton_choices_restricted(0),
-  m_checkbutton_choices_restricted_as_radio_buttons(0),
-  m_adddel_choices_custom(0),
+  m_vbox_numeric_format(nullptr),
+  m_checkbox_format_use_thousands(nullptr),
+  m_checkbox_format_use_decimal_places(nullptr),
+  m_entry_format_decimal_places(nullptr),
+  m_entry_currency_symbol(nullptr),
+  m_checkbox_format_color_negatives(nullptr),
+  m_vbox_text_format(nullptr),
+  m_combo_format_text_horizontal_alignment(nullptr),
+  m_checkbox_format_text_multiline(nullptr),
+  m_label_format_text_multiline_height(nullptr),
+  m_spinbutton_format_text_multiline_height(nullptr),
+  m_hbox_font(nullptr),
+  m_checkbox_format_text_font(nullptr),
+  m_fontbutton(nullptr),
+  m_hbox_color_foreground(nullptr),
+  m_checkbox_format_text_color_foreground(nullptr),
+  m_colorbutton_foreground(nullptr),
+  m_hbox_color_background(nullptr),
+  m_checkbox_format_text_color_background(nullptr),
+  m_colorbutton_background(nullptr),
+  m_vbox_choices(nullptr),
+  m_radiobutton_choices_custom(nullptr),
+  m_radiobutton_choices_related(nullptr),
+  m_checkbutton_choices_restricted(nullptr),
+  m_checkbutton_choices_restricted_as_radio_buttons(nullptr),
+  m_adddel_choices_custom(nullptr),
   m_col_index_custom_choices(0),
-  m_combo_choices_relationship(0),
-  m_combo_choices_field(0),
-  m_label_choices_extra_fields(0),
-  m_button_choices_extra_fields(0),
-  m_label_choices_sortby(0),
-  m_button_choices_sortby(0),
-  m_checkbutton_choices_related_show_all(0),
-  m_dialog_choices_extra_fields(0),
-  m_dialog_choices_sortby(0),
+  m_combo_choices_relationship(nullptr),
+  m_combo_choices_field(nullptr),
+  m_label_choices_extra_fields(nullptr),
+  m_button_choices_extra_fields(nullptr),
+  m_label_choices_sortby(nullptr),
+  m_button_choices_sortby(nullptr),
+  m_checkbutton_choices_related_show_all(nullptr),
+  m_dialog_choices_extra_fields(nullptr),
+  m_dialog_choices_sortby(nullptr),
   m_for_print_layout(false),
   m_show_numeric(true),
   m_show_editable_options(true)
diff --git a/glom/mode_design/layout/layout_item_dialogs/dialog_field_layout.cc 
b/glom/mode_design/layout/layout_item_dialogs/dialog_field_layout.cc
index a4833e4..dbce887 100644
--- a/glom/mode_design/layout/layout_item_dialogs/dialog_field_layout.cc
+++ b/glom/mode_design/layout/layout_item_dialogs/dialog_field_layout.cc
@@ -32,15 +32,15 @@ const bool Dialog_FieldLayout::glade_developer(true);
 
 Dialog_FieldLayout::Dialog_FieldLayout(BaseObjectType* cobject, const Glib::RefPtr<Gtk::Builder>& builder)
 : Gtk::Dialog(cobject),
-  m_label_field_name(0),
-  m_checkbutton_editable(0),
-  m_radiobutton_title_default(0),
-  m_label_title_default(0),
-  m_radiobutton_title_custom(0),
-  m_entry_title_custom(0),
-  m_box_formatting_placeholder(0),
-  m_radiobutton_custom_formatting(0),
-  m_box_formatting(0)
+  m_label_field_name(nullptr),
+  m_checkbutton_editable(nullptr),
+  m_radiobutton_title_default(nullptr),
+  m_label_title_default(nullptr),
+  m_radiobutton_title_custom(nullptr),
+  m_entry_title_custom(nullptr),
+  m_box_formatting_placeholder(nullptr),
+  m_radiobutton_custom_formatting(nullptr),
+  m_box_formatting(nullptr)
 {
   builder->get_widget("label_field_name", m_label_field_name);
   builder->get_widget("checkbutton_editable", m_checkbutton_editable);
diff --git a/glom/mode_design/layout/layout_item_dialogs/dialog_field_summary.cc 
b/glom/mode_design/layout/layout_item_dialogs/dialog_field_summary.cc
index be07a52..eb1dbd8 100644
--- a/glom/mode_design/layout/layout_item_dialogs/dialog_field_summary.cc
+++ b/glom/mode_design/layout/layout_item_dialogs/dialog_field_summary.cc
@@ -30,9 +30,9 @@ const bool Dialog_FieldSummary::glade_developer(true);
 
 Dialog_FieldSummary::Dialog_FieldSummary(BaseObjectType* cobject, const Glib::RefPtr<Gtk::Builder>& builder)
 : Gtk::Dialog(cobject),
-  m_label_field(0),
-  m_combo_summarytype(0),
-  m_button_field(0)
+  m_label_field(nullptr),
+  m_combo_summarytype(nullptr),
+  m_button_field(nullptr)
 {
   builder->get_widget("label_field", m_label_field);
   builder->get_widget_derived("combobox_summarytype", m_combo_summarytype);
diff --git a/glom/mode_design/layout/layout_item_dialogs/dialog_fieldslist.cc 
b/glom/mode_design/layout/layout_item_dialogs/dialog_fieldslist.cc
index 3a05d1a..f70be03 100644
--- a/glom/mode_design/layout/layout_item_dialogs/dialog_fieldslist.cc
+++ b/glom/mode_design/layout/layout_item_dialogs/dialog_fieldslist.cc
@@ -32,14 +32,14 @@ const bool Dialog_FieldsList::glade_developer(true);
 
 Dialog_FieldsList::Dialog_FieldsList(BaseObjectType* cobject, const Glib::RefPtr<Gtk::Builder>& builder)
 : Dialog_Layout(cobject, builder, false /* means no table title */),
-  m_treeview_fields(0),
-  m_button_field_up(0),
-  m_button_field_down(0),
-  m_button_field_add(0),
-  m_button_field_delete(0),
-  m_button_field_edit(0),
-  m_button_field_formatting(0),
-  m_label_table_name(0)
+  m_treeview_fields(nullptr),
+  m_button_field_up(nullptr),
+  m_button_field_down(nullptr),
+  m_button_field_add(nullptr),
+  m_button_field_delete(nullptr),
+  m_button_field_edit(nullptr),
+  m_button_field_formatting(nullptr),
+  m_label_table_name(nullptr)
 {
   builder->get_widget("label_table_name", m_label_table_name);
 
diff --git a/glom/mode_design/layout/layout_item_dialogs/dialog_formatting.cc 
b/glom/mode_design/layout/layout_item_dialogs/dialog_formatting.cc
index dd42588..f95ec32 100644
--- a/glom/mode_design/layout/layout_item_dialogs/dialog_formatting.cc
+++ b/glom/mode_design/layout/layout_item_dialogs/dialog_formatting.cc
@@ -27,7 +27,7 @@ namespace Glom
 {
 
 Dialog_Formatting::Dialog_Formatting()
-: m_box_formatting(0)
+: m_box_formatting(nullptr)
 {
   set_title(_("Formatting"));
   set_border_width(6);
diff --git a/glom/mode_design/layout/layout_item_dialogs/dialog_group_by.cc 
b/glom/mode_design/layout/layout_item_dialogs/dialog_group_by.cc
index 5f74386..11296cf 100644
--- a/glom/mode_design/layout/layout_item_dialogs/dialog_group_by.cc
+++ b/glom/mode_design/layout/layout_item_dialogs/dialog_group_by.cc
@@ -33,16 +33,16 @@ const bool Dialog_GroupBy::glade_developer(true);
 
 Dialog_GroupBy::Dialog_GroupBy(BaseObjectType* cobject, const Glib::RefPtr<Gtk::Builder>& builder)
 : Gtk::Dialog(cobject),
-  m_label_group_by(0),
-  m_label_sort_by(0),
-  m_label_secondary_fields(0),
-  m_button_field_group_by(0),
-  m_button_formatting_group_by(0),
-  m_button_field_sort_by(0),
-  m_button_secondary_fields(0),
-  m_comboboxentry_border_width(0),
-  m_dialog_choose_secondary_fields(0),
-  m_dialog_choose_sort_fields(0)
+  m_label_group_by(nullptr),
+  m_label_sort_by(nullptr),
+  m_label_secondary_fields(nullptr),
+  m_button_field_group_by(nullptr),
+  m_button_formatting_group_by(nullptr),
+  m_button_field_sort_by(nullptr),
+  m_button_secondary_fields(nullptr),
+  m_comboboxentry_border_width(nullptr),
+  m_dialog_choose_secondary_fields(nullptr),
+  m_dialog_choose_sort_fields(nullptr)
 {
   builder->get_widget("label_group_by", m_label_group_by);
   builder->get_widget("label_sort_by", m_label_sort_by);
diff --git a/glom/mode_design/layout/layout_item_dialogs/dialog_imageobject.cc 
b/glom/mode_design/layout/layout_item_dialogs/dialog_imageobject.cc
index 7df0816..a942cbd 100644
--- a/glom/mode_design/layout/layout_item_dialogs/dialog_imageobject.cc
+++ b/glom/mode_design/layout/layout_item_dialogs/dialog_imageobject.cc
@@ -35,9 +35,9 @@ const bool Dialog_ImageObject::glade_developer(true);
 
 Dialog_ImageObject::Dialog_ImageObject(BaseObjectType* cobject, const Glib::RefPtr<Gtk::Builder>& builder)
 : Gtk::Dialog(cobject),
-  m_box_title(0),
-  m_entry_title(0),
-  m_image(0)
+  m_box_title(nullptr),
+  m_entry_title(nullptr),
+  m_image(nullptr)
 {
   builder->get_widget("vbox_title", m_box_title);
   builder->get_widget("entry_title", m_entry_title);
diff --git a/glom/mode_design/layout/layout_item_dialogs/dialog_line.cc 
b/glom/mode_design/layout/layout_item_dialogs/dialog_line.cc
index 021ec46..7453c38 100644
--- a/glom/mode_design/layout/layout_item_dialogs/dialog_line.cc
+++ b/glom/mode_design/layout/layout_item_dialogs/dialog_line.cc
@@ -34,8 +34,8 @@ const bool Dialog_Line::glade_developer(true);
 
 Dialog_Line::Dialog_Line(BaseObjectType* cobject, const Glib::RefPtr<Gtk::Builder>& builder)
 : Gtk::Dialog(cobject),
-  m_spinbutton_line_width(0),
-  m_colorbutton(0)
+  m_spinbutton_line_width(nullptr),
+  m_colorbutton(nullptr)
 {
   builder->get_widget("spinbutton_line_width",  m_spinbutton_line_width);
   builder->get_widget("colorbutton",  m_colorbutton);
diff --git a/glom/mode_design/layout/layout_item_dialogs/dialog_notebook.cc 
b/glom/mode_design/layout/layout_item_dialogs/dialog_notebook.cc
index 44dd71f..b4d5790 100644
--- a/glom/mode_design/layout/layout_item_dialogs/dialog_notebook.cc
+++ b/glom/mode_design/layout/layout_item_dialogs/dialog_notebook.cc
@@ -33,11 +33,11 @@ const bool Dialog_Notebook::glade_developer(true);
 
 Dialog_Notebook::Dialog_Notebook(BaseObjectType* cobject, const Glib::RefPtr<Gtk::Builder>& builder)
 : Dialog_Layout(cobject, builder, false /* means no table title */),
-  m_treeview(0),
-  m_button_up(0),
-  m_button_down(0),
-  m_button_add(0),
-  m_button_delete(0)
+  m_treeview(nullptr),
+  m_button_up(nullptr),
+  m_button_down(nullptr),
+  m_button_add(nullptr),
+  m_button_delete(nullptr)
 {
   builder->get_widget("treeview", m_treeview);
   if(m_treeview)
diff --git a/glom/mode_design/layout/layout_item_dialogs/dialog_sortfields.cc 
b/glom/mode_design/layout/layout_item_dialogs/dialog_sortfields.cc
index 15e519a..dc0d133 100644
--- a/glom/mode_design/layout/layout_item_dialogs/dialog_sortfields.cc
+++ b/glom/mode_design/layout/layout_item_dialogs/dialog_sortfields.cc
@@ -32,13 +32,13 @@ const bool Dialog_SortFields::glade_developer(true);
 
 Dialog_SortFields::Dialog_SortFields(BaseObjectType* cobject, const Glib::RefPtr<Gtk::Builder>& builder)
 : Dialog_Layout(cobject, builder, false /* means no table title */),
-  m_treeview_fields(0),
-  m_button_field_up(0),
-  m_button_field_down(0),
-  m_button_field_add(0),
-  m_button_field_delete(0),
-  m_button_field_edit(0),
-  m_label_table_name(0)
+  m_treeview_fields(nullptr),
+  m_button_field_up(nullptr),
+  m_button_field_down(nullptr),
+  m_button_field_add(nullptr),
+  m_button_field_delete(nullptr),
+  m_button_field_edit(nullptr),
+  m_label_table_name(nullptr)
 {
   builder->get_widget("label_table_name", m_label_table_name);
 
diff --git a/glom/mode_design/layout/layout_item_dialogs/dialog_textobject.cc 
b/glom/mode_design/layout/layout_item_dialogs/dialog_textobject.cc
index 937ee39..0d28c25 100644
--- a/glom/mode_design/layout/layout_item_dialogs/dialog_textobject.cc
+++ b/glom/mode_design/layout/layout_item_dialogs/dialog_textobject.cc
@@ -34,9 +34,9 @@ const bool Dialog_TextObject::glade_developer(true);
 
 Dialog_TextObject::Dialog_TextObject(BaseObjectType* cobject, const Glib::RefPtr<Gtk::Builder>& builder)
 : Gtk::Dialog(cobject),
-  m_box_title(0),
-  m_entry_title(0),
-  m_text_view(0)
+  m_box_title(nullptr),
+  m_entry_title(nullptr),
+  m_text_view(nullptr)
 {
   builder->get_widget("vbox_title",  m_box_title);
   builder->get_widget("entry_title",  m_entry_title);
diff --git a/glom/mode_design/print_layouts/box_print_layouts.cc 
b/glom/mode_design/print_layouts/box_print_layouts.cc
index 7bf3bfe..ac77e4a 100644
--- a/glom/mode_design/print_layouts/box_print_layouts.cc
+++ b/glom/mode_design/print_layouts/box_print_layouts.cc
@@ -39,11 +39,11 @@ Box_Print_Layouts::Box_Print_Layouts(BaseObjectType* cobject, const Glib::RefPtr
   m_colTitle(0)
 {
   //Get the Glade-instantiated widgets, and connect signal handlers:
-  Gtk::Button* pButtonCancel = 0;
+  Gtk::Button* pButtonCancel = nullptr;
   builder->get_widget("button_cancel", pButtonCancel);
   set_button_cancel(*pButtonCancel);
 
-  Gtk::Box* pAddDelParent = 0;
+  Gtk::Box* pAddDelParent = nullptr;
   builder->get_widget("vbox_adddel_parent", pAddDelParent);
   pAddDelParent->pack_start(m_AddDel);
 
diff --git a/glom/mode_design/print_layouts/dialog_text_formatting.cc 
b/glom/mode_design/print_layouts/dialog_text_formatting.cc
index 36d316f..d504d5a 100644
--- a/glom/mode_design/print_layouts/dialog_text_formatting.cc
+++ b/glom/mode_design/print_layouts/dialog_text_formatting.cc
@@ -31,10 +31,10 @@ const bool Dialog_TextFormatting::glade_developer(true);
 
 Dialog_TextFormatting::Dialog_TextFormatting(BaseObjectType* cobject, const Glib::RefPtr<Gtk::Builder>& 
builder)
 : Gtk::Window(cobject),
-  m_box_formatting_placeholder(0),
-  m_box_formatting(0)
+  m_box_formatting_placeholder(nullptr),
+  m_box_formatting(nullptr)
 {
-  Gtk::Button* button_close = 0;
+  Gtk::Button* button_close = nullptr;
   builder->get_widget("button_close",  button_close);
   if(button_close)
   {
diff --git a/glom/mode_design/print_layouts/window_print_layout_edit.cc 
b/glom/mode_design/print_layouts/window_print_layout_edit.cc
index fc49c39..1a2741d 100644
--- a/glom/mode_design/print_layouts/window_print_layout_edit.cc
+++ b/glom/mode_design/print_layouts/window_print_layout_edit.cc
@@ -46,23 +46,23 @@ static const char DRAG_TARGET_NAME_RULE[] = "application/x-glom-printoutlayout-r
 
 Window_PrintLayout_Edit::Window_PrintLayout_Edit(BaseObjectType* cobject, const Glib::RefPtr<Gtk::Builder>& 
builder)
 : Gtk::ApplicationWindow(cobject),
-  m_entry_name(0),
-  m_entry_title(0),
-  m_label_table_name(0),
-  m_button_close(0),
-  m_box(0),
-  m_box_item_position(0),
-  m_spinbutton_x(0),
-  m_spinbutton_y(0),
-  m_spinbutton_width(0),
-  m_spinbutton_height(0),
+  m_entry_name(nullptr),
+  m_entry_title(nullptr),
+  m_label_table_name(nullptr),
+  m_button_close(nullptr),
+  m_box(nullptr),
+  m_box_item_position(nullptr),
+  m_spinbutton_x(nullptr),
+  m_spinbutton_y(nullptr),
+  m_spinbutton_width(nullptr),
+  m_spinbutton_height(nullptr),
   m_ignore_spinbutton_signals(false),
   m_drag_preview_requested(false),
   m_temp_rule_horizontal(false),
-  m_vruler(0),
-  m_hruler(0),
+  m_vruler(nullptr),
+  m_hruler(nullptr),
   m_builder(builder),
-  m_context_menu(0)
+  m_context_menu(nullptr)
 {
   //See CanvasPrintLayout's commented-out use of set_size_request()
   //for an attempt to do this properly.
@@ -119,7 +119,7 @@ Window_PrintLayout_Edit::Window_PrintLayout_Edit(BaseObjectType* cobject, const
  
   //Add the ruler widgets to the table at the left and top:
   //TODO: Use C++ API here:
-  Gtk::Grid* grid = 0;
+  Gtk::Grid* grid = nullptr;
   builder->get_widget("grid_canvas", grid);
   gtk_grid_attach(grid->gobj(), GTK_WIDGET(m_vruler), 
     0, 1, 1, 1);
diff --git a/glom/mode_design/relationships_overview/printoperation_relationshipsoverview.cc 
b/glom/mode_design/relationships_overview/printoperation_relationshipsoverview.cc
index d635205..88b36c7 100644
--- a/glom/mode_design/relationships_overview/printoperation_relationshipsoverview.cc
+++ b/glom/mode_design/relationships_overview/printoperation_relationshipsoverview.cc
@@ -21,7 +21,7 @@ namespace Glom
 {
 
 PrintOperationRelationshipsOverview::PrintOperationRelationshipsOverview()
-: m_canvas(0)
+: m_canvas(nullptr)
 {
 }
 
diff --git a/glom/mode_design/relationships_overview/window_relationships_overview.cc 
b/glom/mode_design/relationships_overview/window_relationships_overview.cc
index 5550fef..8f3bcb6 100644
--- a/glom/mode_design/relationships_overview/window_relationships_overview.cc
+++ b/glom/mode_design/relationships_overview/window_relationships_overview.cc
@@ -44,11 +44,11 @@ const bool Window_RelationshipsOverview::glade_developer(true);
 Window_RelationshipsOverview::Window_RelationshipsOverview(BaseObjectType* cobject, const 
Glib::RefPtr<Gtk::Builder>& builder)
   : Gtk::ApplicationWindow(cobject),
     m_builder(builder),
-    m_menu(0),
+    m_menu(nullptr),
     m_modified(false),
-    m_scrolledwindow_canvas(0)
+    m_scrolledwindow_canvas(nullptr)
 {
-  Gtk::Button* button_close = 0;
+  Gtk::Button* button_close = nullptr;
   builder->get_widget("button_close",  button_close);
   if(button_close)
     button_close->signal_clicked().connect( sigc::mem_fun(*this, 
&Window_RelationshipsOverview::on_button_close) );
@@ -57,7 +57,7 @@ Window_RelationshipsOverview::Window_RelationshipsOverview(BaseObjectType* cobje
   m_refSettings = Gtk::PrintSettings::create();
 
   //Add a menu:
-  Gtk::Box* vbox = 0;
+  Gtk::Box* vbox = nullptr;
   builder->get_widget("vbox_placeholder_menubar", vbox);
 
   Glib::RefPtr<Gio::SimpleActionGroup> action_group = Gio::SimpleActionGroup::create();
@@ -90,7 +90,7 @@ Window_RelationshipsOverview::Window_RelationshipsOverview(BaseObjectType* cobje
 
 
   //Get the scolled window and add the canvas to it:
-  m_scrolledwindow_canvas = 0;
+  m_scrolledwindow_canvas = nullptr;
   builder->get_widget("scrolledwindow_canvas", m_scrolledwindow_canvas);
 
   m_scrolledwindow_canvas->add(m_canvas);
diff --git a/glom/mode_design/report_layout/dialog_layout_report.cc 
b/glom/mode_design/report_layout/dialog_layout_report.cc
index 2088578..8a6627d 100644
--- a/glom/mode_design/report_layout/dialog_layout_report.cc
+++ b/glom/mode_design/report_layout/dialog_layout_report.cc
@@ -48,21 +48,21 @@ const bool Dialog_Layout_Report::glade_developer(true);
 
 Dialog_Layout_Report::Dialog_Layout_Report(BaseObjectType* cobject, const Glib::RefPtr<Gtk::Builder>& 
builder)
 : Dialog_Layout(cobject, builder, false /* No table title */),
-  m_notebook_parts(0),
-  m_treeview_parts_header(0),
-  m_treeview_parts_footer(0),
-  m_treeview_parts_main(0),
-  m_treeview_available_parts(0),
-  m_button_up(0),
-  m_button_down(0),
-  m_button_add(0),
-  m_button_delete(0),
-  m_button_edit(0),
-  m_button_formatting(0),
-  m_label_table_name(0),
-  m_entry_name(0),
-  m_entry_title(0),
-  m_checkbutton_table_title(0)
+  m_notebook_parts(nullptr),
+  m_treeview_parts_header(nullptr),
+  m_treeview_parts_footer(nullptr),
+  m_treeview_parts_main(nullptr),
+  m_treeview_available_parts(nullptr),
+  m_button_up(nullptr),
+  m_button_down(nullptr),
+  m_button_add(nullptr),
+  m_button_delete(nullptr),
+  m_button_edit(nullptr),
+  m_button_formatting(nullptr),
+  m_label_table_name(nullptr),
+  m_entry_name(nullptr),
+  m_entry_title(nullptr),
+  m_checkbutton_table_title(nullptr)
 {
   builder->get_widget("label_table_name", m_label_table_name);
   builder->get_widget("entry_name", m_entry_name);
@@ -695,7 +695,7 @@ std::shared_ptr<Relationship> Dialog_Layout_Report::offer_relationship_list()
 {
   std::shared_ptr<Relationship> result;
 
-  Dialog_ChooseRelationship* dialog = 0;
+  Dialog_ChooseRelationship* dialog = nullptr;
   Utils::get_glade_widget_derived_with_warning(dialog);
   if(!dialog) //Unlikely and it already warns on stderr.
     return result;
@@ -822,7 +822,7 @@ void Dialog_Layout_Report::on_button_edit()
       std::shared_ptr<LayoutItem_FieldSummary> fieldsummary = 
std::dynamic_pointer_cast<LayoutItem_FieldSummary>(item);
       if(fieldsummary)
       {
-        Dialog_FieldSummary* dialog = 0;
+        Dialog_FieldSummary* dialog = nullptr;
         Utils::get_glade_widget_derived_with_warning(dialog);
         add_view(dialog);
         dialog->set_item(fieldsummary, m_table_name);
@@ -891,7 +891,7 @@ void Dialog_Layout_Report::on_button_edit()
               std::shared_ptr<LayoutItem_GroupBy> group_by = 
std::dynamic_pointer_cast<LayoutItem_GroupBy>(item);
               if(group_by)
               {
-                Dialog_GroupBy* dialog = 0;
+                Dialog_GroupBy* dialog = nullptr;
                 Utils::get_glade_widget_derived_with_warning(dialog);
                 if(!dialog)
                   return;
diff --git a/glom/mode_design/script_library/dialog_new_script.cc 
b/glom/mode_design/script_library/dialog_new_script.cc
index c1eb62c..5793068 100644
--- a/glom/mode_design/script_library/dialog_new_script.cc
+++ b/glom/mode_design/script_library/dialog_new_script.cc
@@ -28,7 +28,7 @@ const bool Dialog_NewScript::glade_developer(true);
 
 Dialog_NewScript::Dialog_NewScript(BaseObjectType* cobject, const Glib::RefPtr<Gtk::Builder>& builder)
 : Gtk::Dialog(cobject),
-  m_entry_name(0)
+  m_entry_name(nullptr)
 {
   builder->get_widget("entry_name", m_entry_name);
 
diff --git a/glom/mode_design/script_library/dialog_script_library.cc 
b/glom/mode_design/script_library/dialog_script_library.cc
index 08e6d41..001555f 100644
--- a/glom/mode_design/script_library/dialog_script_library.cc
+++ b/glom/mode_design/script_library/dialog_script_library.cc
@@ -92,7 +92,7 @@ void Dialog_ScriptLibrary::on_button_add()
   if(!document)
     return;
 
-  Dialog_NewScript* dialog = 0;
+  Dialog_NewScript* dialog = nullptr;
   Utils::get_glade_widget_derived_with_warning(dialog);
   if(!dialog) //Unlikely and it already warns on stderr.
     return;
diff --git a/glom/mode_design/translation/dialog_change_language.cc 
b/glom/mode_design/translation/dialog_change_language.cc
index 823dfc3..fbc6bf9 100644
--- a/glom/mode_design/translation/dialog_change_language.cc
+++ b/glom/mode_design/translation/dialog_change_language.cc
@@ -30,7 +30,7 @@ const bool Dialog_ChangeLanguage::glade_developer(true);
 
 Dialog_ChangeLanguage::Dialog_ChangeLanguage(BaseObjectType* cobject, const Glib::RefPtr<Gtk::Builder>& 
builder)
 : Gtk::Dialog(cobject),
-  m_combo_locale(0)
+  m_combo_locale(nullptr)
 {
   builder->get_widget_derived("combobox_locale", m_combo_locale);
   if(m_combo_locale)
diff --git a/glom/mode_design/translation/dialog_copy_translation.cc 
b/glom/mode_design/translation/dialog_copy_translation.cc
index 9a69866..0e06385 100644
--- a/glom/mode_design/translation/dialog_copy_translation.cc
+++ b/glom/mode_design/translation/dialog_copy_translation.cc
@@ -31,7 +31,7 @@ const bool Dialog_CopyTranslation::glade_developer(true);
 
 Dialog_CopyTranslation::Dialog_CopyTranslation(BaseObjectType* cobject, const Glib::RefPtr<Gtk::Builder>& 
builder)
 : Gtk::Dialog(cobject),
-  m_combo_locale(0)
+  m_combo_locale(nullptr)
 {
   builder->get_widget_derived("combobox_locale", m_combo_locale);
   if(m_combo_locale)
diff --git a/glom/mode_design/translation/dialog_identify_original.cc 
b/glom/mode_design/translation/dialog_identify_original.cc
index f9994ea..d2dda8b 100644
--- a/glom/mode_design/translation/dialog_identify_original.cc
+++ b/glom/mode_design/translation/dialog_identify_original.cc
@@ -34,8 +34,8 @@ const bool Dialog_IdentifyOriginal::glade_developer(true);
 
 Dialog_IdentifyOriginal::Dialog_IdentifyOriginal(BaseObjectType* cobject, const Glib::RefPtr<Gtk::Builder>& 
builder)
 : Gtk::Dialog(cobject),
-  m_label_original(0),
-  m_combo_locale(0)
+  m_label_original(nullptr),
+  m_combo_locale(nullptr)
 {
   builder->get_widget("label_original", m_label_original);
   builder->get_widget_derived("combobox_locale", m_combo_locale);
diff --git a/glom/mode_design/translation/window_translations.cc 
b/glom/mode_design/translation/window_translations.cc
index daad703..2af2c6d 100644
--- a/glom/mode_design/translation/window_translations.cc
+++ b/glom/mode_design/translation/window_translations.cc
@@ -43,14 +43,14 @@ const bool Window_Translations::glade_developer(true);
 
 Window_Translations::Window_Translations(BaseObjectType* cobject, const Glib::RefPtr<Gtk::Builder>& builder)
 : Gtk::Window(cobject),
-  m_treeview(0),
-  m_button_identify(0),
-  m_combo_target_locale(0),
-  m_label_source_locale(0),
-  m_button_ok(0),
-  m_button_cancel(0),
-  m_button_import(0),
-  m_button_export(0),
+  m_treeview(nullptr),
+  m_button_identify(nullptr),
+  m_combo_target_locale(nullptr),
+  m_label_source_locale(nullptr),
+  m_button_ok(nullptr),
+  m_button_cancel(nullptr),
+  m_button_import(nullptr),
+  m_button_export(nullptr),
   m_treeview_modified(false)
 {
   builder->get_widget("label_source_locale", m_label_source_locale);
@@ -153,7 +153,7 @@ void Window_Translations::enable_buttons()
 
 void Window_Translations::on_button_identify()
 {
-  Dialog_IdentifyOriginal* dialog = 0;
+  Dialog_IdentifyOriginal* dialog = nullptr;
   Utils::get_glade_widget_derived_with_warning(dialog);
   if(!dialog) //Unlikely and it already warns on stderr.
     return;
@@ -292,7 +292,7 @@ void Window_Translations::on_button_ok()
 
 void Window_Translations::on_button_copy_translation()
 {
-  Dialog_CopyTranslation* dialog = 0;
+  Dialog_CopyTranslation* dialog = nullptr;
   Utils::get_glade_widget_derived_with_warning(dialog);
   if(!dialog) //Unlikely and it already warns on stderr.
     return;
diff --git a/glom/mode_design/users/dialog_choose_user.cc b/glom/mode_design/users/dialog_choose_user.cc
index 878e36d..12c38e6 100644
--- a/glom/mode_design/users/dialog_choose_user.cc
+++ b/glom/mode_design/users/dialog_choose_user.cc
@@ -28,7 +28,7 @@ const bool Dialog_ChooseUser::glade_developer(true);
 
 Dialog_ChooseUser::Dialog_ChooseUser(BaseObjectType* cobject, const Glib::RefPtr<Gtk::Builder>& builder)
 : Gtk::Dialog(cobject),
-  m_combo_name(0)
+  m_combo_name(nullptr)
 {
   builder->get_widget_derived("combo_user_name", m_combo_name);
 }
diff --git a/glom/mode_design/users/dialog_groups_list.cc b/glom/mode_design/users/dialog_groups_list.cc
index eca35ba..4e949d5 100644
--- a/glom/mode_design/users/dialog_groups_list.cc
+++ b/glom/mode_design/users/dialog_groups_list.cc
@@ -39,10 +39,10 @@ const bool Dialog_GroupsList::glade_developer(true);
 
 Dialog_GroupsList::Dialog_GroupsList(BaseObjectType* cobject, const Glib::RefPtr<Gtk::Builder>& builder)
 : Gtk::Dialog(cobject),
-  m_treeview_groups(0),
-  m_button_group_new(0),
-  m_button_group_delete(0),
-  m_button_group_users(0)
+  m_treeview_groups(nullptr),
+  m_button_group_new(nullptr),
+  m_button_group_delete(nullptr),
+  m_button_group_users(nullptr)
 {
   //set_default_size(600, -1);
 
@@ -238,7 +238,7 @@ void Dialog_GroupsList::on_button_group_delete()
 
 void Dialog_GroupsList::on_button_group_new()
 {
-  Dialog_NewGroup* dialog = 0;
+  Dialog_NewGroup* dialog = nullptr;
   Utils::get_glade_widget_derived_with_warning(dialog);
   if(!dialog) //Unlikely and it already warns on stderr.
     return;
@@ -280,7 +280,7 @@ void Dialog_GroupsList::on_button_group_users()
       Gtk::TreeModel::Row row = *iter;
       const Glib::ustring group_name = row[m_model_columns_groups.m_col_name];
 
-      Dialog_UsersList* dialog = 0;
+      Dialog_UsersList* dialog = nullptr;
       Utils::get_glade_widget_derived_with_warning(dialog);
       if(!dialog) //Unlikely and it already warns on stderr.
         return;
diff --git a/glom/mode_design/users/dialog_new_group.cc b/glom/mode_design/users/dialog_new_group.cc
index ba8c12e..42cce09 100644
--- a/glom/mode_design/users/dialog_new_group.cc
+++ b/glom/mode_design/users/dialog_new_group.cc
@@ -29,7 +29,7 @@ const bool Dialog_NewGroup::glade_developer(true);
 
 Dialog_NewGroup::Dialog_NewGroup(BaseObjectType* cobject, const Glib::RefPtr<Gtk::Builder>& builder)
 : Gtk::Dialog(cobject),
-  m_entry_name(0)
+  m_entry_name(nullptr)
 {
   builder->get_widget("entry_group_name", m_entry_name);
   m_entry_name->set_max_length(Privs::MAX_ROLE_SIZE);
diff --git a/glom/mode_design/users/dialog_users_list.cc b/glom/mode_design/users/dialog_users_list.cc
index 041e6d0..aa27925 100644
--- a/glom/mode_design/users/dialog_users_list.cc
+++ b/glom/mode_design/users/dialog_users_list.cc
@@ -36,13 +36,13 @@ const bool Dialog_UsersList::glade_developer(true);
 
 Dialog_UsersList::Dialog_UsersList(BaseObjectType* cobject, const Glib::RefPtr<Gtk::Builder>& builder)
 : Gtk::Dialog(cobject),
-  m_treeview_users(0),
-  m_combo_group(0),
-  m_button_user_add(0),
-  m_button_user_remove(0),
-  m_button_user_new(0),
-  m_button_user_delete(0),
-  m_button_user_edit(0)
+  m_treeview_users(nullptr),
+  m_combo_group(nullptr),
+  m_button_user_add(nullptr),
+  m_button_user_remove(nullptr),
+  m_button_user_new(nullptr),
+  m_button_user_delete(nullptr),
+  m_button_user_edit(nullptr)
 {
   builder->get_widget("combobox_group", m_combo_group);
   m_combo_group->signal_changed().connect(sigc::mem_fun(*this, &Dialog_UsersList::on_combo_group_changed));
@@ -189,7 +189,7 @@ void Dialog_UsersList::on_button_user_add()
     return;
   }
 
-  Dialog_ChooseUser* dialog = 0;
+  Dialog_ChooseUser* dialog = nullptr;
   Utils::get_glade_widget_derived_with_warning(dialog);
   if(!dialog) //Unlikely and it already warns on stderr.
     return;
@@ -233,7 +233,7 @@ void Dialog_UsersList::on_button_user_add()
 
 void Dialog_UsersList::on_button_user_new()
 {
-  Dialog_User* dialog = 0;
+  Dialog_User* dialog = nullptr;
   Utils::get_glade_widget_derived_with_warning(dialog);
   if(!dialog) //Unlikely and it already warns on stderr.
     return;
@@ -285,7 +285,7 @@ void Dialog_UsersList::on_button_user_edit()
     {
       Gtk::TreeModel::Row row = *iter;
 
-      Dialog_User* dialog = 0;
+      Dialog_User* dialog = nullptr;
       Utils::get_glade_widget_derived_with_warning(dialog);
       if(!dialog) //Unlikely and it already warns on stderr.
         return;
diff --git a/glom/navigation/box_tables.cc b/glom/navigation/box_tables.cc
index 40a0242..ab96c43 100644
--- a/glom/navigation/box_tables.cc
+++ b/glom/navigation/box_tables.cc
@@ -34,7 +34,7 @@ const bool Box_Tables::glade_developer(false);
 
 Box_Tables::Box_Tables(BaseObjectType* cobject, const Glib::RefPtr<Gtk::Builder>& builder)
 : Box_WithButtons(cobject, builder),
-  m_pCheckButtonShowHidden(0),
+  m_pCheckButtonShowHidden(nullptr),
   m_colTableName(0),
   m_colHidden(0),
   m_colTitle(0),
@@ -42,14 +42,14 @@ Box_Tables::Box_Tables(BaseObjectType* cobject, const Glib::RefPtr<Gtk::Builder>
   m_colTitleSingular(0)
 {
   //Get the Glade-instantiated widgets, and connect signal handlers:
-  Gtk::Button* pButtonCancel = 0;
+  Gtk::Button* pButtonCancel = nullptr;
   builder->get_widget("button_cancel_tables", pButtonCancel);
   set_button_cancel(*pButtonCancel);
 
   // Set a name for the AddDel TreeView, so it can be accessed by LDTP
   m_AddDel.set_treeview_accessible_name("Tables");
 
-  Gtk::Box* pAddDelParent = 0;
+  Gtk::Box* pAddDelParent = nullptr;
   builder->get_widget("vbox_adddel_parent", pAddDelParent);
   pAddDelParent->pack_start(m_AddDel);
 
diff --git a/glom/print_layout/canvas_print_layout.cc b/glom/print_layout/canvas_print_layout.cc
index 7627b07..ace2f86 100644
--- a/glom/print_layout/canvas_print_layout.cc
+++ b/glom/print_layout/canvas_print_layout.cc
@@ -44,7 +44,7 @@ namespace Glom
 
 Canvas_PrintLayout::Canvas_PrintLayout()
 : m_modified(false),
-  m_dialog_format(0),
+  m_dialog_format(nullptr),
   m_outline_visibility(false),
   m_page_count(1) //Sensible default
 {
@@ -326,7 +326,7 @@ std::shared_ptr<LayoutItem_Portal> Canvas_PrintLayout::offer_related_records(con
 {
   std::shared_ptr<LayoutItem_Portal> result = portal;
 
-  Dialog_Layout_List_Related* dialog = 0;
+  Dialog_Layout_List_Related* dialog = nullptr;
   Utils::get_glade_widget_derived_with_warning(dialog);
   if(!dialog) //Unlikely and it already warns on stderr.
     return result;
@@ -345,7 +345,7 @@ std::shared_ptr<LayoutItem_Portal> Canvas_PrintLayout::offer_related_records(con
   result = dialog->get_portal_layout();
 
   delete dialog;
-  dialog = 0;
+  dialog = nullptr;
 
   return result;
 }
@@ -354,7 +354,7 @@ std::shared_ptr<LayoutItem_Line> Canvas_PrintLayout::offer_line(const std::share
 {
   std::shared_ptr<LayoutItem_Line> result = line;
 
-  Dialog_Line* dialog = 0;
+  Dialog_Line* dialog = nullptr;
   Utils::get_glade_widget_derived_with_warning(dialog);
   if(!dialog) //Unlikely and it already warns on stderr.
     return result;
@@ -457,7 +457,7 @@ void Canvas_PrintLayout::on_context_menu_formatting()
   {
      remove_view(m_dialog_format);
      delete m_dialog_format;
-     m_dialog_format = 0;
+     m_dialog_format = nullptr;
   }
 
   Utils::get_glade_widget_derived_with_warning(m_dialog_format);
@@ -541,7 +541,7 @@ void Canvas_PrintLayout::on_dialog_format_hide()
   m_context_item->set_layout_item(layout_item); //Redraw the child item with the new formatting.
 
   delete m_dialog_format;
-  m_dialog_format = 0;
+  m_dialog_format = nullptr;
 }
 
 #endif //GLOM_ENABLE_CLIENT_ONLY
diff --git a/glom/print_layout/printoperation_printlayout.cc b/glom/print_layout/printoperation_printlayout.cc
index 869a621..7f1fc01 100644
--- a/glom/print_layout/printoperation_printlayout.cc
+++ b/glom/print_layout/printoperation_printlayout.cc
@@ -21,7 +21,7 @@ namespace Glom
 {
 
 PrintOperationPrintLayout::PrintOperationPrintLayout()
-: m_canvas(0)
+: m_canvas(nullptr)
 {
   set_unit(Gtk::UNIT_MM);
   set_use_full_page(true); //Because we show the margins on our canvas.
diff --git a/glom/python_embed/glom_python.cc b/glom/python_embed/glom_python.cc
index 46eb2a8..e11a297 100644
--- a/glom/python_embed/glom_python.cc
+++ b/glom/python_embed/glom_python.cc
@@ -84,9 +84,9 @@ static Glib::ustring get_traceback()
   //   for the Boost::Python code that this is based on:
 
 
-  PyObject* type = 0;
-  PyObject* value = 0;
-  PyObject* traceback = 0;
+  PyObject* type = nullptr;
+  PyObject* value = nullptr;
+  PyObject* traceback = nullptr;
   PyErr_Fetch(&type, &value, &traceback);
 
   if(!traceback)
@@ -494,7 +494,7 @@ Gnome::Gda::Value glom_evaluate_python_function_implementation(Field::glom_field
       //(though I don't think this code is ever reached. murrayc)
 
       //Treat this as a string or something that can be converted to a string:
-      const char* pchResult = 0;
+      const char* pchResult = nullptr;
       try
       {
         pchResult = boost::python::extract<const char*>(pyResultCpp);
diff --git a/glom/test_pyembed.cc b/glom/test_pyembed.cc
index 6bda6e4..cf960c6 100644
--- a/glom/test_pyembed.cc
+++ b/glom/test_pyembed.cc
@@ -56,7 +56,7 @@ void evaluate_function_implementation(const Glib::ustring& func_impl)
   if(pyValue)
   {
     Py_DECREF(pyValue);
-    pyValue = 0;
+    pyValue = nullptr;
   }
 
   //Call the function:
diff --git a/glom/utility_widgets/adddel/adddel.cc b/glom/utility_widgets/adddel/adddel.cc
index bd501b1..7b66766 100644
--- a/glom/utility_widgets/adddel/adddel.cc
+++ b/glom/utility_widgets/adddel/adddel.cc
@@ -75,7 +75,7 @@ AddDelColumnInfo& AddDelColumnInfo::operator=(const AddDelColumnInfo& src)
 AddDel::AddDel()
 : Gtk::Box(Gtk::ORIENTATION_VERTICAL),
   m_col_key(0),
-  m_pMenuPopup(0),
+  m_pMenuPopup(nullptr),
   m_auto_add(true),
   m_allow_add(true),
   m_allow_delete(true)
@@ -87,7 +87,7 @@ AddDel::AddDel()
 AddDel::AddDel(BaseObjectType* cobject, const Glib::RefPtr<Gtk::Builder>& /* builder */)
 : Gtk::Box(cobject),
   m_col_key(0),
-  m_pMenuPopup(0),
+  m_pMenuPopup(nullptr),
   m_auto_add(true),
   m_allow_add(true),
   m_allow_delete(true)
@@ -557,7 +557,7 @@ void AddDel::construct_specified_columns()
     type_vecModelColumns::size_type i = 0;
     for(const auto& column_info : m_ColumnTypes)
     {
-      Gtk::TreeModelColumnBase* pModelColumn = 0;
+      Gtk::TreeModelColumnBase* pModelColumn = nullptr;
 
       switch(column_info.m_style)
       {
diff --git a/glom/utility_widgets/canvas/canvas_item_movable.cc 
b/glom/utility_widgets/canvas/canvas_item_movable.cc
index 6d19f0f..5c36e2f 100644
--- a/glom/utility_widgets/canvas/canvas_item_movable.cc
+++ b/glom/utility_widgets/canvas/canvas_item_movable.cc
@@ -53,7 +53,7 @@ CanvasItemMovable::CanvasItemMovable()
   m_drag_start_position_x(0.0), m_drag_start_position_y(0.0),
   m_drag_latest_position_x(0.0), m_drag_latest_position_y(0.0),
   m_drag_cursor_type(Gdk::FLEUR), //arbitrary default
-  m_grid(0),
+  m_grid(nullptr),
   m_allow_vertical_movement(true), m_allow_horizontal_movement(true),
   m_selected(false),
   m_shift_click(false)
diff --git a/glom/utility_widgets/canvas/canvas_text_movable.cc 
b/glom/utility_widgets/canvas/canvas_text_movable.cc
index 9001fb7..7d865e4 100644
--- a/glom/utility_widgets/canvas/canvas_text_movable.cc
+++ b/glom/utility_widgets/canvas/canvas_text_movable.cc
@@ -174,7 +174,7 @@ void CanvasTextMovable::reconstruct_markup()
     return;
   }
 
-  char* markup = 0;
+  char* markup = nullptr;
   if(!m_text.empty())
   {
     //We will use the text as markup, so remove anything that could be 
diff --git a/glom/utility_widgets/canvas/test_canvas_editable.cc 
b/glom/utility_widgets/canvas/test_canvas_editable.cc
index d1390c9..fdbf513 100644
--- a/glom/utility_widgets/canvas/test_canvas_editable.cc
+++ b/glom/utility_widgets/canvas/test_canvas_editable.cc
@@ -34,7 +34,7 @@ class MyCanvas : public Glom::CanvasEditable
 public:
   
   MyCanvas()
-  : m_context_menu(0)
+  : m_context_menu(nullptr)
   {
     setup_context_menu();
 
diff --git a/glom/utility_widgets/cellrendererlist.cc b/glom/utility_widgets/cellrendererlist.cc
index 164a9fd..24750a4 100644
--- a/glom/utility_widgets/cellrendererlist.cc
+++ b/glom/utility_widgets/cellrendererlist.cc
@@ -25,7 +25,7 @@ namespace Glom
 {
 
 CellRendererList::CellRendererList()
-:  Glib::ObjectBase(0) //Mark this class as gtkmmproc-generated, rather than a custom class, to allow vfunc 
optimisations.
+:  Glib::ObjectBase(nullptr) //Mark this class as gtkmmproc-generated, rather than a custom class, to allow 
vfunc optimisations.
    //TODO: This should not be necessary - our gtkmm callbacks are somehow preventing the popup from 
appearing.
 {
   m_refModel = Gtk::ListStore::create(m_model_columns);
diff --git a/glom/utility_widgets/dialog_flowtable.cc b/glom/utility_widgets/dialog_flowtable.cc
index c3d3dc4..8f2c6d2 100644
--- a/glom/utility_widgets/dialog_flowtable.cc
+++ b/glom/utility_widgets/dialog_flowtable.cc
@@ -31,9 +31,9 @@ const bool Dialog_FlowTable::glade_developer(true);
                
 Dialog_FlowTable::Dialog_FlowTable(BaseObjectType* cobject, const Glib::RefPtr<Gtk::Builder>& builder)
 : Gtk::Dialog(cobject),
-  m_entry_title(0),
-  m_spin_columns(0),
-  m_flowtable(0)
+  m_entry_title(nullptr),
+  m_spin_columns(nullptr),
+  m_flowtable(nullptr)
 {
   builder->get_widget("entry_title",  m_entry_title);
   builder->get_widget("spin_columns",  m_spin_columns);
diff --git a/glom/utility_widgets/dialog_image_load_progress.cc 
b/glom/utility_widgets/dialog_image_load_progress.cc
index 01477ec..7f4142c 100644
--- a/glom/utility_widgets/dialog_image_load_progress.cc
+++ b/glom/utility_widgets/dialog_image_load_progress.cc
@@ -64,7 +64,7 @@ void DialogImageLoadProgress::load(const Glib::ustring& uri)
   g_assert(!m_data.get());
 
   m_data.reset(new GdaBinary);
-  m_data->data = 0;
+  m_data->data = nullptr;
   m_data->binary_length = 0;
 
   m_file = Gio::File::create_for_uri(uri);
diff --git a/glom/utility_widgets/dialog_image_save_progress.cc 
b/glom/utility_widgets/dialog_image_save_progress.cc
index 76b8639..20ea034 100644
--- a/glom/utility_widgets/dialog_image_save_progress.cc
+++ b/glom/utility_widgets/dialog_image_save_progress.cc
@@ -41,7 +41,7 @@ const bool DialogImageSaveProgress::glade_developer(false);
 
 DialogImageSaveProgress::DialogImageSaveProgress(BaseObjectType* cobject, const Glib::RefPtr<Gtk::Builder>& 
builder)
 : Gtk::Dialog(cobject),
-  m_data(0)
+  m_data(nullptr)
 {
   builder->get_widget("progress_bar", m_progress_bar);
 
diff --git a/glom/utility_widgets/eggspreadtablemm/eggspreadtabledndmm.cc 
b/glom/utility_widgets/eggspreadtablemm/eggspreadtabledndmm.cc
index 90fbd7f..5c396d5 100644
--- a/glom/utility_widgets/eggspreadtablemm/eggspreadtabledndmm.cc
+++ b/glom/utility_widgets/eggspreadtablemm/eggspreadtabledndmm.cc
@@ -237,7 +237,7 @@ GType SpreadTableDnd::get_base_type()
 SpreadTableDnd::SpreadTableDnd()
 :
   // Mark this class as non-derived to allow C++ vfuncs to be skipped.
-  Glib::ObjectBase(0),
+  Glib::ObjectBase(nullptr),
   SpreadTable(Glib::ConstructParams(spreadtable_class_.init()))
 {
 }
@@ -245,8 +245,8 @@ SpreadTableDnd::SpreadTableDnd()
 SpreadTableDnd::SpreadTableDnd(Gtk::Orientation orientation, guint lines)
 :
   // Mark this class as non-derived to allow C++ vfuncs to be skipped.
-  Glib::ObjectBase(0),
-  SpreadTable(Glib::ConstructParams(spreadtable_class_.init(), "orientation", 
((GtkOrientation)(orientation)), "lines", lines, static_cast<char*>(0)))
+  Glib::ObjectBase(nullptr),
+  SpreadTable(Glib::ConstructParams(spreadtable_class_.init(), "orientation", 
((GtkOrientation)(orientation)), "lines", lines, static_cast<char*>(nullptr)))
 {
 }
 
diff --git a/glom/utility_widgets/eggspreadtablemm/eggspreadtablemm.cc 
b/glom/utility_widgets/eggspreadtablemm/eggspreadtablemm.cc
index 3bc44ad..b8862ce 100644
--- a/glom/utility_widgets/eggspreadtablemm/eggspreadtablemm.cc
+++ b/glom/utility_widgets/eggspreadtablemm/eggspreadtablemm.cc
@@ -125,7 +125,7 @@ GType SpreadTable::get_base_type()
 SpreadTable::SpreadTable()
 :
   // Mark this class as non-derived to allow C++ vfuncs to be skipped.
-  Glib::ObjectBase(0),
+  Glib::ObjectBase(nullptr),
   Gtk::Container(Glib::ConstructParams(spreadtable_class_.init()))
 {
 
@@ -135,8 +135,8 @@ SpreadTable::SpreadTable()
 SpreadTable::SpreadTable(Gtk::Orientation orientation, guint lines)
 :
   // Mark this class as non-derived to allow C++ vfuncs to be skipped.
-  Glib::ObjectBase(0),
-  Gtk::Container(Glib::ConstructParams(spreadtable_class_.init(), "orientation", 
((GtkOrientation)(orientation)), "lines", lines, static_cast<char*>(0)))
+  Glib::ObjectBase(nullptr),
+  Gtk::Container(Glib::ConstructParams(spreadtable_class_.init(), "orientation", 
((GtkOrientation)(orientation)), "lines", lines, static_cast<char*>(nullptr)))
 {
 
 
diff --git a/glom/utility_widgets/eggspreadtablemm/test_spreadtablednd.cc 
b/glom/utility_widgets/eggspreadtablemm/test_spreadtablednd.cc
index 9c76179..e2bbbbc 100644
--- a/glom/utility_widgets/eggspreadtablemm/test_spreadtablednd.cc
+++ b/glom/utility_widgets/eggspreadtablemm/test_spreadtablednd.cc
@@ -39,10 +39,10 @@ static const guint INITIAL_VSPACING = 2;
 static const guint INITIAL_LINES = 3;
 static const Gtk::Align INITIAL_HALIGN = Gtk::ALIGN_FILL;
 
-static Egg::SpreadTableDnd *paper = 0;
-static Gtk::ComboBoxText* combo_halign = 0;
-static Gtk::ComboBoxText* combo_orientation = 0;
-static Gtk::SpinButton* spinbutton_lines = 0;
+static Egg::SpreadTableDnd *paper = nullptr;
+static Gtk::ComboBoxText* combo_halign = nullptr;
+static Gtk::ComboBoxText* combo_orientation = nullptr;
+static Gtk::SpinButton* spinbutton_lines = nullptr;
 static Gtk::Align child_halign = INITIAL_HALIGN;
 static bool child_accepts_drops = true;
 static bool parent_accepts_drops = true;
diff --git a/glom/utility_widgets/flowtable.cc b/glom/utility_widgets/flowtable.cc
index ee63e90..57e2ec5 100644
--- a/glom/utility_widgets/flowtable.cc
+++ b/glom/utility_widgets/flowtable.cc
@@ -219,7 +219,7 @@ bool FlowTable::get_column_for_first_widget(const Gtk::Widget& first, guint& col
 
   //Discover actual child widget that was added to the EggSpreadTable,
   //so we can use it again to call EggSpreadTable::get_child_line():
-  const Gtk::Widget* child = 0;
+  const Gtk::Widget* child = nullptr;
       
   //Check that it is really a child widget:
   const type_const_list_widgets::const_iterator iter_find = 
diff --git a/glom/utility_widgets/imageglom.cc b/glom/utility_widgets/imageglom.cc
index 8e55c57..d0b9dbd 100644
--- a/glom/utility_widgets/imageglom.cc
+++ b/glom/utility_widgets/imageglom.cc
@@ -47,18 +47,18 @@ ImageGlom::type_vec_ustrings ImageGlom::m_evince_supported_mime_types;
 ImageGlom::type_vec_ustrings ImageGlom::m_gdkpixbuf_supported_mime_types;
 
 ImageGlom::ImageGlom()
-: m_ev_view(0),
-  m_ev_document_model(0),
-  m_pMenuPopup_UserMode(0)
+: m_ev_view(nullptr),
+  m_ev_document_model(nullptr),
+  m_pMenuPopup_UserMode(nullptr)
 {
   init();
 }
 
 ImageGlom::ImageGlom(BaseObjectType* cobject, const Glib::RefPtr<Gtk::Builder>& /* builder */)
 : Gtk::EventBox(cobject),
-  m_ev_view(0),
-  m_ev_document_model(0),
-  m_pMenuPopup_UserMode(0)
+  m_ev_view(nullptr),
+  m_ev_document_model(nullptr),
+  m_pMenuPopup_UserMode(nullptr)
 {
   init();
 }
@@ -239,7 +239,7 @@ void ImageGlom::on_ev_job_finished(EvJob* job)
 
 const GdaBinary* ImageGlom::get_binary() const
 {
-  const GdaBinary* gda_binary = 0;
+  const GdaBinary* gda_binary = nullptr;
   if(m_original_data.get_value_type() == GDA_TYPE_BINARY)
     gda_binary = gda_value_get_binary(m_original_data.gobj());
   else if(m_original_data.get_value_type() == GDA_TYPE_BLOB)
@@ -292,7 +292,7 @@ void ImageGlom::fill_evince_supported_mime_types()
     if(!info)
       continue;
 
-    const char* mime_type = 0;
+    const char* mime_type = nullptr;
     int i = 0;
     while((mime_type = info->mime_types[i++]))
     {
@@ -346,7 +346,7 @@ void ImageGlom::show_image_data()
   if(m_ev_document_model)
   {
     g_object_unref(m_ev_document_model);
-    m_ev_document_model = 0;
+    m_ev_document_model = nullptr;
   }
 
   if(use_evince)
@@ -730,7 +730,7 @@ bool ImageGlom::save_file_sync(const Glib::ustring& uri)
 
 bool ImageGlom::save_file(const Glib::ustring& uri)
 {
-  DialogImageSaveProgress* dialog_save = 0;
+  DialogImageSaveProgress* dialog_save = nullptr;
   Utils::get_glade_widget_derived_with_warning(dialog_save);
   if(!dialog_save)
     return false;
diff --git a/glom/utility_widgets/layoutwidgetbase.cc b/glom/utility_widgets/layoutwidgetbase.cc
index ccbcc06..a5ef17a 100644
--- a/glom/utility_widgets/layoutwidgetbase.cc
+++ b/glom/utility_widgets/layoutwidgetbase.cc
@@ -30,7 +30,7 @@ namespace Glom
 {
 
 LayoutWidgetBase::LayoutWidgetBase()
-: m_pLayoutItem(0)
+: m_pLayoutItem(nullptr)
 #ifndef GLOM_ENABLE_CLIENT_ONLY
   , m_drag_in_progress(false)
 #endif // !GLOM_ENABLE_CLIENT_ONLY
diff --git a/glom/utility_widgets/layoutwidgetmenu.cc b/glom/utility_widgets/layoutwidgetmenu.cc
index 888d658..2da90bd 100644
--- a/glom/utility_widgets/layoutwidgetmenu.cc
+++ b/glom/utility_widgets/layoutwidgetmenu.cc
@@ -30,7 +30,7 @@ namespace Glom
 
 LayoutWidgetMenu::LayoutWidgetMenu()
 #ifndef GLOM_ENABLE_CLIENT_ONLY
-  : m_pMenuPopup(0)
+  : m_pMenuPopup(nullptr)
 #endif
 {
   #ifndef GLOM_ENABLE_CLIENT_ONLY
@@ -167,7 +167,7 @@ void LayoutWidgetMenu::on_menupopup_activate_delete()
     return;
   }
 
-  LayoutWidgetBase* base = 0;
+  LayoutWidgetBase* base = nullptr;
   do
   {
     parent = parent->get_parent();
diff --git a/glom/utility_widgets/layoutwidgetutils.cc b/glom/utility_widgets/layoutwidgetutils.cc
index 8e99d50..a26a33d 100644
--- a/glom/utility_widgets/layoutwidgetutils.cc
+++ b/glom/utility_widgets/layoutwidgetutils.cc
@@ -30,7 +30,7 @@ namespace Glom
 {
   
 LayoutWidgetUtils::LayoutWidgetUtils() :
-  m_pPopupMenuUtils(0)
+  m_pPopupMenuUtils(nullptr)
 {
   //Derived class's constructors must call this:
   //setup_util_menu(this);
@@ -73,7 +73,7 @@ void LayoutWidgetUtils::on_menu_delete_activate()
     return;
   }
 
-  LayoutWidgetBase* base = 0;
+  LayoutWidgetBase* base = nullptr;
   do
   {
     parent = parent->get_parent();
diff --git a/glom/utility_widgets/notebooklabelglom.cc b/glom/utility_widgets/notebooklabelglom.cc
index 6e80ca7..622d7c4 100644
--- a/glom/utility_widgets/notebooklabelglom.cc
+++ b/glom/utility_widgets/notebooklabelglom.cc
@@ -31,7 +31,7 @@ namespace Glom
 
 NotebookLabel::NotebookLabel(NotebookGlom* notebook) 
 : m_notebook(notebook),
-  m_pPopupMenu(0)
+  m_pPopupMenu(nullptr)
 {
   init();
 }
@@ -39,7 +39,7 @@ NotebookLabel::NotebookLabel(NotebookGlom* notebook)
 NotebookLabel::NotebookLabel(const Glib::ustring& label, NotebookGlom* notebook)
 : m_label(label),
   m_notebook (notebook),
-  m_pPopupMenu(0)
+  m_pPopupMenu(nullptr)
 {
   init();
 }
diff --git a/glom/utility_widgets/placeholder.cc b/glom/utility_widgets/placeholder.cc
index 1eae096..690cdc5 100644
--- a/glom/utility_widgets/placeholder.cc
+++ b/glom/utility_widgets/placeholder.cc
@@ -25,13 +25,13 @@ namespace Glom
 
 PlaceHolder::PlaceHolder()
 : Gtk::Box(Gtk::ORIENTATION_VERTICAL),
-  m_pChild(0)
+  m_pChild(nullptr)
 {
 }
 
 PlaceHolder::PlaceHolder(BaseObjectType* cobject, const Glib::RefPtr<Gtk::Builder>& /*builder*/)
 : Gtk::Box(cobject),
-  m_pChild(0)
+  m_pChild(nullptr)
 {
 }
 
@@ -51,7 +51,7 @@ void PlaceHolder::remove()
   if(m_pChild)
   {
     Gtk::Box::remove(*m_pChild);
-    m_pChild = 0;
+    m_pChild = nullptr;
   }
 }
 
diff --git a/glom/utils_ui.cc b/glom/utils_ui.cc
index 9b4ac28..b9fa39d 100644
--- a/glom/utils_ui.cc
+++ b/glom/utils_ui.cc
@@ -149,7 +149,7 @@ int UiUtils::dialog_run_with_help(Gtk::Dialog* dialog, const Glib::ustring& id)
  */
 void UiUtils::show_help(const Glib::ustring& id)
 {
-  GError* err = 0;
+  GError* err = nullptr;
   const gchar* pId;
   if(id.length())
   {
@@ -157,7 +157,7 @@ void UiUtils::show_help(const Glib::ustring& id)
   }
   else
   {
-    pId = 0;
+    pId = nullptr;
   }
 
   try
@@ -545,7 +545,7 @@ void UiUtils::show_report_in_browser(const std::string& filepath, Gtk::Window* p
   }
 
   //Use the GNOME browser:
-  GError* gerror = 0;
+  GError* gerror = nullptr;
   if(!gtk_show_uri(0 /* screen */, uri.c_str(), GDK_CURRENT_TIME, &gerror))
   {
     std::cerr << G_STRFUNC << ": " << gerror->message << std::endl;
@@ -594,7 +594,7 @@ void UiUtils::treeview_delete_all_columns(Gtk::TreeView* treeview)
     if(!pViewColumn)
       continue;
 
-    GtkTreeViewColumn* weak_ptr = 0;
+    GtkTreeViewColumn* weak_ptr = nullptr;
     g_object_add_weak_pointer (G_OBJECT (pViewColumn->gobj()), (gpointer*)&weak_ptr);
 
     //Keep the object alive, instead of letting gtk_tree_view_remove_column() delete it by reducing its 
reference to 0,
diff --git a/glom/variablesmap.cc b/glom/variablesmap.cc
index d9552db..e53e253 100644
--- a/glom/variablesmap.cc
+++ b/glom/variablesmap.cc
@@ -39,7 +39,7 @@ VariablesMap::~VariablesMap()
 
 void VariablesMap::connect_widget(const Glib::ustring& widget_name, bool& variable)
 {
-  Gtk::ToggleButton* pToggleButton = 0;
+  Gtk::ToggleButton* pToggleButton = nullptr;
   m_builder->get_widget(widget_name, pToggleButton); //Glade::Xml will complain if it is not a ToggleButton.
   if(pToggleButton)
   {
@@ -49,7 +49,7 @@ void VariablesMap::connect_widget(const Glib::ustring& widget_name, bool& variab
 
 void VariablesMap::connect_widget(const Glib::ustring& widget_name, Glib::ustring& variable)
 {
-  Gtk::Widget* pWidget = 0;
+  Gtk::Widget* pWidget = nullptr;
   m_builder->get_widget(widget_name, pWidget); 
 
   Gtk::Entry* pEntry = dynamic_cast<Gtk::Entry*>(pWidget); //it mange both Gtk::entry and Gtk::SpinButton
@@ -67,7 +67,7 @@ void VariablesMap::connect_widget(const Glib::ustring& widget_name, Glib::ustrin
 
 void VariablesMap::connect_widget(const Glib::ustring& widget_name, double& variable)
 {
-  Gtk::Widget* pWidget = 0;
+  Gtk::Widget* pWidget = nullptr;
   m_builder->get_widget(widget_name, pWidget); 
 
   Gtk::Scale* pScale = dynamic_cast<Gtk::Scale*>(pWidget); 
@@ -79,7 +79,7 @@ void VariablesMap::connect_widget(const Glib::ustring& widget_name, double& vari
 
 void VariablesMap::connect_widget(const Glib::ustring& widget_name, Glib::Date& variable)
 {
-  Gtk::Widget* pWidget = 0;
+  Gtk::Widget* pWidget = nullptr;
   m_builder->get_widget(widget_name, pWidget); 
 
   Gtk::Calendar* pCalendar = dynamic_cast<Gtk::Calendar*>(pWidget); 
diff --git a/tests/glade_toplevels_instantiation.cc b/tests/glade_toplevels_instantiation.cc
index 4bd594d..1162fbf 100644
--- a/tests/glade_toplevels_instantiation.cc
+++ b/tests/glade_toplevels_instantiation.cc
@@ -44,16 +44,16 @@ static bool attempt_instantiation(const std::string& filepath, const xmlpp::Elem
   }
 
   // Try to get the widget, checking that it has the correct type:
-  Gtk::Widget* widget = 0;
+  Gtk::Widget* widget = nullptr;
   if(gclassname == "GtkWindow")
   {
-    Gtk::Window* window = 0;
+    Gtk::Window* window = nullptr;
     builder->get_widget(id, window);
     widget = window;
   }
   else if(gclassname == "GtkDialog")
   {
-    Gtk::Dialog* dialog = 0;
+    Gtk::Dialog* dialog = nullptr;
     builder->get_widget(id, dialog);
     widget = dialog;
   }
diff --git a/tests/test_glade_derived_instantiation.cc b/tests/test_glade_derived_instantiation.cc
index e694209..c4d3444 100644
--- a/tests/test_glade_derived_instantiation.cc
+++ b/tests/test_glade_derived_instantiation.cc
@@ -83,7 +83,7 @@ template<class T_Widget>
 bool instantiate_widget()
 {
   //Test that the widget can be instantiated with its own glade ID.
-  T_Widget* widget = 0;
+  T_Widget* widget = nullptr;
   Glom::Utils::get_glade_widget_derived_with_warning(widget);
   if(!widget)
   {
@@ -98,7 +98,7 @@ bool instantiate_widget()
   //but hopefully it will catch some problems:
 
   //GTK+ complains if the a Gtk::Dialog has no transient parent.
-  Gtk::Window* parent_window = 0;
+  Gtk::Window* parent_window = nullptr;
   Gtk::Dialog* dialog = dynamic_cast<Gtk::Dialog*>(widget);
   if(dialog)
   {
diff --git a/tests/test_selfhosting_new_then_image.cc b/tests/test_selfhosting_new_then_image.cc
index b5febfb..ef938e7 100644
--- a/tests/test_selfhosting_new_then_image.cc
+++ b/tests/test_selfhosting_new_then_image.cc
@@ -109,7 +109,7 @@ static bool test(Glom::Document::HostingMode hosting_mode)
 
   //Make sure that we have a GdaBinary,
   //even if (as with SQLite) it's actually a GdaBlob that we get back:
-  const GdaBinary* binary_read = 0;
+  const GdaBinary* binary_read = nullptr;
   if(value_read_type == GDA_TYPE_BINARY)
     binary_read = gda_value_get_binary(value_read.gobj());
   else if(value_read_type == GDA_TYPE_BLOB)



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]