class KDE::Application

Public Class Methods

init(data) { |app| ... } click to toggle source

Initialize an application.

# File lib/rui/toolkits/kde/kde.rb, line 31
def self.init(data)
  data = { :id => data } unless data.is_a?(Hash)
  about = KDE::AboutData.new(
    data[:id],
    data[:id],
    data[:name] || KDE::LocalizedString.new,
    data[:version] || '0.0',
    data[:description] || KDE::LocalizedString.new,
    KDE::AboutData::License_GPL,
    data[:copyright] || KDE::LocalizedString.new)
  (data[:authors] || []).each do |name, email|
    about.addAuthor(name, KDE::LocalizedString.new, email)
  end
  (data[:contributors] || []).each do |name, contribution|
    about.addCredit(name, contribution)
  end
  about.bug_address = Qt::ByteArray.new(data[:bug_tracker] || "")
  
  KDE::CmdLineArgs.init(ARGV, about)
  opts = KDE::CmdLineOptions.new
  (data[:options] || []).each do |args|
    case args.size
    when 2
      opts.add(args[0], args[1])
    when 3
      opts.add(args[0], args[1], args[2])
    end
  end
  KDE::CmdLineArgs.add_cmd_line_options opts
  opts

  app = KDE::Application.new
  if block_given?
    yield app
    app.exec
  end
  app
end