summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'Swift/QtUI')
-rw-r--r--Swift/QtUI/QtSpellCheckerWindow.cpp69
-rw-r--r--Swift/QtUI/QtSpellCheckerWindow.h7
-rw-r--r--Swift/QtUI/QtSpellCheckerWindow.ui16
3 files changed, 80 insertions, 12 deletions
diff --git a/Swift/QtUI/QtSpellCheckerWindow.cpp b/Swift/QtUI/QtSpellCheckerWindow.cpp
index 45aa32f..c6fcc2c 100644
--- a/Swift/QtUI/QtSpellCheckerWindow.cpp
+++ b/Swift/QtUI/QtSpellCheckerWindow.cpp
@@ -9,22 +9,83 @@
#include <Swift/Controllers/Settings/SettingsProvider.h>
#include <Swift/Controllers/SettingConstants.h>
#include <Swift/QtUI/QtUISettingConstants.h>
+#include <Swift/QtUI/QtSwiftUtil.h>
#include <QCoreApplication>
#include <QFileDialog>
+#include <QDir>
+#include <QStringList>
namespace Swift {
QtSpellCheckerWindow::QtSpellCheckerWindow(SettingsProvider* settings, QWidget* parent) : QDialog(parent) {
settings_ = settings;
ui_.setupUi(this);
- connect(ui_.spellCheckerEnabled, SIGNAL(toggled(bool)), this, SLOT(handleChecker(bool)));
- ui_.spellCheckerEnabled->setChecked(settings_->getSetting(SettingConstants::SPELL_CHECKER));
- //QString filename = QFileDialog::getOpenFileName(this, tr("Select Dictionaries"), "/home", tr("Images (*.aff, *.dic"));
+ connect(ui_.spellChecker, SIGNAL(toggled(bool)), this, SLOT(handleChecker(bool)));
+ connect(ui_.cancel, SIGNAL(clicked()), this, SLOT(handleCancel()));
+ connect(ui_.apply, SIGNAL(clicked()), this, SLOT(handleApply()));
+ connect(ui_.pathButton, SIGNAL(clicked()), this, SLOT(handlePathButton()));
+ connect(ui_.personalPathButton, SIGNAL(clicked()), this, SLOT(handlePersonalPathButton()));
+ setFromSettings();
+ setEnabled(settings_->getSetting(SettingConstants::SPELL_CHECKER));
+}
+
+void QtSpellCheckerWindow::setFromSettings() {
+ ui_.spellChecker->setChecked(settings_->getSetting(SettingConstants::SPELL_CHECKER));
+ ui_.personalPathContent->insert(P2QSTRING(settings_->getSetting(SettingConstants::PERSONAL_DICT_PATH)));
+ ui_.pathContent->insert(P2QSTRING(settings_->getSetting(SettingConstants::DICT_PATH)));
}
void QtSpellCheckerWindow::handleChecker(bool state) {
- settings_->storeSetting(SettingConstants::SPELL_CHECKER, state);
+ setEnabled(state);
+}
+
+void QtSpellCheckerWindow::setEnabled(bool state) {
+ ui_.pathContent->setEnabled(state);
+ ui_.personalPathContent->setEnabled(state);
+ ui_.languageView->setEnabled(state);
+ ui_.pathButton->setEnabled(state);
+ ui_.personalPathButton->setEnabled(state);
+ ui_.pathLabel->setEnabled(state);
+ ui_.personalDictionaryLabel->setEnabled(state);
+ ui_.language->setEnabled(state);
+}
+
+void QtSpellCheckerWindow::handleApply() {
+ settings_->storeSetting(SettingConstants::SPELL_CHECKER, ui_.spellChecker->isChecked());
+ QList<QListWidgetItem* > selectedLanguage = ui_.languageView->selectedItems();
+ if (!selectedLanguage.empty()) {
+ settings_->storeSetting(SettingConstants::DICT_FILE, Q2PSTRING(selectedLanguage[0]->text()));
+ }
+ this->done(0);
+}
+
+void QtSpellCheckerWindow::handleCancel() {
+ this->done(0);
+}
+
+void QtSpellCheckerWindow::handlePathButton() {
+ std::string currentPath = settings_->getSetting(SettingConstants::DICT_PATH);
+ QString dirpath = QFileDialog::getExistingDirectory(this, tr("Dictionary Path"), P2QSTRING(currentPath));
+ if (dirpath != NULL) {
+ QDir dictDirectory = QDir(dirpath);
+ settings_->storeSetting(SettingConstants::DICT_PATH, Q2PSTRING(dirpath));
+ ui_.personalPathContent->insert(dirpath);
+ QString filename = "*.dic";
+ QStringList files = dictDirectory.entryList(QStringList(filename), QDir::Files);
+ showFiles(files);
+ }
+}
+
+void QtSpellCheckerWindow::handlePersonalPathButton() {
+ std::string currentPath = settings_->getSetting(SettingConstants::PERSONAL_DICT_PATH);
+ QString filename = QFileDialog::getOpenFileName(this, tr("Select Personal Dictionary"), P2QSTRING(currentPath), tr("(*.dic"));
+}
+
+void QtSpellCheckerWindow::showFiles(const QStringList& files) {
+ for (int i = 0; i < files.size(); ++i) {
+ ui_.languageView->insertItem(i, files[i]);
+ }
}
}
diff --git a/Swift/QtUI/QtSpellCheckerWindow.h b/Swift/QtUI/QtSpellCheckerWindow.h
index 0d6ac60..ad94907 100644
--- a/Swift/QtUI/QtSpellCheckerWindow.h
+++ b/Swift/QtUI/QtSpellCheckerWindow.h
@@ -18,8 +18,15 @@ namespace Swift {
QtSpellCheckerWindow(SettingsProvider* settings, QWidget* parent = NULL);
public slots:
void handleChecker(bool state);
+ void handleCancel();
+ void handlePathButton();
+ void handlePersonalPathButton();
+ void handleApply();
private:
+ void setEnabled(bool state);
+ void setFromSettings();
+ void showFiles(const QStringList& files);
SettingsProvider* settings_;
Ui::QtSpellCheckerWindow ui_;
};
diff --git a/Swift/QtUI/QtSpellCheckerWindow.ui b/Swift/QtUI/QtSpellCheckerWindow.ui
index d09edfe..619ed88 100644
--- a/Swift/QtUI/QtSpellCheckerWindow.ui
+++ b/Swift/QtUI/QtSpellCheckerWindow.ui
@@ -15,7 +15,7 @@
</property>
<layout class="QGridLayout" name="gridLayout">
<item row="0" column="0" colspan="2">
- <widget class="QCheckBox" name="spellCheckerEnabled">
+ <widget class="QCheckBox" name="spellChecker">
<property name="text">
<string>Spell Checker Enabled</string>
</property>
@@ -32,24 +32,24 @@
<widget class="QLineEdit" name="pathContent"/>
</item>
<item row="1" column="2">
- <widget class="QPushButton" name="changePathButton">
+ <widget class="QPushButton" name="pathButton">
<property name="text">
<string>Change</string>
</property>
</widget>
</item>
<item row="2" column="0">
- <widget class="QLabel" name="perosnalDictionaryLabel">
+ <widget class="QLabel" name="personalDictionaryLabel">
<property name="text">
<string>Personal Dictionary</string>
</property>
</widget>
</item>
<item row="2" column="1">
- <widget class="QLineEdit" name="personalDictionaryContent"/>
+ <widget class="QLineEdit" name="personalPathContent"/>
</item>
<item row="2" column="2">
- <widget class="QPushButton" name="changePersonalButton">
+ <widget class="QPushButton" name="personalPathButton">
<property name="text">
<string>Change</string>
</property>
@@ -62,9 +62,6 @@
</property>
</widget>
</item>
- <item row="3" column="1">
- <widget class="QListView" name="languagesView"/>
- </item>
<item row="4" column="0" colspan="3">
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
@@ -96,6 +93,9 @@
</item>
</layout>
</item>
+ <item row="3" column="1">
+ <widget class="QListWidget" name="languageView"/>
+ </item>
</layout>
</widget>
<resources/>