From 70bafc20919276edc9c1e6adf74b124ab807898c Mon Sep 17 00:00:00 2001 From: Adrien Plazas Date: Wed, 1 Aug 2018 10:15:36 +0200 Subject: [PATCH 1/7] Add CallsHistoryBox --- src/calls-history-box.c | 63 ++++++++++++++++++++++++++++++++++++++++ src/calls-history-box.h | 41 ++++++++++++++++++++++++++ src/calls.gresources.xml | 1 + src/meson.build | 1 + src/ui/history-box.ui | 15 ++++++++++ 5 files changed, 121 insertions(+) create mode 100644 src/calls-history-box.c create mode 100644 src/calls-history-box.h create mode 100644 src/ui/history-box.ui diff --git a/src/calls-history-box.c b/src/calls-history-box.c new file mode 100644 index 0000000..c0d8444 --- /dev/null +++ b/src/calls-history-box.c @@ -0,0 +1,63 @@ +/* + * Copyright (C) 2018 Purism SPC + * + * This file is part of Calls. + * + * Calls 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. + * + * Calls 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 Calls. If not, see . + * + * Author: Adrien Plazas + * + * SPDX-License-Identifier: GPL-3.0-or-later + * + */ + +#include "calls-history-box.h" +#include "calls-origin.h" +#include "calls-call-holder.h" +#include "calls-call-selector-item.h" +#include "util.h" + +#include +#include + +#define HANDY_USE_UNSTABLE_API +#include + + +struct _CallsHistoryBox +{ + GtkTreeView parent_instance; + + GtkListStore *history_store; +}; + +G_DEFINE_TYPE (CallsHistoryBox, calls_history_box, GTK_TYPE_TREE_VIEW); + + +static void +calls_history_box_init (CallsHistoryBox *self) +{ + gtk_widget_init_template (GTK_WIDGET (self)); +} + + +static void +calls_history_box_class_init (CallsHistoryBoxClass *klass) +{ + GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass); + + + gtk_widget_class_set_template_from_resource (widget_class, "/sm/puri/calls/ui/history-box.ui"); + gtk_widget_class_bind_template_child (widget_class, CallsHistoryBox, history_store); +} diff --git a/src/calls-history-box.h b/src/calls-history-box.h new file mode 100644 index 0000000..77196b5 --- /dev/null +++ b/src/calls-history-box.h @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2018 Purism SPC + * + * This file is part of Calls. + * + * Calls 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. + * + * Calls 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 Calls. If not, see . + * + * Author: Adrien Plazas + * + * SPDX-License-Identifier: GPL-3.0-or-later + * + */ + +#ifndef CALLS_HISTORY_BOX_H__ +#define CALLS_HISTORY_BOX_H__ + +#include + +#define HANDY_USE_UNSTABLE_API +#include + +G_BEGIN_DECLS + +#define CALLS_TYPE_HISTORY_BOX (calls_history_box_get_type ()) + +G_DECLARE_FINAL_TYPE (CallsHistoryBox, calls_history_box, CALLS, HISTORY_BOX, GtkTreeView); + +G_END_DECLS + +#endif /* CALLS_HISTORY_BOX_H__ */ diff --git a/src/calls.gresources.xml b/src/calls.gresources.xml index cbaa257..b813dae 100644 --- a/src/calls.gresources.xml +++ b/src/calls.gresources.xml @@ -5,5 +5,6 @@ call-display.ui call-selector-item.ui encryption-indicator.ui + history-box.ui diff --git a/src/meson.build b/src/meson.build index 21d1066..8d53d23 100644 --- a/src/meson.build +++ b/src/meson.build @@ -46,6 +46,7 @@ calls_sources = ['calls-message-source.c', 'calls-message-source.h', 'calls-call-display.c', 'calls-call-display.h', 'calls-call-selector-item.c', 'calls-call-selector-item.h', 'calls-encryption-indicator.c', 'calls-encryption-indicator.h', + 'calls-history-box.c', 'calls-history-box.h', 'calls-main-window.c', 'calls-main-window.h', 'util.c', 'util.h', ] diff --git a/src/ui/history-box.ui b/src/ui/history-box.ui new file mode 100644 index 0000000..8ecad28 --- /dev/null +++ b/src/ui/history-box.ui @@ -0,0 +1,15 @@ + + + + + + + + From 0d98e17b0577a810ef6da4ba0b0a4d45961ea53f Mon Sep 17 00:00:00 2001 From: Adrien Plazas Date: Wed, 1 Aug 2018 10:21:53 +0200 Subject: [PATCH 2/7] main-window: Use CallsHistoryBox This helps the window to be only a glue in between the actual UI elements instead of handling a lot of the UI. --- src/calls-main-window.c | 2 -- src/main.c | 2 ++ src/ui/history-box.ui | 2 +- src/ui/main-window.ui | 7 +------ 4 files changed, 4 insertions(+), 9 deletions(-) diff --git a/src/calls-main-window.c b/src/calls-main-window.c index 2065ba1..8a9d4a2 100644 --- a/src/calls-main-window.c +++ b/src/calls-main-window.c @@ -59,7 +59,6 @@ struct _CallsMainWindow HdyDialer *dial_pad; GtkListStore *origin_store; - GtkListStore *history_store; }; enum { @@ -730,7 +729,6 @@ calls_main_window_class_init (CallsMainWindowClass *klass) gtk_widget_class_bind_template_child (widget_class, CallsMainWindow, search); gtk_widget_class_bind_template_child (widget_class, CallsMainWindow, dial_pad); gtk_widget_class_bind_template_child (widget_class, CallsMainWindow, origin_store); - gtk_widget_class_bind_template_child (widget_class, CallsMainWindow, history_store); gtk_widget_class_bind_template_callback (widget_class, info_response_cb); gtk_widget_class_bind_template_callback (widget_class, new_call_expanded_notify_cb); gtk_widget_class_bind_template_callback (widget_class, call_selector_child_activated_cb); diff --git a/src/main.c b/src/main.c index 591ea68..f593b1d 100644 --- a/src/main.c +++ b/src/main.c @@ -28,6 +28,7 @@ #include #include "calls-encryption-indicator.h" +#include "calls-history-box.h" #include "calls-main-window.h" #include "calls-mm-provider.h" @@ -40,6 +41,7 @@ show_window (GtkApplication *app) CallsMainWindow *main_window; CALLS_TYPE_ENCRYPTION_INDICATOR; + CALLS_TYPE_HISTORY_BOX; HDY_TYPE_DIALER; connection = g_bus_get_sync (G_BUS_TYPE_SYSTEM, NULL, &error); diff --git a/src/ui/history-box.ui b/src/ui/history-box.ui index 8ecad28..5de67f4 100644 --- a/src/ui/history-box.ui +++ b/src/ui/history-box.ui @@ -6,7 +6,7 @@