Commit 2c0712f9 authored by Evangelos Ribeiro Tzaras's avatar Evangelos Ribeiro Tzaras
Browse files

gnome-calls Debian release 41~rc-1

Merge tag 'debian/41_rc-1' into rel_41rc
parents aa7c6b1f 0482ba47
......@@ -2,6 +2,13 @@
;; thanks to Mohammed Sadiq, see https://source.puri.sm/Librem5/calls/-/merge_requests/332#note_159469
(c-mode . ((c-macro-names-with-semicolon
. ("G_BEGIN_DECLS" "G_END_DECLS" "G_DECLARE_FINAL_TYPE" "G_DEFINE_QUARK"
"G_DECLARE_DERIVABLE_TYPE" "G_DECLARE_INTERFACE" "G_DEFINE_TYPE"
"G_DEFINE_TYPE_WITH_PRIVATE" "G_DEFINE_ABSTRACT_TYPE"
"G_DEFINE_ABSTRACT_TYPE_WITH_PRIVATE")))))
"G_DECLARE_DERIVABLE_TYPE" "G_DECLARE_INTERFACE"
"G_DEFINE_ABSTRACT_TYPE" "G_DEFINE_ABSTRACT_TYPE_WITH_CODE"
"G_DEFINE_ABSTRACT_TYPE_WITH_PRIVATE"
"G_DEFINE_AUTO_CLEANUP_CLEAR_FUNC" "G_DEFINE_AUTO_CLEANUP_FREE_FUNC"
"G_DEFINE_AUTOPTR_CLEANUP_FUNC"
"G_DEFINE_DYNAMIC_TYPE" "G_DEFINE_DYNAMIC_TYPE_EXTENDED"
"G_DEFINE_INTERFACE" "G_DEFINE_INTERFACE_WITH_CODE"
"G_DEFINE_TYPE" "G_DEFINE_TYPE_EXTENDED"
"G_DEFINE_TYPE_WITH_CODE" "G_DEFINE_TYPE_WITH_PRIVATE"
)))))
......@@ -8,7 +8,7 @@ stages:
- test-package
variables:
L5_DOCKER_IMAGE: debian:bullseye
L5_DOCKER_IMAGE: debian:bookworm
build:native:
stage: build
......@@ -19,19 +19,15 @@ build:native:
COMMON_BUILD_OPTS: -Db_coverage=true --werror
BUILD_OPTS: -Dgtk_doc=true ${COMMON_BUILD_OPTS}
WANT_BUILD_DEPS: "true"
EXP_DEPS: libhandy-1-dev/experimental libhandy-1-0/experimental gir1.2-handy-1/experimental libgladeui-common/experimental
except:
variables:
- $PKG_ONLY == "1"
image: debian:bullseye
image: debian:bookworm
tags: []
before_script:
- export DEBIAN_FRONTEND=noninteractive
- apt-get -y update
- apt-get -y install eatmydata
- echo "deb http://deb.debian.org/debian/ experimental main" > /etc/apt/sources.list.d/exp.list
- eatmydata apt-get -y update
- eatmydata apt-get -y install $EXP_DEPS
- eatmydata apt-get -y install lcov
- '[ "${WANT_BUILD_DEPS}" != "true" ] || eatmydata apt-get -y build-dep .'
- ulimit -c unlimited
......@@ -79,26 +75,28 @@ check-po:
- cd po/
- intltool-update -m 2>&1 | grep -qs '/.*\.c' && { intltool-update -m; exit 1; } || exit 0
package-debian-bullseye:
variables:
EXP_DEPS: libhandy-1-dev/experimental libhandy-1-0/experimental gir1.2-handy-1/experimental libgladeui-common/experimental
validate-metadata:
stage: test
image: debian:bookworm
tags: []
extends: .l5-build-debian-package
before_script:
- echo "deb http://deb.debian.org/debian/ experimental main" > /etc/apt/sources.list.d/exp.list
- export DEBIAN_FRONTEND=noninteractive
- apt-get -y update
- apt-get -y install $EXP_DEPS
- apt-get -y install appstream-util
script:
- appstream-util validate data/org.gnome.Calls.metainfo.xml
package-debian-bullseye:arm64:
package-debian-bookworm:
tags: []
extends: .l5-build-debian-package
package-deb-pureos-byzantium:arm64:
variables:
EXP_DEPS: libhandy-1-dev/experimental libhandy-1-0/experimental gir1.2-handy-1/experimental libgladeui-common/experimental
L5_DOCKER_IMAGE: pureos/byzantium
DEB_BUILD_PROFILES: nodoc
tags:
- aarch64
extends: .l5-build-debian-package
before_script:
- echo "deb http://deb.debian.org/debian/ experimental main" > /etc/apt/sources.list.d/exp.list
- apt-get -y update
- apt-get -y install $EXP_DEPS
# For some reason including https://gitlab.gnome.org/GNOME/citemplates/raw/master/flatpak/flatpak_ci_initiative.yml fails with a network error (status code 500), therefore it's copied here
.flatpak:
......
......@@ -95,7 +95,7 @@ individual C files should be structured as (top to bottom of file):
BAR_TRIGGERED,
N_SIGNALS
};
static guint signals[N_SIGNALS] = { 0 };
static guint signals[N_SIGNALS];
```
- type definitions
```c
......
Calls 41.rc
-------------
Released: September
* Fix bug preventing SIP from working when using multiple network interfaces
* Fixes around SIP account management and its UI
* Translation updates:
- Galician (Fran Dieguez)
- German (Phillip Kiemle)
- Indonesian (Andika Triwidada)
- Occitan (Quentin PAGÈS)
- Persian (Danial Behzadi)
- Portuguese (Brazil) (Rafael Fontenelle)
- Romanian (Florentina Mușat)
- Swedish (Anders Jonsson)
- Ukrainian (Yuri Chornoivan)
Calls 41.beta
-------------
Released: 14. August 2021
* Major news items:
First release with SIP base functionality:
- Managing SIP Account is now possible from the UI
- Placing and receiving VoIP calls is now possible from the dial pad
Known Issues/Limitations:
- If you have multiple active network interfaces funkyness may ensue and
you SIP messages are being sucked into a black hole of sorts
- If things go wrong with a VoIP call for example because your network is down
more funkyness may ensue
* Translation updates:
- Catalan (Marc Riera)
- Esperanto (Kristjan SCHMIDT)
- Friulian (Fabio Tomat)
- Italian (antonio)
- Portuguese (Brazil) (Rafael Fontenelle)
- Serbian (Мирослав Николић)
- Swedish (Anders Jonsson)
- Ukrainian (Yuri Chornoivan)
There may be some dragons in this release so testing and filed issues would be greatly appreciated :)
Calls 41.alpha
--------------
Released: July 2021
* Major news items:
- Calls became a part of the GNOME project
- Change DBus path from /sm/puri/Calls to /org/gnome/Calls and interface name
from sm.puri.Calls to org.gnome.Calls. This is an incompatible change that breaks
existing applications. This affects at least phosh where it breaks unblanking
the screen on incoming calls and proximity sensor handling in ongoing calls.
This will be fixed with the next phosh release.
- Dropped layer-surface support to allow phosh to pickup incoming calls on the lockscreen
* Bugs fixed:
- #283 Cut and ellipsize long labels on the call display
......
# Calls
[![Code coverage](https://source.puri.sm/Librem5/calls/badges/master/coverage.svg)](https://source.puri.sm/Librem5/calls/commits/master)
[![Code coverage](https://gitlab.gnome.org/GNOME/calls/badges/master/coverage.svg)](https://gitlab.gnome.org/GNOME/calls/commits/master)
A phone dialer and call handler.
......@@ -8,7 +8,7 @@ A phone dialer and call handler.
Calls is licensed under the GPLv3+.
## Dependencies
To build Calls you need to first install the build-deps defined by [the debian/control file](https://source.puri.sm/Librem5/calls/blob/master/debian/control#L6)
To build Calls you need to first install the build-deps defined by [the debian/control file](https://gitlab.gnome.org/GNOME/calls/blob/master/debian/control#L8)
If you are running a Debian based distribution, you can easily install all those the dependencies making use of the following command
......
......@@ -11,6 +11,8 @@
<description>Calls is a dialer for phone calls, initially PSTN calls
but eventually other systems like SIP in future.</description>
<homepage rdf:resource="https://gitlab.gnome.org/GNOME/calls" />
<download-page rdf:resource="https://gitlab.gnome.org/GNOME/calls/-/tags" />
<bug-database rdf:resource="https://gitlab.gnome.org/GNOME/calls/issues/" />
<license rdf:resource="http://usefulinc.com/doap/licenses/gpl" />
<programming-language>C</programming-language>
......
......@@ -10,11 +10,13 @@
<p>Calls is a simple, elegant phone dialer and call handler built using GTK+ 3.</p>
</description>
<url type="homepage">https://source.puri.sm/Librem5/calls</url>
<url type="bugtracker">https://source.puri.sm/Librem5/calls/issues</url>
<url type="homepage">https://gitlab.gnome.org/GNOME/calls</url>
<url type="bugtracker">https://gitlab.gnome.org/GNOME/calls/issues</url>
<project_group>GNOME</project_group>
<developer_name>Bob Ham</developer_name>
<developer_name>Evangelos Ribeiro Tzaras</developer_name>
<developer_name>Julian Sparber</developer_name>
<recommends>
<control>pointing</control>
......@@ -67,7 +69,13 @@
</content_rating>
<releases>
<release version="41.alpha" data="2021-07-16">
<release version="41.rc" date="2021-09-02">
<description>SIP Plugin polish and bugfixes.</description>
</release>
<release version="41.beta" date="2021-08-14">
<description>SIP Plugin usable from the UI.</description>
</release>
<release version="41.alpha" date="2021-07-16">
<description>First GNOME release</description>
</release>
</releases>
......
gnome-calls (41~rc-1) experimental; urgency=medium
* d/control: Use correct phosh version in Breaks
* New upstream version 41~rc
* d/control: Update build dependencies
* d/control: Bump Standards-Version (no changes needed)
* ci: No need to use experimental anymore
* d/patches: Fix build for CI/debspawn
* d/patches: SIP: Explicitly bind to addresses
-- Evangelos Ribeiro Tzaras <devrtz-debian@fortysixandtwo.eu> Sun, 05 Sep 2021 19:04:44 +0200
gnome-calls (41~alpha-0pureos1) byzantium; urgency=medium
* Upload to byzantium
......
......@@ -24,14 +24,16 @@ Build-Depends:
libhandy-1-dev (>=1.1.90),
libmm-glib-dev (>= 1.12.0),
libpeas-dev,
libsecret-1-dev,
libsofia-sip-ua-glib-dev,
libxml2-utils,
meson,
modemmanager-dev,
pkg-config,
valac,
xauth,
xvfb,
Standards-Version: 4.5.1
Standards-Version: 4.6.0
Homepage: https://gitlab.gnome.org/GNOME/calls
Vcs-Browser: https://source.puri.sm/Librem5/debs/pkg-calls
Vcs-Git: https://source.puri.sm/Librem5/debs/pkg-calls.git
......
From 876375a39bef8b81739b3481e7a6af64991e4dd4 Mon Sep 17 00:00:00 2001
From: Evangelos Ribeiro Tzaras <devrtz@fortysixandtwo.eu>
Date: Fri, 3 Sep 2021 00:08:05 +0200
Subject: [PATCH 1/3] sip: provider: Skip creating credential directory on test
As it's not guaranteed that the home directory is always writable
during the build. Debspawn for example does not allow this
and we might get such a warning:
`CallsSipProvider-WARNING **: 21:58:14.839: Failed to create directory '/home/salsaci/.config/calls': 13`
---
plugins/sip/calls-sip-provider.c | 15 +++++++++------
1 file changed, 9 insertions(+), 6 deletions(-)
diff --git a/plugins/sip/calls-sip-provider.c b/plugins/sip/calls-sip-provider.c
index 82075416..faedf3e0 100644
--- a/plugins/sip/calls-sip-provider.c
+++ b/plugins/sip/calls-sip-provider.c
@@ -581,6 +581,7 @@ calls_sip_provider_init (CallsSipProvider *self)
{
g_autofree char *directory = NULL;
const char *filename_env = g_getenv ("CALLS_SIP_ACCOUNT_FILE");
+ const char *sip_test_env = g_getenv ("CALLS_SIP_TEST");
self->origins = g_list_store_new (CALLS_TYPE_ORIGIN);
@@ -592,12 +593,14 @@ calls_sip_provider_init (CallsSipProvider *self)
SIP_ACCOUNT_FILE,
NULL);
- directory = g_path_get_dirname (self->filename);
- if (g_mkdir_with_parents (directory, 0750) == -1) {
- int err_save = errno;
- g_warning ("Failed to create directory '%s': %d\n"
- "Can not store credentials persistently!",
- directory, err_save);
+ if (!sip_test_env || sip_test_env[0] == '\0') {
+ directory = g_path_get_dirname (self->filename);
+ if (g_mkdir_with_parents (directory, 0750) == -1) {
+ int err_save = errno;
+ g_warning ("Failed to create directory '%s': %d\n"
+ "Can not store credentials persistently!",
+ directory, err_save);
+ }
}
}
--
2.33.0
From 6b33845b11825a6ba90828523459a0ee4c8268bf Mon Sep 17 00:00:00 2001
From: Evangelos Ribeiro Tzaras <devrtz@fortysixandtwo.eu>
Date: Fri, 3 Sep 2021 00:20:44 +0200
Subject: [PATCH 2/3] sip: origin: Do not use CallsNetworkWatch during tests
As local testing showed we might get netlink message headers of type
NLMSG_ERROR which leads to a warning being printed and the test to fail.
---
plugins/sip/calls-sip-origin.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/plugins/sip/calls-sip-origin.c b/plugins/sip/calls-sip-origin.c
index 18d3f93b..bfd6a1cb 100644
--- a/plugins/sip/calls-sip-origin.c
+++ b/plugins/sip/calls-sip-origin.c
@@ -1433,10 +1433,10 @@ calls_sip_origin_accounts_interface_init (CallsAccountInterface *iface)
static void
calls_sip_origin_init (CallsSipOrigin *self)
{
- CallsNetworkWatch *nw = calls_network_watch_get_default ();
+ const char *sip_test_env = g_getenv ("CALLS_SIP_TEST");
- if (nw)
- g_signal_connect_swapped (nw, "network-changed",
+ if (!sip_test_env || sip_test_env[0] == '\0')
+ g_signal_connect_swapped (calls_network_watch_get_default (), "network-changed",
G_CALLBACK (on_network_changed), self);
self->call_handles = g_hash_table_new (NULL, NULL);
--
2.33.0
From a5cfd9eb24425b1151f38e788e9da22bebca3338 Mon Sep 17 00:00:00 2001
From: Evangelos Ribeiro Tzaras <devrtz@fortysixandtwo.eu>
Date: Sun, 5 Sep 2021 16:26:03 +0200
Subject: [PATCH 3/3] sip: origin: Bind sockets to NIC with default route
Otherwise sofia may use the wrong interface resulting in unroutable packets.
Closes #317
---
plugins/sip/calls-sip-origin.c | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/plugins/sip/calls-sip-origin.c b/plugins/sip/calls-sip-origin.c
index bfd6a1cb..ba9d7e17 100644
--- a/plugins/sip/calls-sip-origin.c
+++ b/plugins/sip/calls-sip-origin.c
@@ -770,6 +770,7 @@ sip_callback (nua_event_t event,
static nua_t *
setup_nua (CallsSipOrigin *self)
{
+ const char *sip_test_env = g_getenv ("CALLS_SIP_TEST");
nua_t *nua;
gboolean use_sips = FALSE;
gboolean use_ipv6 = FALSE; /* TODO make configurable or use DNS to figure out if ipv6 is supported*/
@@ -781,6 +782,12 @@ setup_nua (CallsSipOrigin *self)
g_autofree char *sips_url = NULL;
g_autofree char *from_str = NULL;
+ if (!sip_test_env || sip_test_env[0] == '\0') {
+ CallsNetworkWatch *nw = calls_network_watch_get_default ();
+ ipv4_bind = calls_network_watch_get_ipv4 (nw);
+ ipv6_bind = calls_network_watch_get_ipv6 (nw);
+ }
+
uuid = nua_generate_instance_identifier (self->ctx->home);
urn_uuid = g_strdup_printf ("urn:uuid:%s", uuid);
--
2.33.0
0001-sip-provider-Skip-creating-credential-directory-on-t.patch
0002-sip-origin-Do-not-use-CallsNetworkWatch-during-tests.patch
0003-sip-origin-Bind-sockets-to-NIC-with-default-route.patch
......@@ -5,8 +5,4 @@ include:
variables:
SALSA_CI_DISABLE_BUILD_PACKAGE_ANY: 1
RELEASE: 'experimental'
# Since those pull from unstable
SALSA_CI_DISABLE_REPROTEST: 1
SALSA_CI_DISABLE_PIUPARTS: 1
SALSA_CI_DISABLE_AUTOPKGTEST: 1
......@@ -22,7 +22,7 @@
project(
'calls',
'c', 'vala',
version: '41.alpha',
version: '41.rc',
license: 'GPLv3+',
meson_version: '>= 0.49.0',
default_options: [
......@@ -98,7 +98,7 @@ test_c_args = [
'-Wtype-limits',
'-Wunused-function',
'-DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_64',
'-DGLIB_VERSION_MAX_ALLOWED=GLIB_VERSION_2_68',
'-DGLIB_VERSION_MAX_ALLOWED=GLIB_VERSION_2_70',
# see https://gitlab.gnome.org/GNOME/evolution-data-server/-/issues/332
'-DEDS_DISABLE_DEPRECATED',
]
......@@ -125,4 +125,4 @@ subdir('doc')
subdir('data')
subdir('tests')
meson.add_install_script('build-aux/meson/postinstall.py')
\ No newline at end of file
meson.add_install_script('build-aux/meson/postinstall.py')
......@@ -256,8 +256,8 @@
"sources" : [
{
"type" : "archive",
"url" : "https://source.puri.sm/Librem5/feedbackd/-/archive/v0.0.0+git20200714/feedbackd-v0.0.0+git20200714.tar.gz",
"sha256" : "c64fe60926f7e2423e39c31d5d1ca05aa258504d4f504bf9658569eb25567638"
"url" : "https://source.puri.sm/Librem5/feedbackd/-/archive/v0.0.0+git20210426/feedbackd-v0.0.0+git20210426.tar.gz",
"sha256" : "3e9ec7d521ff0dcbfff15708678650068ac744fad93e21959484226cd882916d"
}
]
},
......@@ -267,8 +267,8 @@
"sources" : [
{
"type" : "archive",
"url" : "https://gitlab.com/mobian1/callaudiod/-/archive/0.0.5/callaudiod-0.0.5.tar.gz",
"sha256" : "0016a5800749d408dbaa14d8a7886bf492068d56508c83a352dee9b1920754b4"
"url" : "https://gitlab.com/mobian1/callaudiod/-/archive/0.1.0/callaudiod-0.1.0.tar.gz",
"sha256" : "eb9202af99e7d5fdfb0c20fcb64a0384a2024c9ca27a4c8ba45113eb0ffb97fc"
}
]
},
......
......@@ -59,6 +59,7 @@ enum {
PROP_CALLS,
PROP_COUNTRY_CODE,
PROP_NUMERIC,
PROP_LAST_PROP,
};
static GParamSpec *props[PROP_LAST_PROP];
......@@ -214,6 +215,10 @@ get_property (GObject *object,
g_value_set_string (value, NULL);
break;
case PROP_NUMERIC:
g_value_set_boolean (value, TRUE);
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
break;
......@@ -269,6 +274,7 @@ calls_dummy_origin_class_init (CallsDummyOriginClass *klass)
IMPLEMENTS (PROP_NAME, "name");
IMPLEMENTS (PROP_CALLS, "calls");
IMPLEMENTS (PROP_COUNTRY_CODE, "country-code");
IMPLEMENTS (PROP_NUMERIC, "numeric-addresses");
#undef IMPLEMENTS
}
......
......@@ -72,6 +72,7 @@ enum {
PROP_CALLS,
PROP_MODEM,
PROP_COUNTRY_CODE,
PROP_NUMERIC,
PROP_LAST_PROP,
};
static GParamSpec *props[PROP_LAST_PROP];
......@@ -666,6 +667,10 @@ get_property (GObject *object,
g_value_set_string (value, self->country_code);
break;
case PROP_NUMERIC:
g_value_set_boolean (value, TRUE);
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
break;
......@@ -881,6 +886,7 @@ calls_mm_origin_class_init (CallsMMOriginClass *klass)
IMPLEMENTS (PROP_NAME, "name");
IMPLEMENTS (PROP_CALLS, "calls");
IMPLEMENTS (PROP_COUNTRY_CODE, "country-code");
IMPLEMENTS (PROP_NUMERIC, "numeric-addresses");
#undef IMPLEMENTS
......
......@@ -59,6 +59,7 @@ enum {
PROP_CALLS,
PROP_MODEM,
PROP_COUNTRY_CODE,
PROP_NUMERIC,
PROP_LAST_PROP,
};
static GParamSpec *props[PROP_LAST_PROP];
......@@ -176,6 +177,10 @@ get_property (GObject *object,
g_value_set_string (value, NULL);
break;
case PROP_NUMERIC:
g_value_set_boolean (value, TRUE);
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
break;
......@@ -572,6 +577,7 @@ calls_ofono_origin_class_init (CallsOfonoOriginClass *klass)
IMPLEMENTS (PROP_NAME, "name");
IMPLEMENTS (PROP_CALLS, "calls");
IMPLEMENTS (PROP_COUNTRY_CODE, "country-code");
IMPLEMENTS (PROP_NUMERIC, "numeric-addresses");
#undef IMPLEMENTS
......
/*
* Copyright (C) 2021 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 <http://www.gnu.org/licenses/>.
*
* Author: Evangelos Ribeiro Tzaras <evangelos.tzaras@puri.sm>
*
* SPDX-License-Identifier: GPL-3.0-or-later
*
*/
#define G_LOG_DOMAIN "CallsSipAccountWidget"
#include "calls-sip-account-widget.h"
#include "calls-sip-provider.h"
#include "calls-sip-origin.h"
/**
* Section:calls-sip-account-widget
* short_description: A #GtkWidget to edit or add SIP accounts
* @Title: CallsSipAccountWidget
*
* This #GtkWidget allows the user to add a new or edit an existing SIP account.
*/
enum {
PROP_0,
PROP_PROVIDER,
PROP_ORIGIN,
PROP_LAST_PROP
};
static GParamSpec *props[PROP_LAST_PROP];
struct _CallsSipAccountWidget {
GtkBox parent;
/* Header bar */
GtkWidget *header_add;
GtkSpinner *spinner_add;
GtkWidget *header_edit;
GtkSpinner *spinner_edit;
GtkWidget *login_btn;
GtkWidget *apply_btn;
GtkWidget *delete_btn;
/* widgets for editing account credentials */
GtkEntry *host;
GtkEntry *display_name;
GtkEntry *user;
GtkEntry *password;
GtkEntry *port;
char *last_port;
HdyComboRow *protocol;
GListStore *protocols_store; /* bound model for protocol HdyComboRow */
/* properties */
CallsSipProvider *provider;
CallsSipOrigin *origin; /* nullable to add a new account */
/* misc */
gboolean connecting;
gboolean port_self_change;
};
G_DEFINE_TYPE (CallsSipAccountWidget, calls_sip_account_widget, GTK_TYPE_BOX)
static gboolean
is_form_valid (CallsSipAccountWidget *self)
{
g_assert (CALLS_IS_SIP_ACCOUNT_WIDGET (self));
/* TODO perform some sanity checks */
return TRUE;
}
static gboolean
is_form_filled (CallsSipAccountWidget *self)
{
g_assert (CALLS_IS_SIP_ACCOUNT_WIDGET (self));
return
g_strcmp0 (gtk_entry_get_text (GTK_ENTRY (self->host)), "") != 0 &&
g_strcmp0 (gtk_entry_get_text (GTK_ENTRY (self->user)), "") != 0 &&
g_strcmp0 (gtk_entry_get_text (GTK_ENTRY (self->password)), "") != 0 &&
g_strcmp0 (gtk_entry_get_text (GTK_ENTRY (self->port)), "") != 0;
}
static void
on_user_changed (CallsSipAccountWidget *self)
{