aboutsummaryrefslogtreecommitdiff
path: root/src/messages-service.c
Commit message (Collapse)AuthorAgeFilesLines
* Add desktop menuLars Uebernickel2013-08-131-0/+2
| | | | | Only shows application launchers right now.
* Add ImMenuLars Uebernickel2013-08-121-26/+19
| | | | | | A base class for all messaging menus. ImPhoneMenu already subclasses from it, with a desktop version coming up.
* Prefix action names with "indicator."Lars Uebernickel2013-07-311-1/+1
|
* Adding glib version guard to g_type_initSergio Schvezov2013-03-221-0/+2
|
* ImApplicationList: add "remove-all" signalLars Uebernickel2012-12-201-0/+2
| | | | | This is a temporary hack to work around a crash in QMenuModel.
* Don't show sources in the phone menuLars Uebernickel2012-12-101-4/+0
|
* Stop using IndicatorServiceLars Uebernickel2012-12-031-27/+20
| | | | | | | | | | | | | This doesn't require every consumer ("panel") to know about IndicatorServiceManager's protocol. Also, it ensures that objects are exported before the name is acquired, getting rid of a race condition (when a consumer tries to access objects in NameAppeared before they're exported). This patch also adds a --replace command line option -- replacing the INDICATOR_SERVICE_REPLACE_MODE environment variable.
* Add x-canonical-type to the root itemLars Uebernickel2012-11-281-0/+1
|
* messages-service.c: remove chat status actionLars Uebernickel2012-11-281-91/+0
| | | | | | It isn't used right now (the action group wasn't even exported on the bus) and would need to be refactored anyway once chat status is added back in.
* Add root menu itemLars Uebernickel2012-11-281-2/+6
| | | | | | | The action for that root item lives in ImApplicationList for now, because it owns the action group (which should probably factored into its own class at some point).
* Replace app when another process is registering with the same idLars Uebernickel2012-11-211-6/+1
|
* Remove applications from the menu when the disappear from the busLars Uebernickel2012-11-211-0/+2
|
* ImApplicationList: listen for added and removed signalsLars Uebernickel2012-11-201-0/+4
|
* messages-service: move app handling into separate classLars Uebernickel2012-11-201-160/+16
| | | | | | | Add ImApplicationList, a class that manages the list of applictions that are currently registered with the messaging menu. It creates dbus proxies for running applications and sends signals when the app adds messages or sources.
* messages-serivce: move menu creation into separate classLars Uebernickel2012-11-201-48/+33
|
* Use different menu attributes for the phone menuLars Uebernickel2012-11-161-6/+5
|
* Export menu for the phone clientLars Uebernickel2012-11-161-394/+157
| | | | | | | | This is a rough first draft: It only fetched the sources and messages from applications once and doesn't listen for further changes. This removes all code for the desktop menu for now.
* Include fallback icon namesLars Uebernickel2012-09-281-0/+4
| | | | | And use g_icon_new_from_string in the indicator to make it load fallbacks.
* messages-service: define all global variables as staticLars Uebernickel2012-09-191-3/+3
|
* Use indicator-message icons with chat statusLars Uebernickel2012-09-181-24/+76
| | | | | | | | | | Changes the state of the "messages" action from a boolean (draws-attention) to a string (icon-name). This has the added benefit that more logic is moved from the plugin into the service. It also fixes an edge case: the messaging menu didn't have the blue icon after the service restarted (if anything was drawing attention).
* Set the global chat status more intelligentlyLars Uebernickel2012-09-181-45/+80
| | | | | | | | | | | | | | | | | | | | | | | | Up until now, the global chat status was set every time an application called _set_status. Thus, global status really meant "status of the app that last changed the status". Now, the service remembers the chat status for each application and sets the global status as a combination of all of application statuses. If applications have different statuses, the menu items are shown in an inconsistent state. This is implemented in IdoMenuItem by making it accept state as an array of strings in addition to a single string. It is drawn inconsistent if the state contains the menu item's target value in addition to other values. When the global status is changed through the messaging menu, the service doesn't update the action immediately anymore. Instead, it notifies all applications about the change via the "status-changed" signal. Applications must call _set_state to acknowledge that they have indeed changed their state. This is consistent with libmessaging-menu's documentation and design. Also, the SetStatus D-Bus call was missing a "desktop-id" parameter to tell the menu which application changed status. Changing this doesn't break existing apps, as the D-Bus interface is considered private to indicator-messages.
* messages-services: don't call g_object_unref with NULLLars Uebernickel2012-09-141-1/+2
|
* messages-service: update chat section when an app is removedLars Uebernickel2012-09-061-3/+11
|
* messages-service: fix merge errorLars Uebernickel2012-09-061-7/+5
| | | | | | | Check whether no apps are left in remove_section instead of remove_application, so that it is also done when an AppSection emits "destroy". This is a result of improper merging of the watch-desktop-files and hide-indicator branches.
* Merge lp:~larsu/indicator-messages/watch-desktop-filesLars Uebernickel2012-09-061-9/+23
|\
| * messages-service.c: remove redundant g_hash_table_removeLars Uebernickel2012-09-051-1/+0
| |
| * Watch desktop files for changesLars Uebernickel2012-09-051-10/+24
| | | | | | | | | | | | | | | | This introduces a slightly clumsy "destroy" signal for AppSection to notify outsiders that the desktop file was deleted. This will do for now, but a larger refactoring which pulls all the desktop-file-reading code out of appsection is in order.
* | Hide indicator when no applications are configured to use itLars Uebernickel2012-09-041-14/+25
|/ | | | | | This is done by removing the header item from the menu model in the service. On the panel side, call indicator_object_hide() if the recevied menu is empty.
* Show icons on status menu itemsLars Uebernickel2012-08-271-5/+24
| | | | | | | This introduces IdoMenuItem, a GtkCheckMenuItem that can also show icons. This should go into libido at some point. Also, Im{App,Source}MenuItem could derive from it so that the GMenuItem-setting logic is only in one place.
* Plug memory leaks: return value of g_menu_model_get_item_link is transfer fullLars Uebernickel2012-08-251-0/+2
|
* Don't spam debug messagesLars Uebernickel2012-08-241-1/+0
|
* Update remaining license headersLars Uebernickel2012-08-211-1/+2
|
* Show icons in application and source menu itemsLars Uebernickel2012-08-211-2/+9
| | | | | | | Everthing goes through GIcon now, using g_icon_{to,new_for}_string to set a string attribute on the menu item. The attribute is prefixed x-canonical- for now.
* Insert new app items right before the "Clear" itemLars Uebernickel2012-08-201-1/+1
| | | | | | This still isn't as specified by design (should be alphabetically), but at least "Clear" is below the app items now.
* in messages-service.c, make the functions create_action_group() and ↵Charles Kerr2012-08-191-4/+4
| | | | create_status_section() static
* when removing an application in messages-service, disconnect the ↵Charles Kerr2012-08-191-0/+1
| | | | notify::uses-chat-status handler
* Set accessible description (statically to "Messages" for now)Lars Uebernickel2012-08-161-0/+1
|
* Only show chat section when necessaryLars Uebernickel2012-06-271-4/+35
| | | | | | | | The chat section is only shown when an application that is registered to use it is running. Applications are registered if their desktop file contains: X-MessagingMenu-UsesChatStatus: true
* Remove header from status sectionLars Uebernickel2012-06-271-1/+1
|
* Sync chat status from and to clientsLars Uebernickel2012-06-271-7/+43
|
* Use gdbus-codegen also for the server side messages serviceLars Uebernickel2012-06-271-10/+26
|
* Add toplevel menuLars Uebernickel2012-06-271-2/+21
| | | | | | | | The toplevel menu represents the indicator itself. It has one item with a submenu, which is the indicator's popup menu. The action that is set on the toplevel will never be activated, but its state is used to indicate "draws-attention".
* Set status action when requestedLars Uebernickel2012-06-271-0/+12
|
* Disable "Clear" initiallyLars Uebernickel2012-06-271-6/+25
|
* Make "Clear" work againLars Uebernickel2012-06-271-3/+11
|
* Add draws-attention flag to source actionsLars Uebernickel2012-06-271-13/+30
| | | | | | AppSections watch those flags for associated sources and mux them into a draws-attention property for the whole section.
* messages-service: move gmenu utility functions into gmenuutils.[ch]Lars Uebernickel2012-06-261-40/+6
| | | | | As a neat side-effect, this fixes a memory leak in app-section.c.
* messages-service.c: move gsettings strv handling into gsettingsstrv.[ch]Lars Uebernickel2012-06-261-48/+3
|
* messages-service.c: fix memory leakLars Uebernickel2012-06-251-0/+2
|
* messages-service.c: get rid of some global variablesLars Uebernickel2012-06-251-8/+8
|