Custom assertion.
This commit is contained in:
parent
2b15c64ebf
commit
b5246c9694
@ -7,6 +7,7 @@
|
|||||||
|
|
||||||
#include "GoogleWebTranslator.h"
|
#include "GoogleWebTranslator.h"
|
||||||
#include "Settings.h"
|
#include "Settings.h"
|
||||||
|
#include "StAssert.h"
|
||||||
|
|
||||||
GoogleWebTranslator::GoogleWebTranslator()
|
GoogleWebTranslator::GoogleWebTranslator()
|
||||||
: QObject (), view_ (new QWebView),
|
: QObject (), view_ (new QWebView),
|
||||||
@ -82,7 +83,7 @@ void GoogleWebTranslator::replyFinished(QNetworkReply *reply)
|
|||||||
}
|
}
|
||||||
|
|
||||||
void GoogleWebTranslator::load(const ProcessingItem &item) {
|
void GoogleWebTranslator::load(const ProcessingItem &item) {
|
||||||
Q_ASSERT (!item.recognized.isEmpty ());
|
ST_ASSERT (!item.recognized.isEmpty ());
|
||||||
if (translationLanguage_.isEmpty ()) {
|
if (translationLanguage_.isEmpty ()) {
|
||||||
emit error (tr ("Неверные парметры для перевода."));
|
emit error (tr ("Неверные парметры для перевода."));
|
||||||
return;
|
return;
|
||||||
|
@ -5,6 +5,7 @@
|
|||||||
#include <tesseract/host.h>
|
#include <tesseract/host.h>
|
||||||
|
|
||||||
#include "ImageProcessing.h"
|
#include "ImageProcessing.h"
|
||||||
|
#include "StAssert.h"
|
||||||
|
|
||||||
#ifdef WIN32
|
#ifdef WIN32
|
||||||
#include <windows.h>
|
#include <windows.h>
|
||||||
@ -113,10 +114,10 @@ QImage convertImage(Pix &image)
|
|||||||
Pix *prepareImage(const QImage &image, int preferredScale)
|
Pix *prepareImage(const QImage &image, int preferredScale)
|
||||||
{
|
{
|
||||||
Pix* pix = convertImage (image);
|
Pix* pix = convertImage (image);
|
||||||
Q_ASSERT (pix != NULL);
|
ST_ASSERT (pix != NULL);
|
||||||
|
|
||||||
Pix* gray = pixConvertRGBToGray (pix, 0.0, 0.0, 0.0);
|
Pix* gray = pixConvertRGBToGray (pix, 0.0, 0.0, 0.0);
|
||||||
Q_ASSERT (gray != NULL);
|
ST_ASSERT (gray != NULL);
|
||||||
pixDestroy (&pix);
|
pixDestroy (&pix);
|
||||||
|
|
||||||
Pix* scaled = gray;
|
Pix* scaled = gray;
|
||||||
@ -137,7 +138,7 @@ Pix *prepareImage(const QImage &image, int preferredScale)
|
|||||||
|
|
||||||
scaled = pixScale (gray, scale, scale);
|
scaled = pixScale (gray, scale, scale);
|
||||||
}
|
}
|
||||||
Q_ASSERT (scaled != NULL);
|
ST_ASSERT (scaled != NULL);
|
||||||
if (scaled != gray)
|
if (scaled != gray)
|
||||||
{
|
{
|
||||||
pixDestroy (&gray);
|
pixDestroy (&gray);
|
||||||
|
@ -18,6 +18,7 @@
|
|||||||
#include "Translator.h"
|
#include "Translator.h"
|
||||||
#include "ResultDialog.h"
|
#include "ResultDialog.h"
|
||||||
#include "LanguageHelper.h"
|
#include "LanguageHelper.h"
|
||||||
|
#include "StAssert.h"
|
||||||
|
|
||||||
Manager::Manager(QObject *parent) :
|
Manager::Manager(QObject *parent) :
|
||||||
QObject(parent),
|
QObject(parent),
|
||||||
@ -134,12 +135,12 @@ Manager::~Manager()
|
|||||||
void Manager::capture()
|
void Manager::capture()
|
||||||
{
|
{
|
||||||
QList<QScreen*> screens = QApplication::screens ();
|
QList<QScreen*> screens = QApplication::screens ();
|
||||||
Q_ASSERT (!screens.isEmpty ());
|
ST_ASSERT (!screens.isEmpty ());
|
||||||
QScreen* screen = screens.first ();
|
QScreen* screen = screens.first ();
|
||||||
Q_CHECK_PTR (screen);
|
Q_CHECK_PTR (screen);
|
||||||
WId desktopId = QApplication::desktop ()->winId ();
|
WId desktopId = QApplication::desktop ()->winId ();
|
||||||
QPixmap pixmap = screen->grabWindow (desktopId);
|
QPixmap pixmap = screen->grabWindow (desktopId);
|
||||||
Q_ASSERT (!pixmap.isNull ());
|
ST_ASSERT (!pixmap.isNull ());
|
||||||
emit showPixmap (pixmap);
|
emit showPixmap (pixmap);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -203,7 +204,7 @@ void Manager::copyLastToClipboard()
|
|||||||
|
|
||||||
void Manager::showResult(ProcessingItem item)
|
void Manager::showResult(ProcessingItem item)
|
||||||
{
|
{
|
||||||
Q_ASSERT (item.isValid ());
|
ST_ASSERT (item.isValid ());
|
||||||
lastItem_ = item;
|
lastItem_ = item;
|
||||||
if (useResultDialog_)
|
if (useResultDialog_)
|
||||||
{
|
{
|
||||||
|
@ -7,6 +7,7 @@
|
|||||||
|
|
||||||
#include "Settings.h"
|
#include "Settings.h"
|
||||||
#include "ImageProcessing.h"
|
#include "ImageProcessing.h"
|
||||||
|
#include "StAssert.h"
|
||||||
|
|
||||||
Recognizer::Recognizer(QObject *parent) :
|
Recognizer::Recognizer(QObject *parent) :
|
||||||
QObject(parent),
|
QObject(parent),
|
||||||
@ -60,7 +61,7 @@ bool Recognizer::initEngine(tesseract::TessBaseAPI *&engine, const QString& lang
|
|||||||
|
|
||||||
void Recognizer::recognize(ProcessingItem item)
|
void Recognizer::recognize(ProcessingItem item)
|
||||||
{
|
{
|
||||||
Q_ASSERT (!item.source.isNull ());
|
ST_ASSERT (!item.source.isNull ());
|
||||||
bool isCustomLanguage = (!item.ocrLanguage.isEmpty () &&
|
bool isCustomLanguage = (!item.ocrLanguage.isEmpty () &&
|
||||||
item.ocrLanguage != ocrLanguage_);
|
item.ocrLanguage != ocrLanguage_);
|
||||||
tesseract::TessBaseAPI* engine = (isCustomLanguage) ? NULL : engine_;
|
tesseract::TessBaseAPI* engine = (isCustomLanguage) ? NULL : engine_;
|
||||||
@ -74,7 +75,7 @@ void Recognizer::recognize(ProcessingItem item)
|
|||||||
}
|
}
|
||||||
|
|
||||||
Pix* image = prepareImage (item.source.toImage (), imageScale_);
|
Pix* image = prepareImage (item.source.toImage (), imageScale_);
|
||||||
Q_ASSERT (image != NULL);
|
ST_ASSERT (image != NULL);
|
||||||
engine->SetImage (image);
|
engine->SetImage (image);
|
||||||
char* outText = engine->GetUTF8Text();
|
char* outText = engine->GetUTF8Text();
|
||||||
engine->Clear();
|
engine->Clear();
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
#include "ResultDialog.h"
|
#include "ResultDialog.h"
|
||||||
#include "ui_ResultDialog.h"
|
#include "ui_ResultDialog.h"
|
||||||
|
#include "StAssert.h"
|
||||||
|
|
||||||
#include <QDesktopWidget>
|
#include <QDesktopWidget>
|
||||||
|
|
||||||
@ -32,10 +33,10 @@ bool ResultDialog::eventFilter(QObject* object, QEvent* event)
|
|||||||
|
|
||||||
void ResultDialog::showResult(ProcessingItem item)
|
void ResultDialog::showResult(ProcessingItem item)
|
||||||
{
|
{
|
||||||
Q_ASSERT (!item.source.isNull ());
|
ST_ASSERT (!item.source.isNull ());
|
||||||
Q_ASSERT (!item.recognized.isEmpty ());
|
ST_ASSERT (!item.recognized.isEmpty ());
|
||||||
Q_ASSERT (!item.translated.isEmpty ());
|
ST_ASSERT (!item.translated.isEmpty ());
|
||||||
Q_ASSERT (!item.screenPos.isNull ());
|
ST_ASSERT (!item.screenPos.isNull ());
|
||||||
|
|
||||||
ui->sourceLabel->setPixmap (item.source);
|
ui->sourceLabel->setPixmap (item.source);
|
||||||
ui->recognizeLabel->setText (item.recognized);
|
ui->recognizeLabel->setText (item.recognized);
|
||||||
@ -61,7 +62,7 @@ void ResultDialog::showResult(ProcessingItem item)
|
|||||||
{
|
{
|
||||||
|
|
||||||
QRect screenRect = desktop->availableGeometry (this);
|
QRect screenRect = desktop->availableGeometry (this);
|
||||||
Q_ASSERT (screenRect.isValid ());
|
ST_ASSERT (screenRect.isValid ());
|
||||||
QPoint newPos (screenRect.width () - width (), screenRect.height () - height ());
|
QPoint newPos (screenRect.width () - width (), screenRect.height () - height ());
|
||||||
move (newPos);
|
move (newPos);
|
||||||
}
|
}
|
||||||
|
@ -41,7 +41,8 @@ HEADERS += \
|
|||||||
ResultDialog.h \
|
ResultDialog.h \
|
||||||
ImageProcessing.h \
|
ImageProcessing.h \
|
||||||
LanguageHelper.h \
|
LanguageHelper.h \
|
||||||
GoogleWebTranslator.h
|
GoogleWebTranslator.h \
|
||||||
|
StAssert.h
|
||||||
|
|
||||||
FORMS += \
|
FORMS += \
|
||||||
SettingsEditor.ui \
|
SettingsEditor.ui \
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
#include "SelectionDialog.h"
|
#include "SelectionDialog.h"
|
||||||
#include "ui_SelectionDialog.h"
|
#include "ui_SelectionDialog.h"
|
||||||
#include "LanguageHelper.h"
|
#include "LanguageHelper.h"
|
||||||
|
#include "StAssert.h"
|
||||||
|
|
||||||
#include <QMouseEvent>
|
#include <QMouseEvent>
|
||||||
#include <QPainter>
|
#include <QPainter>
|
||||||
@ -139,9 +140,9 @@ bool SelectionDialog::eventFilter(QObject* object, QEvent* event)
|
|||||||
return QDialog::eventFilter (object, event);
|
return QDialog::eventFilter (object, event);
|
||||||
}
|
}
|
||||||
item.ocrLanguage = dictionary_.ocrUiToCode (action->text ());
|
item.ocrLanguage = dictionary_.ocrUiToCode (action->text ());
|
||||||
Q_ASSERT (!item.ocrLanguage.isEmpty ());
|
ST_ASSERT (!item.ocrLanguage.isEmpty ());
|
||||||
item.sourceLanguage = dictionary_.translateForOcrCode (item.ocrLanguage);
|
item.sourceLanguage = dictionary_.translateForOcrCode (item.ocrLanguage);
|
||||||
Q_ASSERT (!item.sourceLanguage.isEmpty ());
|
ST_ASSERT (!item.sourceLanguage.isEmpty ());
|
||||||
}
|
}
|
||||||
emit selected (item);
|
emit selected (item);
|
||||||
accept ();
|
accept ();
|
||||||
@ -153,7 +154,7 @@ bool SelectionDialog::eventFilter(QObject* object, QEvent* event)
|
|||||||
|
|
||||||
void SelectionDialog::setPixmap(QPixmap pixmap)
|
void SelectionDialog::setPixmap(QPixmap pixmap)
|
||||||
{
|
{
|
||||||
Q_ASSERT (!pixmap.isNull ());
|
ST_ASSERT (!pixmap.isNull ());
|
||||||
currentPixmap_ = pixmap;
|
currentPixmap_ = pixmap;
|
||||||
QPalette palette = this->palette ();
|
QPalette palette = this->palette ();
|
||||||
palette.setBrush (this->backgroundRole (), pixmap);
|
palette.setBrush (this->backgroundRole (), pixmap);
|
||||||
|
15
StAssert.h
Normal file
15
StAssert.h
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
#ifndef ST_ASSERT_H
|
||||||
|
#define ST_ASSERT_H
|
||||||
|
|
||||||
|
#include <assert.h>
|
||||||
|
|
||||||
|
#if !defined(ST_ASSERT)
|
||||||
|
# if defined(ST_NO_ASSERT)
|
||||||
|
# define ST_ASSERT(CONDITION)
|
||||||
|
# else
|
||||||
|
# define ST_ASSERT(CONDITION) assert(CONDITION)
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif // ST_ASSERT_H
|
||||||
|
|
@ -10,6 +10,7 @@
|
|||||||
|
|
||||||
#include "Settings.h"
|
#include "Settings.h"
|
||||||
#include "GoogleWebTranslator.h"
|
#include "GoogleWebTranslator.h"
|
||||||
|
#include "StAssert.h"
|
||||||
|
|
||||||
namespace
|
namespace
|
||||||
{
|
{
|
||||||
@ -51,7 +52,7 @@ void Translator::translate(ProcessingItem item)
|
|||||||
emit translateAlternative(item);
|
emit translateAlternative(item);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Q_ASSERT (!item.recognized.isEmpty ());
|
ST_ASSERT (!item.recognized.isEmpty ());
|
||||||
QString sourceLanguage = item.sourceLanguage.isEmpty () ? sourceLanguage_ :
|
QString sourceLanguage = item.sourceLanguage.isEmpty () ? sourceLanguage_ :
|
||||||
item.sourceLanguage;
|
item.sourceLanguage;
|
||||||
if (translationLanguage_.isEmpty () || sourceLanguage.isEmpty ())
|
if (translationLanguage_.isEmpty () || sourceLanguage.isEmpty ())
|
||||||
@ -78,9 +79,9 @@ void Translator::translatedAlternative(ProcessingItem item, bool success)
|
|||||||
|
|
||||||
void Translator::replyFinished(QNetworkReply* reply)
|
void Translator::replyFinished(QNetworkReply* reply)
|
||||||
{
|
{
|
||||||
Q_ASSERT (items_.contains (reply));
|
ST_ASSERT (items_.contains (reply));
|
||||||
ProcessingItem item = items_.take (reply);
|
ProcessingItem item = items_.take (reply);
|
||||||
Q_ASSERT (reply->isFinished ());
|
ST_ASSERT (reply->isFinished ());
|
||||||
if (reply->error () != QNetworkReply::NoError)
|
if (reply->error () != QNetworkReply::NoError)
|
||||||
{
|
{
|
||||||
useAlternativeTranslation_ = true;
|
useAlternativeTranslation_ = true;
|
||||||
|
Loading…
Reference in New Issue
Block a user