#include <dbus/dbus-glib-lowlevel.h>
#include <glib.h>
#include <modest-runtime.h>
+#include <libgnomevfs/gnome-vfs.h>
+#include <tny-fs-stream.h>
#include "modest-maemo-utils.h"
"',member='" BTNAME_SIG_CHANGED "'"
+GtkWidget*
+modest_maemo_utils_menubar_to_menu (GtkUIManager *ui_manager)
+{
+ GtkWidget *main_menu;
+ GtkWidget *menubar;
+ GList *iter;
+
+ g_return_val_if_fail (ui_manager, NULL);
+
+ /* Create new main menu */
+ main_menu = gtk_menu_new();
+
+ /* Get the menubar from the UI manager */
+ menubar = gtk_ui_manager_get_widget (ui_manager, "/MenuBar");
+
+ iter = gtk_container_get_children (GTK_CONTAINER (menubar));
+ while (iter) {
+ GtkWidget *menu;
+
+ menu = GTK_WIDGET (iter->data);
+ gtk_widget_reparent(menu, main_menu);
+
+ iter = g_list_next (iter);
+ }
+ return main_menu;
+}
+
+
static void
update_device_name_from_msg (DBusMessage *message)
{
dbus_error_init (&error);
if (dbus_set_error_from_message (&error, message)) {
- g_printerr ("modest: failed to get bt name: %s\n", error.message);
+ g_printerr ("modest: failed to get bluetooth name: %s\n", error.message);
dbus_error_free (&error);
- modest_conf_set_string (modest_runtime_get_conf(),
- MODEST_CONF_DEVICE_NAME,
- MODEST_LOCAL_FOLDERS_DEFAULT_DISPLAY_NAME,
- NULL);
-
} else {
const gchar *device_name;
if (!dbus_message_iter_init (message, &iter)) {
g_printerr ("modest: message did not have argument\n");
return;
}
-
dbus_message_iter_get_basic (&iter, &device_name);
g_warning ("update device name: %s", device_name);
modest_conf_set_string (modest_runtime_get_conf(),
DBusMessage *request;
DBusError error;
DBusPendingCall *call = NULL;
-
- g_warning ("get device name from dbus");
dbus_error_init (&error);
if (!conn) {
get_device_name_from_dbus ();
}
+gboolean
+modest_maemo_utils_folder_writable (const gchar *filename)
+{
+ if (g_strncasecmp (filename, "obex", 4) != 0) {
+ GnomeVFSFileInfo folder_info;
+ gchar *folder;
+ folder = g_path_get_dirname (filename);
+ gnome_vfs_get_file_info (folder, &folder_info,
+ GNOME_VFS_FILE_INFO_GET_ACCESS_RIGHTS);
+ g_free (folder);
+ if (!((folder_info.permissions & GNOME_VFS_PERM_ACCESS_WRITABLE) ||
+ (folder_info.permissions & GNOME_VFS_PERM_USER_WRITE))) {
+ return FALSE;
+ }
+ }
+ return TRUE;
+}
+gboolean
+modest_maemo_utils_file_exists (const gchar *filename)
+{
+ GnomeVFSURI *uri = NULL;
+ gboolean result = FALSE;
+ uri = gnome_vfs_uri_new (filename);
+ if (uri) {
+ result = gnome_vfs_uri_exists (uri);
+ gnome_vfs_uri_unref (uri);
+ }
+ return result;
+}
+
+TnyFsStream *
+modest_maemo_utils_create_temp_stream (gchar **path)
+{
+ TnyStream *tmp_fs_stream;
+ gint fd;
+ gchar *filepath;
+
+ fd = g_file_open_tmp (NULL, &filepath, NULL);
+ if (path != NULL)
+ *path = filepath;
+ if (fd == -1) {
+ g_message ("TODO BANNER: Error saving stream");
+ return NULL;
+ }
+ tmp_fs_stream = tny_fs_stream_new (fd);
+
+ return TNY_FS_STREAM (tmp_fs_stream);
+}