Added some tests for the custom storage.
* evolution-test-component.c: Added some tests for the custom storage. * evolution-storage.c: New signal DISCOVER_SHARED_FOLDER. (impl_Storage_asyncXferFolder): Renamed from impl_Storage_async_xfer_folder. (impl_Storage_asyncRemoveFolder): Renamed from impl_Storage_async_remove_folder. (impl_Storage_asyncCreateFolder): Renamed from impl_Storage_async_create_folder. (impl_Storage_asyncOpenFolder): Renamed from impl_storage_async_open_folder. (impl_Storage_addListener): Renamed from impl_Storage_add_listener. (impl_Storage_removeListener): Renamed from impl_Storage_remove_listener. (impl_Storage_asyncDiscoverSharedFolder): New, implementation for ::asyncDiscoverSharedFolder. (evolution_storage_get_epv): Install the CORBA method here. (class_init): Set up the "discover_shared_folder" signal here. (e_marshal_NONE__POINTER_POINTER): Yet Another Marshaller. Die die die. * Evolution-Storage.idl (Storage::asyncDiscoverSharedFolder): New method. (StorageListener::notifySharedFolderDiscovered): New method. * e-shell-view-menu.c (command_open_other_users_folder): New, implementation for the FileOpenOtherUsersFolder verb. * Makefile.am: Generate stubs and skels for Evolution::Addressbook::SelectNames as well. * glade/e-shell-shared-folder-picker-dialog.glade: New. svn path=/trunk/; revision=16746
This commit is contained in:
@ -1,3 +1,43 @@
|
||||
2002-05-10 Ettore Perazzoli <ettore@ximian.com>
|
||||
|
||||
* evolution-test-component.c: Added some tests for the custom
|
||||
storage.
|
||||
|
||||
* evolution-storage.c: New signal DISCOVER_SHARED_FOLDER.
|
||||
(impl_Storage_asyncXferFolder): Renamed from
|
||||
impl_Storage_async_xfer_folder.
|
||||
(impl_Storage_asyncRemoveFolder): Renamed from
|
||||
impl_Storage_async_remove_folder.
|
||||
(impl_Storage_asyncCreateFolder): Renamed from
|
||||
impl_Storage_async_create_folder.
|
||||
(impl_Storage_asyncOpenFolder): Renamed from
|
||||
impl_storage_async_open_folder.
|
||||
(impl_Storage_addListener): Renamed from
|
||||
impl_Storage_add_listener.
|
||||
(impl_Storage_removeListener): Renamed from
|
||||
impl_Storage_remove_listener.
|
||||
(impl_Storage_asyncDiscoverSharedFolder): New, implementation for
|
||||
::asyncDiscoverSharedFolder.
|
||||
(evolution_storage_get_epv): Install the CORBA method here.
|
||||
(class_init): Set up the "discover_shared_folder" signal here.
|
||||
(e_marshal_NONE__POINTER_POINTER): Yet Another Marshaller. Die
|
||||
die die.
|
||||
|
||||
* Evolution-Storage.idl (Storage::asyncDiscoverSharedFolder): New
|
||||
method.
|
||||
(StorageListener::notifySharedFolderDiscovered): New method.
|
||||
|
||||
* e-shell-shared-folder-picker-dialog.c: New.
|
||||
* e-shell-shared-folder-picker-dialog.h: New.
|
||||
|
||||
* e-shell-view-menu.c (command_open_other_users_folder): New,
|
||||
implementation for the FileOpenOtherUsersFolder verb.
|
||||
|
||||
* Makefile.am: Generate stubs and skels for
|
||||
Evolution::Addressbook::SelectNames as well.
|
||||
|
||||
* glade/e-shell-shared-folder-picker-dialog.glade: New.
|
||||
|
||||
2002-05-09 Ettore Perazzoli <ettore@ximian.com>
|
||||
|
||||
* e-local-storage.c (construct): Pass %FALSE as
|
||||
|
||||
@ -37,6 +37,13 @@ module Evolution {
|
||||
string path;
|
||||
};
|
||||
|
||||
struct DiscoverSharedFolderResult {
|
||||
Result result;
|
||||
string storagePath;
|
||||
string physicalURI;
|
||||
string type;
|
||||
};
|
||||
|
||||
/* The name of the storage. */
|
||||
readonly attribute string name;
|
||||
|
||||
@ -46,6 +53,8 @@ module Evolution {
|
||||
/* Flat list of the folders in the storage. */
|
||||
readonly attribute FolderList folderList;
|
||||
|
||||
/* Folder Operations. */
|
||||
|
||||
void asyncCreateFolder (in string path,
|
||||
in string type,
|
||||
in string description,
|
||||
@ -61,11 +70,23 @@ module Evolution {
|
||||
in boolean remove_source,
|
||||
in Bonobo::Listener listener);
|
||||
|
||||
/* Open remote nodes. */
|
||||
|
||||
void asyncOpenFolder (in string path);
|
||||
|
||||
/* Set unread count. */
|
||||
|
||||
void updateFolder (in string path,
|
||||
in long unread_count);
|
||||
|
||||
/* Shared folders. */
|
||||
|
||||
void asyncDiscoverSharedFolder (in string user,
|
||||
in string folder_name,
|
||||
in Bonobo::Listener listener);
|
||||
|
||||
/* Listener handling. */
|
||||
|
||||
void addListener (in StorageListener listener)
|
||||
raises (AlreadyListening);
|
||||
|
||||
|
||||
@ -13,7 +13,7 @@ INCLUDES = -O \
|
||||
-DG_LOG_DOMAIN=\"evolution-shell\" \
|
||||
$(SHELL_CFLAGS)
|
||||
|
||||
# CORBA stuff
|
||||
# Shell CORBA stuff
|
||||
|
||||
IDLS = \
|
||||
Evolution-Activity.idl \
|
||||
@ -43,6 +43,21 @@ $(IDL_GENERATED): $(IDLS)
|
||||
$(ORBIT_IDL) -I $(srcdir) -I $(datadir)/idl `$(GNOME_CONFIG) --cflags idl` \
|
||||
$(srcdir)/Evolution.idl
|
||||
|
||||
# SelectNames CORBA stuff
|
||||
|
||||
SELECT_NAMES_IDL = \
|
||||
$(top_srcdir)/addressbook/gui/component/select-names/Evolution-Addressbook-SelectNames.idl
|
||||
|
||||
SELECT_NAMES_IDL_GENERATED = \
|
||||
Evolution-Addressbook-SelectNames.h \
|
||||
Evolution-Addressbook-SelectNames-common.c \
|
||||
Evolution-Addressbook-SelectNames-skels.c \
|
||||
Evolution-Addressbook-SelectNames-stubs.c
|
||||
|
||||
$(SELECT_NAMES_IDL_GENERATED): $(SELECT_NAMES_IDL)
|
||||
$(ORBIT_IDL) -I $(srcdir) -I $(datadir)/idl `$(GNOME_CONFIG) --cflags idl` \
|
||||
$(SELECT_NAMES_IDL)
|
||||
|
||||
# IDL install
|
||||
|
||||
idldir = $(datadir)/idl
|
||||
@ -102,6 +117,7 @@ libeshell_la_SOURCES = \
|
||||
bin_PROGRAMS = evolution
|
||||
|
||||
evolution_SOURCES = \
|
||||
$(SELECT_NAMES_IDL_GENERATED) \
|
||||
e-activity-handler.c \
|
||||
e-activity-handler.h \
|
||||
e-component-info.c \
|
||||
@ -151,6 +167,8 @@ evolution_SOURCES = \
|
||||
e-shell-offline-handler.h \
|
||||
e-shell-settings-dialog.c \
|
||||
e-shell-settings-dialog.h \
|
||||
e-shell-shared-folder-picker-dialog.c \
|
||||
e-shell-shared-folder-picker-dialog.h \
|
||||
e-shell-startup-wizard.c \
|
||||
e-shell-startup-wizard.h \
|
||||
e-shell-user-creatable-items-handler.c \
|
||||
@ -223,7 +241,10 @@ oaf_in_files = GNOME_Evolution_Shell.oaf.in
|
||||
oaf_DATA = $(oaf_in_files:.oaf.in=.oaf)
|
||||
|
||||
etspecdir = $(datadir)/evolution/etspec/
|
||||
etspec_DATA = e-storage-set-view.etspec e-storage-set-view-checkboxes.etstate e-storage-set-view-no-checkboxes.etstate
|
||||
etspec_DATA = \
|
||||
e-storage-set-view.etspec \
|
||||
e-storage-set-view-checkboxes.etstate \
|
||||
e-storage-set-view-no-checkboxes.etstate
|
||||
|
||||
@XML_I18N_MERGE_OAF_RULE@
|
||||
|
||||
@ -248,8 +269,8 @@ evolution.pure: evolution
|
||||
|
||||
endif
|
||||
|
||||
CLEANFILES = $(IDL_GENERATED)
|
||||
BUILT_SOURCES = $(IDL_GENERATED)
|
||||
CLEANFILES = $(IDL_GENERATED) $(SELECT_NAMES_IDL_GENERATED)
|
||||
BUILT_SOURCES = $(IDL_GENERATED) $(SELECT_NAMES_IDL_GENERATED)
|
||||
|
||||
dist-hook:
|
||||
cd $(distdir); rm -f $(BUILT_SOURCES)
|
||||
|
||||
@ -30,6 +30,7 @@
|
||||
|
||||
#include "e-shell-view-menu.h"
|
||||
|
||||
#include "e-shell-shared-folder-picker-dialog.h"
|
||||
#include "e-shell-folder-creation-dialog.h"
|
||||
#include "e-shell-folder-selection-dialog.h"
|
||||
|
||||
@ -398,6 +399,23 @@ command_add_folder_to_shortcut_bar (BonoboUIComponent *uih,
|
||||
get_path_for_folder_op (shell_view));
|
||||
}
|
||||
|
||||
|
||||
/* Opening other users' folders. */
|
||||
|
||||
static void
|
||||
command_open_other_users_folder (BonoboUIComponent *uih,
|
||||
void *data,
|
||||
const char *path)
|
||||
{
|
||||
EShellView *shell_view;
|
||||
EShell *shell;
|
||||
|
||||
shell_view = E_SHELL_VIEW (data);
|
||||
shell = e_shell_view_get_shell (shell_view);
|
||||
|
||||
e_shell_show_shared_folder_picker_dialog (shell, shell_view);
|
||||
}
|
||||
|
||||
|
||||
/* Going to a folder. */
|
||||
|
||||
@ -627,6 +645,7 @@ static BonoboUIVerb new_verbs [] = {
|
||||
|
||||
static BonoboUIVerb file_verbs [] = {
|
||||
BONOBO_UI_VERB ("FileImporter", (BonoboUIVerbFn) show_import_wizard),
|
||||
BONOBO_UI_VERB ("FileOpenOtherUsersFolder", command_open_other_users_folder),
|
||||
BONOBO_UI_VERB ("FileGoToFolder", command_goto_folder),
|
||||
BONOBO_UI_VERB ("FileCreateFolder", command_create_folder),
|
||||
BONOBO_UI_VERB ("FileClose", command_close),
|
||||
|
||||
@ -64,6 +64,12 @@ struct _EvolutionStorageListenerClass {
|
||||
void (* has_subfolders) (EvolutionStorageListener *storage_listener,
|
||||
const char *path,
|
||||
const char *message);
|
||||
|
||||
void (* shared_folder_discovery_result) (EvolutionStorageListener *storage_listener,
|
||||
const char *user,
|
||||
const char *folder_name,
|
||||
const char *storage_path,
|
||||
const char *physical_uri);
|
||||
};
|
||||
|
||||
|
||||
|
||||
@ -68,6 +68,7 @@ enum {
|
||||
XFER_FOLDER,
|
||||
UPDATE_FOLDER,
|
||||
OPEN_FOLDER,
|
||||
DISCOVER_SHARED_FOLDER,
|
||||
|
||||
LAST_SIGNAL
|
||||
};
|
||||
@ -320,13 +321,13 @@ impl_Storage__get_folderList (PortableServer_Servant servant,
|
||||
}
|
||||
|
||||
static void
|
||||
impl_Storage_async_create_folder (PortableServer_Servant servant,
|
||||
const CORBA_char *path,
|
||||
const CORBA_char *type,
|
||||
const CORBA_char *description,
|
||||
const CORBA_char *parent_physical_uri,
|
||||
const Bonobo_Listener listener,
|
||||
CORBA_Environment *ev)
|
||||
impl_Storage_asyncCreateFolder (PortableServer_Servant servant,
|
||||
const CORBA_char *path,
|
||||
const CORBA_char *type,
|
||||
const CORBA_char *description,
|
||||
const CORBA_char *parent_physical_uri,
|
||||
const Bonobo_Listener listener,
|
||||
CORBA_Environment *ev)
|
||||
{
|
||||
BonoboObject *bonobo_object;
|
||||
CORBA_Object obj_dup;
|
||||
@ -342,11 +343,11 @@ impl_Storage_async_create_folder (PortableServer_Servant servant,
|
||||
|
||||
|
||||
static void
|
||||
impl_Storage_async_remove_folder (PortableServer_Servant servant,
|
||||
const CORBA_char *path,
|
||||
const CORBA_char *physical_uri,
|
||||
const Bonobo_Listener listener,
|
||||
CORBA_Environment *ev)
|
||||
impl_Storage_asyncRemoveFolder (PortableServer_Servant servant,
|
||||
const CORBA_char *path,
|
||||
const CORBA_char *physical_uri,
|
||||
const Bonobo_Listener listener,
|
||||
CORBA_Environment *ev)
|
||||
{
|
||||
BonoboObject *bonobo_object;
|
||||
EvolutionStorage *storage;
|
||||
@ -361,12 +362,12 @@ impl_Storage_async_remove_folder (PortableServer_Servant servant,
|
||||
}
|
||||
|
||||
static void
|
||||
impl_Storage_async_xfer_folder (PortableServer_Servant servant,
|
||||
const CORBA_char *source_path,
|
||||
const CORBA_char *destination_path,
|
||||
const CORBA_boolean remove_source,
|
||||
const Bonobo_Listener listener,
|
||||
CORBA_Environment *ev)
|
||||
impl_Storage_asyncXferFolder (PortableServer_Servant servant,
|
||||
const CORBA_char *source_path,
|
||||
const CORBA_char *destination_path,
|
||||
const CORBA_boolean remove_source,
|
||||
const Bonobo_Listener listener,
|
||||
CORBA_Environment *ev)
|
||||
{
|
||||
BonoboObject *bonobo_object;
|
||||
EvolutionStorage *storage;
|
||||
@ -425,9 +426,9 @@ impl_Storage_updateFolder (PortableServer_Servant servant,
|
||||
}
|
||||
|
||||
static void
|
||||
impl_Storage_async_open_folder (PortableServer_Servant servant,
|
||||
const CORBA_char *path,
|
||||
CORBA_Environment *ev)
|
||||
impl_Storage_asyncOpenFolder (PortableServer_Servant servant,
|
||||
const CORBA_char *path,
|
||||
CORBA_Environment *ev)
|
||||
{
|
||||
BonoboObject *bonobo_object;
|
||||
EvolutionStorage *storage;
|
||||
@ -439,9 +440,26 @@ impl_Storage_async_open_folder (PortableServer_Servant servant,
|
||||
}
|
||||
|
||||
static void
|
||||
impl_Storage_add_listener (PortableServer_Servant servant,
|
||||
const GNOME_Evolution_StorageListener listener,
|
||||
CORBA_Environment *ev)
|
||||
impl_Storage_asyncDiscoverSharedFolder (PortableServer_Servant servant,
|
||||
const CORBA_char *user,
|
||||
const CORBA_char *folder_name,
|
||||
Bonobo_Listener listener,
|
||||
CORBA_Environment *ev)
|
||||
{
|
||||
BonoboObject *bonobo_object;
|
||||
EvolutionStorage *storage;
|
||||
|
||||
bonobo_object = bonobo_object_from_servant (servant);
|
||||
storage = EVOLUTION_STORAGE (bonobo_object);
|
||||
|
||||
gtk_signal_emit (GTK_OBJECT (storage), signals[DISCOVER_SHARED_FOLDER],
|
||||
user, folder_name, listener);
|
||||
}
|
||||
|
||||
static void
|
||||
impl_Storage_addListener (PortableServer_Servant servant,
|
||||
const GNOME_Evolution_StorageListener listener,
|
||||
CORBA_Environment *ev)
|
||||
{
|
||||
BonoboObject *bonobo_object;
|
||||
EvolutionStorage *storage;
|
||||
@ -454,9 +472,9 @@ impl_Storage_add_listener (PortableServer_Servant servant,
|
||||
}
|
||||
|
||||
static void
|
||||
impl_Storage_remove_listener (PortableServer_Servant servant,
|
||||
const GNOME_Evolution_StorageListener listener,
|
||||
CORBA_Environment *ev)
|
||||
impl_Storage_removeListener (PortableServer_Servant servant,
|
||||
const GNOME_Evolution_StorageListener listener,
|
||||
CORBA_Environment *ev)
|
||||
{
|
||||
BonoboObject *bonobo_object;
|
||||
EvolutionStorage *storage;
|
||||
@ -646,6 +664,17 @@ class_init (EvolutionStorageClass *klass)
|
||||
GTK_TYPE_NONE, 1,
|
||||
GTK_TYPE_STRING);
|
||||
|
||||
signals[DISCOVER_SHARED_FOLDER] = gtk_signal_new ("discover_shared_folder",
|
||||
GTK_RUN_LAST,
|
||||
object_class->type,
|
||||
GTK_SIGNAL_OFFSET (EvolutionStorageClass,
|
||||
discover_shared_folder),
|
||||
e_marshal_NONE__POINTER_POINTER_POINTER,
|
||||
GTK_TYPE_NONE, 3,
|
||||
GTK_TYPE_STRING,
|
||||
GTK_TYPE_STRING,
|
||||
GTK_TYPE_POINTER);
|
||||
|
||||
gtk_object_class_add_signals (object_class, signals, LAST_SIGNAL);
|
||||
|
||||
corba_class_init ();
|
||||
@ -673,16 +702,17 @@ evolution_storage_get_epv (void)
|
||||
POA_GNOME_Evolution_Storage__epv *epv;
|
||||
|
||||
epv = g_new0 (POA_GNOME_Evolution_Storage__epv, 1);
|
||||
epv->_get_name = impl_Storage__get_name;
|
||||
epv->_get_hasSharedFolders = impl_Storage__get_hasSharedFolders;
|
||||
epv->_get_folderList = impl_Storage__get_folderList;
|
||||
epv->asyncCreateFolder = impl_Storage_async_create_folder;
|
||||
epv->asyncRemoveFolder = impl_Storage_async_remove_folder;
|
||||
epv->asyncXferFolder = impl_Storage_async_xfer_folder;
|
||||
epv->asyncOpenFolder = impl_Storage_async_open_folder;
|
||||
epv->updateFolder = impl_Storage_updateFolder;
|
||||
epv->addListener = impl_Storage_add_listener;
|
||||
epv->removeListener = impl_Storage_remove_listener;
|
||||
epv->_get_name = impl_Storage__get_name;
|
||||
epv->_get_hasSharedFolders = impl_Storage__get_hasSharedFolders;
|
||||
epv->_get_folderList = impl_Storage__get_folderList;
|
||||
epv->asyncCreateFolder = impl_Storage_asyncCreateFolder;
|
||||
epv->asyncRemoveFolder = impl_Storage_asyncRemoveFolder;
|
||||
epv->asyncXferFolder = impl_Storage_asyncXferFolder;
|
||||
epv->asyncOpenFolder = impl_Storage_asyncOpenFolder;
|
||||
epv->updateFolder = impl_Storage_updateFolder;
|
||||
epv->asyncDiscoverSharedFolder = impl_Storage_asyncDiscoverSharedFolder;
|
||||
epv->addListener = impl_Storage_addListener;
|
||||
epv->removeListener = impl_Storage_removeListener;
|
||||
|
||||
return epv;
|
||||
}
|
||||
|
||||
@ -105,6 +105,11 @@ struct _EvolutionStorageClass {
|
||||
void (*update_folder) (EvolutionStorage *storage,
|
||||
const char *path,
|
||||
int unread_count);
|
||||
|
||||
void (*discover_shared_folder) (EvolutionStorage *storage,
|
||||
const char *user,
|
||||
const char *folder_name,
|
||||
Bonobo_Listener listener);
|
||||
};
|
||||
|
||||
|
||||
|
||||
@ -27,8 +27,10 @@
|
||||
#endif
|
||||
|
||||
#include "evolution-shell-component.h"
|
||||
|
||||
#include "evolution-activity-client.h"
|
||||
#include "evolution-config-control.h"
|
||||
#include "evolution-storage.h"
|
||||
|
||||
#include <bonobo/bonobo-exception.h>
|
||||
#include <bonobo/bonobo-generic-factory.h>
|
||||
@ -56,7 +58,7 @@ static EvolutionShellClient *parent_shell = NULL;
|
||||
static int timeout_id = 0;
|
||||
|
||||
|
||||
/* Test the configuration control. */
|
||||
/* TEST #1: Configuration Control. */
|
||||
|
||||
static BonoboObject *
|
||||
create_configuration_page (void)
|
||||
@ -94,7 +96,7 @@ register_configuration_control_factory (void)
|
||||
}
|
||||
|
||||
|
||||
/* Test the ::Shortcut interface. */
|
||||
/* TEST #2: The ::Shortcut interface. */
|
||||
|
||||
static void
|
||||
spit_out_shortcuts (EvolutionShellClient *shell_client)
|
||||
@ -146,7 +148,7 @@ spit_out_shortcuts (EvolutionShellClient *shell_client)
|
||||
}
|
||||
|
||||
|
||||
/* Test the multiple folder selector. */
|
||||
/* TEST #4: The multiple folder selector. */
|
||||
|
||||
static void
|
||||
dialog_clicked_callback (GnomeDialog *dialog,
|
||||
@ -256,6 +258,80 @@ create_new_folder_selector (EvolutionShellComponent *shell_component)
|
||||
CORBA_exception_free (&ev);
|
||||
}
|
||||
|
||||
|
||||
/* TEST #5: Test custom storage. */
|
||||
|
||||
static int
|
||||
shared_folder_discovery_timeout_callback (void *data)
|
||||
{
|
||||
CORBA_Environment ev;
|
||||
Bonobo_Listener listener;
|
||||
CORBA_any any;
|
||||
GNOME_Evolution_Storage_DiscoverSharedFolderResult result;
|
||||
|
||||
listener = (Bonobo_Listener) data;
|
||||
|
||||
result.result = GNOME_Evolution_Storage_OK;
|
||||
result.storagePath = "/Shared Folders/The Public Folder";
|
||||
result.physicalURI = "blah://bleh.net:3764/bluh/bleh/blih";
|
||||
result.type = "test";
|
||||
|
||||
any._type = TC_GNOME_Evolution_Storage_DiscoverSharedFolderResult;
|
||||
any._value = &result;
|
||||
|
||||
CORBA_exception_init (&ev);
|
||||
|
||||
Bonobo_Listener_event (listener, "result", &any, &ev);
|
||||
if (BONOBO_EX (&ev))
|
||||
g_warning ("Cannot report result for shared folder discovery -- %s",
|
||||
BONOBO_EX_ID (&ev));
|
||||
|
||||
CORBA_Object_release (listener, &ev);
|
||||
|
||||
CORBA_exception_free (&ev);
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static void
|
||||
storage_discover_shared_folder_callback (EvolutionStorage *storage,
|
||||
const char *user,
|
||||
const char *folder_name,
|
||||
Bonobo_Listener listener,
|
||||
void *data)
|
||||
{
|
||||
CORBA_Environment ev;
|
||||
Bonobo_Listener listener_copy;
|
||||
|
||||
CORBA_exception_init (&ev);
|
||||
listener_copy = CORBA_Object_duplicate (listener, &ev);
|
||||
CORBA_exception_free (&ev);
|
||||
|
||||
g_timeout_add (1000, shared_folder_discovery_timeout_callback, listener_copy);
|
||||
}
|
||||
|
||||
static void
|
||||
setup_custom_storage (EvolutionShellClient *shell_client)
|
||||
{
|
||||
EvolutionStorage *the_storage;
|
||||
EvolutionStorageResult result;
|
||||
|
||||
the_storage = evolution_storage_new ("TestStorage", TRUE);
|
||||
|
||||
gtk_signal_connect (GTK_OBJECT (the_storage), "discover_shared_folder",
|
||||
GTK_SIGNAL_FUNC (storage_discover_shared_folder_callback), shell_client);
|
||||
|
||||
result = evolution_storage_register_on_shell (the_storage, BONOBO_OBJREF (shell_client));
|
||||
if (result != EVOLUTION_STORAGE_OK) {
|
||||
g_warning ("Cannot register storage on the shell.");
|
||||
bonobo_object_unref (BONOBO_OBJECT (the_storage));
|
||||
return;
|
||||
}
|
||||
|
||||
evolution_storage_new_folder (the_storage, "/FirstFolder", "FirstFolder", "mail", "file:///tmp/blah", "", 0);
|
||||
evolution_storage_new_folder (the_storage, "/SecondFolder", "SecondFolder", "calendar", "file:///tmp/bleh", "", 0);
|
||||
}
|
||||
|
||||
|
||||
/* Callbacks. */
|
||||
|
||||
@ -432,6 +508,8 @@ owner_set_callback (EvolutionShellComponent *shell_component,
|
||||
g_warning ("Shell doesn't have a ::Activity interface -- weird!");
|
||||
|
||||
spit_out_shortcuts (shell_client);
|
||||
|
||||
setup_custom_storage (shell_client);
|
||||
}
|
||||
|
||||
static int
|
||||
|
||||
@ -1,10 +1,11 @@
|
||||
gladedir = $(datadir)/evolution/glade
|
||||
|
||||
glade_DATA = \
|
||||
e-active-connection-dialog.glade \
|
||||
e-shell-config-default-folders.glade \
|
||||
e-shell-folder-creation-dialog.glade \
|
||||
evolution-startup-wizard.glade \
|
||||
glade_DATA = \
|
||||
e-active-connection-dialog.glade \
|
||||
e-shell-config-default-folders.glade \
|
||||
e-shell-folder-creation-dialog.glade \
|
||||
e-shell-shared-folder-picker-dialog.glade \
|
||||
evolution-startup-wizard.glade \
|
||||
e-folder-list.glade
|
||||
|
||||
EXTRA_DIST = $(glade_DATA)
|
||||
|
||||
301
shell/glade/e-shell-shared-folder-picker-dialog.glade
Normal file
301
shell/glade/e-shell-shared-folder-picker-dialog.glade
Normal file
@ -0,0 +1,301 @@
|
||||
<?xml version="1.0"?>
|
||||
<GTK-Interface>
|
||||
|
||||
<project>
|
||||
<name>Project1</name>
|
||||
<program_name>project1</program_name>
|
||||
<directory>../../../../home/ettore/Projects/project1</directory>
|
||||
<source_directory>../../../../home/ettore/Projects/project1/src</source_directory>
|
||||
<pixmaps_directory>../../../../home/ettore/Projects/project1/pixmaps</pixmaps_directory>
|
||||
<language>C</language>
|
||||
<gnome_support>True</gnome_support>
|
||||
<gettext_support>True</gettext_support>
|
||||
<translatable_strings_file>../../../../home/ettore/Projects/project1</translatable_strings_file>
|
||||
</project>
|
||||
|
||||
<widget>
|
||||
<class>GnomeDialog</class>
|
||||
<name>dialog</name>
|
||||
<width>350</width>
|
||||
<title>Open Other User's Folder</title>
|
||||
<type>GTK_WINDOW_TOPLEVEL</type>
|
||||
<position>GTK_WIN_POS_NONE</position>
|
||||
<modal>False</modal>
|
||||
<allow_shrink>False</allow_shrink>
|
||||
<allow_grow>False</allow_grow>
|
||||
<auto_shrink>False</auto_shrink>
|
||||
<auto_close>False</auto_close>
|
||||
<hide_on_close>False</hide_on_close>
|
||||
|
||||
<widget>
|
||||
<class>GtkVBox</class>
|
||||
<child_name>GnomeDialog:vbox</child_name>
|
||||
<name>dialog-vbox1</name>
|
||||
<homogeneous>False</homogeneous>
|
||||
<spacing>8</spacing>
|
||||
<child>
|
||||
<padding>4</padding>
|
||||
<expand>True</expand>
|
||||
<fill>True</fill>
|
||||
</child>
|
||||
|
||||
<widget>
|
||||
<class>GtkHButtonBox</class>
|
||||
<child_name>GnomeDialog:action_area</child_name>
|
||||
<name>dialog-action_area1</name>
|
||||
<layout_style>GTK_BUTTONBOX_END</layout_style>
|
||||
<spacing>8</spacing>
|
||||
<child_min_width>85</child_min_width>
|
||||
<child_min_height>27</child_min_height>
|
||||
<child_ipad_x>7</child_ipad_x>
|
||||
<child_ipad_y>0</child_ipad_y>
|
||||
<child>
|
||||
<padding>0</padding>
|
||||
<expand>False</expand>
|
||||
<fill>True</fill>
|
||||
<pack>GTK_PACK_END</pack>
|
||||
</child>
|
||||
|
||||
<widget>
|
||||
<class>GtkButton</class>
|
||||
<name>button1</name>
|
||||
<can_default>True</can_default>
|
||||
<has_default>True</has_default>
|
||||
<can_focus>True</can_focus>
|
||||
<stock_button>GNOME_STOCK_BUTTON_OK</stock_button>
|
||||
</widget>
|
||||
|
||||
<widget>
|
||||
<class>GtkButton</class>
|
||||
<name>button3</name>
|
||||
<can_default>True</can_default>
|
||||
<can_focus>True</can_focus>
|
||||
<stock_button>GNOME_STOCK_BUTTON_CANCEL</stock_button>
|
||||
</widget>
|
||||
</widget>
|
||||
|
||||
<widget>
|
||||
<class>GtkVBox</class>
|
||||
<name>vbox1</name>
|
||||
<homogeneous>False</homogeneous>
|
||||
<spacing>0</spacing>
|
||||
<child>
|
||||
<padding>0</padding>
|
||||
<expand>True</expand>
|
||||
<fill>True</fill>
|
||||
</child>
|
||||
|
||||
<widget>
|
||||
<class>GtkLabel</class>
|
||||
<name>label4</name>
|
||||
<label>Blah blah.</label>
|
||||
<justify>GTK_JUSTIFY_CENTER</justify>
|
||||
<wrap>False</wrap>
|
||||
<xalign>0.5</xalign>
|
||||
<yalign>0.5</yalign>
|
||||
<xpad>0</xpad>
|
||||
<ypad>0</ypad>
|
||||
<child>
|
||||
<padding>0</padding>
|
||||
<expand>False</expand>
|
||||
<fill>False</fill>
|
||||
</child>
|
||||
</widget>
|
||||
|
||||
<widget>
|
||||
<class>GtkLabel</class>
|
||||
<name>label5</name>
|
||||
<label>Insert some explanatory text here.</label>
|
||||
<justify>GTK_JUSTIFY_CENTER</justify>
|
||||
<wrap>False</wrap>
|
||||
<xalign>0.5</xalign>
|
||||
<yalign>0.5</yalign>
|
||||
<xpad>0</xpad>
|
||||
<ypad>0</ypad>
|
||||
<child>
|
||||
<padding>0</padding>
|
||||
<expand>False</expand>
|
||||
<fill>False</fill>
|
||||
</child>
|
||||
</widget>
|
||||
</widget>
|
||||
|
||||
<widget>
|
||||
<class>GtkTable</class>
|
||||
<name>table1</name>
|
||||
<rows>3</rows>
|
||||
<columns>2</columns>
|
||||
<homogeneous>False</homogeneous>
|
||||
<row_spacing>3</row_spacing>
|
||||
<column_spacing>3</column_spacing>
|
||||
<child>
|
||||
<padding>2</padding>
|
||||
<expand>True</expand>
|
||||
<fill>True</fill>
|
||||
</child>
|
||||
|
||||
<widget>
|
||||
<class>GtkLabel</class>
|
||||
<name>label1</name>
|
||||
<label>Server:</label>
|
||||
<justify>GTK_JUSTIFY_CENTER</justify>
|
||||
<wrap>False</wrap>
|
||||
<xalign>0</xalign>
|
||||
<yalign>0.5</yalign>
|
||||
<xpad>0</xpad>
|
||||
<ypad>0</ypad>
|
||||
<child>
|
||||
<left_attach>0</left_attach>
|
||||
<right_attach>1</right_attach>
|
||||
<top_attach>0</top_attach>
|
||||
<bottom_attach>1</bottom_attach>
|
||||
<xpad>0</xpad>
|
||||
<ypad>0</ypad>
|
||||
<xexpand>False</xexpand>
|
||||
<yexpand>False</yexpand>
|
||||
<xshrink>False</xshrink>
|
||||
<yshrink>False</yshrink>
|
||||
<xfill>True</xfill>
|
||||
<yfill>False</yfill>
|
||||
</child>
|
||||
</widget>
|
||||
|
||||
<widget>
|
||||
<class>GtkLabel</class>
|
||||
<name>label2</name>
|
||||
<label>User:</label>
|
||||
<justify>GTK_JUSTIFY_CENTER</justify>
|
||||
<wrap>False</wrap>
|
||||
<xalign>0</xalign>
|
||||
<yalign>0.5</yalign>
|
||||
<xpad>0</xpad>
|
||||
<ypad>0</ypad>
|
||||
<child>
|
||||
<left_attach>0</left_attach>
|
||||
<right_attach>1</right_attach>
|
||||
<top_attach>1</top_attach>
|
||||
<bottom_attach>2</bottom_attach>
|
||||
<xpad>0</xpad>
|
||||
<ypad>0</ypad>
|
||||
<xexpand>False</xexpand>
|
||||
<yexpand>False</yexpand>
|
||||
<xshrink>False</xshrink>
|
||||
<yshrink>False</yshrink>
|
||||
<xfill>True</xfill>
|
||||
<yfill>False</yfill>
|
||||
</child>
|
||||
</widget>
|
||||
|
||||
<widget>
|
||||
<class>GtkLabel</class>
|
||||
<name>label3</name>
|
||||
<label>Folder Name:</label>
|
||||
<justify>GTK_JUSTIFY_CENTER</justify>
|
||||
<wrap>False</wrap>
|
||||
<xalign>0</xalign>
|
||||
<yalign>0.5</yalign>
|
||||
<xpad>0</xpad>
|
||||
<ypad>0</ypad>
|
||||
<child>
|
||||
<left_attach>0</left_attach>
|
||||
<right_attach>1</right_attach>
|
||||
<top_attach>2</top_attach>
|
||||
<bottom_attach>3</bottom_attach>
|
||||
<xpad>0</xpad>
|
||||
<ypad>0</ypad>
|
||||
<xexpand>False</xexpand>
|
||||
<yexpand>False</yexpand>
|
||||
<xshrink>False</xshrink>
|
||||
<yshrink>False</yshrink>
|
||||
<xfill>True</xfill>
|
||||
<yfill>False</yfill>
|
||||
</child>
|
||||
</widget>
|
||||
|
||||
<widget>
|
||||
<class>GtkOptionMenu</class>
|
||||
<name>server-option-menu</name>
|
||||
<can_focus>True</can_focus>
|
||||
<items></items>
|
||||
<initial_choice>0</initial_choice>
|
||||
<child>
|
||||
<left_attach>1</left_attach>
|
||||
<right_attach>2</right_attach>
|
||||
<top_attach>0</top_attach>
|
||||
<bottom_attach>1</bottom_attach>
|
||||
<xpad>0</xpad>
|
||||
<ypad>0</ypad>
|
||||
<xexpand>False</xexpand>
|
||||
<yexpand>False</yexpand>
|
||||
<xshrink>False</xshrink>
|
||||
<yshrink>False</yshrink>
|
||||
<xfill>True</xfill>
|
||||
<yfill>False</yfill>
|
||||
</child>
|
||||
</widget>
|
||||
|
||||
<widget>
|
||||
<class>GtkCombo</class>
|
||||
<name>folder-name-combo</name>
|
||||
<value_in_list>False</value_in_list>
|
||||
<ok_if_empty>True</ok_if_empty>
|
||||
<case_sensitive>False</case_sensitive>
|
||||
<use_arrows>True</use_arrows>
|
||||
<use_arrows_always>False</use_arrows_always>
|
||||
<items></items>
|
||||
<child>
|
||||
<left_attach>1</left_attach>
|
||||
<right_attach>2</right_attach>
|
||||
<top_attach>2</top_attach>
|
||||
<bottom_attach>3</bottom_attach>
|
||||
<xpad>0</xpad>
|
||||
<ypad>0</ypad>
|
||||
<xexpand>True</xexpand>
|
||||
<yexpand>False</yexpand>
|
||||
<xshrink>False</xshrink>
|
||||
<yshrink>False</yshrink>
|
||||
<xfill>True</xfill>
|
||||
<yfill>False</yfill>
|
||||
</child>
|
||||
|
||||
<widget>
|
||||
<class>GtkEntry</class>
|
||||
<child_name>GtkCombo:entry</child_name>
|
||||
<name>folder-name-entry</name>
|
||||
<can_focus>True</can_focus>
|
||||
<editable>True</editable>
|
||||
<text_visible>True</text_visible>
|
||||
<text_max_length>0</text_max_length>
|
||||
<text></text>
|
||||
</widget>
|
||||
</widget>
|
||||
|
||||
<widget>
|
||||
<class>GtkHBox</class>
|
||||
<name>user-picker-placeholder</name>
|
||||
<homogeneous>False</homogeneous>
|
||||
<spacing>0</spacing>
|
||||
<child>
|
||||
<left_attach>1</left_attach>
|
||||
<right_attach>2</right_attach>
|
||||
<top_attach>1</top_attach>
|
||||
<bottom_attach>2</bottom_attach>
|
||||
<xpad>0</xpad>
|
||||
<ypad>0</ypad>
|
||||
<xexpand>False</xexpand>
|
||||
<yexpand>False</yexpand>
|
||||
<xshrink>False</xshrink>
|
||||
<yshrink>False</yshrink>
|
||||
<xfill>True</xfill>
|
||||
<yfill>True</yfill>
|
||||
</child>
|
||||
|
||||
<widget>
|
||||
<class>Placeholder</class>
|
||||
</widget>
|
||||
</widget>
|
||||
</widget>
|
||||
</widget>
|
||||
</widget>
|
||||
|
||||
</GTK-Interface>
|
||||
Reference in New Issue
Block a user