qasim/qt-mapper/qtsshfsmapper.rb

41 lines
952 B
Ruby
Executable file

#!/usr/bin/ruby
require 'Qt4'
app = Qt::Application.new(ARGV)
si = Qt::SystemTrayIcon.new
std_icon = Qt::Icon.new('qtsshfsmapper.32.png')
alt_icon = Qt::Icon.new
blinking = false
si.icon = std_icon
si.show
Qt::Timer.new(app) do |timer|
timer.connect(SIGNAL('timeout()')) do
si.icon = (si.icon.isNull ? std_icon : alt_icon) if blinking
end
timer.start(500)
end
menu = Qt::Menu.new
quit = Qt::Action.new('&Quit', menu)
quit.connect(SIGNAL(:triggered)) { app.quit }
menu.addAction(quit)
si.contextMenu = menu
si.connect(SIGNAL('activated(QSystemTrayIcon::ActivationReason)')) do |reason|
case reason
when Qt::SystemTrayIcon::Trigger
blinking = !blinking
si.icon = blinking ? alt_icon : std_icon
when Qt::SystemTrayIcon::MiddleClick: puts 'Middle Click'
when Qt::SystemTrayIcon::Context: puts 'Right Click'
when Qt::SystemTrayIcon::DoubleClick: puts 'Double Click'
end
end
app.exec