[lightlang] r929 committed - Исправил выскакивающие ошибки при загрузке словаря, добавил надпись на...

1 view
Skip to first unread message

ligh...@googlecode.com

unread,
Feb 5, 2010, 1:11:37 PM2/5/10
to ligh...@googlegroups.com
Revision: 929
Author: sstikhonov
Date: Fri Feb 5 10:10:39 2010
Log: Исправил выскакивающие ошибки при загрузке словаря, добавил надпись на
кнопку скрытия и показа строки прогресса и попытался исправить кучу
ошибок, выскакивающих при продолжении загрузки словаря(продолжу позже)

http://code.google.com/p/lightlang/source/detail?r=929

Modified:
/trunk/lightlang-editor/src/BorderPanelWithWidget.cpp
/trunk/lightlang-editor/src/CentralWidget.cpp
/trunk/lightlang-editor/src/CentralWidget.h
/trunk/lightlang-editor/src/DatabaseCenter.cpp
/trunk/lightlang-editor/src/LoadDictionaryThread.cpp
/trunk/lightlang-editor/src/LoadDictionaryThread.h
/trunk/lightlang-editor/src/TabWidget.cpp

=======================================
--- /trunk/lightlang-editor/src/BorderPanelWithWidget.cpp Wed Dec 31
04:11:01 2008
+++ /trunk/lightlang-editor/src/BorderPanelWithWidget.cpp Fri Feb 5
10:10:39 2010
@@ -60,6 +60,7 @@
hideButton->setMaximumHeight(20);
hideButton->setMaximumWidth(QWIDGETSIZE_MAX);
hideButton->setIcon(QIcon(":/icons/down.png"));
+ hideButton->setText(tr("Hide progress bar"));
}

mainLayout->addWidget(hideButton);
@@ -82,8 +83,13 @@

if (currentOrientation == Vertical)
hideButton->setIcon(QIcon(widget->maximumHeight() !=
0 ? ":/icons/left.png" : ":/icons/right.png"));
- else
+ else {
hideButton->setIcon(QIcon(widget->maximumHeight() !=
0 ? ":/icons/down.png" : ":/icons/up.png"));
+ if (widget->maximumHeight() != 0)
+ hideButton->setText(tr("Hide progress bar"));
+ else
+ hideButton->setText(tr("Show progress bar"));
+ }
}

void BorderPanelWithWidget::updateWidgetSize() {
=======================================
--- /trunk/lightlang-editor/src/CentralWidget.cpp Sun Dec 20 14:58:18 2009
+++ /trunk/lightlang-editor/src/CentralWidget.cpp Fri Feb 5 10:10:39 2010
@@ -248,7 +248,7 @@
existingDictionaries = list;
}

-void CentralWidget::loadDictionary(const QString& dictPath) {
+void CentralWidget::loadDictionary(const QString& dictPath,int
startLoadingFromRow) {
if (existingDictionaries.contains(QFileInfo(dictPath).fileName())) {
setCurrentDatabase(QFileInfo(dictPath).fileName());
showTabsWidget();
@@ -279,7 +279,7 @@
currentLoadingDictInformation.clear();
loadDictionaryWidget->reset();
loadDictionaryWidget->showWithRolling();
- if (loadDictionaryThread->startLoading(dictPath)) {
+ if (loadDictionaryThread->startLoading(dictPath,startLoadingFromRow)) {
currentLoadingDictName = QFileInfo(dictPath).fileName();
loadDictionaryThread->start();
} else {
@@ -318,13 +318,14 @@
settingsWidget->loadSettings();

QSettings settings(ORGANIZATION,PROGRAM_NAME);
- QString lastLoadedDictionary =
settings.value("CentralWidget/LastLoadedDictionary").toString();
+ QString lastLoadedDictionary =
settings.value("CentralWidget/LastLoadedDictionary","").toString();
+ int lastLoadedDictionaryWordRow =
settings.value("CentralWidget/LastLoadedDictionaryWordRow",0).toInt();
if (!lastLoadedDictionary.isEmpty()) {
continueLoadingOfLastLoadedOrNotDialog->setText("<b>" + tr("Dictionary
was loading at last quit...") + "</b><br>" + tr("When you quitted last
time, the dictionary \'%1\' was loading. You can continue loading now or
ignore it.").arg(QFileInfo(lastLoadedDictionary).fileName()));
continueLoadingOfLastLoadedOrNotDialog->exec();
if (continueLoadingOfLastLoadedOrNotDialog->clickedButton() ==
continueLoadingLastLoadedButton) {
continueLoadingOfLastLoadedDictionary = true;
- loadDictionary(lastLoadedDictionary);
+ loadDictionary(lastLoadedDictionary,lastLoadedDictionaryWordRow);
}
}
}
@@ -339,10 +340,14 @@
if (closeOrNoIfLoadingDialog->clickedButton() == continueIfLoadingButton)
return false;
loadDictionaryThread->stopLoading();
+
settings.setValue("CentralWidget/LastLoadedDictionaryWordRow",loadDictionaryThread->getCurrentRow());
} else if (loadDictionaryThread->isStopped()) {

settings.setValue("CentralWidget/LastLoadedDictionary",loadDictionaryThread->getDictionaryPath());
- } else
+
settings.setValue("CentralWidget/LastLoadedDictionaryWordRow",loadDictionaryThread->getCurrentRow());
+ } else {
settings.setValue("CentralWidget/LastLoadedDictionary","");
+ settings.setValue("CentralWidget/LastLoadedDictionaryWordRow",0);
+ }
return true;
}

=======================================
--- /trunk/lightlang-editor/src/CentralWidget.h Wed Mar 25 08:36:00 2009
+++ /trunk/lightlang-editor/src/CentralWidget.h Fri Feb 5 10:10:39 2010
@@ -48,7 +48,7 @@

void setStartPageText(const QString& text);
void setExistingDictionaries(const QStringList& list);
- void loadDictionary(const QString& dictPath);
+ void loadDictionary(const QString& dictPath,int startLoadingFromRow = 0);
QString getLoadedDictionaryInformation() const;

void setEditorMenu(Menu *menu);
=======================================
--- /trunk/lightlang-editor/src/DatabaseCenter.cpp Sun Dec 20 15:06:55 2009
+++ /trunk/lightlang-editor/src/DatabaseCenter.cpp Fri Feb 5 10:10:39 2010
@@ -48,7 +48,7 @@
if (!createConnection(databaseName))
return false;

- QSqlQuery *query = new
QSqlQuery(QSqlDatabase::database(currentConnectionName));
+ QSqlQuery *query = new QSqlQuery(QSqlDatabase::database(databaseName));

databasesWithQueries[databaseName] = query;

@@ -74,7 +74,7 @@

bool DatabaseCenter::setTranslationForWord(const QString& word,const
QString& translation) {
QSqlQuery query(QSqlDatabase::database(currentConnectionName));
- query.exec(QString("UPDATE `main` SET `translation` = \"%2\" WHERE
`word` = \"%1\"").arg(word.toLower()).arg(translation));
+ query.exec(QString("UPDATE `main` SET `translation` = \"%2\" WHERE
`word` = \"%1\"").arg(word).arg(translation));
if (!query.isActive())
qDebug() << "[DatabaseCenter] Set translation for" << word << " with
error:" << query.lastError().text();
return query.isActive();
@@ -84,9 +84,9 @@
QSqlQuery *query = databasesWithQueries[currentConnectionName];

query->prepare("INSERT INTO main(word,translation,mark)
VALUES(:word,:translation,:mark)");
- // TODO: Выкинуть все simplified() из таких контекстов, как ниже
- query->bindValue(":word",word.simplified().toLower());
- query->bindValue(":translation",translation.simplified());
+ // TODO: Выкинуть все simplified() из таких контекстов, как нижe
+ query->bindValue(":word",word.trimmed());
+ query->bindValue(":translation",translation.trimmed());
query->bindValue(":mark","0");
query->exec();
if (!query->isActive())
@@ -96,7 +96,7 @@

bool DatabaseCenter::removeWord(const QString& word) {
QSqlQuery query(QSqlDatabase::database(currentConnectionName));
- query.exec(QString("DELETE FROM `main` WHERE word =
\"%1\"").arg(word.toLower()));
+ query.exec(QString("DELETE FROM `main` WHERE word = \"%1\"").arg(word));
if (!query.isActive())
qDebug() << "[DatabaseCenter] Delete word" << word << " with error:" <<
query.lastError().text();
return query.isActive();
@@ -105,9 +105,9 @@
bool DatabaseCenter::markWord(const QString& word,bool mark) {
QSqlQuery query(QSqlDatabase::database(currentConnectionName));
if (mark)
- query.exec(QString("UPDATE `main` SET `mark` = '1' WHERE `word` =
\"%1\"").arg(word.toLower()));
+ query.exec(QString("UPDATE `main` SET `mark` = '1' WHERE `word` =
\"%1\"").arg(word));
else
- query.exec(QString("UPDATE `main` SET `mark` = '0' WHERE `word` =
\"%1\"").arg(word.toLower()));
+ query.exec(QString("UPDATE `main` SET `mark` = '0' WHERE `word` =
\"%1\"").arg(word));
if (!query.isActive())
qDebug() << "[DatabaseCenter] Word" << word << " marked with error:" <<
query.lastError().text();
return query.isActive();
@@ -142,7 +142,7 @@

bool DatabaseCenter::isWordMarked(const QString& word) {
QSqlQuery query(QSqlDatabase::database(currentConnectionName));
- query.exec(QString("SELECT mark FROM main WHERE
word=\'%1\'").arg(word.toLower()));
+ query.exec(QString("SELECT mark FROM main WHERE word=\'%1\'").arg(word));
query.next();
return query.record().value(0).toBool();
}
=======================================
--- /trunk/lightlang-editor/src/LoadDictionaryThread.cpp Sun Dec 20
14:58:18 2009
+++ /trunk/lightlang-editor/src/LoadDictionaryThread.cpp Fri Feb 5
10:10:39 2010
@@ -12,6 +12,7 @@
canceled = false;
currentFile = new QFile;
currentStream = new QTextStream(currentFile);
+ startLoadingFromRowNumber = 0;

rows = 0;
currentRow = 0;
@@ -61,6 +62,12 @@

void LoadDictionaryThread::run() {
int rowsStepsCount = 0;
+
+ int count = 0;
+ while (!currentStream->atEnd() && startLoadingFromRowNumber > count) {
+ currentStream->readLine();
+ count++;
+ }

while (!currentStream->atEnd()) {
if (canceled || stopped)
@@ -93,6 +100,7 @@
emit (rowChanged(currentRow));
emit (loadingFinished());
}
+ startLoadingFromRowNumber = 0;
}

bool LoadDictionaryThread::isStopped() const {
@@ -103,10 +111,15 @@
return canceled;
}

-bool LoadDictionaryThread::startLoading(const QString& dictionaryPath) {
+int LoadDictionaryThread::getCurrentRow() const {
+ return currentRow;
+}
+
+bool LoadDictionaryThread::startLoading(const QString& dictionaryPath,int
startLoadingFromRow) {
if (!setDictionaryPath(dictionaryPath))
return false;
currentDictionaryInformationString.clear();
+ startLoadingFromRowNumber = startLoadingFromRow;
continueLoading();
return true;
}
@@ -120,7 +133,7 @@
}

void LoadDictionaryThread::restartLoading() {
- startLoading(currentFile->fileName());
+ startLoading(currentFile->fileName(),0);
}

void LoadDictionaryThread::continueLoading() {
=======================================
--- /trunk/lightlang-editor/src/LoadDictionaryThread.h Wed Mar 25 08:36:00
2009
+++ /trunk/lightlang-editor/src/LoadDictionaryThread.h Fri Feb 5 10:10:39
2010
@@ -17,7 +17,7 @@
void rowChanged(int row);
public slots:
void continueLoading();
- bool startLoading(const QString& dictionaryPath);
+ bool startLoading(const QString& dictionaryPath,int startLoadingFromRow);
void cancelLoading();
void stopLoading();
void restartLoading();
@@ -27,6 +27,7 @@

bool isCanceled() const;
bool isStopped() const;
+ int getCurrentRow() const;

QString getDictionaryInformation() const;
QString getDictionaryPath() const;
@@ -48,6 +49,7 @@

int rows;
int currentRow;
+ int startLoadingFromRowNumber;
};


=======================================
--- /trunk/lightlang-editor/src/TabWidget.cpp Sat Jun 27 21:39:45 2009
+++ /trunk/lightlang-editor/src/TabWidget.cpp Fri Feb 5 10:10:39 2010
@@ -174,8 +174,9 @@
void TabWidget::updateTranslation() {
timer->stop();
if (!lineEdit->text().isEmpty()) {
- QString translation =
databaseCenter->getTranslationForWord(lineEdit->text().toLower());
+ QString translation =
databaseCenter->getTranslationForWord(lineEdit->text());
bool wasFocus = textEdit->hasFocus();
+ translation = translation.simplified();
if (!translation.isEmpty()) {
// Format blocks into indents
translation.replace("\\{","\n\\{\n\t");
@@ -195,14 +196,14 @@
markButton->blockSignals(true);
markButton->setChecked(false);
if (!lineEdit->text().isEmpty()) {
- bool wordInDatabase =
databaseCenter->isThereWordInDatabase(lineEdit->text().toLower());
+ bool wordInDatabase =
databaseCenter->isThereWordInDatabase(lineEdit->text());
addWordToolButton->setEnabled(!wordInDatabase);
editWordToolButton->setEnabled(wordInDatabase);
removeWordToolButton->setEnabled(wordInDatabase);
notifLabel->setVisible(!wordInDatabase);
markButton->setEnabled(wordInDatabase);
if (wordInDatabase)
-
markButton->setChecked(databaseCenter->isWordMarked(lineEdit->text().toLower()));
+ markButton->setChecked(databaseCenter->isWordMarked(lineEdit->text()));
updateTranslationButton->setEnabled(true);
} else {
addWordToolButton->setEnabled(false);
@@ -216,7 +217,7 @@
}

void TabWidget::addWord() {
- QString word = lineEdit->text().toLower();
+ QString word = lineEdit->text();
QString translation = textEdit->toPlainText().trimmed();
if (databaseCenter->addNewWord(word,translation)) {
emit(showStatusMessage(tr("You have added the new word
\"%1\"").arg(word)));
@@ -227,7 +228,7 @@
}

void TabWidget::editWord() {
- QString word = lineEdit->text().toLower();
+ QString word = lineEdit->text();
QString translation = textEdit->toPlainText().trimmed();
if (!translation.isEmpty()) {
if (databaseCenter->setTranslationForWord(word,translation))
@@ -238,7 +239,7 @@
}

void TabWidget::removeWord() {
- if (databaseCenter->removeWord(lineEdit->text().toLower()))
+ if (databaseCenter->removeWord(lineEdit->text()))
emit(showStatusMessage(tr("You have removed the word
\"%1\"").arg(lineEdit->text())));
else
emit(showStatusMessage(tr("Cannot remove the word
\"%1\"").arg(lineEdit->text())));
@@ -247,12 +248,12 @@

void TabWidget::markWord(bool mark) {
if (mark) {
- if (databaseCenter->markWord(lineEdit->text().toLower(),mark))
+ if (databaseCenter->markWord(lineEdit->text(),mark))
emit(showStatusMessage(tr("The word \"%1\" was
marked").arg(lineEdit->text())));
else
emit(showStatusMessage(tr("Cannot mark the word
\"%1\"").arg(lineEdit->text())));
} else {
- if (databaseCenter->markWord(lineEdit->text().toLower(),mark))
+ if (databaseCenter->markWord(lineEdit->text(),mark))
emit(showStatusMessage(tr("The word \"%1\" was
unmarked").arg(lineEdit->text())));
else
emit(showStatusMessage(tr("Cannot unmark the word
\"%1\"").arg(lineEdit->text())));
Reply all
Reply to author
Forward
0 new messages