Custom assertion.

This commit is contained in:
Gres 2015-06-29 20:26:33 +03:00
parent 2b15c64ebf
commit b5246c9694
9 changed files with 44 additions and 21 deletions

View File

@ -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;

View File

@ -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);

View File

@ -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_)
{ {

View File

@ -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();

View File

@ -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);
} }

View File

@ -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 \

View File

@ -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
View 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

View File

@ -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;