Class: GemHelpDlg

Inherits:
KDE::MainWindow
  • Object
show all
Defined in:
lib/gemhelpdlg.rb

Constant Summary collapse

GroupName =
"GemHelpDlg"

Instance Method Summary collapse

Constructor Details

#initialize(parent = nil) ⇒ GemHelpDlg

Returns a new instance of GemHelpDlg.



8
9
10
11
12
13
14
15
# File 'lib/gemhelpdlg.rb', line 8

def initialize(parent=nil)
    super(parent)
    setCaption("gem (command line version) command help")
    createWidget
    iniHelpList
    setAutoSaveSettings(GroupName)
    readSettings
end

Instance Method Details

#closeEvent(event) ⇒ Object

virtual function slot



60
61
62
63
# File 'lib/gemhelpdlg.rb', line 60

def closeEvent(event)
    writeSettings
    super(event)
end

#createWidgetObject



17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# File 'lib/gemhelpdlg.rb', line 17

def createWidget
    closeBtn = KDE::PushButton.new(KDE::Icon.new('dialog-close'), i18n('Close'))
    @helpList = Qt::ListWidget.new
    @helpText = Qt::PlainTextEdit.new
    @helpText.readOnly = true

    connect(@helpList, SIGNAL('itemClicked(QListWidgetItem*)'),
            self, SLOT('listSelected(QListWidgetItem*)'))
    connect(closeBtn, SIGNAL(:clicked), self, SLOT(:hide))

    # layout
    @splitter = Qt::Splitter.new do |s|
        s.addWidget(@helpList)
        s.addWidget(@helpText)
    end
    @splitter.setStretchFactor(0,0)
    @splitter.setStretchFactor(1,1)
    lo = Qt::VBoxLayout.new do |l|
        l.addWidget(@splitter)
        l.addWidgets(nil, closeBtn)
    end
    w = Qt::Widget.new
    w.setLayout(lo)
    setCentralWidget(w)
end

#iniHelpListObject



43
44
45
46
47
48
49
50
# File 'lib/gemhelpdlg.rb', line 43

def iniHelpList
    list = %x{gem help command}.split(/[\r\n]+/).inject([]) do |a, line|
                line =~ /^\s{4}(\w+)/ ? a << $1 : a
    end
    list.unshift('examples')
    @helpList.clear
    @helpList.addItems(list)
end

#listSelected(item) ⇒ Object



53
54
55
56
57
# File 'lib/gemhelpdlg.rb', line 53

def listSelected(item)
    text = %x{gem help #{item.text}}
    @helpText.clear
    @helpText.appendHtml("<pre>" + text + "</pre>")
end

#readSettingsObject



65
66
67
68
# File 'lib/gemhelpdlg.rb', line 65

def readSettings
    config = $config.group(GroupName)
    @splitter.restoreState(config.readEntry('SplitterState', @splitter.saveState))
end

#writeSettingsObject



70
71
72
73
# File 'lib/gemhelpdlg.rb', line 70

def writeSettings
    config = $config.group(GroupName)
    config.writeEntry('SplitterState', @splitter.saveState)
end