Class: PreviewWin

Inherits:
Qt::Widget
  • Object
show all
Defined in:
lib/previewwin.rb

Constant Summary collapse

ModeTbl =
{ /\.rb$/ => 'Ruby',
/Rakefile$/ => 'Ruby',
/\.(h|c|cpp)$/ => 'C++',
/\.json$/ => 'JSON',
/\.html?$/ => 'HTML',
/\.xml$/ => 'XML',
/\.(yml|yaml)$/ => 'YAML',
/\.java$/ => 'Java',
/\.js$/ => 'JavaScript',
/\.css$/ => 'CSS',
/\.py$/ => 'Python',
/\.txt$/ => 'Normal',
/^(\w+)$/i => 'Normal',
}
GroupName =
'PreviewWindow'

Instance Method Summary collapse

Constructor Details

#initialize(parent = nil) ⇒ PreviewWin

Returns a new instance of PreviewWin.



5
6
7
8
9
10
# File 'lib/previewwin.rb', line 5

def initialize(parent=nil)
    super(parent)

    createWidget
    readSettings
end

Instance Method Details

#createWidgetObject



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/previewwin.rb', line 12

def createWidget
    @titleLabel = Qt::Label.new('')
    @textEditor = KTextEditor::EditorChooser::editor
    @closeBtn = KDE::PushButton.new(KDE::Icon.new('dialog-close'), \
                                    i18n('Close')) do |w|
        connect(w, SIGNAL(:clicked), self, SLOT(:hide))
    end

    @document = @textEditor.createDocument(nil)
    @textView = @document.createView(self)

    # layout
    lo = Qt::VBoxLayout.new
    lo.addWidgets('File Name:', @titleLabel, nil)
    lo.addWidget(@textView)
    lo.addWidgets(nil, @closeBtn)
    setLayout(lo)
end

#findMode(text) ⇒ Object



45
46
47
48
49
50
51
# File 'lib/previewwin.rb', line 45

def findMode(text)
    file = File.basename(text)
    m = ModeTbl.find do |k,v|
        k =~ file
    end
    m ? m[1] : 'Ruby'
end

#readSettingsObject



71
72
73
74
# File 'lib/previewwin.rb', line 71

def readSettings
    config = $config.group(GroupName)
    restoreGeometry(config.readEntry('windowState', saveGeometry))
end

#setFile(file) ⇒ Object



63
64
65
66
67
68
# File 'lib/previewwin.rb', line 63

def setFile(file)
    @titleLabel.text = file
    @document.openUrl(KDE::Url.new(file))
    @document.setReadWrite(false)
    show
end

#setText(title, text) ⇒ Object



53
54
55
56
57
58
59
60
61
# File 'lib/previewwin.rb', line 53

def setText(title, text)
    @titleLabel.text = title
    @document.setReadWrite(true)
    @document.setText(text.gsub(/\r\n/, "\n"))
    puts " Text mode = " + findMode(title)
    @document.setMode(findMode(title))
    @document.setReadWrite(false)
    show
end

#writeSettingsObject



76
77
78
79
# File 'lib/previewwin.rb', line 76

def writeSettings
    config = $config.group(GroupName)
    config.writeEntry('windowState', saveGeometry)
end