[glom] C++11: Use =default for simple copy operations.



commit 857e39bad3befb9e4adc8d642bbbc2048fcd2e4a
Author: Murray Cumming <murrayc murrayc com>
Date:   Mon Nov 7 22:11:53 2016 +0100

    C++11: Use =default for simple copy operations.

 glom/libglom/data_structure/choicevalue.cc         |   16 ------
 glom/libglom/data_structure/choicevalue.h          |    4 +-
 glom/libglom/data_structure/database_title.cc      |   13 -----
 glom/libglom/data_structure/database_title.h       |    4 +-
 glom/libglom/data_structure/field.cc               |   29 ------------
 glom/libglom/data_structure/field.h                |    4 +-
 glom/libglom/data_structure/foundset.cc            |   18 -------
 glom/libglom/data_structure/foundset.h             |    4 +-
 glom/libglom/data_structure/groupinfo.cc           |   17 -------
 glom/libglom/data_structure/groupinfo.h            |    4 +-
 glom/libglom/data_structure/has_title_singular.cc  |   13 -----
 glom/libglom/data_structure/has_title_singular.h   |    4 +-
 glom/libglom/data_structure/layout/custom_title.cc |   17 -------
 glom/libglom/data_structure/layout/custom_title.h  |    4 +-
 glom/libglom/data_structure/layout/formatting.cc   |   49 --------------------
 glom/libglom/data_structure/layout/formatting.h    |    4 +-
 glom/libglom/data_structure/layout/layoutitem.cc   |   20 --------
 glom/libglom/data_structure/layout/layoutitem.h    |    4 +-
 .../data_structure/layout/layoutitem_button.cc     |   16 ------
 .../data_structure/layout/layoutitem_button.h      |    4 +-
 .../layout/layoutitem_calendarportal.cc            |   14 ------
 .../layout/layoutitem_calendarportal.h             |    4 +-
 .../data_structure/layout/layoutitem_field.cc      |   37 ---------------
 .../data_structure/layout/layoutitem_field.h       |    4 +-
 .../data_structure/layout/layoutitem_image.cc      |   16 ------
 .../data_structure/layout/layoutitem_image.h       |    4 +-
 .../data_structure/layout/layoutitem_line.cc       |   26 ----------
 .../data_structure/layout/layoutitem_line.h        |    4 +-
 .../data_structure/layout/layoutitem_notebook.cc   |   12 -----
 .../data_structure/layout/layoutitem_notebook.h    |    4 +-
 .../layout/layoutitem_placeholder.cc               |    6 --
 .../data_structure/layout/layoutitem_placeholder.h |    5 +-
 .../data_structure/layout/layoutitem_portal.cc     |   34 --------------
 .../data_structure/layout/layoutitem_portal.h      |    4 +-
 .../data_structure/layout/layoutitem_text.cc       |    2 +-
 .../layout/layoutitem_withformatting.cc            |   16 ------
 .../layout/layoutitem_withformatting.h             |    4 +-
 .../layout/report_parts/layoutitem_fieldsummary.cc |   15 ------
 .../layout/report_parts/layoutitem_fieldsummary.h  |    4 +-
 .../layout/report_parts/layoutitem_footer.cc       |   13 -----
 .../layout/report_parts/layoutitem_footer.h        |    4 +-
 .../layout/report_parts/layoutitem_groupby.cc      |   24 ----------
 .../layout/report_parts/layoutitem_groupby.h       |    4 +-
 .../layout/report_parts/layoutitem_header.cc       |   14 ------
 .../layout/report_parts/layoutitem_header.h        |    4 +-
 .../layout/report_parts/layoutitem_summary.cc      |   17 -------
 .../layout/report_parts/layoutitem_summary.h       |    4 +-
 .../report_parts/layoutitem_verticalgroup.cc       |   13 -----
 .../layout/report_parts/layoutitem_verticalgroup.h |    4 +-
 glom/libglom/data_structure/layout/static_text.cc  |   12 -----
 glom/libglom/data_structure/layout/static_text.h   |    4 +-
 .../data_structure/layout/usesrelationship.cc      |   15 ------
 .../data_structure/layout/usesrelationship.h       |    4 +-
 glom/libglom/data_structure/numeric_format.cc      |   16 ------
 glom/libglom/data_structure/numeric_format.h       |    4 +-
 glom/libglom/data_structure/print_layout.cc        |   31 ------------
 glom/libglom/data_structure/print_layout.h         |    4 +-
 glom/libglom/data_structure/privileges.cc          |   15 ------
 glom/libglom/data_structure/privileges.h           |    4 +-
 glom/libglom/data_structure/relationship.cc        |   22 ---------
 glom/libglom/data_structure/relationship.h         |    4 +-
 glom/libglom/data_structure/report.cc              |   17 -------
 glom/libglom/data_structure/report.h               |    4 +-
 glom/libglom/data_structure/system_prefs.cc        |   29 ------------
 glom/libglom/data_structure/system_prefs.h         |    4 +-
 glom/libglom/data_structure/tableinfo.cc           |   19 --------
 glom/libglom/data_structure/tableinfo.h            |    4 +-
 glom/libglom/data_structure/translatable_item.cc   |   20 --------
 glom/libglom/data_structure/translatable_item.h    |    4 +-
 glom/utility_widgets/adddel/adddel.cc              |   26 ----------
 glom/utility_widgets/adddel/adddel.h               |    4 +-
 71 files changed, 72 insertions(+), 758 deletions(-)
---
diff --git a/glom/libglom/data_structure/choicevalue.cc b/glom/libglom/data_structure/choicevalue.cc
index 5a87e56..f957724 100644
--- a/glom/libglom/data_structure/choicevalue.cc
+++ b/glom/libglom/data_structure/choicevalue.cc
@@ -28,22 +28,6 @@ ChoiceValue::ChoiceValue()
   m_translatable_item_type = enumTranslatableItemType::CHOICEVALUE;
 }
 
-ChoiceValue::ChoiceValue(const ChoiceValue& src)
-: TranslatableItem(src)
-{
-  //TODO_Performance: Implement this properly, without the extra copy.
-  operator=(src);
-}
-
-ChoiceValue& ChoiceValue::operator=(const ChoiceValue& src)
-{
-  TranslatableItem::operator=(src);
-
-  m_value = src.m_value;
-
-  return *this;
-}
-
 bool ChoiceValue::operator==(const ChoiceValue& src) const
 {
   return TranslatableItem::operator==(src)
diff --git a/glom/libglom/data_structure/choicevalue.h b/glom/libglom/data_structure/choicevalue.h
index bac6288..462c209 100644
--- a/glom/libglom/data_structure/choicevalue.h
+++ b/glom/libglom/data_structure/choicevalue.h
@@ -38,10 +38,10 @@ class ChoiceValue : public TranslatableItem
 public:
 
   ChoiceValue();
-  ChoiceValue(const ChoiceValue& src);
+  ChoiceValue(const ChoiceValue& src) = default;
   ChoiceValue(ChoiceValue&& src) = delete;
 
-  ChoiceValue& operator=(const ChoiceValue& src);
+  ChoiceValue& operator=(const ChoiceValue& src) = default;
   ChoiceValue& operator=(ChoiceValue&& src) = delete;
 
   bool operator==(const ChoiceValue& src) const;
diff --git a/glom/libglom/data_structure/database_title.cc b/glom/libglom/data_structure/database_title.cc
index 4d04a37..4e389d1 100644
--- a/glom/libglom/data_structure/database_title.cc
+++ b/glom/libglom/data_structure/database_title.cc
@@ -28,17 +28,4 @@ DatabaseTitle::DatabaseTitle()
   m_translatable_item_type = enumTranslatableItemType::DATABASE_TITLE;
 }
 
-DatabaseTitle::DatabaseTitle(const DatabaseTitle& src)
-: TranslatableItem(src)
-{
-}
-
-DatabaseTitle& DatabaseTitle::operator=(const DatabaseTitle& src)
-{
-  TranslatableItem::operator=(src);
-
-  return *this;
-}
-
-
 } //namespace Glom
diff --git a/glom/libglom/data_structure/database_title.h b/glom/libglom/data_structure/database_title.h
index 7ed9ccf..23dd914 100644
--- a/glom/libglom/data_structure/database_title.h
+++ b/glom/libglom/data_structure/database_title.h
@@ -34,9 +34,9 @@ class DatabaseTitle
 {
 public:
   DatabaseTitle();
-  DatabaseTitle(const DatabaseTitle& src);
+  DatabaseTitle(const DatabaseTitle& src) = default;;
   DatabaseTitle(DatabaseTitle&& src) = delete;
-  DatabaseTitle& operator=(const DatabaseTitle& src);
+  DatabaseTitle& operator=(const DatabaseTitle& src) = default;;
   DatabaseTitle& operator=(DatabaseTitle&& src) = delete;
 };
 
diff --git a/glom/libglom/data_structure/field.cc b/glom/libglom/data_structure/field.cc
index aedc723..2ca038a 100644
--- a/glom/libglom/data_structure/field.cc
+++ b/glom/libglom/data_structure/field.cc
@@ -51,35 +51,6 @@ Field::Field()
   m_translatable_item_type = enumTranslatableItemType::FIELD;
 }
 
-Field::Field(const Field& src)
-: TranslatableItem(src)
-{
-  //TODO_Performance: Implement this properly, without the extra copy.
-  operator=(src);
-}
-
-Field& Field::operator=(const Field& src)
-{
-  TranslatableItem::operator=(src);
-
-  m_glom_type = src.m_glom_type;
-  m_field_info = src.m_field_info->copy();
-
-  m_lookup_relationship = src.m_lookup_relationship;
-  m_strLookupField = src.m_strLookupField;
-
-  m_calculation = src.m_calculation;
-
-  m_visible = src.m_visible;
-
-  m_primary_key = src.m_primary_key;
-  m_unique_key = src.m_unique_key;
-
-  m_default_formatting = src.m_default_formatting;
-
-  return *this;
-}
-
 bool Field::operator==(const Field& src) const
 {
   return TranslatableItem::operator==(src)
diff --git a/glom/libglom/data_structure/field.h b/glom/libglom/data_structure/field.h
index 2fc11df..d3957ed 100644
--- a/glom/libglom/data_structure/field.h
+++ b/glom/libglom/data_structure/field.h
@@ -84,10 +84,10 @@ public:
   };
 
   Field();
-  Field(const Field& src);
+  Field(const Field& src) = default;
   Field(Field&& src) = delete;
 
-  Field& operator=(const Field& src);
+  Field& operator=(const Field& src) = default;
   Field& operator=(Field&& src) = delete;
 
   bool operator==(const Field& src) const;
diff --git a/glom/libglom/data_structure/foundset.cc b/glom/libglom/data_structure/foundset.cc
index 0d562ea..37fa39e 100644
--- a/glom/libglom/data_structure/foundset.cc
+++ b/glom/libglom/data_structure/foundset.cc
@@ -27,14 +27,6 @@ FoundSet::FoundSet() noexcept
 {
 }
 
-FoundSet::FoundSet(const FoundSet& src) noexcept
-:  m_table_name(src.m_table_name),
-   m_extra_join(src.m_extra_join),
-   m_where_clause(src.m_where_clause),
-   m_sort_clause(src.m_sort_clause)
-{
-}
-
 FoundSet::FoundSet(FoundSet&& src) noexcept
 :  m_table_name(std::move(src.m_table_name)),
    m_extra_join(std::move(src.m_extra_join)),
@@ -43,16 +35,6 @@ FoundSet::FoundSet(FoundSet&& src) noexcept
 {
 }
 
-FoundSet& FoundSet::operator=(const FoundSet& src) noexcept
-{
-  m_table_name = src.m_table_name;
-  m_extra_join = src.m_extra_join;
-  m_where_clause = src.m_where_clause;
-  m_sort_clause = src.m_sort_clause;
-
-  return *this;
-}
-
 FoundSet& FoundSet::operator=(FoundSet&& src) noexcept
 {
   m_table_name = std::move(src.m_table_name);
diff --git a/glom/libglom/data_structure/foundset.h b/glom/libglom/data_structure/foundset.h
index e1d8432..a226722 100644
--- a/glom/libglom/data_structure/foundset.h
+++ b/glom/libglom/data_structure/foundset.h
@@ -38,9 +38,9 @@ class FoundSet
 {
 public:
   FoundSet() noexcept;
-  FoundSet(const FoundSet& src) noexcept;
+  FoundSet(const FoundSet& src) = default;
   FoundSet(FoundSet&& src) noexcept;
-  FoundSet& operator=(const FoundSet& src) noexcept;
+  FoundSet& operator=(const FoundSet& src) = default;
   FoundSet& operator=(FoundSet&& src) noexcept;
 
 private:
diff --git a/glom/libglom/data_structure/groupinfo.cc b/glom/libglom/data_structure/groupinfo.cc
index cd63074..7933253 100644
--- a/glom/libglom/data_structure/groupinfo.cc
+++ b/glom/libglom/data_structure/groupinfo.cc
@@ -28,13 +28,6 @@ GroupInfo::GroupInfo()
 {
 }
 
-GroupInfo::GroupInfo(const GroupInfo& src)
-: TranslatableItem(src),
-  m_developer(src.m_developer),
-  m_map_privileges(src.m_map_privileges)
-{
-}
-
 GroupInfo::GroupInfo(GroupInfo&& src)
 : TranslatableItem(src),
   m_developer(std::move(src.m_developer)),
@@ -42,16 +35,6 @@ GroupInfo::GroupInfo(GroupInfo&& src)
 {
 }
 
-GroupInfo& GroupInfo::operator=(const GroupInfo& src)
-{
-  TranslatableItem::operator=(src);
-
-  m_developer = src.m_developer;
-  m_map_privileges = src.m_map_privileges;
-
-  return *this;
-}
-
 GroupInfo& GroupInfo::operator=(GroupInfo&& src)
 {
   TranslatableItem::operator=(src);
diff --git a/glom/libglom/data_structure/groupinfo.h b/glom/libglom/data_structure/groupinfo.h
index 61a16af..e603cf1 100644
--- a/glom/libglom/data_structure/groupinfo.h
+++ b/glom/libglom/data_structure/groupinfo.h
@@ -32,10 +32,10 @@ class GroupInfo : public TranslatableItem
 {
 public:
   GroupInfo();
-  GroupInfo(const GroupInfo& src);
+  GroupInfo(const GroupInfo& src) = default;
   GroupInfo(GroupInfo&& src);
 
-  GroupInfo& operator=(const GroupInfo& src);
+  GroupInfo& operator=(const GroupInfo& src) = default;
   GroupInfo& operator=(GroupInfo&& src);
 
   bool operator==(const GroupInfo& src) const;
diff --git a/glom/libglom/data_structure/has_title_singular.cc 
b/glom/libglom/data_structure/has_title_singular.cc
index 0d4c0c0..721d4ee 100644
--- a/glom/libglom/data_structure/has_title_singular.cc
+++ b/glom/libglom/data_structure/has_title_singular.cc
@@ -28,23 +28,10 @@ HasTitleSingular::HasTitleSingular()
 {
 }
 
-HasTitleSingular::HasTitleSingular(const HasTitleSingular& src)
-: m_title_singular(src.m_title_singular)
-{
-
-}
-
 HasTitleSingular::~HasTitleSingular()
 {
 }
 
-HasTitleSingular& HasTitleSingular::operator=(const HasTitleSingular& src)
-{
-  m_title_singular = src.m_title_singular;
-
-  return *this;
-}
-
 bool HasTitleSingular::operator==(const HasTitleSingular& src) const
 {
   const bool bResult = (m_title_singular == src.m_title_singular);
diff --git a/glom/libglom/data_structure/has_title_singular.h 
b/glom/libglom/data_structure/has_title_singular.h
index f5f2db4..9d6a90e 100644
--- a/glom/libglom/data_structure/has_title_singular.h
+++ b/glom/libglom/data_structure/has_title_singular.h
@@ -34,11 +34,11 @@ class HasTitleSingular
 {
 public:
   HasTitleSingular();
-  HasTitleSingular(const HasTitleSingular& src);
+  HasTitleSingular(const HasTitleSingular& src) = default;
   HasTitleSingular(HasTitleSingular&& src) = delete;
   virtual ~HasTitleSingular();
 
-  HasTitleSingular& operator=(const HasTitleSingular& src);
+  HasTitleSingular& operator=(const HasTitleSingular& src) = default;
   HasTitleSingular& operator=(HasTitleSingular&& src) = delete;
 
   bool operator==(const HasTitleSingular& src) const;
diff --git a/glom/libglom/data_structure/layout/custom_title.cc 
b/glom/libglom/data_structure/layout/custom_title.cc
index 6a3b063..1de2f89 100644
--- a/glom/libglom/data_structure/layout/custom_title.cc
+++ b/glom/libglom/data_structure/layout/custom_title.cc
@@ -29,12 +29,6 @@ CustomTitle::CustomTitle()
   m_translatable_item_type = enumTranslatableItemType::CUSTOM_TITLE;
 }
 
-CustomTitle::CustomTitle(const CustomTitle& src)
-: TranslatableItem(src),
-  m_use_custom_title(src.m_use_custom_title)
-{
-}
-
 bool CustomTitle::operator==(const CustomTitle& src) const
 {
   const auto result = TranslatableItem::operator==(src) &&
@@ -43,17 +37,6 @@ bool CustomTitle::operator==(const CustomTitle& src) const
   return result;
 }
 
-//Avoid using this, for performance:
-CustomTitle& CustomTitle::operator=(const CustomTitle& src)
-{
-  TranslatableItem::operator=(src);
-
-  m_use_custom_title = src.m_use_custom_title;
-
-  return *this;
-}
-
-
 bool CustomTitle::get_use_custom_title() const
 {
   return m_use_custom_title;
diff --git a/glom/libglom/data_structure/layout/custom_title.h 
b/glom/libglom/data_structure/layout/custom_title.h
index fdf760a..0b12ae4 100644
--- a/glom/libglom/data_structure/layout/custom_title.h
+++ b/glom/libglom/data_structure/layout/custom_title.h
@@ -32,9 +32,9 @@ class CustomTitle
 public:
 
   CustomTitle();
-  CustomTitle(const CustomTitle& src);
+  CustomTitle(const CustomTitle& src) = default;
   CustomTitle(CustomTitle&& src) = delete;
-  CustomTitle& operator=(const CustomTitle& src);
+  CustomTitle& operator=(const CustomTitle& src) = default;
   CustomTitle& operator=(CustomTitle&& src) = delete;
 
   bool operator==(const CustomTitle& src) const;
diff --git a/glom/libglom/data_structure/layout/formatting.cc 
b/glom/libglom/data_structure/layout/formatting.cc
index 6c8504f..3c6dcb5 100644
--- a/glom/libglom/data_structure/layout/formatting.cc
+++ b/glom/libglom/data_structure/layout/formatting.cc
@@ -39,27 +39,6 @@ Formatting::Formatting()
 {
 }
 
-Formatting::Formatting(const Formatting& src)
-: UsesRelationship(src),
-  m_numeric_format(src.m_numeric_format),
-  m_choices_custom_list(src.m_choices_custom_list),
-  m_choices_restricted(src.m_choices_restricted),
-  m_choices_restricted_as_radio_buttons(src.m_choices_restricted_as_radio_buttons),
-  m_choices_custom(src.m_choices_custom),
-  m_choices_related(src.m_choices_related),
-  m_text_format_multiline(src.m_text_format_multiline),
-  m_text_multiline_height_lines(src.m_text_multiline_height_lines),
-  m_text_font(src.m_text_font),
-  m_text_color_foreground(src.m_text_color_foreground),
-  m_text_color_background(src.m_text_color_background),
-  m_horizontal_alignment(src.m_horizontal_alignment),
-  m_choices_related_field(src.m_choices_related_field),
-  m_choices_extra_layout_group(src.m_choices_extra_layout_group),
-  m_choices_related_sort_fields(src.m_choices_related_sort_fields),
-  m_choices_related_show_all(src.m_choices_related_show_all)
-{
-}
-
 bool Formatting::operator==(const Formatting& src) const
 {
   return UsesRelationship::operator==(src) &&
@@ -81,34 +60,6 @@ bool Formatting::operator==(const Formatting& src) const
     (m_choices_related_show_all == src.m_choices_related_show_all);
 }
 
-
-Formatting& Formatting::operator=(const Formatting& src)
-{
-  UsesRelationship::operator=(src);
-
-  m_numeric_format = src.m_numeric_format;
-
-  m_choices_custom_list = src.m_choices_custom_list;
-  m_choices_restricted = src.m_choices_restricted;
-  m_choices_restricted_as_radio_buttons = src.m_choices_restricted_as_radio_buttons;
-  m_choices_custom = src.m_choices_custom;
-  m_choices_related = src.m_choices_related;
-  m_choices_related_field = src.m_choices_related_field;
-  m_choices_extra_layout_group = src.m_choices_extra_layout_group;
-  m_choices_related_sort_fields = src.m_choices_related_sort_fields;
-  m_choices_related_show_all = src.m_choices_related_show_all;
-
-  m_text_format_multiline = src.m_text_format_multiline;
-  m_text_multiline_height_lines = src.m_text_multiline_height_lines;
-  m_text_font = src.m_text_font;
-  m_text_color_foreground = src.m_text_color_foreground;
-  m_text_color_background = src.m_text_color_background;
-  m_horizontal_alignment = src.m_horizontal_alignment;
-
-  //std::cerr << G_STRFUNC << ": m_choices_related_relationship=" << m_choices_related_relationship << ", 
src.m_choices_related_relationship=" << src.m_choices_related_relationship << std::endl;
-  return *this;
-}
-
 bool Formatting::get_text_format_multiline() const
 {
   return m_text_format_multiline;
diff --git a/glom/libglom/data_structure/layout/formatting.h b/glom/libglom/data_structure/layout/formatting.h
index d77471d..9fa3127 100644
--- a/glom/libglom/data_structure/layout/formatting.h
+++ b/glom/libglom/data_structure/layout/formatting.h
@@ -41,9 +41,9 @@ class Formatting : public UsesRelationship //The UsesRelationship base has the r
 public:
 
   Formatting();
-  Formatting(const Formatting& src);
+  Formatting(const Formatting& src) = default;
   Formatting(Formatting&& src) = delete;
-  Formatting& operator=(const Formatting& src);
+  Formatting& operator=(const Formatting& src) = default;
   Formatting& operator=(Formatting&& src) = delete;
 
   bool operator==(const Formatting& src) const;
diff --git a/glom/libglom/data_structure/layout/layoutitem.cc 
b/glom/libglom/data_structure/layout/layoutitem.cc
index 97e81fb..783d022 100644
--- a/glom/libglom/data_structure/layout/layoutitem.cc
+++ b/glom/libglom/data_structure/layout/layoutitem.cc
@@ -32,26 +32,6 @@ LayoutItem::PrintLayoutPosition::PrintLayoutPosition()
 {
 }
 
-LayoutItem::PrintLayoutPosition::PrintLayoutPosition(const LayoutItem::PrintLayoutPosition& src)
-: m_x(src.m_x),
-  m_y(src.m_y),
-  m_width(src.m_width),
-  m_height(src.m_height),
-  m_split_across_pages(src.m_split_across_pages)
-{
-}
-
-LayoutItem::PrintLayoutPosition& LayoutItem::PrintLayoutPosition::operator=(const 
LayoutItem::PrintLayoutPosition& src)
-{
-  m_x = src.m_x;
-  m_y = src.m_y;
-  m_width = src.m_width;
-  m_height = src.m_height;
-  m_split_across_pages = src.m_split_across_pages;
-
-  return *this;
-}
-
 bool LayoutItem::PrintLayoutPosition::operator==(const LayoutItem::PrintLayoutPosition& src) const
 {
   return (m_x == src.m_x) &&
diff --git a/glom/libglom/data_structure/layout/layoutitem.h b/glom/libglom/data_structure/layout/layoutitem.h
index d4b4771..70f8850 100644
--- a/glom/libglom/data_structure/layout/layoutitem.h
+++ b/glom/libglom/data_structure/layout/layoutitem.h
@@ -92,9 +92,9 @@ private:
   {
   public:
     PrintLayoutPosition();
-    PrintLayoutPosition(const PrintLayoutPosition& src);
+    PrintLayoutPosition(const PrintLayoutPosition& src) = default;
     PrintLayoutPosition(PrintLayoutPosition&& src) = delete;
-    PrintLayoutPosition& operator=(const PrintLayoutPosition& src);
+    PrintLayoutPosition& operator=(const PrintLayoutPosition& src) = default;
     PrintLayoutPosition& operator=(PrintLayoutPosition&& src) = delete;
 
     bool operator==(const PrintLayoutPosition& src) const;
diff --git a/glom/libglom/data_structure/layout/layoutitem_button.cc 
b/glom/libglom/data_structure/layout/layoutitem_button.cc
index f654936..71a1e23 100644
--- a/glom/libglom/data_structure/layout/layoutitem_button.cc
+++ b/glom/libglom/data_structure/layout/layoutitem_button.cc
@@ -30,12 +30,6 @@ LayoutItem_Button::LayoutItem_Button()
   m_translatable_item_type = enumTranslatableItemType::BUTTON;
 }
 
-LayoutItem_Button::LayoutItem_Button(const LayoutItem_Button& src)
-: LayoutItem_WithFormatting(src),
-  m_script(src.m_script)
-{
-}
-
 LayoutItem* LayoutItem_Button::clone() const
 {
   return new LayoutItem_Button(*this);
@@ -49,16 +43,6 @@ bool LayoutItem_Button::operator==(const LayoutItem_Button& src) const
   return result;
 }
 
-//Avoid using this, for performance:
-LayoutItem_Button& LayoutItem_Button::operator=(const LayoutItem_Button& src)
-{
-  LayoutItem_WithFormatting::operator=(src);
-
-  m_script = src.m_script;
-
-  return *this;
-}
-
 Glib::ustring LayoutItem_Button::get_part_type_name() const
 {
   //Translators: This is the name of a UI element (a layout part name).
diff --git a/glom/libglom/data_structure/layout/layoutitem_button.h 
b/glom/libglom/data_structure/layout/layoutitem_button.h
index 4d9e81b..085c26a 100644
--- a/glom/libglom/data_structure/layout/layoutitem_button.h
+++ b/glom/libglom/data_structure/layout/layoutitem_button.h
@@ -32,9 +32,9 @@ class LayoutItem_Button
 public:
 
   LayoutItem_Button();
-  LayoutItem_Button(const LayoutItem_Button& src);
+  LayoutItem_Button(const LayoutItem_Button& src) = default;
   LayoutItem_Button(LayoutItem_Button&& src) = delete;
-  LayoutItem_Button& operator=(const LayoutItem_Button& src);
+  LayoutItem_Button& operator=(const LayoutItem_Button& src) = default;
   LayoutItem_Button& operator=(LayoutItem_Button&& src) = delete;
 
   LayoutItem* clone() const override;
diff --git a/glom/libglom/data_structure/layout/layoutitem_calendarportal.cc 
b/glom/libglom/data_structure/layout/layoutitem_calendarportal.cc
index 52e6679..bf26e34 100644
--- a/glom/libglom/data_structure/layout/layoutitem_calendarportal.cc
+++ b/glom/libglom/data_structure/layout/layoutitem_calendarportal.cc
@@ -29,25 +29,11 @@ LayoutItem_CalendarPortal::LayoutItem_CalendarPortal()
 {
 }
 
-LayoutItem_CalendarPortal::LayoutItem_CalendarPortal(const LayoutItem_CalendarPortal& src)
-: LayoutItem_Portal(src),
-  m_date_field(src.m_date_field)
-{
-}
-
 LayoutItem* LayoutItem_CalendarPortal::clone() const
 {
   return new LayoutItem_CalendarPortal(*this);
 }
 
-LayoutItem_CalendarPortal& LayoutItem_CalendarPortal::operator=(const LayoutItem_CalendarPortal& src)
-{
-  LayoutItem_Portal::operator=(src);
-  m_date_field = src.m_date_field;
-
-  return *this;
-}
-
 Glib::ustring LayoutItem_CalendarPortal::get_part_type_name() const
 {
   //Translators: This is the name of a UI element (a layout part name).
diff --git a/glom/libglom/data_structure/layout/layoutitem_calendarportal.h 
b/glom/libglom/data_structure/layout/layoutitem_calendarportal.h
index 76a34f1..df0486b 100644
--- a/glom/libglom/data_structure/layout/layoutitem_calendarportal.h
+++ b/glom/libglom/data_structure/layout/layoutitem_calendarportal.h
@@ -31,9 +31,9 @@ class LayoutItem_CalendarPortal : public LayoutItem_Portal
 public:
 
   LayoutItem_CalendarPortal();
-  LayoutItem_CalendarPortal(const LayoutItem_CalendarPortal& src);
+  LayoutItem_CalendarPortal(const LayoutItem_CalendarPortal& src) = default;
   LayoutItem_CalendarPortal(LayoutItem_CalendarPortal&& src) = delete;
-  LayoutItem_CalendarPortal& operator=(const LayoutItem_CalendarPortal& src);
+  LayoutItem_CalendarPortal& operator=(const LayoutItem_CalendarPortal& src) = default;
   LayoutItem_CalendarPortal& operator=(LayoutItem_CalendarPortal&& src) = delete;
 
   LayoutItem* clone() const override;
diff --git a/glom/libglom/data_structure/layout/layoutitem_field.cc 
b/glom/libglom/data_structure/layout/layoutitem_field.cc
index eb608aa..3b1ace9 100644
--- a/glom/libglom/data_structure/layout/layoutitem_field.cc
+++ b/glom/libglom/data_structure/layout/layoutitem_field.cc
@@ -34,22 +34,6 @@ LayoutItem_Field::LayoutItem_Field()
 {
 }
 
-LayoutItem_Field::LayoutItem_Field(const LayoutItem_Field& src)
-: LayoutItem_WithFormatting(src),
-  UsesRelationship(src),
-  m_priv_view(src.m_priv_view),
-  m_priv_edit(src.m_priv_edit),
-  //m_table_name(src.m_table_name),
-  m_field_cache_valid(src.m_field_cache_valid),
-  m_hidden(src.m_hidden),
-  m_formatting_use_default(src.m_formatting_use_default),
-  m_title_custom(src.m_title_custom)
-{
-//std::cerr << G_STRFUNC << ": m_choices_related_relationship=" << m_choices_related_relationship << ", 
src.m_choices_related_relationship=" << src.m_choices_related_relationship << std::endl;
-
-  m_field = src.m_field;
-}
-
 LayoutItem* LayoutItem_Field::clone() const
 {
   return new LayoutItem_Field(*this);
@@ -78,27 +62,6 @@ bool LayoutItem_Field::operator==(const LayoutItem_Field& src) const
   return result;
 }
 
-//Avoid using this, for performance:
-LayoutItem_Field& LayoutItem_Field::operator=(const LayoutItem_Field& src)
-{
-  LayoutItem_WithFormatting::operator=(src);
-  UsesRelationship::operator=(src);
-
-  m_field = src.m_field;
-  m_field_cache_valid = src.m_field_cache_valid;
-
-  m_priv_view = src.m_priv_view;
-  m_priv_edit = src.m_priv_edit;
-
-  m_hidden = src.m_hidden;
-
-  m_formatting_use_default = src.m_formatting_use_default;
-
-  m_title_custom = src.m_title_custom;
-
-  return *this;
-}
-
 void LayoutItem_Field::set_name(const Glib::ustring& name) noexcept
 {
   if(get_name() != name)
diff --git a/glom/libglom/data_structure/layout/layoutitem_field.h 
b/glom/libglom/data_structure/layout/layoutitem_field.h
index bcf6d48..4248761 100644
--- a/glom/libglom/data_structure/layout/layoutitem_field.h
+++ b/glom/libglom/data_structure/layout/layoutitem_field.h
@@ -47,9 +47,9 @@ class LayoutItem_Field
 public:
 
   LayoutItem_Field();
-  LayoutItem_Field(const LayoutItem_Field& src);
+  LayoutItem_Field(const LayoutItem_Field& src) = default;
   LayoutItem_Field(LayoutItem_Field&& src) = delete;
-  LayoutItem_Field& operator=(const LayoutItem_Field& src);
+  LayoutItem_Field& operator=(const LayoutItem_Field& src) = default;
   LayoutItem_Field& operator=(LayoutItem_Field&& src) = delete;
 
   LayoutItem* clone() const override;
diff --git a/glom/libglom/data_structure/layout/layoutitem_image.cc 
b/glom/libglom/data_structure/layout/layoutitem_image.cc
index 1571a49..e31455b 100644
--- a/glom/libglom/data_structure/layout/layoutitem_image.cc
+++ b/glom/libglom/data_structure/layout/layoutitem_image.cc
@@ -31,12 +31,6 @@ LayoutItem_Image::LayoutItem_Image()
   m_translatable_item_type = enumTranslatableItemType::IMAGEOBJECT;
 }
 
-LayoutItem_Image::LayoutItem_Image(const LayoutItem_Image& src)
-: LayoutItem(src),
-  m_image(src.m_image)
-{
-}
-
 LayoutItem* LayoutItem_Image::clone() const
 {
   return new LayoutItem_Image(*this);
@@ -50,16 +44,6 @@ bool LayoutItem_Image::operator==(const LayoutItem_Image& src) const
   return result;
 }
 
-//Avoid using this, for performance:
-LayoutItem_Image& LayoutItem_Image::operator=(const LayoutItem_Image& src)
-{
-  LayoutItem::operator=(src);
-
-  m_image = src.m_image;
-
-  return *this;
-}
-
 Glib::ustring LayoutItem_Image::get_part_type_name() const
 {
   //Translators: This is the name of a UI element (a layout part name).
diff --git a/glom/libglom/data_structure/layout/layoutitem_image.h 
b/glom/libglom/data_structure/layout/layoutitem_image.h
index 762c8f9..ca27e4c 100644
--- a/glom/libglom/data_structure/layout/layoutitem_image.h
+++ b/glom/libglom/data_structure/layout/layoutitem_image.h
@@ -38,9 +38,9 @@ class LayoutItem_Image
 {
 public:
   LayoutItem_Image();
-  LayoutItem_Image(const LayoutItem_Image& src);
+  LayoutItem_Image(const LayoutItem_Image& src) = default;
   LayoutItem_Image(LayoutItem_Image&& src) = delete;
-  LayoutItem_Image& operator=(const LayoutItem_Image& src);
+  LayoutItem_Image& operator=(const LayoutItem_Image& src) = default;
   LayoutItem_Image& operator=(LayoutItem_Image&& src) = delete;
 
   LayoutItem* clone() const override;
diff --git a/glom/libglom/data_structure/layout/layoutitem_line.cc 
b/glom/libglom/data_structure/layout/layoutitem_line.cc
index ddd58d2..e4bb4f7 100644
--- a/glom/libglom/data_structure/layout/layoutitem_line.cc
+++ b/glom/libglom/data_structure/layout/layoutitem_line.cc
@@ -36,17 +36,6 @@ LayoutItem_Line::LayoutItem_Line()
   m_translatable_item_type = enumTranslatableItemType::INVALID; //There is no text in this to translate.
 }
 
-LayoutItem_Line::LayoutItem_Line(const LayoutItem_Line& src)
-: LayoutItem(src),
-  m_start_x(src.m_start_x),
-  m_start_y(src.m_start_y),
-  m_end_x(src.m_end_x),
-  m_end_y(src.m_end_y),
-  m_line_width(src.m_line_width),
-  m_color(src.m_color)
-{
-}
-
 LayoutItem* LayoutItem_Line::clone() const
 {
   return new LayoutItem_Line(*this);
@@ -65,21 +54,6 @@ bool LayoutItem_Line::operator==(const LayoutItem_Line& src) const
   return result;
 }
 
-//Avoid using this, for performance:
-LayoutItem_Line& LayoutItem_Line::operator=(const LayoutItem_Line& src)
-{
-  LayoutItem::operator=(src);
-
-  m_start_x = src.m_start_x;
-  m_start_y = src.m_start_y;
-  m_end_x = src.m_end_x;
-  m_end_y = src.m_end_y;
-  m_line_width = src.m_line_width;
-  m_color = src.m_color;
-
-  return *this;
-}
-
 Glib::ustring LayoutItem_Line::get_part_type_name() const
 {
   //Translators: This is the name of a UI element (a layout part name).
diff --git a/glom/libglom/data_structure/layout/layoutitem_line.h 
b/glom/libglom/data_structure/layout/layoutitem_line.h
index eb29ba5..fd53216 100644
--- a/glom/libglom/data_structure/layout/layoutitem_line.h
+++ b/glom/libglom/data_structure/layout/layoutitem_line.h
@@ -33,9 +33,9 @@ class LayoutItem_Line
 {
 public:
   LayoutItem_Line();
-  LayoutItem_Line(const LayoutItem_Line& src);
+  LayoutItem_Line(const LayoutItem_Line& src) = default;
   LayoutItem_Line(LayoutItem_Line&& src) = delete;
-  LayoutItem_Line& operator=(const LayoutItem_Line& src);
+  LayoutItem_Line& operator=(const LayoutItem_Line& src) = default;
   LayoutItem_Line& operator=(LayoutItem_Line&& src) = delete;
 
   LayoutItem* clone() const override;
diff --git a/glom/libglom/data_structure/layout/layoutitem_notebook.cc 
b/glom/libglom/data_structure/layout/layoutitem_notebook.cc
index ad1eee9..30393b3 100644
--- a/glom/libglom/data_structure/layout/layoutitem_notebook.cc
+++ b/glom/libglom/data_structure/layout/layoutitem_notebook.cc
@@ -29,23 +29,11 @@ LayoutItem_Notebook::LayoutItem_Notebook()
 {
 }
 
-LayoutItem_Notebook::LayoutItem_Notebook(const LayoutItem_Notebook& src)
-: LayoutGroup(src)
-{
-}
-
 LayoutItem* LayoutItem_Notebook::clone() const
 {
   return new LayoutItem_Notebook(*this);
 }
 
-LayoutItem_Notebook& LayoutItem_Notebook::operator=(const LayoutItem_Notebook& src)
-{
-  LayoutGroup::operator=(src);
-
-  return *this;
-}
-
 Glib::ustring LayoutItem_Notebook::get_part_type_name() const
 {
   //Translators: This is the name of a UI element (a layout part name).
diff --git a/glom/libglom/data_structure/layout/layoutitem_notebook.h 
b/glom/libglom/data_structure/layout/layoutitem_notebook.h
index e7d55d3..5d2c6d8 100644
--- a/glom/libglom/data_structure/layout/layoutitem_notebook.h
+++ b/glom/libglom/data_structure/layout/layoutitem_notebook.h
@@ -36,9 +36,9 @@ class LayoutItem_Notebook
 public:
 
   LayoutItem_Notebook();
-  LayoutItem_Notebook(const LayoutItem_Notebook& src);
+  LayoutItem_Notebook(const LayoutItem_Notebook& src) = default;
   LayoutItem_Notebook(LayoutItem_Notebook&& src) = delete;
-  LayoutItem_Notebook& operator=(const LayoutItem_Notebook& src);
+  LayoutItem_Notebook& operator=(const LayoutItem_Notebook& src) = default;
   LayoutItem_Notebook& operator=(LayoutItem_Notebook&& src) = delete;
 
   LayoutItem* clone() const override;
diff --git a/glom/libglom/data_structure/layout/layoutitem_placeholder.cc 
b/glom/libglom/data_structure/layout/layoutitem_placeholder.cc
index 99a4405..1e583b4 100644
--- a/glom/libglom/data_structure/layout/layoutitem_placeholder.cc
+++ b/glom/libglom/data_structure/layout/layoutitem_placeholder.cc
@@ -34,12 +34,6 @@ LayoutItem_Placeholder::LayoutItem_Placeholder()
 
 }
 
-LayoutItem_Placeholder::LayoutItem_Placeholder(const LayoutItem_Placeholder& src) :
-  LayoutItem(src)
-{
-
-}
-
 LayoutItem* LayoutItem_Placeholder::clone() const
 {
   return new LayoutItem_Placeholder(*this);
diff --git a/glom/libglom/data_structure/layout/layoutitem_placeholder.h 
b/glom/libglom/data_structure/layout/layoutitem_placeholder.h
index 92cf5d7..e314fcf 100644
--- a/glom/libglom/data_structure/layout/layoutitem_placeholder.h
+++ b/glom/libglom/data_structure/layout/layoutitem_placeholder.h
@@ -35,10 +35,11 @@ class LayoutItem_Placeholder: public LayoutItem
 public:
   LayoutItem_Placeholder();
 
-  LayoutItem_Placeholder(const LayoutItem_Placeholder& src);
+  LayoutItem_Placeholder(const LayoutItem_Placeholder& src) = default;
   LayoutItem_Placeholder(LayoutItem_Placeholder&& src) = delete;
 
-  //TODO: Add operator=().
+  LayoutItem_Placeholder& operator=(const LayoutItem_Placeholder& src) = default;
+  LayoutItem_Placeholder& operator=(LayoutItem_Placeholder&& src) = delete;
 
   /** Create a new copied instance.
   * This allows us to deep-copy a list of LayoutItems.
diff --git a/glom/libglom/data_structure/layout/layoutitem_portal.cc 
b/glom/libglom/data_structure/layout/layoutitem_portal.cc
index 51e32ee..9f9a5cf 100644
--- a/glom/libglom/data_structure/layout/layoutitem_portal.cc
+++ b/glom/libglom/data_structure/layout/layoutitem_portal.cc
@@ -36,45 +36,11 @@ LayoutItem_Portal::LayoutItem_Portal()
 {
 }
 
-LayoutItem_Portal::LayoutItem_Portal(const LayoutItem_Portal& src)
-: LayoutGroup(src),
-  UsesRelationship(src),
-  //HasTitleSingular(src),
-  m_navigation_relationship_specific(src.m_navigation_relationship_specific),
-  m_print_layout_row_height(src.m_print_layout_row_height),
-  m_print_layout_row_line_width(src.m_print_layout_row_line_width),
-  m_print_layout_column_line_width(src.m_print_layout_column_line_width),
-  m_print_layout_line_color(src.m_print_layout_line_color),
-  m_navigation_type(src.m_navigation_type),
-  m_rows_count_min(src.m_rows_count_min),
-  m_rows_count_max(src.m_rows_count_max)
-{
-}
-
 LayoutItem* LayoutItem_Portal::clone() const
 {
   return new LayoutItem_Portal(*this);
 }
 
-
-LayoutItem_Portal& LayoutItem_Portal::operator=(const LayoutItem_Portal& src)
-{
-  LayoutGroup::operator=(src);
-  UsesRelationship::operator=(src);
-  //HasTitleSingular::operator=(src);
-
-  m_navigation_relationship_specific = src.m_navigation_relationship_specific;
-  m_print_layout_row_height = src.m_print_layout_row_height;
-  m_print_layout_row_line_width = src.m_print_layout_row_line_width;
-  m_print_layout_column_line_width = src.m_print_layout_column_line_width;
-  m_print_layout_line_color = src.m_print_layout_line_color;
-  m_navigation_type = src.m_navigation_type;
-  m_rows_count_min = src.m_rows_count_min;
-  m_rows_count_max = src.m_rows_count_max;
-
-  return *this;
-}
-
 void LayoutItem_Portal::change_related_field_item_name(const Glib::ustring& table_name, const Glib::ustring& 
field_name, const Glib::ustring& field_name_new)
 {
   LayoutGroup::change_related_field_item_name(table_name, field_name, field_name_new);
diff --git a/glom/libglom/data_structure/layout/layoutitem_portal.h 
b/glom/libglom/data_structure/layout/layoutitem_portal.h
index ba95c38..b2292b9 100644
--- a/glom/libglom/data_structure/layout/layoutitem_portal.h
+++ b/glom/libglom/data_structure/layout/layoutitem_portal.h
@@ -46,9 +46,9 @@ class LayoutItem_Portal
 public:
 
   LayoutItem_Portal();
-  LayoutItem_Portal(const LayoutItem_Portal& src);
+  LayoutItem_Portal(const LayoutItem_Portal& src) = default;
   LayoutItem_Portal(LayoutItem_Portal&& src) = delete;
-  LayoutItem_Portal& operator=(const LayoutItem_Portal& src);
+  LayoutItem_Portal& operator=(const LayoutItem_Portal& src) = default;
   LayoutItem_Portal& operator=(LayoutItem_Portal&& src) = delete;
 
   LayoutItem* clone() const override;
diff --git a/glom/libglom/data_structure/layout/layoutitem_text.cc 
b/glom/libglom/data_structure/layout/layoutitem_text.cc
index 67a942a..317a75b 100644
--- a/glom/libglom/data_structure/layout/layoutitem_text.cc
+++ b/glom/libglom/data_structure/layout/layoutitem_text.cc
@@ -57,7 +57,7 @@ LayoutItem_Text& LayoutItem_Text::operator=(const LayoutItem_Text& src)
 {
   LayoutItem_WithFormatting::operator=(src);
 
-  //Copy the underlying TranslatableItem, not the shardptr to it:
+  //Copy the underlying TranslatableItem, not the shardeptr to it:
   const auto src_item = *(src.m_text);
   m_text = std::make_shared<StaticText>(src_item);
 
diff --git a/glom/libglom/data_structure/layout/layoutitem_withformatting.cc 
b/glom/libglom/data_structure/layout/layoutitem_withformatting.cc
index 4e8c21c..9770830 100644
--- a/glom/libglom/data_structure/layout/layoutitem_withformatting.cc
+++ b/glom/libglom/data_structure/layout/layoutitem_withformatting.cc
@@ -27,12 +27,6 @@ LayoutItem_WithFormatting::LayoutItem_WithFormatting()
 {
 }
 
-LayoutItem_WithFormatting::LayoutItem_WithFormatting(const LayoutItem_WithFormatting& src)
-: LayoutItem(src),
-  m_formatting(src.m_formatting)
-{
-}
-
 bool LayoutItem_WithFormatting::operator==(const LayoutItem_WithFormatting& src) const
 {
   auto result = LayoutItem::operator==(src) &&
@@ -41,16 +35,6 @@ bool LayoutItem_WithFormatting::operator==(const LayoutItem_WithFormatting& src)
   return result;
 }
 
-//Avoid using this, for performance:
-LayoutItem_WithFormatting& LayoutItem_WithFormatting::operator=(const LayoutItem_WithFormatting& src)
-{
-  LayoutItem::operator=(src);
-
-  m_formatting = src.m_formatting;
-
-  return *this;
-}
-
 const Formatting& LayoutItem_WithFormatting::get_formatting_used() const
 {
   return m_formatting;
diff --git a/glom/libglom/data_structure/layout/layoutitem_withformatting.h 
b/glom/libglom/data_structure/layout/layoutitem_withformatting.h
index 70eeabd..465c292 100644
--- a/glom/libglom/data_structure/layout/layoutitem_withformatting.h
+++ b/glom/libglom/data_structure/layout/layoutitem_withformatting.h
@@ -36,9 +36,9 @@ class LayoutItem_WithFormatting
 public:
 
   LayoutItem_WithFormatting();
-  LayoutItem_WithFormatting(const LayoutItem_WithFormatting& src);
+  LayoutItem_WithFormatting(const LayoutItem_WithFormatting& src) = default;
   LayoutItem_WithFormatting(LayoutItem_WithFormatting&& src) = delete;
-  LayoutItem_WithFormatting& operator=(const LayoutItem_WithFormatting& src);
+  LayoutItem_WithFormatting& operator=(const LayoutItem_WithFormatting& src) = default;
   LayoutItem_WithFormatting& operator=(LayoutItem_WithFormatting&& src) = delete;
 
   bool operator==(const LayoutItem_WithFormatting& src) const;
diff --git a/glom/libglom/data_structure/layout/report_parts/layoutitem_fieldsummary.cc 
b/glom/libglom/data_structure/layout/report_parts/layoutitem_fieldsummary.cc
index e0fe509..e59743c 100644
--- a/glom/libglom/data_structure/layout/report_parts/layoutitem_fieldsummary.cc
+++ b/glom/libglom/data_structure/layout/report_parts/layoutitem_fieldsummary.cc
@@ -30,12 +30,6 @@ LayoutItem_FieldSummary::LayoutItem_FieldSummary()
 {
 }
 
-LayoutItem_FieldSummary::LayoutItem_FieldSummary(const LayoutItem_FieldSummary& src)
-: LayoutItem_Field(src),
-  m_summary_type(src.m_summary_type)
-{
-}
-
 LayoutItem* LayoutItem_FieldSummary::clone() const
 {
   return new LayoutItem_FieldSummary(*this);
@@ -47,15 +41,6 @@ bool LayoutItem_FieldSummary::operator==(const LayoutItem_FieldSummary& src) con
     (m_summary_type == src.m_summary_type);
 }
 
-LayoutItem_FieldSummary& LayoutItem_FieldSummary::operator=(const LayoutItem_FieldSummary& src)
-{
-  LayoutItem_Field::operator=(src);
-
-  m_summary_type = src.m_summary_type;
-
-  return *this;
-}
-
 Glib::ustring LayoutItem_FieldSummary::get_title_or_name(const Glib::ustring& locale) const noexcept
 {
   const auto field_title = get_full_field_details()->get_title_or_name(locale);
diff --git a/glom/libglom/data_structure/layout/report_parts/layoutitem_fieldsummary.h 
b/glom/libglom/data_structure/layout/report_parts/layoutitem_fieldsummary.h
index 0efc43b..967e70c 100644
--- a/glom/libglom/data_structure/layout/report_parts/layoutitem_fieldsummary.h
+++ b/glom/libglom/data_structure/layout/report_parts/layoutitem_fieldsummary.h
@@ -31,9 +31,9 @@ class LayoutItem_FieldSummary : public LayoutItem_Field
 public:
 
   LayoutItem_FieldSummary();
-  LayoutItem_FieldSummary(const LayoutItem_FieldSummary& src);
+  LayoutItem_FieldSummary(const LayoutItem_FieldSummary& src) = default;
   LayoutItem_FieldSummary(LayoutItem_FieldSummary&& src) = delete;
-  LayoutItem_FieldSummary& operator=(const LayoutItem_FieldSummary& src);
+  LayoutItem_FieldSummary& operator=(const LayoutItem_FieldSummary& src) = default;
   LayoutItem_FieldSummary& operator=(LayoutItem_FieldSummary&& src) = delete;
 
   LayoutItem* clone() const override;
diff --git a/glom/libglom/data_structure/layout/report_parts/layoutitem_footer.cc 
b/glom/libglom/data_structure/layout/report_parts/layoutitem_footer.cc
index 6d32142..ec15275 100644
--- a/glom/libglom/data_structure/layout/report_parts/layoutitem_footer.cc
+++ b/glom/libglom/data_structure/layout/report_parts/layoutitem_footer.cc
@@ -29,24 +29,11 @@ LayoutItem_Footer::LayoutItem_Footer()
 {
 }
 
-LayoutItem_Footer::LayoutItem_Footer(const LayoutItem_Footer& src)
-: LayoutGroup(src)
-{
-}
-
 LayoutItem* LayoutItem_Footer::clone() const
 {
   return new LayoutItem_Footer(*this);
 }
 
-
-LayoutItem_Footer& LayoutItem_Footer::operator=(const LayoutItem_Footer& src)
-{
-  LayoutGroup::operator=(src);
-
-  return *this;
-}
-
 Glib::ustring LayoutItem_Footer::get_part_type_name() const
 {
   //Translators: This is the name of a UI element (a layout part name).
diff --git a/glom/libglom/data_structure/layout/report_parts/layoutitem_footer.h 
b/glom/libglom/data_structure/layout/report_parts/layoutitem_footer.h
index 0b67b20..5ea3d81 100644
--- a/glom/libglom/data_structure/layout/report_parts/layoutitem_footer.h
+++ b/glom/libglom/data_structure/layout/report_parts/layoutitem_footer.h
@@ -35,9 +35,9 @@ class LayoutItem_Footer
 public:
 
   LayoutItem_Footer();
-  LayoutItem_Footer(const LayoutItem_Footer& src);
+  LayoutItem_Footer(const LayoutItem_Footer& src) = default;
   LayoutItem_Footer(LayoutItem_Footer&& src) = delete;
-  LayoutItem_Footer& operator=(const LayoutItem_Footer& src);
+  LayoutItem_Footer& operator=(const LayoutItem_Footer& src) = default;
   LayoutItem_Footer& operator=(LayoutItem_Footer&& src) = delete;
 
   LayoutItem* clone() const override;
diff --git a/glom/libglom/data_structure/layout/report_parts/layoutitem_groupby.cc 
b/glom/libglom/data_structure/layout/report_parts/layoutitem_groupby.cc
index 45ed61b..e583901 100644
--- a/glom/libglom/data_structure/layout/report_parts/layoutitem_groupby.cc
+++ b/glom/libglom/data_structure/layout/report_parts/layoutitem_groupby.cc
@@ -30,40 +30,16 @@ LayoutItem_GroupBy::LayoutItem_GroupBy()
   m_group_secondary_fields = std::make_shared<LayoutGroup>(); //So that we dont need to create it from 
outside.
 }
 
-LayoutItem_GroupBy::LayoutItem_GroupBy(const LayoutItem_GroupBy& src)
-: LayoutGroup(src),
-  m_field_group_by(src.m_field_group_by),
-  m_group_secondary_fields(src.m_group_secondary_fields),
-  m_fields_sort_by(src.m_fields_sort_by)
-{
-}
-
 LayoutItem_GroupBy::~LayoutItem_GroupBy()
 {
   remove_all_items();
 }
 
-
 LayoutItem* LayoutItem_GroupBy::clone() const
 {
   return new LayoutItem_GroupBy(*this);
 }
 
-
-LayoutItem_GroupBy& LayoutItem_GroupBy::operator=(const LayoutItem_GroupBy& src)
-{
-  if(this != &src)
-  {
-    LayoutGroup::operator=(src);
-
-    m_group_secondary_fields = src.m_group_secondary_fields;
-    m_field_group_by = src.m_field_group_by;
-    m_fields_sort_by = src.m_fields_sort_by;
-  }
-
-  return *this;
-}
-
 std::shared_ptr<LayoutItem_Field> LayoutItem_GroupBy::get_field_group_by()
 {
   return m_field_group_by;
diff --git a/glom/libglom/data_structure/layout/report_parts/layoutitem_groupby.h 
b/glom/libglom/data_structure/layout/report_parts/layoutitem_groupby.h
index dfa0c30..4c90e62 100644
--- a/glom/libglom/data_structure/layout/report_parts/layoutitem_groupby.h
+++ b/glom/libglom/data_structure/layout/report_parts/layoutitem_groupby.h
@@ -39,9 +39,9 @@ class LayoutItem_GroupBy : public LayoutGroup
 public:
 
   LayoutItem_GroupBy();
-  LayoutItem_GroupBy(const LayoutItem_GroupBy& src);
+  LayoutItem_GroupBy(const LayoutItem_GroupBy& src) = default;
   LayoutItem_GroupBy(LayoutItem_GroupBy&& src) = delete;
-  LayoutItem_GroupBy& operator=(const LayoutItem_GroupBy& src);
+  LayoutItem_GroupBy& operator=(const LayoutItem_GroupBy& src) = default;
   LayoutItem_GroupBy& operator=(LayoutItem_GroupBy&& src) = delete;
   ~LayoutItem_GroupBy() override;
 
diff --git a/glom/libglom/data_structure/layout/report_parts/layoutitem_header.cc 
b/glom/libglom/data_structure/layout/report_parts/layoutitem_header.cc
index 361a598..0fc3a44 100644
--- a/glom/libglom/data_structure/layout/report_parts/layoutitem_header.cc
+++ b/glom/libglom/data_structure/layout/report_parts/layoutitem_header.cc
@@ -28,25 +28,11 @@ namespace Glom
 LayoutItem_Header::LayoutItem_Header()
 {
 }
-
-LayoutItem_Header::LayoutItem_Header(const LayoutItem_Header& src)
-: LayoutGroup(src)
-{
-}
-
 LayoutItem* LayoutItem_Header::clone() const
 {
   return new LayoutItem_Header(*this);
 }
 
-
-LayoutItem_Header& LayoutItem_Header::operator=(const LayoutItem_Header& src)
-{
-  LayoutGroup::operator=(src);
-
-  return *this;
-}
-
 Glib::ustring LayoutItem_Header::get_part_type_name() const
 {
   //Translators: This is the name of a UI element (a layout part name).
diff --git a/glom/libglom/data_structure/layout/report_parts/layoutitem_header.h 
b/glom/libglom/data_structure/layout/report_parts/layoutitem_header.h
index 2e98103..1a7eb9f 100644
--- a/glom/libglom/data_structure/layout/report_parts/layoutitem_header.h
+++ b/glom/libglom/data_structure/layout/report_parts/layoutitem_header.h
@@ -35,9 +35,9 @@ class LayoutItem_Header
 public:
 
   LayoutItem_Header();
-  LayoutItem_Header(const LayoutItem_Header& src);
+  LayoutItem_Header(const LayoutItem_Header& src) = default;
   LayoutItem_Header(LayoutItem_Header&& src) = delete;
-  LayoutItem_Header& operator=(const LayoutItem_Header& src);
+  LayoutItem_Header& operator=(const LayoutItem_Header& src) = default;
   LayoutItem_Header& operator=(LayoutItem_Header&& src) = delete;
 
   LayoutItem* clone() const override;
diff --git a/glom/libglom/data_structure/layout/report_parts/layoutitem_summary.cc 
b/glom/libglom/data_structure/layout/report_parts/layoutitem_summary.cc
index b90b8c6..efde56d 100644
--- a/glom/libglom/data_structure/layout/report_parts/layoutitem_summary.cc
+++ b/glom/libglom/data_structure/layout/report_parts/layoutitem_summary.cc
@@ -29,33 +29,16 @@ LayoutItem_Summary::LayoutItem_Summary()
 {
 }
 
-LayoutItem_Summary::LayoutItem_Summary(const LayoutItem_Summary& src)
-: LayoutGroup(src)
-{
-}
-
 LayoutItem_Summary::~LayoutItem_Summary()
 {
   remove_all_items();
 }
 
-
 LayoutItem* LayoutItem_Summary::clone() const
 {
   return new LayoutItem_Summary(*this);
 }
 
-
-LayoutItem_Summary& LayoutItem_Summary::operator=(const LayoutItem_Summary& src)
-{
-  if(this != &src)
-  {
-    LayoutGroup::operator=(src);
-  }
-
-  return *this;
-}
-
 Glib::ustring LayoutItem_Summary::get_part_type_name() const
 {
   //Translators: This is the name of a UI element (a layout part name).
diff --git a/glom/libglom/data_structure/layout/report_parts/layoutitem_summary.h 
b/glom/libglom/data_structure/layout/report_parts/layoutitem_summary.h
index 2ad0181..5bf9103 100644
--- a/glom/libglom/data_structure/layout/report_parts/layoutitem_summary.h
+++ b/glom/libglom/data_structure/layout/report_parts/layoutitem_summary.h
@@ -33,9 +33,9 @@ class LayoutItem_Summary : public LayoutGroup
 public:
 
   LayoutItem_Summary();
-  LayoutItem_Summary(const LayoutItem_Summary& src);
+  LayoutItem_Summary(const LayoutItem_Summary& src) = default;
   LayoutItem_Summary(const LayoutItem_Summary&& src) = delete;
-  LayoutItem_Summary& operator=(const LayoutItem_Summary& src);
+  LayoutItem_Summary& operator=(const LayoutItem_Summary& src) = default;
   LayoutItem_Summary& operator=(LayoutItem_Summary&& src) = delete;
   virtual ~LayoutItem_Summary();
 
diff --git a/glom/libglom/data_structure/layout/report_parts/layoutitem_verticalgroup.cc 
b/glom/libglom/data_structure/layout/report_parts/layoutitem_verticalgroup.cc
index 606d82d..241a282 100644
--- a/glom/libglom/data_structure/layout/report_parts/layoutitem_verticalgroup.cc
+++ b/glom/libglom/data_structure/layout/report_parts/layoutitem_verticalgroup.cc
@@ -29,24 +29,11 @@ LayoutItem_VerticalGroup::LayoutItem_VerticalGroup()
 {
 }
 
-LayoutItem_VerticalGroup::LayoutItem_VerticalGroup(const LayoutItem_VerticalGroup& src)
-: LayoutGroup(src)
-{
-}
-
 LayoutItem* LayoutItem_VerticalGroup::clone() const
 {
   return new LayoutItem_VerticalGroup(*this);
 }
 
-
-LayoutItem_VerticalGroup& LayoutItem_VerticalGroup::operator=(const LayoutItem_VerticalGroup& src)
-{
-  LayoutGroup::operator=(src);
-
-  return *this;
-}
-
 Glib::ustring LayoutItem_VerticalGroup::get_part_type_name() const
 {
   //Translators: This is the name of a UI element (a layout part name).
diff --git a/glom/libglom/data_structure/layout/report_parts/layoutitem_verticalgroup.h 
b/glom/libglom/data_structure/layout/report_parts/layoutitem_verticalgroup.h
index 101931d..63199a0 100644
--- a/glom/libglom/data_structure/layout/report_parts/layoutitem_verticalgroup.h
+++ b/glom/libglom/data_structure/layout/report_parts/layoutitem_verticalgroup.h
@@ -35,9 +35,9 @@ class LayoutItem_VerticalGroup
 public:
 
   LayoutItem_VerticalGroup();
-  LayoutItem_VerticalGroup(const LayoutItem_VerticalGroup& src);
+  LayoutItem_VerticalGroup(const LayoutItem_VerticalGroup& src) = default;
   LayoutItem_VerticalGroup(LayoutItem_VerticalGroup&& src) = delete;
-  LayoutItem_VerticalGroup& operator=(const LayoutItem_VerticalGroup& src);
+  LayoutItem_VerticalGroup& operator=(const LayoutItem_VerticalGroup& src) = default;
   LayoutItem_VerticalGroup& operator=(LayoutItem_VerticalGroup&& src) = delete;
 
   LayoutItem* clone() const override;
diff --git a/glom/libglom/data_structure/layout/static_text.cc 
b/glom/libglom/data_structure/layout/static_text.cc
index 6dc7f89..af18e13 100644
--- a/glom/libglom/data_structure/layout/static_text.cc
+++ b/glom/libglom/data_structure/layout/static_text.cc
@@ -28,11 +28,6 @@ StaticText::StaticText()
   m_translatable_item_type = enumTranslatableItemType::STATIC_TEXT;
 }
 
-StaticText::StaticText(const StaticText& src)
-: TranslatableItem(src)
-{
-}
-
 bool StaticText::operator==(const StaticText& src) const
 {
   const auto result = TranslatableItem::operator==(src);
@@ -40,11 +35,4 @@ bool StaticText::operator==(const StaticText& src) const
   return result;
 }
 
-//Avoid using this, for performance:
-StaticText& StaticText::operator=(const StaticText& src)
-{
-  TranslatableItem::operator=(src);
-  return *this;
-}
-
 } //namespace Glom
diff --git a/glom/libglom/data_structure/layout/static_text.h 
b/glom/libglom/data_structure/layout/static_text.h
index f7a172b..fdbcd23 100644
--- a/glom/libglom/data_structure/layout/static_text.h
+++ b/glom/libglom/data_structure/layout/static_text.h
@@ -34,9 +34,9 @@ class StaticText
 public:
 
   StaticText();
-  StaticText(const StaticText& src);
+  StaticText(const StaticText& src) = default;
   StaticText(StaticText&& src) = delete;
-  StaticText& operator=(const StaticText& src);
+  StaticText& operator=(const StaticText& src) = default;
   StaticText& operator=(StaticText&& src) = delete;
 
   bool operator==(const StaticText& src) const;
diff --git a/glom/libglom/data_structure/layout/usesrelationship.cc 
b/glom/libglom/data_structure/layout/usesrelationship.cc
index dcdbfa7..5fe68c4 100644
--- a/glom/libglom/data_structure/layout/usesrelationship.cc
+++ b/glom/libglom/data_structure/layout/usesrelationship.cc
@@ -27,27 +27,12 @@ UsesRelationship::UsesRelationship()
 {
 }
 
-UsesRelationship::UsesRelationship(const UsesRelationship& src)
-: m_relationship(src.m_relationship),
-  m_related_relationship(src.m_related_relationship)
-{
-}
-
 bool UsesRelationship::operator==(const UsesRelationship& src) const
 {
   return (m_relationship == src.m_relationship)
          && (m_related_relationship == src.m_related_relationship);
 }
 
-
-UsesRelationship& UsesRelationship::operator=(const UsesRelationship& src)
-{
-  m_relationship = src.m_relationship;
-  m_related_relationship = src.m_related_relationship;
-
-  return *this;
-}
-
 bool UsesRelationship::get_has_relationship_name() const
 {
   if(!m_relationship)
diff --git a/glom/libglom/data_structure/layout/usesrelationship.h 
b/glom/libglom/data_structure/layout/usesrelationship.h
index 5752f15..4bb0a38 100644
--- a/glom/libglom/data_structure/layout/usesrelationship.h
+++ b/glom/libglom/data_structure/layout/usesrelationship.h
@@ -38,9 +38,9 @@ class UsesRelationship
 public:
 
   UsesRelationship();
-  UsesRelationship(const UsesRelationship& src);
+  UsesRelationship(const UsesRelationship& src) = default;
   UsesRelationship(UsesRelationship&& src) = delete;
-  UsesRelationship& operator=(const UsesRelationship& src);
+  UsesRelationship& operator=(const UsesRelationship& src) = default;
   UsesRelationship& operator=(UsesRelationship&& src) = delete;
 
   bool operator==(const UsesRelationship& src) const;
diff --git a/glom/libglom/data_structure/numeric_format.cc b/glom/libglom/data_structure/numeric_format.cc
index 0cec819..055a96e 100644
--- a/glom/libglom/data_structure/numeric_format.cc
+++ b/glom/libglom/data_structure/numeric_format.cc
@@ -31,22 +31,6 @@ NumericFormat::NumericFormat()
 {
 }
 
-NumericFormat::NumericFormat(const NumericFormat& src)
-{
-  operator=(src);
-}
-
-NumericFormat& NumericFormat::operator=(const NumericFormat& src)
-{
-  m_currency_symbol = src.m_currency_symbol;
-  m_use_thousands_separator = src.m_use_thousands_separator;
-  m_decimal_places_restricted = src.m_decimal_places_restricted;
-  m_decimal_places = src.m_decimal_places;
-  m_alt_foreground_color_for_negatives = src.m_alt_foreground_color_for_negatives;
-
-  return *this;
-}
-
 bool NumericFormat::operator==(const NumericFormat& src) const
 {
   return (m_currency_symbol == src.m_currency_symbol) &&
diff --git a/glom/libglom/data_structure/numeric_format.h b/glom/libglom/data_structure/numeric_format.h
index 38f238f..5eece7f 100644
--- a/glom/libglom/data_structure/numeric_format.h
+++ b/glom/libglom/data_structure/numeric_format.h
@@ -30,10 +30,10 @@ class NumericFormat
 {
 public:
   NumericFormat();
-  NumericFormat(const NumericFormat& src);
+  NumericFormat(const NumericFormat& src) = default;
   NumericFormat(NumericFormat&& src) = delete;
 
-  NumericFormat& operator=(const NumericFormat& src);
+  NumericFormat& operator=(const NumericFormat& src) = default;
   NumericFormat& operator=(NumericFormat&& src) = delete;
 
   bool operator==(const NumericFormat& src) const;
diff --git a/glom/libglom/data_structure/print_layout.cc b/glom/libglom/data_structure/print_layout.cc
index 015d4ed..ad56f5e 100644
--- a/glom/libglom/data_structure/print_layout.cc
+++ b/glom/libglom/data_structure/print_layout.cc
@@ -34,37 +34,6 @@ PrintLayout::PrintLayout()
   m_layout_group = std::make_shared<LayoutGroup>();
 }
 
-PrintLayout::PrintLayout(const PrintLayout& src)
-: TranslatableItem(src),
-  m_layout_group(src.m_layout_group),
-  m_show_table_title(src.m_show_table_title),
-  m_show_grid(src.m_show_grid),
-  m_show_rules(src.m_show_rules),
-  m_show_outlines(src.m_show_outlines),
-  m_page_count(src.m_page_count)
-{
-  m_page_setup = src.m_page_setup;
-  m_horizontal_rules = src.m_horizontal_rules;
-  m_vertical_rules = src.m_vertical_rules;
-}
-
-PrintLayout& PrintLayout::operator=(const PrintLayout& src)
-{
-  TranslatableItem::operator=(src);
-
-  m_layout_group = src.m_layout_group;
-  m_show_table_title = src.m_show_table_title;
-  m_show_grid = src.m_show_grid;
-  m_show_rules = src.m_show_rules;
-  m_show_outlines = src.m_show_outlines;
-  m_page_setup = src.m_page_setup;
-  m_page_count = src.m_page_count;
-  m_horizontal_rules = src.m_horizontal_rules;
-  m_vertical_rules = src.m_vertical_rules;
-
-  return *this;
-}
-
 bool PrintLayout::get_show_table_title() const
 {
   return m_show_table_title;
diff --git a/glom/libglom/data_structure/print_layout.h b/glom/libglom/data_structure/print_layout.h
index e06ed30..43cec22 100644
--- a/glom/libglom/data_structure/print_layout.h
+++ b/glom/libglom/data_structure/print_layout.h
@@ -32,9 +32,9 @@ class PrintLayout : public TranslatableItem
 {
 public:
   PrintLayout();
-  PrintLayout(const PrintLayout& src);
+  PrintLayout(const PrintLayout& src) = default;
   PrintLayout(PrintLayout&& src) = delete;
-  PrintLayout& operator=(const PrintLayout& src);
+  PrintLayout& operator=(const PrintLayout& src) = default;
   PrintLayout& operator=(PrintLayout&& src) = delete;
 
   bool get_show_table_title() const;
diff --git a/glom/libglom/data_structure/privileges.cc b/glom/libglom/data_structure/privileges.cc
index 5a61062..b03864c 100644
--- a/glom/libglom/data_structure/privileges.cc
+++ b/glom/libglom/data_structure/privileges.cc
@@ -31,11 +31,6 @@ Privileges::Privileges()
 {
 }
 
-Privileges::Privileges(const Privileges& src)
-{
-  operator=(src);
-}
-
 Privileges::Privileges(Privileges&& src)
 : m_view(std::move(src.m_view)),
   m_edit(std::move(src.m_edit)),
@@ -44,16 +39,6 @@ Privileges::Privileges(Privileges&& src)
 {
 }
 
-Privileges& Privileges::operator=(const Privileges& src)
-{
-  m_view = src.m_view;
-  m_edit = src.m_edit;
-  m_create = src.m_create;
-  m_delete = src.m_delete;
-
-  return *this;
-}
-
 Privileges& Privileges::operator=(Privileges&& src)
 {
   m_view = std::move(src.m_view);
diff --git a/glom/libglom/data_structure/privileges.h b/glom/libglom/data_structure/privileges.h
index 40debb7..dccf9df 100644
--- a/glom/libglom/data_structure/privileges.h
+++ b/glom/libglom/data_structure/privileges.h
@@ -33,10 +33,10 @@ class Privileges
 {
 public:
   Privileges();
-  Privileges(const Privileges& src);
+  Privileges(const Privileges& src) = default;
   Privileges(Privileges&& src);
 
-  Privileges& operator=(const Privileges& src);
+  Privileges& operator=(const Privileges& src) = default;
   Privileges& operator=(Privileges&& src);
 
   bool operator==(const Privileges& src) const;
diff --git a/glom/libglom/data_structure/relationship.cc b/glom/libglom/data_structure/relationship.cc
index e6ce6c5..a0c08da 100644
--- a/glom/libglom/data_structure/relationship.cc
+++ b/glom/libglom/data_structure/relationship.cc
@@ -29,28 +29,6 @@ Relationship::Relationship()
    m_translatable_item_type = enumTranslatableItemType::RELATIONSHIP;
 }
 
-Relationship::Relationship(const Relationship& src)
-: TranslatableItem(src),
-  HasTitleSingular(src)
-{
-  operator=(src); //TODO_Performance: Implement properly.
-}
-
-Relationship& Relationship::operator=(const Relationship& src)
-{
-  TranslatableItem::operator=(src);
-  HasTitleSingular::operator=(src);
-
-  m_strFrom_Table = src.m_strFrom_Table;
-  m_strFrom_Field = src.m_strFrom_Field;
-  m_strTo_Table = src.m_strTo_Table;
-  m_strTo_Field = src.m_strTo_Field;
-  m_allow_edit = src.m_allow_edit;
-  m_auto_create = src.m_auto_create;
-
-  return *this;
-}
-
 bool Relationship::operator==(const Relationship& src) const
 {
   return TranslatableItem::operator==(src)
diff --git a/glom/libglom/data_structure/relationship.h b/glom/libglom/data_structure/relationship.h
index 6777f48..2b9bc7a 100644
--- a/glom/libglom/data_structure/relationship.h
+++ b/glom/libglom/data_structure/relationship.h
@@ -34,10 +34,10 @@ class Relationship
 {
 public:
   Relationship();
-  Relationship(const Relationship& src);
+  Relationship(const Relationship& src) = default;
   Relationship(Relationship&& src) = delete;
 
-  Relationship& operator=(const Relationship& src);
+  Relationship& operator=(const Relationship& src) = default;
   Relationship& operator=(Relationship&& src) = delete;
 
   bool operator==(const Relationship& src) const;
diff --git a/glom/libglom/data_structure/report.cc b/glom/libglom/data_structure/report.cc
index 16ad6cf..70d4838 100644
--- a/glom/libglom/data_structure/report.cc
+++ b/glom/libglom/data_structure/report.cc
@@ -30,23 +30,6 @@ Report::Report()
   m_layout_group = std::make_shared<LayoutGroup>();
 }
 
-Report::Report(const Report& src)
-: TranslatableItem(src),
-  m_layout_group(src.m_layout_group),
-  m_show_table_title(src.m_show_table_title)
-{
-}
-
-Report& Report::operator=(const Report& src)
-{
-  TranslatableItem::operator=(src);
-
-  m_layout_group = src.m_layout_group;
-  m_show_table_title = src.m_show_table_title;
-
-  return *this;
-}
-
 bool Report::get_show_table_title() const
 {
   return m_show_table_title;
diff --git a/glom/libglom/data_structure/report.h b/glom/libglom/data_structure/report.h
index 8d092d3..d0a0de1 100644
--- a/glom/libglom/data_structure/report.h
+++ b/glom/libglom/data_structure/report.h
@@ -32,9 +32,9 @@ class Report : public TranslatableItem
 {
 public:
   Report();
-  Report(const Report& src);
+  Report(const Report& src) = default;
   Report(Report&& src) = delete;
-  Report& operator=(const Report& src);
+  Report& operator=(const Report& src) = default;
   Report& operator=(Report&& src) = delete;
 
   bool get_show_table_title() const;
diff --git a/glom/libglom/data_structure/system_prefs.cc b/glom/libglom/data_structure/system_prefs.cc
index 1740918..51133d2 100644
--- a/glom/libglom/data_structure/system_prefs.cc
+++ b/glom/libglom/data_structure/system_prefs.cc
@@ -27,19 +27,6 @@ SystemPrefs::SystemPrefs()
 {
 }
 
-SystemPrefs::SystemPrefs(const SystemPrefs& src)
-: m_name(src.m_name),
-  m_org_name(src.m_org_name),
-  m_org_address_street(src.m_org_address_street),
-  m_org_address_street2(src.m_org_address_street2),
-  m_org_address_town(src.m_org_address_town),
-  m_org_address_county(src.m_org_address_county),
-  m_org_address_country(src.m_org_address_country),
-  m_org_address_postcode(src.m_org_address_postcode),
-  m_org_logo(src.m_org_logo)
-{
-}
-
 SystemPrefs::SystemPrefs(SystemPrefs&& src)
 : m_name(std::move(src.m_name)),
   m_org_name(std::move(src.m_org_name)),
@@ -53,21 +40,6 @@ SystemPrefs::SystemPrefs(SystemPrefs&& src)
 {
 }
 
-SystemPrefs& SystemPrefs::operator=(const SystemPrefs& src)
-{
-  m_name = src.m_name;
-  m_org_name =src.m_org_name;
-  m_org_address_street = src.m_org_address_street;
-  m_org_address_street2 = src.m_org_address_street2;
-  m_org_address_town = src.m_org_address_town;
-  m_org_address_county = src.m_org_address_county;
-  m_org_address_country = src.m_org_address_country;
-  m_org_address_postcode = src.m_org_address_postcode;
-  m_org_logo = src.m_org_logo;
-
-  return *this;
-}
-
 SystemPrefs& SystemPrefs::operator=(SystemPrefs&& src)
 {
   m_name = std::move(src.m_name);
@@ -83,7 +55,6 @@ SystemPrefs& SystemPrefs::operator=(SystemPrefs&& src)
   return *this;
 }
 
-
 bool SystemPrefs::operator==(const SystemPrefs& src) const
 {
   return (m_name == src.m_name) &&
diff --git a/glom/libglom/data_structure/system_prefs.h b/glom/libglom/data_structure/system_prefs.h
index b63c679..ae75c49 100644
--- a/glom/libglom/data_structure/system_prefs.h
+++ b/glom/libglom/data_structure/system_prefs.h
@@ -31,10 +31,10 @@ class SystemPrefs
 {
 public:
   SystemPrefs();
-  SystemPrefs(const SystemPrefs& src);
+  SystemPrefs(const SystemPrefs& src) = default;
   SystemPrefs(SystemPrefs&& src);
 
-  SystemPrefs& operator=(const SystemPrefs& src);
+  SystemPrefs& operator=(const SystemPrefs& src) = default;
   SystemPrefs& operator=(SystemPrefs&& src);
 
   bool operator==(const SystemPrefs& src) const;
diff --git a/glom/libglom/data_structure/tableinfo.cc b/glom/libglom/data_structure/tableinfo.cc
index e1e626e..e98a90a 100644
--- a/glom/libglom/data_structure/tableinfo.cc
+++ b/glom/libglom/data_structure/tableinfo.cc
@@ -30,25 +30,6 @@ TableInfo::TableInfo() noexcept
   m_translatable_item_type = enumTranslatableItemType::TABLE;
 }
 
-TableInfo::TableInfo(const TableInfo& src) noexcept
-: TranslatableItem(src),
-  HasTitleSingular(src),
-  m_hidden(src.m_hidden),
-  m_default(src.m_default)
-{
-}
-
-TableInfo& TableInfo::operator=(const TableInfo& src) noexcept
-{
-  TranslatableItem::operator=(src);
-  HasTitleSingular::operator=(src);
-
-  m_hidden = src.m_hidden;
-  m_default = src.m_default;
-
-  return *this;
-}
-
 bool TableInfo::operator==(const TableInfo& src) const noexcept
 {
   return TranslatableItem::operator==(src) &&
diff --git a/glom/libglom/data_structure/tableinfo.h b/glom/libglom/data_structure/tableinfo.h
index 842a7f1..20ccca4 100644
--- a/glom/libglom/data_structure/tableinfo.h
+++ b/glom/libglom/data_structure/tableinfo.h
@@ -33,9 +33,9 @@ class TableInfo
 {
 public:
   TableInfo() noexcept;
-  TableInfo(const TableInfo& src) noexcept;
+  TableInfo(const TableInfo& src) = default;
   TableInfo(TableInfo&& src) = delete;
-  TableInfo& operator=(const TableInfo& src) noexcept;
+  TableInfo& operator=(const TableInfo& src)  = default;
   TableInfo& operator=(TableInfo&& src) = delete;
 
   bool operator==(const TableInfo& src) const noexcept;
diff --git a/glom/libglom/data_structure/translatable_item.cc 
b/glom/libglom/data_structure/translatable_item.cc
index 6f48652..a3e6605 100644
--- a/glom/libglom/data_structure/translatable_item.cc
+++ b/glom/libglom/data_structure/translatable_item.cc
@@ -51,26 +51,6 @@ TranslatableItem::~TranslatableItem()
 {
 }
 
-TranslatableItem& TranslatableItem::operator=(const TranslatableItem& src) noexcept
-{
-  m_name = src.m_name;
-  m_title = src.m_title;
-  m_translatable_item_type = src.m_translatable_item_type;
-  m_map_translations = src.m_map_translations;
-
-  return *this;
-}
-
-TranslatableItem& TranslatableItem::operator=(TranslatableItem&& src) noexcept
-{
-  m_name = std::move(src.m_name);
-  m_title = std::move(src.m_title);
-  m_translatable_item_type = std::move(src.m_translatable_item_type);
-  m_map_translations = std::move(src.m_map_translations);
-
-  return *this;
-}
-
 bool TranslatableItem::operator==(const TranslatableItem& src) const noexcept
 {
   bool bResult = (m_name == src.m_name)
diff --git a/glom/libglom/data_structure/translatable_item.h b/glom/libglom/data_structure/translatable_item.h
index ff12b19..e5cf4f3 100644
--- a/glom/libglom/data_structure/translatable_item.h
+++ b/glom/libglom/data_structure/translatable_item.h
@@ -37,8 +37,8 @@ public:
   TranslatableItem(TranslatableItem&& src) noexcept;
   virtual ~TranslatableItem();
 
-  TranslatableItem& operator=(const TranslatableItem& src) noexcept;
-  TranslatableItem& operator=(TranslatableItem&& src) noexcept;
+  TranslatableItem& operator=(const TranslatableItem& src) = default;
+  TranslatableItem& operator=(TranslatableItem&& src) = default;
 
   bool operator==(const TranslatableItem& src) const noexcept;
   bool operator!=(const TranslatableItem& src) const noexcept;
diff --git a/glom/utility_widgets/adddel/adddel.cc b/glom/utility_widgets/adddel/adddel.cc
index 0286f7f..2cfebd2 100644
--- a/glom/utility_widgets/adddel/adddel.cc
+++ b/glom/utility_widgets/adddel/adddel.cc
@@ -46,32 +46,6 @@ AddDelColumnInfo::AddDelColumnInfo()
 {
 }
 
-AddDelColumnInfo::AddDelColumnInfo(const AddDelColumnInfo& src)
-: m_style(src.m_style),
-  m_name(src.m_name),
-  m_id(src.m_id),
-  m_field_type(src.m_field_type),
-  m_choices(src.m_choices),
-  m_editable(src.m_editable),
-  m_visible(src.m_visible),
-  m_prevent_duplicates(src.m_prevent_duplicates)
-{
-}
-
-AddDelColumnInfo& AddDelColumnInfo::operator=(const AddDelColumnInfo& src)
-{
-  m_style = src.m_style;;
-  m_name = src.m_name;
-  m_id = src.m_id;
-  m_field_type = src.m_field_type;
-  m_choices = src.m_choices;
-  m_editable = src.m_editable;
-  m_visible = src.m_visible;
-  m_prevent_duplicates = src.m_prevent_duplicates;
-
-  return *this;
-}
-
 AddDel::AddDel()
 : Gtk::Box(Gtk::ORIENTATION_VERTICAL),
   m_col_key(0),
diff --git a/glom/utility_widgets/adddel/adddel.h b/glom/utility_widgets/adddel/adddel.h
index 27c6299..42903f6 100644
--- a/glom/utility_widgets/adddel/adddel.h
+++ b/glom/utility_widgets/adddel/adddel.h
@@ -40,9 +40,9 @@ class AddDelColumnInfo
 {
 public:
   AddDelColumnInfo();
-  AddDelColumnInfo(const AddDelColumnInfo& src);
+  AddDelColumnInfo(const AddDelColumnInfo& src) = default;
   AddDelColumnInfo(AddDelColumnInfo&& src) = delete;
-  AddDelColumnInfo& operator=(const AddDelColumnInfo& src);
+  AddDelColumnInfo& operator=(const AddDelColumnInfo& src) = default;
   AddDelColumnInfo& operator=(AddDelColumnInfo&& src) = delete;
 
   //If we need any more complicated style (e.g. number of decimal digits) then we will need a separate 
AddDelStyle class.


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