diff options
author | Ettore Perazzoli <ettore@src.gnome.org> | 2001-08-12 22:00:02 +0800 |
---|---|---|
committer | Ettore Perazzoli <ettore@src.gnome.org> | 2001-08-12 22:00:02 +0800 |
commit | 51f77f649b27e6013038c642c532d0547c7fdddd (patch) | |
tree | 4f06a410fd1c1a908baf01196929daf88998977d /shell/e-folder.c | |
parent | ca62294adb3b70870297ffb9b18bde44899f2af3 (diff) | |
download | gsoc2013-evolution-51f77f649b27e6013038c642c532d0547c7fdddd.tar.gz gsoc2013-evolution-51f77f649b27e6013038c642c532d0547c7fdddd.tar.zst gsoc2013-evolution-51f77f649b27e6013038c642c532d0547c7fdddd.zip |
[Finally! Fix #413, "Support for stock folders", and #786, "i18n:
default folder names are not translated".]
* e-local-storage.c (setup_folder_as_stock): New helper function.
(setup_stock_folders): Use it to set the default folders as
"stock" folders. This will give them a translated name and also
make them unmodifiable.
(load_all_folders): Call `setup_stock_folders()' here.
* e-shell-folder-commands.c (delete_cb): Display an error dialog
if the deletion fails.
(e_shell_command_delete_folder): Pass the shell view to the delete
callback.
* e-storage.c (e_storage_result_to_string): Add a string for
`E_STORAGE_CANTCHANGESTOCKFOLDER' as well.
* e-local-storage.c (remove_folder): Don't allow a stock folder to
be removed.
(impl_async_xfer_folder): Don't allow a stock folder to be moved.
* e-corba-storage.c (async_remove_folder): Don't allow a stock
folder to be removed.
* e-storage.h: New enum value `E_STORAGE_CANTCHANGESTOCKFOLDER' in
`EStorageResult'.
* e-folder.c: Make member `self_highlight' a :1 int. New :1 int
member `is_stock'.
(init): Init `is_stock' to %FALSE.
(e_folder_set_is_stock): New.
(e_folder_get_is_stock): New.
* e-local-storage.c (bonobo_interface_update_folder_cb): For now,
don't set the display name.
svn path=/trunk/; revision=11931
Diffstat (limited to 'shell/e-folder.c')
-rw-r--r-- | shell/e-folder.c | 31 |
1 files changed, 29 insertions, 2 deletions
diff --git a/shell/e-folder.c b/shell/e-folder.c index f582c9e40b..017b258766 100644 --- a/shell/e-folder.c +++ b/shell/e-folder.c @@ -41,9 +41,12 @@ struct _EFolderPrivate { char *type; char *description; char *physical_uri; - gboolean self_highlight; + int child_highlight; int unread_count; + + int self_highlight : 1; + int is_stock : 1; }; #define EF_CLASS(obj) \ @@ -148,9 +151,10 @@ init (EFolder *folder) priv->name = NULL; priv->description = NULL; priv->physical_uri = NULL; - priv->self_highlight = FALSE; priv->child_highlight = 0; priv->unread_count = 0; + priv->self_highlight = FALSE; + priv->is_stock = FALSE; folder->priv = priv; } @@ -251,6 +255,15 @@ e_folder_get_highlighted (EFolder *folder) return folder->priv->child_highlight || folder->priv->unread_count; } +gboolean +e_folder_get_is_stock (EFolder *folder) +{ + g_return_val_if_fail (folder != NULL, FALSE); + g_return_val_if_fail (E_IS_FOLDER (folder), FALSE); + + return folder->priv->is_stock; +} + void e_folder_set_name (EFolder *folder, @@ -327,11 +340,25 @@ e_folder_set_child_highlight (EFolder *folder, g_return_if_fail (folder != NULL); g_return_if_fail (E_IS_FOLDER (folder)); + /* FIXME: Doesn't emit CHANGED. */ + if (highlighted) folder->priv->child_highlight++; else folder->priv->child_highlight--; } +void +e_folder_set_is_stock (EFolder *folder, + gboolean is_stock) +{ + g_return_if_fail (folder != NULL); + g_return_if_fail (E_IS_FOLDER (folder)); + + folder->priv->is_stock = !! is_stock; + + gtk_signal_emit (GTK_OBJECT (folder), signals[CHANGED]); +} + E_MAKE_TYPE (e_folder, "EFolder", EFolder, class_init, init, PARENT_TYPE) |