Skip to content

Commit

Permalink
Merge pull request #16 from qchateau/dev
Browse files Browse the repository at this point in the history
Dev
  • Loading branch information
qchateau authored Dec 20, 2021
2 parents e020c7c + 1ee220a commit b0f0e59
Show file tree
Hide file tree
Showing 10 changed files with 229 additions and 138 deletions.
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
cmake_minimum_required(VERSION 3.10.0)
project(autopanorama VERSION 1.3.3)
project(autopanorama VERSION 1.3.4)
set(TITLE_PROJECT_NAME "AutoPanorama")

# Configure project
Expand Down
2 changes: 1 addition & 1 deletion opencv
81 changes: 80 additions & 1 deletion src/mainwindow.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,66 @@
#include <opencv2/core/ocl.hpp>

namespace autopanorama {
namespace {

class LogSink {
public:
static void onMessageOutput(
QtMsgType type,
const QMessageLogContext&,
const QString& msg)
{
QString level;
switch (type) {
case QtDebugMsg:
level = "DEBUG";
break;
case QtInfoMsg:
level = "INFO";
break;
case QtWarningMsg:
level = "WARNING";
break;
case QtCriticalMsg:
level = "ERROR";
break;
case QtFatalMsg:
level = "FATAL";
break;
}

auto line = level + QString(7 - level.size(), ' ') + ": " + msg;
std::cerr << line.toStdString() << std::endl;

QString newText;
{
std::unique_lock<std::mutex> lock(mtx_);
static QStringList lines;
lines.append(line);
if (lines.size() > 100000) {
lines.pop_front();
}
if (browser_) {
QMetaObject::invokeMethod(
browser_, "setPlainText", Q_ARG(QString, lines.join('\n')));
}
}
}

static void setTextBrowser(QTextBrowser* browser)
{
std::unique_lock<std::mutex> lock(mtx_);
browser_ = browser;
}

private:
static std::mutex mtx_;
static QTextBrowser* browser_;
};

std::mutex LogSink::mtx_;
QTextBrowser* LogSink::browser_ = nullptr;
}

MainWindow::MainWindow(QWidget* parent)
: QMainWindow(parent),
Expand All @@ -26,8 +86,9 @@ MainWindow::MainWindow(QWidget* parent)
{
qRegisterMetaType<QVector<int>>();
ui_->setupUi(this);
setupLogsTable();

std::cout << cv::getBuildInformation() << std::endl;
qInfo() << cv::getBuildInformation().c_str();

updateOutputDirFilename();
onFastSettingsChanged();
Expand All @@ -49,6 +110,12 @@ MainWindow::MainWindow(QWidget* parent)
}
}

MainWindow::~MainWindow()
{
LogSink::setTextBrowser(nullptr);
qInstallMessageHandler(0);
}

int MainWindow::getNbQueued()
{
int nb = 0;
Expand Down Expand Up @@ -601,6 +668,18 @@ void MainWindow::closeEvent(QCloseEvent* event)
}
}

void MainWindow::setupLogsTable()
{
LogSink::setTextBrowser(ui_->logsBrowser);
ui_->logsBrowser->setFont([] {
QFont font("Monospace");
font.setStyleHint(QFont::TypeWriter);
return font;
}());

qInstallMessageHandler(&LogSink::onMessageOutput);
}

void MainWindow::openPostProcess(const QString& output_path)
{
(new PostProcess(output_path, this))->show();
Expand Down
2 changes: 2 additions & 0 deletions src/mainwindow.h
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ class MainWindow : public QMainWindow {

public:
explicit MainWindow(QWidget* parent = 0);
~MainWindow();

int getNbQueued();
int getNbDone();
Expand Down Expand Up @@ -56,6 +57,7 @@ public slots:
void closeEvent(QCloseEvent* event);

private:
void setupLogsTable();
void openPostProcess(const QString& output_path);
void startWorker(PanoramaMaker& worker);
void createWorkerUi(std::shared_ptr<PanoramaMaker> worker);
Expand Down
Loading

0 comments on commit b0f0e59

Please sign in to comment.