Class: Eiwaji::SettingsDialog

Inherits:
Qt::Dialog
  • Object
show all
Defined in:
lib/settings_dialog.rb

Instance Method Summary collapse

Constructor Details

#initialize(parent) ⇒ SettingsDialog

Returns a new instance of SettingsDialog.



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/settings_dialog.rb', line 9

def initialize(parent)
  super(parent)

  @ui = Ui_SettingsDialog.new
  @ui.setupUi(self)

  @parent = parent

  @settings ||= Qt::Settings.new(Eiwaji::Constants::CONFIG_PATH, Qt::Settings::IniFormat)

  okButton = @ui.buttonBox.button(Qt::DialogButtonBox::Ok)
  closeButton = @ui.buttonBox.button(Qt::DialogButtonBox::Cancel)
  connect(okButton, SIGNAL('clicked()'), self, SLOT('saveAndClose()'))
  connect(closeButton, SIGNAL('clicked()'), self, SLOT('close()'))
  connect(@ui.rebuildIndexButton, SIGNAL('clicked()'), self, SLOT('rebuildIndex()'))

  loadSettings()
end

Instance Method Details

#languages_hashObject



28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/settings_dialog.rb', line 28

def languages_hash
  @languages_hash ||= {
                       JDict::JMDictConstants::Languages::ENGLISH   => "English",
                       JDict::JMDictConstants::Languages::DUTCH     => "Dutch",
                       JDict::JMDictConstants::Languages::FRENCH    => "French",
                       JDict::JMDictConstants::Languages::GERMAN    => "German",
                       JDict::JMDictConstants::Languages::RUSSIAN   => "Russian",
                       JDict::JMDictConstants::Languages::SPANISH   => "Spanish",
                       JDict::JMDictConstants::Languages::SLOVENIAN => "Slovenian",
                       JDict::JMDictConstants::Languages::SWEDISH   => "Swedish",
                       JDict::JMDictConstants::Languages::HUNGARIAN => "Hungarian" }
end

#loadSettingsObject



41
42
43
44
45
46
47
48
49
50
51
52
# File 'lib/settings_dialog.rb', line 41

def loadSettings
  config = JDict.configuration
  languages = JDict::JMDictConstants::Languages.constants.map {|l| languages_hash[JDict::JMDictConstants::Languages.const_get(l)]}.compact
  languages.each {|l| @ui.dictLanguageBox.addItem(l) }
  index = @ui.dictLanguageBox.findText(languages_hash[JDict.configuration.language])
  if index == -1
    index = @ui.dictLanguageBox.findText("English")
  end
  @ui.dictLanguageBox.currentIndex = index

  @ui.maxResultsBox.value = JDict.configuration.num_results
end

#rebuildIndexObject



60
61
62
63
64
65
66
67
68
69
70
71
# File 'lib/settings_dialog.rb', line 60

def rebuildIndex()
  if File.exists? Eiwaji::Constants::INDEX_FILE
    File.unlink(Eiwaji::Constants::INDEX_FILE)
  end
  Qt::MessageBox.information(self, tr("Rebuilding Index"),
                             tr("Please wait while the index is rebuilt."))

  @parent.rebuild_dictionary

  Qt::MessageBox.information(self, tr("Index Built"),
                             tr("Finished building the index."))
end

#saveAndCloseObject



73
74
75
76
# File 'lib/settings_dialog.rb', line 73

def saveAndClose
  saveSettings()
  close()
end

#saveSettingsObject



54
55
56
57
58
# File 'lib/settings_dialog.rb', line 54

def saveSettings
  @settings.setValue("num_results", Qt::Variant.new(@ui.maxResultsBox.value))
  @settings.setValue("language", Qt::Variant.new(@languages_hash.key(@ui.dictLanguageBox.currentText).to_s))
  @settings.sync
end