Sha256: 9a5f7bc9532e59b4daaf81972ca9818768fb06b8b5f5822244d0b8ec21133595

Contents?: true

Size: 1.61 KB

Versions: 5

Compression:

Stored size: 1.61 KB

Contents

class Openall_time_applet::Gui::Win_overview
  attr_reader :args, :gui
  
  def initialize(args)
    @args = args
    
    @gui = Gtk::Builder.new.add("../glade/win_overview.glade")
    @gui.translate
    @gui.connect_signals{|h| method(h)}
    
    @gui["tvTimelogs"].init([_("ID"), _("Description"), _("Time"), _("Transport"), _("Needs sync"), _("Task")])
    @gui["tvTimelogs"].columns[0].visible = false
    self.reload_timelogs
    
    #Reload the treeview if something happened to a timelog.
    @reload_id = @args[:oata].ob.connect("object" => :Timelog, "signals" => ["add", "update", "delete"], &self.method(:reload_timelogs))
    
    @gui["window"].show_all
  end
  
  def reload_timelogs
    @gui["tvTimelogs"].model.clear
    @args[:oata].ob.list(:Timelog, {"orderby" => "id"}) do |timelog|
      @gui["tvTimelogs"].append([
        timelog.id,
        timelog.descr_short,
        timelog.time_as_human,
        timelog.time_transport_as_human,
        Knj::Strings.yn_str(timelog[:sync_need], _("Yes"), _("No")),
        timelog.task_name
      ])
    end
  end
  
  def on_tvTimelogs_row_activated(*args)
    row = @gui["tvTimelogs"].sel
    return nil if !row
    
    timelog = @args[:oata].ob.get(:Timelog, row[0])
    win_timelog_edit = @args[:oata].show_timelog_edit(timelog)
    win_timelog_edit.gui["window"].modal = @gui["window"]
    win_timelog_edit.gui["window"].transient_for = @gui["window"]
  end
  
  def on_window_destroy
    #Unconnect reload-event. Else it will crash on call to destroyed object. Also frees up various ressources.
    @args[:oata].ob.unconnect("object" => :Timelog, "conn_id" => @reload_id)
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
openall_time_applet-0.0.7 gui/win_overview.rb
openall_time_applet-0.0.5 gui/win_overview.rb
openall_time_applet-0.0.4 gui/win_overview.rb
openall_time_applet-0.0.3 gui/win_overview.rb
openall_time_applet-0.0.2 gui/win_overview.rb