summaryrefslogtreecommitdiff
path: root/src/gui/gcal-search-hit-row.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/gui/gcal-search-hit-row.c')
-rw-r--r--src/gui/gcal-search-hit-row.c193
1 files changed, 0 insertions, 193 deletions
diff --git a/src/gui/gcal-search-hit-row.c b/src/gui/gcal-search-hit-row.c
deleted file mode 100644
index 6819a270..00000000
--- a/src/gui/gcal-search-hit-row.c
+++ /dev/null
@@ -1,193 +0,0 @@
-/* gcal-search-hit-row.c
- *
- * Copyright 2022 Georges Basile Stavracas Neto <georges.stavracas@gmail.com>
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
- * SPDX-License-Identifier: GPL-3.0-or-later
- */
-
-#include "gcal-search-hit-row.h"
-
-struct _GcalSearchHitRow
-{
- GtkListBoxRow parent_instance;
-
- GtkImage *image;
- GtkWidget *separator;
- GtkLabel *subtitle;
- GtkLabel *title;
-
- GcalSearchHit *search_hit;
-};
-
-G_DEFINE_FINAL_TYPE (GcalSearchHitRow, gcal_search_hit_row, GTK_TYPE_LIST_BOX_ROW)
-
-enum
-{
- PROP_0,
- PROP_SEARCH_HIT,
- N_PROPS
-};
-
-static GParamSpec *properties [N_PROPS];
-
-
-/*
- * Auxiliary methods
- */
-
-static void
-update_search_hit (GcalSearchHitRow *self)
-{
- g_autofree gchar *escaped_title = NULL;
- const gchar *subtitle;
-
- gtk_image_set_from_paintable (self->image, gcal_search_hit_get_primary_icon (self->search_hit));
-
- escaped_title = g_markup_escape_text (gcal_search_hit_get_title (self->search_hit), -1);
- gtk_label_set_label (self->title, escaped_title);
-
- subtitle = gcal_search_hit_get_subtitle (self->search_hit);
- if (subtitle)
- {
- g_autofree gchar *escaped_subtitle = NULL;
-
- escaped_subtitle = g_markup_escape_text (subtitle, -1);
- escaped_subtitle = g_strstrip (escaped_subtitle);
- gtk_label_set_label (self->subtitle, escaped_subtitle);
-
- gtk_widget_set_visible (self->separator, escaped_subtitle && *escaped_subtitle != '\0');
- }
- else
- {
- gtk_widget_set_visible (self->separator, FALSE);
- }
-}
-
-
-/*
- * Callbacks
- */
-
-static void
-on_search_hit_changed_cb (GcalSearchHit *search_hit,
- GParamSpec *pspec,
- GcalSearchHitRow *self)
-{
- update_search_hit (self);
-}
-
-/*
- * GObject overrides
- */
-
-static void
-gcal_search_hit_row_finalize (GObject *object)
-{
- GcalSearchHitRow *self = (GcalSearchHitRow *)object;
-
- g_clear_object (&self->search_hit);
-
- G_OBJECT_CLASS (gcal_search_hit_row_parent_class)->finalize (object);
-}
-
-static void
-gcal_search_hit_row_get_property (GObject *object,
- guint prop_id,
- GValue *value,
- GParamSpec *pspec)
-{
- GcalSearchHitRow *self = GCAL_SEARCH_HIT_ROW (object);
-
- switch (prop_id)
- {
- case PROP_SEARCH_HIT:
- g_value_set_object (value, self->search_hit);
- break;
-
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
- }
-}
-
-static void
-gcal_search_hit_row_set_property (GObject *object,
- guint prop_id,
- const GValue *value,
- GParamSpec *pspec)
-{
- GcalSearchHitRow *self = GCAL_SEARCH_HIT_ROW (object);
-
- switch (prop_id)
- {
- case PROP_SEARCH_HIT:
- g_assert (self->search_hit == NULL);
- self->search_hit = g_value_dup_object (value);
- g_signal_connect_object (self->search_hit, "notify", G_CALLBACK (on_search_hit_changed_cb), self, 0);
- update_search_hit (self);
- break;
-
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
- }
-}
-
-static void
-gcal_search_hit_row_class_init (GcalSearchHitRowClass *klass)
-{
- GObjectClass *object_class = G_OBJECT_CLASS (klass);
- GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass);
-
- object_class->finalize = gcal_search_hit_row_finalize;
- object_class->get_property = gcal_search_hit_row_get_property;
- object_class->set_property = gcal_search_hit_row_set_property;
-
- properties[PROP_SEARCH_HIT] = g_param_spec_object ("search-hit",
- NULL,
- NULL,
- GCAL_TYPE_SEARCH_HIT,
- G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS);
-
- g_object_class_install_properties (object_class, N_PROPS, properties);
-
- gtk_widget_class_set_template_from_resource (widget_class, "/org/gnome/calendar/ui/gui/gcal-search-hit-row.ui");
-
- gtk_widget_class_bind_template_child (widget_class, GcalSearchHitRow, image);
- gtk_widget_class_bind_template_child (widget_class, GcalSearchHitRow, separator);
- gtk_widget_class_bind_template_child (widget_class, GcalSearchHitRow, subtitle);
- gtk_widget_class_bind_template_child (widget_class, GcalSearchHitRow, title);
-}
-
-static void
-gcal_search_hit_row_init (GcalSearchHitRow *self)
-{
- gtk_widget_init_template (GTK_WIDGET (self));
-}
-
-GtkWidget *
-gcal_search_hit_row_new (GcalSearchHit *search_hit)
-{
- return g_object_new (GCAL_TYPE_SEARCH_HIT_ROW,
- "search-hit", search_hit,
- NULL);
-}
-
-GcalSearchHit *
-gcal_search_hit_row_get_search_hit (GcalSearchHitRow *self)
-{
- g_return_val_if_fail (GCAL_IS_SEARCH_HIT_ROW (self), NULL);
-
- return self->search_hit;
-}