Class: SelectServiceDlg

Inherits:
KDE::Dialog
  • Object
show all
Defined in:
lib/settings.rb

Overview


select from traders, system menu, arbitarary file.

Direct Known Subclasses

SelectDirectPlayerDlg, SelectWebPlayerDlg

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(parent, defaultName = nil) ⇒ SelectServiceDlg

Returns a new instance of SelectServiceDlg.



12
13
14
15
16
17
18
19
20
21
# File 'lib/settings.rb', line 12

def initialize(parent, defaultName=nil)
    super(parent)
    @message = i18n('Select Application')
    userInitialize
    self.windowTitle = @message
    @selectedName = @services[0].name
    createWidget
    connect(self, SIGNAL(:accepted), self, SLOT(:selected))
    setSelected(defaultName)
end

Class Method Details

.exeName2IconName(exeName) ⇒ Object



66
67
68
69
# File 'lib/settings.rb', line 66

def self.exeName2IconName(exeName)
    iconName = exeName.gsub(%r{[^ ]*/}, '')[/([-_\w\d])+/] .
        gsub(/(dragon)/, '\1player').gsub(/kfmclient/, 'konqueror')
end

Instance Method Details

#commandFromName(name) ⇒ Object



41
42
43
44
# File 'lib/settings.rb', line 41

def commandFromName(name)
    i = serviceFromName(name)
    i && i.exec
end

#iconNameObject



32
33
34
# File 'lib/settings.rb', line 32

def iconName
    SelectServiceDlg.exeName2IconName(serviceFromName(name).exec)
end

#nameObject



28
29
30
# File 'lib/settings.rb', line 28

def name
    @selectedName
end

#selectedObject



37
38
39
# File 'lib/settings.rb', line 37

def selected
    @selectedName = @serviceList.selectedItems.first.text
end

#serviceFromName(name) ⇒ Object



46
47
48
49
50
# File 'lib/settings.rb', line 46

def serviceFromName(name)
    name.gsub!(/&/, '')
    return nil if @services.size == 0
    service = @services.find(@services[0]) do |s| s.name == name end
end

#setSelected(name) ⇒ Object



52
53
54
55
56
57
58
59
60
61
62
63
64
# File 'lib/settings.rb', line 52

def setSelected(name)
    return unless name
    name.gsub!(/&/, '')
    return if @services.size == 0
    unless name then
        @serviceList.takeItem(0).setSelected(true)
    else
        items = @serviceList.findItems(name, Qt::MatchExactly)
        if items.size > 0 then
            items[0].setSelected(true)
        end
    end
end

#userInitializeObject



23
24
25
26
# File 'lib/settings.rb', line 23

def userInitialize
    @message = i18n('Select Application for .html file.')
    @services = Mime.services('.html')
end