gloudapp 1.2.0 → 1.3.0

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -28,6 +28,20 @@ but rvm ist strongly recommended because some
28
28
  [linux distributions](https://bugs.launchpad.net/ubuntu/+source/gems/+bug/145267)
29
29
  do not add rubygem binaries to PATH)
30
30
 
31
+ ### Ubuntu and AppIndicator (experimental)
32
+
33
+ People using newer versions of Ubuntu don't see the StatusIcon of GloudApp anymore.
34
+ To solve this you should install the libappindicator header files:
35
+
36
+ sudo apt-get install libappindicator-dev
37
+
38
+ And then the [ruby-libappindicator bindings as a gem](https://github.com/leander256/ruby_libappindicator):
39
+
40
+ gem install ruby-libappindicator
41
+
42
+ Note: be beware that this is an experimental feature and that the bindings are stated
43
+ as 'beta' by their author.
44
+
31
45
  Usage
32
46
  -----
33
47
 
data/gloudapp.gemspec CHANGED
@@ -10,7 +10,6 @@ Gem::Specification.new do |s|
10
10
  s.email = GloudApp::Info::AUTHORS.map { |author| author[1] }
11
11
  s.homepage = GloudApp::Info::HOMEPAGE
12
12
  s.summary = GloudApp::Info::SUMMARY
13
- #s.description = %q{CloudApp client for GNOME/GTK}
14
13
 
15
14
  s.rubyforge_project = "gloudapp"
16
15
 
@@ -19,8 +18,6 @@ Gem::Specification.new do |s|
19
18
  s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
20
19
  s.require_paths = ["lib"]
21
20
 
22
- # specify any dependencies here; for example:
23
- # s.add_development_dependency "rspec"
24
21
  s.add_runtime_dependency "cloudapp_api"
25
22
  s.add_runtime_dependency "gtk2"
26
23
  s.add_runtime_dependency "json"
data/lib/gloudapp/info.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  module GloudApp
2
2
  module Info
3
- VERSION = "1.2.0"
3
+ VERSION = "1.3.0"
4
4
  AUTHORS = [
5
5
  ["Christian Nicolai", "chrnicolai@gmail.com"],
6
6
  ["Jan Graichen", "jan.graichen@altimos.de"]
data/lib/gloudapp.rb CHANGED
@@ -185,14 +185,14 @@ module GloudApp
185
185
  # timeout to close file chooser before blocking gtk thread
186
186
  Gtk.timeout_add 50 do
187
187
  if upload_file(file)
188
- @tray.icon = Icon.finish
188
+ @tray.icon = Icon.finish_path
189
189
  end
190
190
  false
191
191
  end
192
192
  false
193
193
  else
194
194
  file_dlg.destroy
195
- @tray.icon = Icon.normal
195
+ @tray.icon = Icon.normal_path
196
196
  false
197
197
  end
198
198
  end
@@ -228,7 +228,7 @@ module GloudApp
228
228
  options = {:message => message} unless message.is_a?(Hash)
229
229
  options = {:title => 'GloudApp - Error'}.merge(options)
230
230
 
231
- @tray.icon = Icon.error
231
+ @tray.icon = Icon.error_path
232
232
  @tray.message = options[:message]
233
233
  ErrorDialog.run!(options[:title], options[:message])
234
234
  false
@@ -237,14 +237,14 @@ module GloudApp
237
237
 
238
238
  class Icon
239
239
  def self.icon(icon) File.join(File.dirname(__FILE__), 'gloudapp', 'icons', icon + '.png') end
240
- def self.normal_path; self.icon 'gloudapp' end
241
- def self.finish_path; self.icon 'gloudapp_finish' end
242
- def self.working_path; self.icon 'gloudapp_working' end
243
- def self.error_path; self.icon 'gloudapp_error' end
244
- def self.normal; Gdk::Pixbuf.new(normal_path) end
245
- def self.finish; Gdk::Pixbuf.new(finish_path) end
240
+ def self.normal_path; self.icon('gloudapp') end
241
+ def self.finish_path; self.icon('gloudapp_finish') end
242
+ def self.working_path; self.icon('gloudapp_working') end
243
+ def self.error_path; self.icon('gloudapp_error') end
244
+ def self.normal; Gdk::Pixbuf.new(normal_path) end
245
+ def self.finish; Gdk::Pixbuf.new(finish_path) end
246
246
  def self.working; Gdk::Pixbuf.new(working_path) end
247
- def self.error; Gdk::Pixbuf.new(error_path) end
247
+ def self.error; Gdk::Pixbuf.new(error_path) end
248
248
  end
249
249
 
250
250
  class Tray
@@ -282,15 +282,30 @@ module GloudApp
282
282
  action[:show].call(action[:item])
283
283
  end
284
284
  end
285
- self.icon = Icon.normal
285
+ self.icon = Icon.normal_path
286
286
  self.message = nil
287
287
  @menu.popup(nil, nil, button, time)
288
288
  end
289
289
  end
290
+
291
+ begin
292
+ require 'ruby-libappindicator'
293
+ puts "Initialize AppIndicator..."
294
+ # params: id, icon name, category
295
+ @ai = AppIndicator::AppIndicator.new("gloudapp", GloudApp::Icon.normal_path, AppIndicator::Category::APPLICATION_STATUS);
296
+ @ai.set_menu(@menu)
297
+ @ai.set_status(AppIndicator::Status::ACTIVE)
298
+ rescue LoadError
299
+ puts "No AppIndicator support available."
300
+ end
290
301
  end
291
302
 
292
303
  def icon=(icon)
293
- @si.pixbuf = icon.is_a?(Gdk::Pixbuf) ? icon : Gdk::Pixbuf.new(icon)
304
+ @si.pixbuf = Gdk::Pixbuf.new(icon)
305
+ if not @ai.nil?
306
+ # this relies on direct local file paths which works though it shouldn't
307
+ @ai.set_icon(icon)
308
+ end
294
309
  end
295
310
 
296
311
  def message=(message)
@@ -300,13 +315,13 @@ module GloudApp
300
315
  private
301
316
  def run_action(proc, no_icon_change = false)
302
317
  if proc.is_a?(Proc)
303
- self.icon = Icon.working unless no_icon_change
318
+ self.icon = Icon.working_path unless no_icon_change
304
319
 
305
320
  # timeout action to get at least on repaint event after
306
321
  # changing icon to working image
307
322
  Gtk.timeout_add 50 do
308
323
  if proc.call
309
- self.icon = Icon.finish unless no_icon_change
324
+ self.icon = Icon.finish_path unless no_icon_change
310
325
  end
311
326
  false
312
327
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gloudapp
3
3
  version: !ruby/object:Gem::Version
4
- hash: 31
5
- prerelease: false
4
+ hash: 27
5
+ prerelease:
6
6
  segments:
7
7
  - 1
8
- - 2
8
+ - 3
9
9
  - 0
10
- version: 1.2.0
10
+ version: 1.3.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Christian Nicolai
@@ -16,8 +16,7 @@ autorequire:
16
16
  bindir: bin
17
17
  cert_chain: []
18
18
 
19
- date: 2011-09-28 00:00:00 +02:00
20
- default_executable:
19
+ date: 2011-10-03 00:00:00 Z
21
20
  dependencies:
22
21
  - !ruby/object:Gem::Dependency
23
22
  name: cloudapp_api
@@ -86,7 +85,6 @@ files:
86
85
  - lib/gloudapp/icons/gloudapp_working.png
87
86
  - lib/gloudapp/info.rb
88
87
  - lib/gloudapp/patches.rb
89
- has_rdoc: true
90
88
  homepage: https://github.com/cmur2/gloudapp
91
89
  licenses: []
92
90
 
@@ -116,7 +114,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
116
114
  requirements: []
117
115
 
118
116
  rubyforge_project: gloudapp
119
- rubygems_version: 1.3.7
117
+ rubygems_version: 1.8.10
120
118
  signing_key:
121
119
  specification_version: 3
122
120
  summary: CloudApp (tm) applet for Gnome/GTK2