Commit Graph

346 Commits

Author SHA1 Message Date
abc0e4c694 Introduce ESelectable and EFocusTracker.
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.
2009-12-25 15:42:17 -05:00
4cbbdedf52 Refactor the EShell search API.
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.
2009-12-18 22:38:00 -05:00
fe15c797a0 Bug #603184 - Various problems with search box in folders 2009-12-17 18:17:21 +01:00
5ba8caffba Introduce EMailSidebar into libevolution-mail.
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.
2009-12-14 20:11:38 -05:00
054c088169 Bug 589153 - Use GtkBuilder instead of libglade 2009-11-16 19:33:32 -05:00
c75bacce45 Fix few compiler warnings 2009-11-03 13:06:38 +01:00
1cd5fb6de3 Don't update the message list when right-clicking on a folder.
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.
2009-10-28 09:47:57 -04:00
fa9051e040 Finish killing Bonobo. 2009-09-08 14:53:45 -04:00
c95a226217 EShell cleanup + rework my previous crasher fix. 2009-09-04 16:15:04 -04:00
369831e140 Fix crash when second main window is closed. 2009-09-04 12:57:40 -04:00
643db16894 Get the "save-calendar" plugin working.
Based on initial work by Milan Crha.
2009-09-03 13:27:31 -04:00
40a6ccc269 Fix some mistakes in the EShell documentation. 2009-09-02 22:18:41 -04:00
53268d5516 Introduce an EShellView::execute-search signal.
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.
2009-09-02 15:26:49 -04:00
ce37d56d0b Get the "mail-to-task" plugin working again.
This one was more challenging.  It exposed some flaws in the new shell
design and in EPluginUI, which is good because they're fixed now.
2009-06-26 11:05:58 -04:00
be8ee53934 Use key files for tracking widget states.
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().
2009-06-13 10:49:05 -04:00
cc3a98fc1a Merge branch 'master' into kill-bonobo
Conflicts:
	a11y/widgets/ea-combo-button.c
	a11y/widgets/ea-combo-button.h
	addressbook/gui/component/addressbook-component.c
	addressbook/gui/component/addressbook-component.h
	addressbook/gui/component/addressbook-view.c
	addressbook/gui/component/addressbook-view.h
	addressbook/gui/component/component-factory.c
	addressbook/gui/widgets/e-addressbook-view.c
	addressbook/gui/widgets/eab-contact-display.c
	addressbook/gui/widgets/eab-gui-util.h
	addressbook/gui/widgets/eab-menu.c
	addressbook/gui/widgets/eab-menu.h
	addressbook/gui/widgets/eab-popup-control.c
	addressbook/gui/widgets/eab-popup-control.h
	addressbook/gui/widgets/eab-popup.c
	addressbook/gui/widgets/eab-popup.h
	calendar/gui/cal-search-bar.c
	calendar/gui/calendar-commands.c
	calendar/gui/calendar-component.c
	calendar/gui/comp-editor-factory.c
	calendar/gui/comp-editor-factory.h
	calendar/gui/control-factory.c
	calendar/gui/dialogs/comp-editor.c
	calendar/gui/e-cal-component-memo-preview.c
	calendar/gui/e-cal-component-memo-preview.h
	calendar/gui/e-calendar-table.c
	calendar/gui/e-memo-table.c
	calendar/gui/e-memos.c
	calendar/gui/e-tasks.c
	calendar/gui/gnome-cal.c
	calendar/gui/gnome-cal.h
	calendar/gui/itip-bonobo-control.c
	calendar/gui/itip-bonobo-control.h
	calendar/gui/main.c
	calendar/gui/memos-component.c
	calendar/gui/memos-control.c
	calendar/gui/memos-control.h
	calendar/gui/migration.c
	calendar/gui/migration.h
	calendar/gui/tasks-component.c
	calendar/gui/tasks-control.c
	calendar/importers/main.c
	composer/Makefile.am
	composer/e-composer-header-table.c
	composer/e-composer-header.c
	composer/e-composer-header.h
	composer/e-composer-name-header.c
	composer/e-composer-private.c
	composer/e-composer-text-header.c
	composer/e-msg-composer.c
	composer/e-msg-composer.h
	e-util/e-corba-utils.h
	e-util/e-logger.c
	e-util/e-logger.h
	e-util/e-util-labels.c
	e-util/e-util-labels.h
	em-format/em-format.c
	mail/Makefile.am
	mail/e-mail-shell-migrate.c
	mail/em-account-editor.c
	mail/em-account-editor.h
	mail/em-composer-prefs.c
	mail/em-composer-utils.c
	mail/em-composer-utils.h
	mail/em-folder-browser.c
	mail/em-folder-tree-model.c
	mail/em-folder-tree.c
	mail/em-folder-tree.h
	mail/em-folder-utils.c
	mail/em-folder-utils.h
	mail/em-folder-view.c
	mail/em-format-html-display.c
	mail/em-format-html.c
	mail/em-mailer-prefs.c
	mail/em-mailer-prefs.h
	mail/em-message-browser.c
	mail/em-message-browser.h
	mail/em-network-prefs.h
	mail/em-popup.c
	mail/em-utils.c
	mail/importers/Makefile.am
	mail/mail-component-factory.c
	mail/mail-component.c
	mail/mail-config-factory.c
	mail/mail-config-factory.h
	mail/mail-config.c
	mail/mail-dialogs.glade
	mail/mail-types.h
	plugins/calendar-weather/calendar-weather.c
	plugins/mail-account-disable/mail-account-disable.c
	plugins/select-one-source/select-one-source.c
	po/POTFILES.in
	shell/e-component-registry.c
	shell/e-component-registry.h
	shell/e-component-view.c
	shell/e-component-view.h
	shell/e-corba-config-page.c
	shell/e-corba-config-page.h
	shell/e-shell-constants.h
	shell/e-shell-settings-dialog.c
	shell/e-shell-settings-dialog.h
	shell/e-shell-window-commands.c
	shell/e-shell-window.c
	shell/e-shell.h
	shell/e-sidebar.c
	shell/e-sidebar.h
	shell/e-user-creatable-items-handler.c
	shell/e-user-creatable-items-handler.h
	shell/es-menu.c
	shell/es-menu.h
	shell/evolution-component.h
	shell/evolution-config-control.c
	shell/evolution-config-control.h
	shell/evolution-listener.c
	shell/evolution-listener.h
	shell/evolution-shell-component-utils.c
	shell/evolution-shell-component-utils.h
	shell/importer/evolution-importer-client.c
	shell/importer/evolution-importer-client.h
	shell/importer/evolution-importer-listener.c
	shell/importer/evolution-importer-listener.h
	shell/importer/evolution-importer.c
	shell/importer/evolution-importer.h
	shell/importer/evolution-intelligent-importer.c
	shell/importer/evolution-intelligent-importer.h
	shell/importer/intelligent.c
	shell/main.c
	shell/test/evolution-test-component.c
	shell/test/evolution-test-component.h
	widgets/menus/gal-view-instance.c
	widgets/menus/gal-view-menus.c
	widgets/menus/gal-view-menus.h
	widgets/misc/Makefile.am
	widgets/misc/e-activity-handler.c
	widgets/misc/e-activity-handler.h
	widgets/misc/e-charset-picker.c
	widgets/misc/e-combo-button.c
	widgets/misc/e-combo-button.h
	widgets/misc/e-config-page.h
	widgets/misc/e-dropdown-button.c
	widgets/misc/e-dropdown-button.h
	widgets/misc/e-filter-bar.c
	widgets/misc/e-info-label.c
	widgets/misc/e-info-label.h
	widgets/misc/e-multi-config-dialog.c
	widgets/misc/e-multi-config-dialog.h
	widgets/misc/e-search-bar.c
	widgets/misc/e-search-bar.h
	widgets/misc/e-task-bar.c
	widgets/misc/e-task-bar.h
	widgets/misc/e-task-widget.c
	widgets/misc/e-task-widget.h
	widgets/misc/test-dropdown-button.c
	widgets/misc/test-error.c
	widgets/misc/test-info-label.c
	widgets/table/e-table-example-1.c
2009-05-27 08:37:17 -04:00
e4afd3f9fb Remove trailing whitespace, again. 2009-05-26 23:21:02 -04:00
92e942499b Fix bugs caused by EShellBackend changes. 2009-05-09 23:50:43 -04:00
caa8621351 Convert EShellModule to EShellBackend
Split the GTypeModule loader out of EShellModule as EModule, and rename
EShellModule to EShellBackend.  Backends (formerly modules) should now
subclass EShellBackend.

This commit converts EShell but breaks all the shell backends.
2009-05-07 07:21:57 -04:00
bd9f473a89 Redesign EPluginUI to accommodate merging and unmerging shell views.
Get the "mark-all-read" and "plugin-manager" plugins working.

svn path=/branches/kill-bonobo/; revision=37125
2009-01-23 21:41:01 +00:00
2b9c72826a Fix a weird UI merging bug.
svn path=/branches/kill-bonobo/; revision=37020
2009-01-09 05:13:07 +00:00
8e2b445e9d Define a new interface called EMailReader, which implements operations
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
2008-12-27 15:14:29 +00:00
b06cdfab92 Progress update:
- 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
2008-11-19 01:39:19 +00:00
d6b8b58bb4 Get the calendar's memopad and taskpad working.
What's interesting here is we're actually sharing the ECalModel across views.
Instead of having the Calendar view listen to GConf for changes to the Task
and Memo models, the Calendar view fetches the models directly from the Task
and Memo views -- starting the views if it has to, although the shell really
takes care of that -- and loads the models into its own taskpad and memopad.

We couldn't do that sort of thing before with Bonobo in the way.
Big chunks of redundant code should begin falling out shortly.

svn path=/branches/kill-bonobo/; revision=36696
2008-10-29 20:11:07 +00:00
54b80a7271 Get the mail folder tree compiling, though I'm not yet sure why it's not
showing anything.  Probably something stupid.  Also enabled the composer.

svn path=/branches/kill-bonobo/; revision=36623
2008-10-17 03:48:03 +00:00
791c982c45 Update the headers on files I've created or completely rewritten to match
Sankar's LGPLv3 template.

svn path=/branches/kill-bonobo/; revision=36535
2008-10-01 21:51:10 +00:00
b2cda1d0c6 Merge revisions 36016:36533 from trunk.
svn path=/branches/kill-bonobo/; revision=36534
2008-10-01 20:56:04 +00:00
e52986f422 Add more EShell API documentation.
svn path=/branches/kill-bonobo/; revision=36533
2008-10-01 18:58:37 +00:00
c6795be3a8 Continue documenting the new shell API.
svn path=/branches/kill-bonobo/; revision=36511
2008-10-01 03:48:51 +00:00
098ea8aad8 Get Memos to come up. Doesn't really work yet, but the widgets are all there.
svn path=/branches/kill-bonobo/; revision=36491
2008-09-29 16:14:46 +00:00
9515b98403 Saving progress. Experimenting with directory layout.
Saving progress.
Experimenting with directory layout.

svn path=/branches/kill-bonobo/; revision=36446
2008-09-24 22:53:30 +00:00
044925165f License changes from GPL to LGPL
svn path=/trunk/; revision=36440
2008-09-24 09:12:38 +00:00
3e3c13b439 Replace EActivityHandler with a new activity-tracking system that uses
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
2008-09-19 16:52:08 +00:00
bb7cb1d677 Massive address book refactoring. Things are mostly working again.
Also, begin documenting the new shell API, and provide a Gtk-Doc framework.

svn path=/branches/kill-bonobo/; revision=36359
2008-09-17 15:07:13 +00:00
7ee6ef65f1 Allow EShellContent, EShellSidebar, and EShellTaskbar to be subclassed,
and begin doing so for Calendars, Memos and Tasks.  Makes the code cleaner.

svn path=/branches/kill-bonobo/; revision=36317
2008-09-13 04:02:09 +00:00
c701a5e026 Add stubs for calendar, task, and memo shell views.
svn path=/branches/kill-bonobo/; revision=36296
2008-09-10 18:36:36 +00:00
2e83206b30 Fix some bootstrapping issues.
svn path=/branches/kill-bonobo/; revision=36291
2008-09-09 17:29:09 +00:00
935897c9a2 Fix some bugs in the way the shell widgets get initialized.
svn path=/branches/kill-bonobo/; revision=36279
2008-09-09 02:53:40 +00:00
5350eebb5e Progress update:
- Merge ETaskBar into EShellTaskbar.
	- Remember the last view, and make --component work.


svn path=/branches/kill-bonobo/; revision=36278
2008-09-08 20:37:00 +00:00
52d683e48c Progress update:
- Contacts module mostly working now.
	- View and search UI not yet working.
	- Still refining shell design.


svn path=/branches/kill-bonobo/; revision=36268
2008-09-07 04:02:27 +00:00
eca687589d Saving progress. Lots of changes. Things are a bit broken at the moment.
svn path=/branches/kill-bonobo/; revision=36260
2008-09-05 15:47:38 +00:00
0ad2c0cf65 Figured out why the switcher buttons have no relief.
GTK+ bug: http://bugzilla.gnome.org/show_bug.cgi?id=549943

svn path=/branches/kill-bonobo/; revision=36221
2008-08-30 14:38:37 +00:00
3843185df1 Preferences window awesomeness.
svn path=/branches/kill-bonobo/; revision=36215
2008-08-30 04:42:02 +00:00
e0c501b701 Progress update:
- Contacts module partially working!

	- Implement UI merging.  Also merge EInfoLabel into ESidebar.
	  The shell window now manages the icon and labels and keeps
	  them up-to-date via EShellView properties.


svn path=/branches/kill-bonobo/; revision=36214
2008-08-29 22:32:46 +00:00
244ab98402 Progress update:
- Get the test module to demonstrate populating the shell window
    (particularly, the various notebooks) with some stupid widgets.


svn path=/branches/kill-bonobo/; revision=36094
2008-08-27 01:54:22 +00:00
cf3b010171 Progress update:
- Further refinements of the shell API.
  - Kill ESMenu and EUserCreatableItemsHandler.
  - Start ripping apart the addressbook component.


svn path=/branches/kill-bonobo/; revision=36093
2008-08-26 20:22:32 +00:00
035744f29b Committing the day's progress.
Realized the "New" menu construction algorithm needs to live independently of
shell view instances since we lazy load the shell views but have to display
all possible "New" items immediately.

Prototype the mechanisms for managing the various shell views and keeping
track of which one is current.

Various other tightening up and rethinking of APIs.

svn path=/branches/kill-bonobo/; revision=36022
2008-08-19 02:55:45 +00:00
28b28bf057 Write the algorithm for sorting items in the "New" menu. Not yet tested.
svn path=/branches/kill-bonobo/; revision=36004
2008-08-17 01:36:11 +00:00
434bc25ed6 ** Fixes bug #546892
2008-08-11  Matthew Barnes  <mbarnes@redhat.com>

	** Fixes bug #546892

	* e-util/e-icon-factory.c (e_icon_factory_get_image):
	Kill this function.  Use gtk_image_new_from_icon_name().

	* e-util/e-icon-factory.c (e_icon_factory_get_icon_list):
	Kill this function.  Use gtk_window_set_icon_name().

	* widgets/misc/e-activity-handler.c:
	* widgets/misc/e-task-widget.c:
	Purge the GdkPixbuf arguments from the API.  We've been ignoring
	them since the spinner icon was added.

	* addressbook/gui/contact-editor/e-contact-editor-fullname.c:
	* addressbook/gui/contact-editor/e-contact-editor-im.c:
	* addressbook/gui/contact-editor/e-contact-editor-address.c:
	* calendar/gui/alarm-notify/alarm-notify-dialog.c:
	* calendar/gui/dialogs/alarm-dialog.c:
	* calendar/gui/dialogs/alarm-list-dialog.c:
	* calendar/gui/dialogs/cal-attachment-select-file.c:
	* calendar/gui/dialogs/changed-comp.c:
	* calendar/gui/dialogs/delete-error.c:
	* calendar/gui/dialogs/select-source-dialog.c:
	* mail/mail-send-recv.c:
	* mail/message-tag-followup.c:
	* widgets/misc/e-combo-button.c:
	* widgets/misc/e-info-label.c:
	* widgets/misc/e-url-entry.c:
	* widgets/misc/e-task-widget.c:
	Prefer gtk_window_set_icon_name() over gtk_window_set_icon_list().

	* addressbook/gui/contact-editor/e-contact-editor-im.c:
	* calendar/gui/dialogs/event-page.c:
	* calendar/gui/e-timezone-entry.c:
        * e-util/e-gui-utils.c:
        * e-util/e-popup.c:
	* plugins/import-ics-attachments/icsimporter.c:
	* plugins/itip-formatter/itip-view.c:
	* mail/em-folder-browser.c:
	* mail/em-format-html-display.c:
	* mail/mail-send-recv.c:
	* mail/message-tag-followup.c:
	Prefer gtk_image_new_from_icon_name() over e_icon_factory_get_image().

	* calendar/gui/alarm-notify/alarm-queue.c:
	* plugins/mail-notification/mail-notification.c:
	Prefer gtk_status_icon_set_from_icon_name() over
	gtk_status_icon_set_from_pixbuf().

	* addressbook/gui/component/addressbook-view.c:
	* calendar/gui/e-calendar-table.c:
	* calendar/gui/e-calendar-view.c:
	* calendar/gui/e-memo-table.c:
	* mail/mail-mt.c:
	e_activity_handler_operation_started() no longer takes a GdkPixbuf.
	It was ignoring the pixbuf anyway ever since we added a spinner icon.


svn path=/trunk/; revision=35958
2008-08-11 17:04:32 +00:00
c714d8efd1 ** Fixes bug #467115
2008-08-07  Matthew Barnes  <mbarnes@redhat.com>

	** Fixes bug #467115

	* shell/e-component-registry.h:
	Replace button and menu icon pixbufs with an icon name string.

	* shell/e-component-registry.c (query_components):
	No need to create pixbufs, just save the icon name.

	* shell/e-sidebar.c:
	Remember a default icon name rather than a default pixbuf.

	* shell/e-sidebar.c (e_sidebar_add_button),
        (e_sidebar_change_button_icon):
	* shell/e-shell-window.c (e_shell_window_change_component_button_icon):
	Take an icon name instead of a pixbuf.

	* shell/e-shell-window.c (switch_view):
	Call gtk_window_set_icon_name() instead of gtk_window_set_icon().

	* shell/e-shell-window.c (setup_widgets):
	Change XML from pixtype="pixbuf" to pixbuf="filename" and derive
	an appropriate filename from the icon name.


svn path=/trunk/; revision=35924
2008-08-07 14:29:49 +00:00