diff -Naur modem-manager-gui-0.0.19.old/src/Makefile modem-manager-gui-0.0.19/src/Makefile
--- modem-manager-gui-0.0.19.old/src/Makefile 2018-03-17 18:35:08.000000000 +0300
+++ modem-manager-gui-0.0.19/src/Makefile 2018-03-30 16:25:11.689138000 +0300
@@ -4,10 +4,10 @@
GCC = gcc
ifeq ($(ADDLIBSNAMES),)
INC = `pkg-config --cflags gtk+-3.0 gthread-2.0 gmodule-2.0`
-LIB = `pkg-config --libs gtk+-3.0 gthread-2.0 gmodule-2.0` -lgdbm
+LIB = `pkg-config --libs gtk+-3.0 gthread-2.0 gmodule-2.0` -lgdbm -lm
else
INC = `pkg-config --cflags gtk+-3.0 gthread-2.0 gmodule-2.0 $(ADDLIBSNAMES)`
-LIB = `pkg-config --libs gtk+-3.0 gthread-2.0 gmodule-2.0 $(ADDLIBSNAMES)` -lgdbm
+LIB = `pkg-config --libs gtk+-3.0 gthread-2.0 gmodule-2.0 $(ADDLIBSNAMES)` -lgdbm -lm
endif
OBJ = settings.o strformat.o libpaths.o dbus-utils.o notifications.o addressbooks.o ayatana.o smsdb.o trafficdb.o providersdb.o modem-settings.o ussdlist.o encoding.o vcard.o netlink.o polkit.o svcmanager.o mmguicore.o contacts-page.o traffic-page.o scan-page.o info-page.o ussd-page.o sms-page.o devices-page.o preferences-window.o welcome-window.o connection-editor-window.o main.o
diff -Naur modem-manager-gui-0.0.19.old/src/meson.build modem-manager-gui-0.0.19/src/meson.build
--- modem-manager-gui-0.0.19.old/src/meson.build 2018-03-17 18:35:08.000000000 +0300
+++ modem-manager-gui-0.0.19/src/meson.build 2018-03-30 16:25:11.689138000 +0300
@@ -43,4 +43,4 @@
c_args: c_args,
link_args: link_args,
install: true,
- dependencies : [glib, gobject, gio, gtk, gdbm, gtkspell, appindicator])
+ dependencies : [glib, gobject, gio, gmodule, gtk, gdbm, gtkspell, appindicator, m])
diff -Naur modem-manager-gui-0.0.19.old/src/mmguicore.c modem-manager-gui-0.0.19/src/mmguicore.c
--- modem-manager-gui-0.0.19.old/src/mmguicore.c 2018-03-17 18:35:08.000000000 +0300
+++ modem-manager-gui-0.0.19/src/mmguicore.c 2018-04-03 19:49:35.590117930 +0300
@@ -1123,9 +1123,9 @@
openstatus = mmgui_polkit_request_password(mmguicore->polkit, polkitaction);
}
g_free(polkitaction);
- /*Exit if not authenticated*/
+ /*Show warning if not authenticated*/
if (!openstatus) {
- return FALSE;
+ g_debug("User not authenticated for modem manager usage\n");
}
}
/*Dynamic loader*/
@@ -1233,9 +1233,9 @@
openstatus = mmgui_polkit_request_password(mmguicore->polkit, polkitaction);
}
g_free(polkitaction);
- /*Exit if not authenticated*/
+ /*Show warning if not authenticated*/
if (!openstatus) {
- return FALSE;
+ g_debug("User not authenticated for connection manager usage\n");
}
}
/*Dynamic loader*/
diff -Naur modem-manager-gui-0.0.19.old/src/modules/Makefile modem-manager-gui-0.0.19/src/modules/Makefile
--- modem-manager-gui-0.0.19.old/src/modules/Makefile 2018-03-17 18:35:08.000000000 +0300
+++ modem-manager-gui-0.0.19/src/modules/Makefile 2018-03-30 16:25:11.665138000 +0300
@@ -4,9 +4,9 @@
GCCLMOD = gcc -shared
INCMOD = `pkg-config --cflags glib-2.0` `pkg-config --cflags gmodule-2.0` `pkg-config --cflags gio-2.0`
LIBMOD = `pkg-config --libs glib-2.0` `pkg-config --libs gmodule-2.0` `pkg-config --libs gio-2.0`
-LIBMOD1 = `pkg-config --libs glib-2.0` `pkg-config --libs gmodule-2.0` `pkg-config --libs gio-2.0` -lgdbm
-LIBMOD2 = `pkg-config --libs glib-2.0` `pkg-config --libs gmodule-2.0` `pkg-config --libs gio-2.0` -lgdbm
-LIBMOD5 = `pkg-config --libs glib-2.0` `pkg-config --libs gmodule-2.0` `pkg-config --libs gio-2.0` -lgdbm -lrt
+LIBMOD1 = `pkg-config --libs glib-2.0` `pkg-config --libs gmodule-2.0` `pkg-config --libs gio-2.0` -lgdbm -lm
+LIBMOD2 = `pkg-config --libs glib-2.0` `pkg-config --libs gmodule-2.0` `pkg-config --libs gio-2.0` -lgdbm -lm
+LIBMOD5 = `pkg-config --libs glib-2.0` `pkg-config --libs gmodule-2.0` `pkg-config --libs gio-2.0` -lgdbm -lrt -lm
OBJMOD1 = smsdb.o encoding.o dbus-utils.o mm06.o
OBJMOD2 = smsdb.o encoding.o dbus-utils.o mm07.o
OBJMOD3 = uuid.o nm09.o
diff -Naur modem-manager-gui-0.0.19.old/src/modules/meson.build modem-manager-gui-0.0.19/src/modules/meson.build
--- modem-manager-gui-0.0.19.old/src/modules/meson.build 2018-03-17 18:35:08.000000000 +0300
+++ modem-manager-gui-0.0.19/src/modules/meson.build 2018-03-30 16:25:11.665138000 +0300
@@ -14,7 +14,7 @@
c_args: mm06_c_args,
install: true,
install_dir: join_paths(get_option('prefix'), get_option('libdir'), 'modem-manager-gui', 'modules'),
- dependencies : [glib, gobject, gio, gmodule, gdbm])
+ dependencies : [glib, gobject, gio, gmodule, gdbm, m])
mm07_c_sources = [
'../smsdb.c',
@@ -32,7 +32,7 @@
c_args: mm07_c_args,
install: true,
install_dir: join_paths(get_option('prefix'), get_option('libdir'), 'modem-manager-gui', 'modules'),
- dependencies : [glib, gobject, gio, gmodule, gdbm])
+ dependencies : [glib, gobject, gio, gmodule, gdbm, m])
nm09_c_sources = [
'uuid.c',
@@ -82,7 +82,7 @@
c_args: ofono109_c_args,
install: true,
install_dir: join_paths(get_option('prefix'), get_option('libdir'), 'modem-manager-gui', 'modules'),
- dependencies : [glib, gobject, gio, gmodule, gdbm, rt])
+ dependencies : [glib, gobject, gio, gmodule, gdbm, rt, m])
connman112_c_sources = [
'uuid.c',
diff -Naur modem-manager-gui-0.0.19.old/src/plugins/ofonohistory.c modem-manager-gui-0.0.19/src/plugins/ofonohistory.c
--- modem-manager-gui-0.0.19.old/src/plugins/ofonohistory.c 2018-03-17 18:35:08.000000000 +0300
+++ modem-manager-gui-0.0.19/src/plugins/ofonohistory.c 2018-03-30 16:42:33.074735000 +0300
@@ -232,7 +232,7 @@
if (gdbm_exists(historydata->db, key)) {
if (gdbm_delete(historydata->db, key) == 0) {
- ofono_debug("[HISTORY PLUGIN] Removed syncronized message: %s", rmkeystr);
+ ofono_debug("[HISTORY PLUGIN] Removed synchronized message: %s", rmkeystr);
}
}
}
diff -Naur modem-manager-gui-0.0.19.old/src/polkit.c modem-manager-gui-0.0.19/src/polkit.c
--- modem-manager-gui-0.0.19.old/src/polkit.c 2018-03-17 18:35:08.000000000 +0300
+++ modem-manager-gui-0.0.19/src/polkit.c 2018-04-03 19:39:18.778121120 +0300
@@ -306,6 +306,7 @@
GVariant *answer;
GError *error;
gboolean authstatus;
+ gchar *authvarstr;
if ((polkit == NULL) || (actionname == NULL)) return FALSE;
@@ -347,19 +348,25 @@
if (answer == NULL) {
if (error != NULL) {
- g_debug("Unable to request autorization: %s\n", error->message);
+ g_debug("Unable to request authorization: %s\n", error->message);
g_error_free(error);
}
return FALSE;
}
+ authvarstr = g_variant_print(answer, TRUE);
+ if (authvarstr != NULL) {
+ g_debug("Authentication result: %s\n", authvarstr);
+ g_free(authvarstr);
+ }
+
g_variant_get(answer, "((bba{ss}))", &authstatus, NULL, NULL);
g_variant_unref(answer);
return authstatus;
}
-gboolean mmgui_polkit_revoke_autorization(mmgui_polkit_t polkit, const gchar *actionname)
+gboolean mmgui_polkit_revoke_authorization(mmgui_polkit_t polkit, const gchar *actionname)
{
GError *error;
@@ -374,7 +381,7 @@
/*Send request and receive answer*/
error = NULL;
g_dbus_proxy_call_sync(polkit->proxy,
- "RevokeAuthorizationById",
+ "RevokeTemporaryAuthorizationById",
g_variant_new("(s)", actionname),
G_DBUS_CALL_FLAGS_NONE,
-1,
@@ -382,7 +389,7 @@
&error);
if (error != NULL) {
- g_debug("Unable to request autorization: %s\n", error->message);
+ g_debug("Unable to request authorization: %s\n", error->message);
g_error_free(error);
return FALSE;
}
diff -Naur modem-manager-gui-0.0.19.old/src/polkit.h modem-manager-gui-0.0.19/src/polkit.h
--- modem-manager-gui-0.0.19.old/src/polkit.h 2018-03-17 18:35:08.000000000 +0300
+++ modem-manager-gui-0.0.19/src/polkit.h 2018-03-30 16:38:52.817996000 +0300
@@ -55,6 +55,6 @@
void mmgui_polkit_close(mmgui_polkit_t polkit);
gboolean mmgui_polkit_action_needed(mmgui_polkit_t polkit, const gchar *actionname, gboolean strict);
gboolean mmgui_polkit_request_password(mmgui_polkit_t polkit, const gchar *actionname);
-gboolean mmgui_polkit_revoke_autorization(mmgui_polkit_t polkit, const gchar *actionname);
+gboolean mmgui_polkit_revoke_authorization(mmgui_polkit_t polkit, const gchar *actionname);
#endif /* __POLKIT_H__ */
diff -Naur modem-manager-gui-0.0.19.old/src/sms-page.c modem-manager-gui-0.0.19/src/sms-page.c
--- modem-manager-gui-0.0.19.old/src/sms-page.c 2018-03-17 18:35:08.000000000 +0300
+++ modem-manager-gui-0.0.19/src/sms-page.c 2018-03-30 16:41:41.436197000 +0300
@@ -103,7 +103,7 @@
static enum _mmgui_main_new_sms_dialog_result mmgui_main_sms_new_dialog(mmgui_application_t mmguiapp, const gchar *number, const gchar *text);
static void mmgui_main_sms_list_selection_changed_signal(GtkTreeSelection *selection, gpointer data);
static void mmgui_main_sms_list_row_activated_signal(GtkTreeView *treeview, GtkTreePath *path, GtkTreeViewColumn *col, gpointer data);
-static void mmgui_main_sms_add_to_list(mmgui_application_t mmguiapp, mmgui_sms_message_t sms, GtkTreeModel *model);
+static void mmgui_main_sms_add_to_list(mmgui_application_t mmguiapp, mmgui_sms_message_t sms, GtkTreeModel *model, gboolean expand);
static gboolean mmgui_main_sms_autocompletion_select_entry_signal(GtkEntryCompletion *widget, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data);
static void mmgui_main_sms_autocompletion_model_fill(mmgui_application_t mmguiapp, guint source);
static void mmgui_main_sms_menu_model_fill(mmgui_application_t mmguiapp, guint source);
@@ -314,7 +314,7 @@
/*Add message to database*/
mmgui_smsdb_add_sms(mmguicore_devices_get_sms_db(mmguiappdata->mmguiapp->core), message);
/*Add message to list*/
- mmgui_main_sms_add_to_list(mmguiappdata->mmguiapp, message, NULL);
+ mmgui_main_sms_add_to_list(mmguiappdata->mmguiapp, message, NULL, mmguiappdata->mmguiapp->options->smsexpandfolders);
/*Add unique sender name into hash table*/
if (g_hash_table_lookup(sendernames, message->number) == NULL) {
currentsender = g_strdup(mmgui_smsdb_message_get_number(message));
@@ -415,7 +415,7 @@
mmgui_smsdb_add_sms(mmguicore_devices_get_sms_db(mmguiappdata->mmguiapp->core), message);
/*Add message to list*/
- mmgui_main_sms_add_to_list(mmguiappdata->mmguiapp, message, NULL);
+ mmgui_main_sms_add_to_list(mmguiappdata->mmguiapp, message, NULL, mmguiappdata->mmguiapp->options->smsexpandfolders);
/*Remove message from device*/
mmguicore_sms_delete(mmguiappdata->mmguiapp->core, mmgui_smsdb_message_get_identifier(message));
@@ -707,7 +707,7 @@
/*Add message to database*/
mmgui_smsdb_add_sms(mmguicore_devices_get_sms_db(mmguiapp->core), message);
/*Add message to list*/
- mmgui_main_sms_add_to_list(mmguiapp, message, NULL);
+ mmgui_main_sms_add_to_list(mmguiapp, message, NULL, mmguiapp->options->smsexpandfolders);
/*Free message*/
mmgui_smsdb_message_free(message);
/*Save last number*/
@@ -731,7 +731,7 @@
/*Add message to database*/
mmgui_smsdb_add_sms(mmguicore_devices_get_sms_db(mmguiapp->core), message);
/*Add message to list*/
- mmgui_main_sms_add_to_list(mmguiapp, message, NULL);
+ mmgui_main_sms_add_to_list(mmguiapp, message, NULL, mmguiapp->options->smsexpandfolders);
/*Free message*/
mmgui_smsdb_message_free(message);
/*Save last number*/
@@ -1165,48 +1165,67 @@
mmgui_main_sms_answer(mmguiapp);
}
-static void mmgui_main_sms_add_to_list(mmgui_application_t mmguiapp, mmgui_sms_message_t sms, GtkTreeModel *model)
+static void mmgui_main_sms_add_to_list(mmgui_application_t mmguiapp, mmgui_sms_message_t sms, GtkTreeModel *model, gboolean expand)
{
GtkTreeIter iter, child;
+ GtkTreePath *expandpath;
time_t timestamp;
gchar *markup;
- //struct tm *tmptime;
gchar timestr[200];
GdkPixbuf *icon;
guint folder;
-
+
if ((mmguiapp == NULL) || (sms == NULL)) return;
+ /*Get model if needed*/
if (model == NULL) {
model = gtk_tree_view_get_model(GTK_TREE_VIEW(mmguiapp->window->smslist));
}
+ /*Get message timestamp*/
timestamp = mmgui_smsdb_message_get_timestamp(sms);
+ /*Format caption*/
markup = g_strdup_printf(_("%s\n%s"), mmgui_smsdb_message_get_number(sms), mmgui_str_format_sms_time(timestamp, timestr, sizeof(timestr)));
+ /*Choose icon*/
if (mmgui_smsdb_message_get_read(sms)) {
icon = mmguiapp->window->smsreadicon;
} else {
icon = mmguiapp->window->smsunreadicon;
}
+ /*Create iterators*/
+ expandpath = NULL;
+
switch (mmgui_smsdb_message_get_folder(sms)) {
case MMGUI_SMSDB_SMS_FOLDER_INCOMING:
folder = MMGUI_SMSDB_SMS_FOLDER_INCOMING;
gtk_tree_model_get_iter(model, &iter, mmguiapp->window->incomingpath);
+ if ((expand) && (!gtk_tree_model_iter_has_child(model, &iter))) {
+ expandpath = mmguiapp->window->incomingpath;
+ }
break;
case MMGUI_SMSDB_SMS_FOLDER_SENT:
folder = MMGUI_SMSDB_SMS_FOLDER_SENT;
gtk_tree_model_get_iter(model, &iter, mmguiapp->window->sentpath);
+ if ((expand) && (!gtk_tree_model_iter_has_child(model, &iter))) {
+ expandpath = mmguiapp->window->sentpath;
+ }
break;
case MMGUI_SMSDB_SMS_FOLDER_DRAFTS:
folder = MMGUI_SMSDB_SMS_FOLDER_DRAFTS;
gtk_tree_model_get_iter(model, &iter, mmguiapp->window->draftspath);
+ if ((expand) && (!gtk_tree_model_iter_has_child(model, &iter))) {
+ expandpath = mmguiapp->window->draftspath;
+ }
break;
default:
folder = MMGUI_SMSDB_SMS_FOLDER_INCOMING;
gtk_tree_model_get_iter(model, &iter, mmguiapp->window->incomingpath);
+ if ((expand) && (!gtk_tree_model_iter_has_child(model, &iter))) {
+ expandpath = mmguiapp->window->incomingpath;
+ }
break;
}
@@ -1217,6 +1236,7 @@
gtk_tree_store_insert(GTK_TREE_STORE(model), &child, &iter, 0);
}
+ /*Finally add message*/
gtk_tree_store_set(GTK_TREE_STORE(model), &child,
MMGUI_MAIN_SMSLIST_ICON, icon,
MMGUI_MAIN_SMSLIST_SMS, markup,
@@ -1225,7 +1245,13 @@
MMGUI_MAIN_SMSLIST_ISFOLDER, FALSE,
-1);
+ /*Free markup string*/
g_free(markup);
+
+ /*Expand list with first message if needed*/
+ if (expandpath != NULL) {
+ gtk_tree_view_expand_to_path(GTK_TREE_VIEW(mmguiapp->window->smslist), expandpath);
+ }
}
gboolean mmgui_main_sms_list_fill(mmgui_application_t mmguiapp)
@@ -1270,7 +1296,7 @@
/*Add messages*/
if (smslist != NULL) {
for (iterator=smslist; iterator; iterator=iterator->next) {
- mmgui_main_sms_add_to_list(mmguiapp, (mmgui_sms_message_t)iterator->data, model);
+ mmgui_main_sms_add_to_list(mmguiapp, (mmgui_sms_message_t)iterator->data, model, FALSE);
}
}
/*Attach model*/
@@ -1465,7 +1491,7 @@
/*Most recent number from list*/
return mmguiapp->window->smsnumlisthistory->data;
} else {
- /*Hisory linked list doesnt contain numbers*/
+ /*Hisory linked list doesn't contain numbers*/
return defnumber;
}
} else {
diff -Naur modem-manager-gui-0.0.19.old/src/svcmanager.c modem-manager-gui-0.0.19/src/svcmanager.c
--- modem-manager-gui-0.0.19.old/src/svcmanager.c 2018-03-17 18:35:08.000000000 +0300
+++ modem-manager-gui-0.0.19/src/svcmanager.c 2018-04-03 19:48:46.446760934 +0300
@@ -164,7 +164,7 @@
/*Test if systemd can be used*/
if (!mmgui_polkit_action_needed(svcmanager->polkit, "ru.linuxonly.modem-manager-gui.manage-services", TRUE)) {
- g_debug("Systemd doesnt work with polkit\n");
+ g_debug("Systemd doesn't work with polkit\n");
return FALSE;
}
@@ -931,8 +931,8 @@
mmgui_svcmanager_services_activation_chain(svcmanager);
if (svcmanager->svcsinqueue) {
- /*Drop autorization*/
- mmgui_polkit_revoke_autorization(svcmanager->polkit, "ru.linuxonly.modem-manager-gui.manage-services");
+ /*Drop authorization*/
+ mmgui_polkit_revoke_authorization(svcmanager->polkit, "ru.linuxonly.modem-manager-gui.manage-services");
}
return TRUE;