diff --git a/lib/mainwindow.rb b/lib/mainwindow.rb index 07d039c..ee72f35 100644 --- a/lib/mainwindow.rb +++ b/lib/mainwindow.rb @@ -24,6 +24,7 @@ require 'theme_prefs' require 'view' require 'multiview' +require 'status_bar' require 'kaya_ui' @@ -209,7 +210,9 @@ def startup(game) console_dock.window_flags = console_dock.window_flags & ~Qt::WindowStaysOnTopHint console_dock.show action_collection[:toggle_console] = console_dock.toggle_view_action - + + self.status_bar = StatusBar.new(self) + self.central_widget = @view end diff --git a/lib/plugins/ics/ics.rb b/lib/plugins/ics/ics.rb index 9455529..ae9e2b1 100644 --- a/lib/plugins/ics/ics.rb +++ b/lib/plugins/ics/ics.rb @@ -8,11 +8,12 @@ require 'toolkit' require 'plugins/plugin' require 'action_provider' -require_bundle 'ics', 'protocol' +require_bundle 'ics', 'config' require_bundle 'ics', 'connection' require_bundle 'ics', 'match_handler' require_bundle 'ics', 'preferences' -require_bundle 'ics', 'config' +require_bundle 'ics', 'protocol' +require_bundle 'ics', 'status_observer' class ICSPlugin include Plugin @@ -85,15 +86,21 @@ def initialize dialog.show end end - + def connect_to_ics(parent) - protocol = ICS::Protocol.new(:debug) + protocol = ICS::Protocol.new(false) @connection = ICS::Connection.new('freechess.org', 23) + config = ICS::Config.load protocol.add_observer ICS::AuthModule.new(@connection, config[:username], config[:password]) protocol.add_observer ICS::StartupModule.new(@connection) - protocol.link_to @connection + protocol.link_to(@connection) + + status_observer = StatusObserver.new( + lambda {|msg| parent.status_bar.show_message(msg, 2000) }, + lambda {|msg| parent.status_bar.show_permanent_message(msg) }) + status_observer.link_to(@connection, protocol) protocol.on :text do |text| parent.console.append(text) diff --git a/lib/plugins/ics/lib/connection.rb b/lib/plugins/ics/lib/connection.rb index e585e45..5bee78b 100644 --- a/lib/plugins/ics/lib/connection.rb +++ b/lib/plugins/ics/lib/connection.rb @@ -19,7 +19,7 @@ def initialize(host, port) super nil @create_socket = lambda do - puts "connecting to #{host}:#{port}" + fire :connecting s = Qt::TcpSocket.new(self) s.on(:host_found) { fire :host_found } s.on(:connected) { fire :established } @@ -59,6 +59,7 @@ def start def stop @socket.close + fire :closed end def send_text(text) diff --git a/lib/plugins/ics/lib/status_observer.rb b/lib/plugins/ics/lib/status_observer.rb new file mode 100644 index 0000000..b438fa3 --- /dev/null +++ b/lib/plugins/ics/lib/status_observer.rb @@ -0,0 +1,42 @@ +# Copyright (c) 2009 Paolo Capriotti