[gnome-calendar/gbsneto/gtk4: 13/29] event-editor/summary: Port to GTK4
- From: Georges Basile Stavracas Neto <gbsneto src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-calendar/gbsneto/gtk4: 13/29] event-editor/summary: Port to GTK4
- Date: Thu, 27 Jan 2022 19:51:01 +0000 (UTC)
commit 4ad89a728b80294dc262d2fde67787bc6d9e6e6e
Author: Georges Basile Stavracas Neto <georges stavracas gmail com>
Date: Fri Jan 14 11:41:49 2022 -0300
event-editor/summary: Port to GTK4
src/gui/event-editor/gcal-summary-section.c | 45 ++++--
src/gui/event-editor/gcal-summary-section.h | 4 +-
src/gui/event-editor/gcal-summary-section.ui | 22 +--
src/gui/gcal-expandable-entry.c | 215 ---------------------------
src/gui/gcal-expandable-entry.h | 35 -----
src/gui/meson.build | 1 -
6 files changed, 41 insertions(+), 281 deletions(-)
---
diff --git a/src/gui/event-editor/gcal-summary-section.c b/src/gui/event-editor/gcal-summary-section.c
index 97d0b99a..220669ea 100644
--- a/src/gui/event-editor/gcal-summary-section.c
+++ b/src/gui/event-editor/gcal-summary-section.c
@@ -23,17 +23,16 @@
#include "gcal-context.h"
#include "gcal-debug.h"
#include "gcal-event-editor-section.h"
-#include "gcal-expandable-entry.h"
#include "gcal-summary-section.h"
#include <glib/gi18n.h>
struct _GcalSummarySection
{
- GtkBin parent;
+ AdwBin parent;
- GtkEntry *summary_entry;
- GtkEntry *location_entry;
+ GtkEditable *summary_entry;
+ GtkEditable *location_entry;
GcalContext *context;
GcalEvent *event;
@@ -42,7 +41,7 @@ struct _GcalSummarySection
static void gcal_event_editor_section_iface_init (GcalEventEditorSectionInterface *iface);
-G_DEFINE_TYPE_WITH_CODE (GcalSummarySection, gcal_summary_section, GTK_TYPE_BIN,
+G_DEFINE_TYPE_WITH_CODE (GcalSummarySection, gcal_summary_section, ADW_TYPE_BIN,
G_IMPLEMENT_INTERFACE (GCAL_TYPE_EVENT_EDITOR_SECTION,
gcal_event_editor_section_iface_init))
enum
@@ -52,6 +51,27 @@ enum
N_PROPS
};
+/*
+ * Auxiliary methods
+ */
+
+static void
+make_entry_expandable (GtkEditable *entry)
+{
+ GtkWidget *child;
+
+ for (child = gtk_widget_get_first_child (GTK_WIDGET (entry));
+ child;
+ child = gtk_widget_get_next_sibling (child))
+ {
+ if (!GTK_IS_TEXT (child))
+ continue;
+
+ gtk_text_set_propagate_text_width (GTK_TEXT (child), TRUE);
+ }
+}
+
+
/*
* GcalEventEditorSection interface
*/
@@ -76,11 +96,11 @@ gcal_reminders_section_set_event (GcalEventEditorSection *section,
summary = gcal_event_get_summary (event);
if (g_strcmp0 (summary, "") == 0)
- gtk_entry_set_text (GTK_ENTRY (self->summary_entry), _("Unnamed event"));
+ gtk_editable_set_text (self->summary_entry, _("Unnamed event"));
else
- gtk_entry_set_text (GTK_ENTRY (self->summary_entry), summary);
+ gtk_editable_set_text (self->summary_entry, summary);
- gtk_entry_set_text (self->location_entry, gcal_event_get_location (event));
+ gtk_editable_set_text (self->location_entry, gcal_event_get_location (event));
GCAL_EXIT;
}
@@ -94,8 +114,8 @@ gcal_reminders_section_apply (GcalEventEditorSection *section)
self = GCAL_SUMMARY_SECTION (section);
- gcal_event_set_summary (self->event, gtk_entry_get_text (self->summary_entry));
- gcal_event_set_location (self->event, gtk_entry_get_text (self->location_entry));
+ gcal_event_set_summary (self->event, gtk_editable_get_text (self->summary_entry));
+ gcal_event_set_location (self->event, gtk_editable_get_text (self->location_entry));
GCAL_EXIT;
}
@@ -168,8 +188,6 @@ gcal_summary_section_class_init (GcalSummarySectionClass *klass)
GObjectClass *object_class = G_OBJECT_CLASS (klass);
GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass);
- g_type_ensure (GCAL_TYPE_EXPANDABLE_ENTRY);
-
object_class->finalize = gcal_summary_section_finalize;
object_class->get_property = gcal_summary_section_get_property;
object_class->set_property = gcal_summary_section_set_property;
@@ -186,4 +204,7 @@ static void
gcal_summary_section_init (GcalSummarySection *self)
{
gtk_widget_init_template (GTK_WIDGET (self));
+
+ make_entry_expandable (self->location_entry);
+ make_entry_expandable (self->summary_entry);
}
diff --git a/src/gui/event-editor/gcal-summary-section.h b/src/gui/event-editor/gcal-summary-section.h
index 6c747bcf..0f0fe4a6 100644
--- a/src/gui/event-editor/gcal-summary-section.h
+++ b/src/gui/event-editor/gcal-summary-section.h
@@ -20,11 +20,11 @@
#pragma once
-#include <gtk/gtk.h>
+#include <adwaita.h>
G_BEGIN_DECLS
#define GCAL_TYPE_SUMMARY_SECTION (gcal_summary_section_get_type())
-G_DECLARE_FINAL_TYPE (GcalSummarySection, gcal_summary_section, GCAL, SUMMARY_SECTION, GtkBin)
+G_DECLARE_FINAL_TYPE (GcalSummarySection, gcal_summary_section, GCAL, SUMMARY_SECTION, AdwBin)
G_END_DECLS
diff --git a/src/gui/event-editor/gcal-summary-section.ui b/src/gui/event-editor/gcal-summary-section.ui
index 3f1fa1f8..33d7b2bf 100644
--- a/src/gui/event-editor/gcal-summary-section.ui
+++ b/src/gui/event-editor/gcal-summary-section.ui
@@ -1,34 +1,28 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface>
- <template class="GcalSummarySection" parent="GtkBin">
- <property name="can_focus">False</property>
+ <template class="GcalSummarySection" parent="AdwBin">
<child>
<object class="GtkListBox">
- <property name="visible">True</property>
<property name="selection-mode">none</property>
<style>
- <class name="content" />
+ <class name="boxed-list" />
</style>
<!-- Summary -->
<child>
- <object class="HdyActionRow">
- <property name="visible">True</property>
+ <object class="AdwActionRow">
<property name="title" translatable="yes">Title</property>
<property name="activatable-widget">summary_entry</property>
<child>
- <object class="GcalExpandableEntry" id="summary_entry">
- <property name="visible">True</property>
+ <object class="GtkEntry" id="summary_entry">
<property name="hexpand">True</property>
<property name="halign">end</property>
<property name="valign">center</property>
- <property name="can_focus">True</property>
<property name="width-chars">20</property>
<property name="max-width-chars">30</property>
- <property name="propagate-natural-width">True</property>
</object>
</child>
@@ -37,22 +31,18 @@
<!-- Location -->
<child>
- <object class="HdyActionRow">
- <property name="visible">True</property>
+ <object class="AdwActionRow">
<property name="title" translatable="yes">Location</property>
<property name="activatable-widget">location_entry</property>
<child>
- <object class="GcalExpandableEntry" id="location_entry">
- <property name="visible">True</property>
+ <object class="GtkEntry" id="location_entry">
<property name="hexpand">True</property>
<property name="halign">end</property>
<property name="valign">center</property>
- <property name="can_focus">True</property>
<property name="width-chars">20</property>
<property name="max-width-chars">30</property>
<property name="secondary_icon_name">find-location-symbolic</property>
- <property name="propagate-natural-width">True</property>
</object>
</child>
diff --git a/src/gui/meson.build b/src/gui/meson.build
index d5670c0c..afc13be0 100644
--- a/src/gui/meson.build
+++ b/src/gui/meson.build
@@ -18,7 +18,6 @@ sources += files(
'gcal-calendar-popover.c',
'gcal-event-popover.c',
'gcal-event-widget.c',
- 'gcal-expandable-entry.c',
'gcal-meeting-row.c',
'gcal-quick-add-popover.c',
'gcal-search-button.c',
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]