diff --git a/qasim-gui/qasim.rb b/qasim-gui/qasim.rb index 6119ccb..a106567 100755 --- a/qasim-gui/qasim.rb +++ b/qasim-gui/qasim.rb @@ -4,79 +4,88 @@ require 'Qt4' # QaSiM // Qt Sshfs Mapper -VERSION="0.1" - def _ str Qt::Object.tr(str) end -def build_app +module Qasim - app = Qt::Application.new(ARGV) - si = Qt::SystemTrayIcon.new + VERSION="0.1" - std_icon = Qt::Icon.new('qasim.svg') - alt_icon = Qt::Icon.new - blinking = false + def build_app - si.icon = std_icon - si.show - si.setToolTip("Qasim v%s" % VERSION); + app = Qt::Application.new(ARGV) + si = Qt::SystemTrayIcon.new - Qt::Timer.new(app) do |timer| - timer.connect(SIGNAL('timeout()')) do - si.icon = (si.icon.isNull ? std_icon : alt_icon) if blinking + std_icon = Qt::Icon.new('qasim.svg') + alt_icon = Qt::Icon.new + blinking = false + + si.icon = std_icon + si.show + + si.showMessage("Qasim", + "funky funky notification", 2, 5000) + + si.setToolTip("Qasim %s" % VERSION); + + 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 - timer.start(500) + + menu = Qt::Menu.new + + ['Diades', 'Daneel', 'Dolos'].each do |name| + itemx = Qt::Action.new(name, menu) + itemx.setCheckable true; + itemx.connect(SIGNAL(:triggered)) do + puts "%s => %s" % [name, itemx.checked ] + end + menu.addAction itemx; + end + + menu.addSeparator + + act_pref = Qt::Action.new _('&Preferences'), menu + act_pref.setIcon( Qt::Icon::fromTheme("configure") ) + act_pref.setIconVisibleInMenu true + menu.addAction act_pref; + + act_about = Qt::Action.new '&About', menu + act_about.setIcon( Qt::Icon::fromTheme("help-about") ) + act_about.setIconVisibleInMenu true + menu.addAction act_about; + + menu.addSeparator + + act_quit = Qt::Action.new _('Quit'), menu + act_quit.setIcon( Qt::Icon::fromTheme("application-exit") ) + act_quit.setIconVisibleInMenu true + act_quit.connect(SIGNAL(:triggered)) { app.quit } + menu.addAction act_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 end - menu = Qt::Menu.new - - ['Diades', 'Daneel', 'Dolos'].each do |name| - itemx = Qt::Action.new(name, menu) - itemx.setCheckable true; - itemx.connect(SIGNAL(:triggered)) do - puts "%s => %s" % [name, itemx.checked ] - end - menu.addAction itemx; - end - - menu.addSeparator - - act_pref = Qt::Action.new _('&Preferences'), menu - act_pref.setIcon( Qt::Icon::fromTheme("configure") ) - act_pref.setIconVisibleInMenu true - menu.addAction act_pref; - - act_about = Qt::Action.new '&About', menu - act_about.setIcon( Qt::Icon::fromTheme("help-about") ) - act_about.setIconVisibleInMenu true - menu.addAction act_about; - - menu.addSeparator - - act_quit = Qt::Action.new _('Quit'), menu - act_quit.setIcon( Qt::Icon::fromTheme("application-exit") ) - act_quit.setIconVisibleInMenu true - act_quit.connect(SIGNAL(:triggered)) { app.quit } - menu.addAction act_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 end -build_app +include Qasim +Qasim::build_app