| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
| |
Use it to override network availability detection as reported by
NetworkManager or other network monitoring software.
|
|
|
|
|
|
|
|
|
|
|
|
| |
Listen for "prepare-for-quit" signals from the shell and inhibit
shutdown until all the activities we're tracking are finalized.
Also, add a couple supporting functions:
gboolean e_shell_backend_is_busy (EShellBackend *shell_backend);
void e_shell_backend_cancel_all (EShellBackend *shell_backend);
These will eventually replace mail_msg_active() and mail_cancel_all().
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Trying out a new interface called EAlertSink. The idea is to centralize
how errors are shown to the user. A GtkWindow subclass would implement
the EAlertSink interface, which consists of a single method:
void (*submit_alert) (EAlertSink *alert_sink, EAlert *alert);
The subclass has complete control over what to do with the EAlert,
although I imagine we'll wind up implementing various alert-handling
policies as standalone widgets such as EAlertDialog. I'd like to try
an EAlertInfoBar.
Code that would otherwise display an error dialog itself would instead
pass the EAlert to an appropriate EAlertSink and be done with it.
Nothing is final yet. Still hacking on EAlert trying to find an API
that feels right for these use cases.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
EActivity now uses a GCancellable to manage cancellations, instead of
having its own redundant cancellation API. API changes are as follows:
+ e_activity_get_cancellable()
+ e_activity_set_cancellable()
- e_activity_cancel()
- e_activity_is_cancelled()
- e_activity_get_allow_cancel()
- e_activity_set_allow_cancel()
EActivity's "cancelled" signal remains, but only as a repeater for
GCancellable::cancelled signals. It should not be emitted directly.
The presence of a GCancellable implies that cancellation is allowed.
EActivity does not create its own default GCancellable, it has to be
given one.
If a CamelOperation (cast as a GCancellable) is given, EActivity will
configure itself to listen for status updates from the CamelOperation
and propagate the information to its own "primary-text" and "percent"
properties.
These changes allowed me to start cleaning up some of the incredibly
convoluted logic in mail-mt.c -- in particular, mail_operation_status()
is completely gone now. mail-mt.c is still in a transitional state --
much more significant changes coming soon.
|
| |
|
| |
|
| |
|
|
|
|
| |
We preview imported files by other means now.
|
| |
|
|
|
|
|
| |
Also replace "$USER_DATA_DIR/cache" path constructions with
e_get_user_cache_dir().
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
It just doesn't belong in Evolution anymore. We don't support syncing
with more modern devices -- see Conduits or SyncEvolution for that -- so
it does not make sense for older model Palm Pilot PDAs to be the lone
exception.
I have repackaged the Evolution-Data-Server conduit modules to be
provided by gnome-pilot itself in bug #619315. This should provide
eqivalent Palm Pilot syncing functionality; it's just being moved to
gnome-pilot.
This completely severs our dependency on deprecated GNOME 2.x libraries
which were still being dragged in by way of gnome-pilot dependencies.
It was also interfereing with our bundling of libgnomecanvas.
|
| |
|
| |
|
|
|
|
|
| |
This uses the new gtk_assistant_commit() I had added to GTK+ for our
EImportAssistant progress page.
|
|\ |
|
| |\ |
|
| |\| |
|
| | | |
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
For express mode:
- Move the search bar up to the toolbar.
- Hide the "filter" combo box and lock down the first item.
- Hide the "scope" combo box and lock down the first item.
(This is the combo box with "Current Folder" only in the mailer.)
- EShellView owns the search bar widget now instead of EShellContent.
- Insert several nasty hacks that will likely come back to bite me.
Conflicts:
doc/reference/shell/eshell-sections.txt
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Introduce e_extensible_list_extensions(), which provides extensible
objects access to their own extensions, or a subset of them.
Convert EShellBackend to an abstract EExtension subtype. EShell will
load its extensions with e_extensible_load_extensions(), and then obtain
a list of EShellBackend extensions as follows:
shell_backends = e_extensible_list_extensions (
E_EXTENSIBLE (shell), E_TYPE_SHELL_BACKEND);
Because EShellBackend is abstract, its GType is skipped while traversing
the GType hierarchy to find EShell extensions.
|
| |/
| |
| |
| |
| |
| | |
The mechanism here is simple but hard to explain without leaning heavily
on object-oriented jargon. Consider this a rough draft. Illustrations
would certainly help clarify.
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| |
| | |
MessageList is the only thing still using it.
EMemPool is gone now, so it uses CamelMemPool instead (same thing).
|
| | |
|
| |
| |
| |
| |
| |
| |
| | |
There's too much ancient, crufty code there that we can't realistically
support anymore. A workaround for those poor users still on 1.x is to
upgrade to some 2.x release first, then upgrade again to 3.x. An error
dialog explaining this will be shown at startup.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
For express mode:
- Move the search bar up to the toolbar.
- Hide the "filter" combo box and lock down the first item.
- Hide the "scope" combo box and lock down the first item.
(This is the combo box with "Current Folder" only in the mailer.)
- EShellView owns the search bar widget now instead of EShellContent.
- Insert several nasty hacks that will likely come back to bite me.
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Introduce e_extensible_list_extensions(), which provides extensible
objects access to their own extensions, or a subset of them.
Convert EShellBackend to an abstract EExtension subtype. EShell will
load its extensions with e_extensible_load_extensions(), and then obtain
a list of EShellBackend extensions as follows:
shell_backends = e_extensible_list_extensions (
E_EXTENSIBLE (shell), E_TYPE_SHELL_BACKEND);
Because EShellBackend is abstract, its GType is skipped while traversing
the GType hierarchy to find EShell extensions.
|
|/
|
|
|
|
| |
The mechanism here is simple but hard to explain without leaning heavily
on object-oriented jargon. Consider this a rough draft. Illustrations
would certainly help clarify.
|
|
|
|
|
|
| |
Add G_GNUC_NULL_TERMINATED to EAlert functions with variable-length
parameter lists and drop the unnecessary "arg0" parameter so the
function attribute works correctly.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Replace the EVO_EXPRESS environment variable with an --express command
line option. (Note, this adds a new translatable string for --help.)
Add an EUIManager class with an "express-mode" property and custom load
functions that use our new "express" preprocessor. This replaces the UI
manager functions in e-utils.c.
(Also going to see if I can get GTK+ to add an "add_ui_from_string"
method to GtkUIManagerClass that we can override. Then we could just
call gtk_ui_manager_add_ui_from_string() and the preprocessor would
automatically do its thing and chain up.)
Add an "express-mode" read-only GObject property to EShell.
Add e_shell_configure_ui_manager() to e-shell-utils.c. For now this
just creates a one-way property binding:
EShell:express-mode -> EUIManager:express-mode
Call this immediately after e_ui_manager_new(). (EUIManager can't do
this itself because it lives too low in the dependency hierarchy and
doesn't know about EShell.)
|
|
|
|
| |
Also, start fixing some Gtk-Doc warnings. There's a lot.
|
|
|
|
| |
Also, let EShellSearchbar handle search state persistence.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The signal uses the name of the newly created shell view as the detail,
so for example "shell-view-created::mail" is emitted when the "mail"
view is created.
Also, add e_shell_window_peek_shell_view() to obtain a shell view if it
exists but without instantiating it.
Using these new tools, teach the templates plugin to wait for the user
to switch to the "mail" view before connecting to its "update-actions"
signal. Previously is was instantiating the "mail" view itself.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
EFocusTracker tracks the input focus within a window and helps keep
the sensitivity of "selectable" actions in the main menu up-to-date.
Selectable actions include Cut, Copy, Paste, Select All and Delete.
EFocusTracker has built-in support for widgets that implement the
GtkEditable interface such as GtkEntry and GtkTextView. It also
supports custom widgets that implement the ESelectable interface,
which is a subset of GtkEditable and can apply to anything that
displays selectable content (esp. tree views and ETables).
This commit integrates EFocusTracker with EShellWindow, CompEditor,
EMsgComposer, and ESignatureManager.
It also bumps the GtkHTML requirement to 2.29.5 to utilize the new
GtkhtmlEditor:html constructor property.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Move the search interface to a new widget: EShellSearchbar
The current search rule is now stored in EShellView, and the search
context in EShellViewClass similar to GalViewCollection (since it's
class-specific, not instance-specific).
Also add a couple new signals to EShellView: "clear-search" and
"custom-search" ("custom" refers to an advanced search or a saved
search -- something more complex than a quick search).
Still working out a few kinks. The search entry is clearly trying to
be too many things. We need a different way of indicating that you're
looking at search results. Perhaps a search results banner similar to
Nautilus.
|
|
|
|
|
|
| |
EMailSidebar is a subclass of EMFolderTree that implements the state
saving and restoration feature from EMailShellSidebar. Placing this
in the shared mail library allows Anjal to reuse it.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This tells EShell where to look for EModules. Best practice is to
define the directory in your CPPFLAGS and then pass it to EShell at
instantiation time, like so:
Makefile.am:
evolution_CPPFLAGS = \
-DMODULEDIR=\""$(moduledir)"\"
...
main.c:
shell = g_object_new (
E_TYPE_SHELL, "module-directory", MODULEDIR, ...);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
So Anjal can override what it needs to for its own purpose.
Also makes the EShellWindow design a little cleaner.
Methods added:
GtkWidget * (*construct_menubar) (EShellWindow *shell_window);
GtkWidget * (*construct_toolbar) (EShellWindow *shell_window);
GtkWidget * (*construct_sidebar) (EShellWindow *shell_window);
GtkWidget * (*construct_content) (EShellWindow *shell_window);
GtkWidget * (*construct_taskbar) (EShellWindow *shell_window);
EShellView * (*create_shell_view) (EShellWindow *shell_window,
const gchar *view_name);
Also added some new GObject properties to help decouple actions from
internal EShellWindow widgets created by these methods:
EShellWindow:sidebar-visible
EShellWindow:switcher-visible
EShellWindow:taskbar-visible
EShellWindow:toolbar-visible
|
|
|
|
|
|
|
|
| |
Adds the following methods:
CamelFolder * (*get_folder) (EMailReader *reader);
const gchar * (*get_folder_uri) (EMailReader *reader);
GPtrArray * (*get_selected_uids) (EMailReader *reader);
|
| |
|
|
|
|
|
|
|
| |
This -asks- an existing Evolution process to quit. It is equivalent to
selecting File->Quit in the main window. It does not kill the process.
My plan is to use this as part of a new --force-shutdown implementation.
|
|
|
|
|
| |
Applies the user's window geometry string to the first main window.
Suggested in bug #529565.
|
|
|
|
|
| |
GTK+ already does this. Eliminates e_icon_factory_init() and
e_icon_factory_shutdown().
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Includes Bastien Nocera's patch to register our importable MIME types
with the MIME database.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
This introduces e-shell-utils for miscellaneous utility functions
that integrate with the shell or shell settings. First function
is e_shell_run_save_dialog(), which automatically remembers the
selected folder in the file chooser dialog.
Also, kill some redundant save dialog functions, as well as some
write-this-string-to-disk functions that block.
|
|
|
|
|
| |
Use g_filename_to_uri() instead of e_util_filename_to_uri().
Use g_filename_from_uri() instead of e_util_uri_to_filename().
|
|
|
|
|
|
| |
After the folder's context menu closes the folder tree selection jumps
back to the folder whose contents are showing in the message list.
Suggested by Philippe LeCavalier on evolution-list.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
This addresses bug #593896 but is also a cleaner design than before.
It introduces an EShellView::execute-search signal and renames the
"search-execute" action to "search-quick" to clarify that it's only
meant for the "quick" search bar in the main window.
Shell view subclasses should implement the execute_search() method to
actually execute a search.
e_shell_view_execute_search() emits the new signal.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
The contact and contact-list editors now demonstrate this part of the
shutdown protocol. They listen for the "quit-requested" signal from the
shell and prompt to save changes, discard changes or cancel. If the user
cancels, the editor calls e_shell_cancel_quit() to do just that.
|
|
|
|
|
| |
The shutdown protocol is modelled after online/offline preparation.
Session management code is copied from libegg. Not yet used.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Collect all shell modules into a new top-level 'modules' directory:
$(top_srcdir)/modules/addressbook
$(top_srcdir)/modules/calendar
$(top_srcdir)/modules/mail
Nothing is allowed to link to these, not plugins nor other modules.
THIS SOLVES BUG #571275 AND OPENS THE DOOR TO PORTING TO MAC OS X.
- Mimic the libevolution-mail-shared library from master (except drop
the "shared" suffix) and have libevolution-mail-importers and all
mail-related plugins link to it.
- Discard the a11y subdirectories and have the files live alongside
their counterpart widgets.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Each EShellView now maintains a GKeyFile for recording disposable widget
state such as tree view path expansion, scroll bar positions, combo box
selections, etc. The EShellView records changes to the key file to
~/.evolution/<shell-backend>/config/state, and automatically restores
the GKeyFile at startup.
Currently only the mailer uses the key file, but it's intended to serve
all shell views. It replaces the use of Camel "cmeta" files, as well as
"et-expanded-*" and "folder-tree-expand-state.xml" files.
Also, the mailer's folder tree model now includes a column for tracking
which sidebar folders are expanded. Folder tree widgets appearing in
dialog windows can copy the sidebar's expanded state using
em_folder_tree_clone_expanded().
|
| |
|
|
|
|
|
| |
Split the search entry into a new widget to manage hints (EHintedEntry).
Let the search entry expand to use available horizontal space.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
svn path=/branches/kill-bonobo/; revision=37310
|
|
|
|
|
|
|
|
|
|
| |
Define a new shell module method named start() that tells the module when to
start loading data and running background tasks. Only really applies to the
mail module right now since the others use evolution-data-server. Basically
it prevents the mail module from loading and refreshing mail stores until
you actually switch to the mail view.
svn path=/branches/kill-bonobo/; revision=37309
|
|
|
|
|
|
| |
Have e_shell_get_preferences_window() take an EShell argument.
svn path=/branches/kill-bonobo/; revision=37294
|
|
|
|
|
|
|
| |
Use EBindings instead of a notify callback to keep other widgets and
actions synchronized with EShell:online. Cleaner and less error prone.
svn path=/branches/kill-bonobo/; revision=37293
|
|
|
|
|
|
| |
Add some handy color conversion functions to e-util.
svn path=/branches/kill-bonobo/; revision=37290
|
|
|
|
| |
svn path=/branches/kill-bonobo/; revision=37270
|
|
|
|
|
|
| |
Search scope (current folder, current account, etc.) is still ignored.
svn path=/branches/kill-bonobo/; revision=37263
|
|
|
|
| |
svn path=/branches/kill-bonobo/; revision=37257
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Kill the e-util-labels API and read label information into a
single-column GtkListStore. Use GConfBridge to automatically
keep GConf synched with the list store.
- The list store (a singleton instance) is stored in EShellSettings
so it's available everywhere.
- The list store serves as the model for EMailLabelTreeView,
which itself is embedded in EMailLabelManager; a complete
label management UI as seen in the preferences dialog.
- EMailLabelDialog is used to add or edit a label. Avoid using a
color button, instead embed a GtkColorSelection directly in the
dialog so everything is in one window.
Open issues:
- The weird toggle/color/text menu items in the popup menu aren't
there. For now they're just regular toggle items. I'll deal
with it later.
- Filter intergration is broken at the moment.
svn path=/branches/kill-bonobo/; revision=37233
|
|
|
|
|
|
| |
terminate after all the windows for those URIs have been closed.
svn path=/branches/kill-bonobo/; revision=37157
|
|
|
|
| |
svn path=/branches/kill-bonobo/; revision=37137
|
|
|
|
|
|
| |
Other categories to follow. Editors still need lockdown support.
svn path=/branches/kill-bonobo/; revision=37136
|
|
|
|
| |
svn path=/branches/kill-bonobo/; revision=37134
|
|
|
|
|
|
| |
Get the "mark-all-read" and "plugin-manager" plugins working.
svn path=/branches/kill-bonobo/; revision=37125
|
|
|
|
|
|
|
| |
Disable File -> Close Window when there's only one window.
Replace EMMessageBrowser with EMailBrowser.
svn path=/branches/kill-bonobo/; revision=37009
|
|
|
|
| |
svn path=/branches/kill-bonobo/; revision=36936
|
|
|
|
|
|
|
|
| |
common to both the main shell window and the message browser. Replaces
EMFolderView. Also begin to define EMailBrowser (GtkWindow subclass),
which implements EMailReader and replaces EMMessageBrowser.
svn path=/branches/kill-bonobo/; revision=36933
|
|
|
|
| |
svn path=/branches/kill-bonobo/; revision=36901
|
|
|
|
| |
svn path=/branches/kill-bonobo/; revision=36867
|
|
|
|
|
|
| |
"not categorized". Also fix a crasher.
svn path=/branches/kill-bonobo/; revision=36831
|
|
|
|
| |
svn path=/branches/kill-bonobo/; revision=36806
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Tighter integration of GalViewInstance and EShellView.
- EBinding. Stolen from ExoBinding. Lets you bind GObject properties
together to automatically keep their values in sync. This is a godsend.
Added to e-util, but might even deserve a place in libedataserver.
- EShellSettings. This is the concept I blogged about. Already
started ripping apart em-mailer-prefs.c. Others to follow. Any
place where we're monitoring GConf keys is a target.
- Incremental progress on the calender and mailer. Got EMFolderView
somewhat working, but I think I'll be killing off EMFolderBrowser.
svn path=/branches/kill-bonobo/; revision=36795
|
|
|
|
|
|
|
|
| |
dependencies in our libraries. The circular dependency between the composer
and the mail module is still causing me headaches. And it doesn't help that
the addressbook and calendar also want to link to the composer.
svn path=/branches/kill-bonobo/; revision=36782
|
|
|
|
| |
svn path=/branches/kill-bonobo/; revision=36763
|
|
|
|
| |
svn path=/branches/kill-bonobo/; revision=36690
|
|
|
|
| |
svn path=/branches/kill-bonobo/; revision=36561
|
|
|
|
|
|
| |
Some code got duplicated for calendars and tasks. Made a note to revisit.
svn path=/branches/kill-bonobo/; revision=36560
|
|
|
|
| |
svn path=/branches/kill-bonobo/; revision=36551
|
|
|
|
| |
svn path=/branches/kill-bonobo/; revision=36538
|
|
|
|
| |
svn path=/branches/kill-bonobo/; revision=36533
|
|
|
|
| |
svn path=/branches/kill-bonobo/; revision=36511
|
|
|
|
| |
svn path=/branches/kill-bonobo/; revision=36491
|
|
|
|
|
|
|
| |
Saving progress.
Experimenting with directory layout.
svn path=/branches/kill-bonobo/; revision=36446
|
|
|
|
| |
svn path=/branches/kill-bonobo/; revision=36427
|
|
|
|
|
|
| |
Kill e-shell-constants.h.
svn path=/branches/kill-bonobo/; revision=36392
|
|
|
|
|
|
|
|
|
| |
EActivity objects instead of numeric handler IDs. Create an EActivity,
configure it, and (optionally) connect to its "cancelled" and "completed"
signals. Then hand it to the shell view via e_shell_view_add_activity().
When finished with the activity, call e_activity_finish() and unref it.
svn path=/branches/kill-bonobo/; revision=36391
|
|
|
|
| |
svn path=/branches/kill-bonobo/; revision=36380
|
|
|
|
|
|
|
|
|
| |
- Kill EABMenu.
- Centralize marshallers to eliminate duplication.
svn path=/branches/kill-bonobo/; revision=36368
|
|
|
|
|
|
| |
Also, begin documenting the new shell API, and provide a Gtk-Doc framework.
svn path=/branches/kill-bonobo/; revision=36359
|
|
svn path=/branches/kill-bonobo/; revision=36337
|