41
41
private Gwibber.Service service;
42
42
private Gwibber.Accounts accounts;
43
43
private Gwibber.Utils utils;
44
private Dee.Model? _model;
45
private Dee.Model? _streams_model;
44
private Dee.Model? _model = null;
45
private Dee.Model? _streams_model = null;
46
46
private Dee.Filter _sort_filter;
47
47
/* Keep track of the previous search, so we can determine when to
48
48
* filter down the result set instead of rebuilding it */
52
52
private Dee.Analyzer _analyzer;
53
53
private Dee.Index _index;
54
54
private Dee.ICUTermFilter _ascii_filter;
55
private Ag.Manager _account_manager;
56
private bool _has_accounts = false;
58
streams_service = new Gwibber.Streams();
59
service = new Gwibber.Service();
60
utils = new Gwibber.Utils();
61
accounts = new Gwibber.Accounts();
60
lens = new Unity.Lens("/com/canonical/unity/lens/gwibber", "gwibber");
61
lens.search_in_global = false;
62
lens.search_hint = _("Enter name or content you would like to search for");
67
} catch (GLib.IOError e)
69
warning ("failed to export lens: %s", e.message);
74
_account_manager = new Ag.Manager.for_service_type("microblogging");
75
GLib.List<Ag.AccountService> accts = _account_manager.get_enabled_account_services();
76
foreach (Ag.AccountService account_service in accts) {
77
Ag.Account account = account_service.get_account();
78
account.set_enabled (false);
79
message ("ACCOUNT PROVIDER: %s", account.get_provider_name());
82
// We only want to trigger starting gwibber-service if there are accounts
83
if (accts.length() > 0)
89
_account_manager.enabled_event.connect ((id) =>
91
accts = _account_manager.get_enabled_account_services();
92
if (accts.length() > 0 && !_has_accounts)
97
else if (accts.length() == 0)
100
_has_accounts = false;
63
108
scope = new Unity.Scope ("/com/canonical/unity/scope/gwibber");
64
109
scope.search_in_global = false;
65
110
scope.preview_uri.connect (preview);
67
lens = new Unity.Lens("/com/canonical/unity/lens/gwibber", "gwibber");
68
lens.search_in_global = false;
69
lens.search_hint = _("Enter name or content you would like to search for");
70
112
lens.visible = true;
71
populate_categories ();
73
114
lens.add_local_scope (scope);
75
116
/* Listen for filter changes */
116
157
scope.queue_search_changed (SearchType.DEFAULT);
122
} catch (GLib.IOError e)
124
warning ("failed to export lens: %s", e.message);
162
private void setup_gwibber ()
164
streams_service = new Gwibber.Streams();
165
service = new Gwibber.Service();
166
utils = new Gwibber.Utils();
167
accounts = new Gwibber.Accounts();
169
populate_categories ();
127
172
_streams_model = streams_service.stream_model;
128
173
Intl.setlocale(LocaleCategory.COLLATE, "C");
493
541
string retweet_str, like_str, _img_uri = null;
543
if (_streams_model == null)
495
546
var model = _streams_model;
496
547
unowned Dee.ModelIter iter, end;
497
548
iter = model.get_first_iter ();