Some improvements to the output formating.
This commit is contained in:
parent
feee78444a
commit
d2924b7c10
@ -23,11 +23,6 @@
|
|||||||
<layout class="QVBoxLayout" name="verticalLayout">
|
<layout class="QVBoxLayout" name="verticalLayout">
|
||||||
<item>
|
<item>
|
||||||
<widget class="QTextBrowser" name="textBrowser">
|
<widget class="QTextBrowser" name="textBrowser">
|
||||||
<property name="font">
|
|
||||||
<font>
|
|
||||||
<family>Lucida Console</family>
|
|
||||||
</font>
|
|
||||||
</property>
|
|
||||||
<property name="horizontalScrollBarPolicy">
|
<property name="horizontalScrollBarPolicy">
|
||||||
<enum>Qt::ScrollBarAlwaysOff</enum>
|
<enum>Qt::ScrollBarAlwaysOff</enum>
|
||||||
</property>
|
</property>
|
||||||
|
@ -46,14 +46,19 @@
|
|||||||
#define SET_FONT_BOLD(WIDGET,BOLD) { QFont _font = WIDGET->font(); _font.setBold(BOLD); WIDGET->setFont(_font); }
|
#define SET_FONT_BOLD(WIDGET,BOLD) { QFont _font = WIDGET->font(); _font.setBold(BOLD); WIDGET->setFont(_font); }
|
||||||
#define SET_TEXT_COLOR(WIDGET,COLOR) { QPalette _palette = WIDGET->palette(); _palette.setColor(QPalette::WindowText, (COLOR)); _palette.setColor(QPalette::Text, (COLOR)); WIDGET->setPalette(_palette); }
|
#define SET_TEXT_COLOR(WIDGET,COLOR) { QPalette _palette = WIDGET->palette(); _palette.setColor(QPalette::WindowText, (COLOR)); _palette.setColor(QPalette::Text, (COLOR)); WIDGET->setPalette(_palette); }
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////
|
//Text
|
||||||
// Constructor
|
const char *STATUS_BLNK = ">> You can drop any type of media files here <<";
|
||||||
////////////////////////////////////////////////////////////
|
const char *STATUS_WORK = "Analyzing file, this may take a moment or two...";
|
||||||
|
|
||||||
|
//Links
|
||||||
const char *LINK_MULDER = "http://muldersoft.com/";
|
const char *LINK_MULDER = "http://muldersoft.com/";
|
||||||
const char *LINK_MEDIAINFO = "http://mediainfo.sourceforge.net/en";
|
const char *LINK_MEDIAINFO = "http://mediainfo.sourceforge.net/en";
|
||||||
const char *LINK_DISCUSS = "http://forum.doom9.org/showthread.php?t=96516";
|
const char *LINK_DISCUSS = "http://forum.doom9.org/showthread.php?t=96516";
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////
|
||||||
|
// Constructor
|
||||||
|
////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
CMainWindow::CMainWindow(const QString &tempFolder, QWidget *parent)
|
CMainWindow::CMainWindow(const QString &tempFolder, QWidget *parent)
|
||||||
:
|
:
|
||||||
QMainWindow(parent),
|
QMainWindow(parent),
|
||||||
@ -83,12 +88,17 @@ CMainWindow::CMainWindow(const QString &tempFolder, QWidget *parent)
|
|||||||
|
|
||||||
//Create label
|
//Create label
|
||||||
m_floatingLabel = new QLabel(ui->textBrowser);
|
m_floatingLabel = new QLabel(ui->textBrowser);
|
||||||
m_floatingLabel->setText(">> You can drop any type of media files here <<");
|
m_floatingLabel->setText(QString::fromLatin1(STATUS_BLNK));
|
||||||
m_floatingLabel->setAlignment(Qt::AlignHCenter | Qt::AlignVCenter);
|
m_floatingLabel->setAlignment(Qt::AlignHCenter | Qt::AlignVCenter);
|
||||||
m_floatingLabel->show();
|
m_floatingLabel->show();
|
||||||
SET_TEXT_COLOR(m_floatingLabel, Qt::darkGray);
|
SET_TEXT_COLOR(m_floatingLabel, Qt::darkGray);
|
||||||
SET_FONT_BOLD(m_floatingLabel, true);
|
SET_FONT_BOLD(m_floatingLabel, true);
|
||||||
|
|
||||||
|
//Update font
|
||||||
|
QFont font("Lucida Console");
|
||||||
|
font.setStyleHint(QFont::TypeWriter);
|
||||||
|
ui->textBrowser->setFont(font);
|
||||||
|
|
||||||
//Clear
|
//Clear
|
||||||
m_mediaInfoPath.clear();
|
m_mediaInfoPath.clear();
|
||||||
m_mediaInfoHandle = INVALID_HANDLE_VALUE;
|
m_mediaInfoHandle = INVALID_HANDLE_VALUE;
|
||||||
@ -238,6 +248,7 @@ void CMainWindow::clearButtonClicked(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
ui->textBrowser->clear();
|
ui->textBrowser->clear();
|
||||||
|
m_floatingLabel->setText(STATUS_BLNK);
|
||||||
m_floatingLabel->show();
|
m_floatingLabel->show();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -247,17 +258,14 @@ void CMainWindow::outputAvailable(void)
|
|||||||
{
|
{
|
||||||
while(m_process->canReadLine())
|
while(m_process->canReadLine())
|
||||||
{
|
{
|
||||||
QByteArray line = m_process->readLine();
|
if(m_floatingLabel->isVisible()) m_floatingLabel->hide();
|
||||||
ui->textBrowser->append(QString::fromUtf8(line).trimmed());
|
QString line = Qt::escape(QString::fromUtf8(m_process->readLine()).trimmed()).replace(' ', " ");
|
||||||
|
if(!(line.isEmpty() || line.contains(':'))) line = QString("<b>%1</b>").arg(line);
|
||||||
|
ui->textBrowser->setHtml(m_output.append(line).append("<br>"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void CMainWindow::processStarted(void)
|
|
||||||
{
|
|
||||||
ui->textBrowser->clear();
|
|
||||||
}
|
|
||||||
|
|
||||||
void CMainWindow::processFinished(void)
|
void CMainWindow::processFinished(void)
|
||||||
{
|
{
|
||||||
outputAvailable();
|
outputAvailable();
|
||||||
@ -451,12 +459,6 @@ QString CMainWindow::getMediaInfoPath(void)
|
|||||||
//Validate file content
|
//Validate file content
|
||||||
VALIDATE_MEDIAINFO(m_mediaInfoHandle);
|
VALIDATE_MEDIAINFO(m_mediaInfoHandle);
|
||||||
|
|
||||||
//Failed?
|
|
||||||
if(m_mediaInfoPath.isEmpty())
|
|
||||||
{
|
|
||||||
QMessageBox::critical(this, tr("Failure"), tr("Error: Failed to extract MediaInfo binary!"), QMessageBox::Ok);
|
|
||||||
}
|
|
||||||
|
|
||||||
return m_mediaInfoPath;
|
return m_mediaInfoPath;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -472,7 +474,6 @@ bool CMainWindow::analyzeFile(const QString &filePath)
|
|||||||
connect(m_process, SIGNAL(readyReadStandardOutput()), this, SLOT(outputAvailable()));
|
connect(m_process, SIGNAL(readyReadStandardOutput()), this, SLOT(outputAvailable()));
|
||||||
connect(m_process, SIGNAL(finished(int,QProcess::ExitStatus)), this, SLOT(processFinished()));
|
connect(m_process, SIGNAL(finished(int,QProcess::ExitStatus)), this, SLOT(processFinished()));
|
||||||
connect(m_process, SIGNAL(error(QProcess::ProcessError)), this, SLOT(processFinished()));
|
connect(m_process, SIGNAL(error(QProcess::ProcessError)), this, SLOT(processFinished()));
|
||||||
connect(m_process, SIGNAL(started()), this, SLOT(processStarted()));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//Still running?
|
//Still running?
|
||||||
@ -482,19 +483,42 @@ bool CMainWindow::analyzeFile(const QString &filePath)
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//Clear data
|
||||||
|
ui->textBrowser->clear();
|
||||||
|
m_output.clear();
|
||||||
|
|
||||||
|
//Disable buttons
|
||||||
|
ui->analyzeButton->setEnabled(false);
|
||||||
|
ui->exitButton->setEnabled(false);
|
||||||
|
|
||||||
|
//Show banner
|
||||||
|
m_floatingLabel->show();
|
||||||
|
m_floatingLabel->setText(QString::fromLatin1(STATUS_WORK));
|
||||||
|
|
||||||
|
//Update
|
||||||
|
qApp->processEvents(QEventLoop::ExcludeUserInputEvents);
|
||||||
|
|
||||||
//Lookup MediaInfo path
|
//Lookup MediaInfo path
|
||||||
const QString mediaInfoPath = getMediaInfoPath();
|
const QString mediaInfoPath = getMediaInfoPath();
|
||||||
if(mediaInfoPath.isEmpty())
|
if(mediaInfoPath.isEmpty())
|
||||||
{
|
{
|
||||||
|
QMessageBox::critical(this, tr("Failure"), tr("Error: Failed to extract MediaInfo binary!"), QMessageBox::Ok);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//Start analyziation
|
||||||
qDebug("Analyzing media file:\n%s\n", filePath.toUtf8().constData());
|
qDebug("Analyzing media file:\n%s\n", filePath.toUtf8().constData());
|
||||||
m_process->start(mediaInfoPath, QStringList() << QDir::toNativeSeparators(filePath));
|
m_process->start(mediaInfoPath, QStringList() << QDir::toNativeSeparators(filePath));
|
||||||
|
|
||||||
m_floatingLabel->hide();
|
//Wait for process to start
|
||||||
ui->analyzeButton->setEnabled(true);
|
if(!m_process->waitForStarted())
|
||||||
ui->exitButton->setEnabled(true);
|
{
|
||||||
|
QMessageBox::critical(this, tr("Failure"), tr("Error: Failed to create MediaInfo process!"), QMessageBox::Ok);
|
||||||
|
m_floatingLabel->hide();
|
||||||
|
ui->analyzeButton->setEnabled(true);
|
||||||
|
ui->exitButton->setEnabled(true);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -45,7 +45,6 @@ private slots:
|
|||||||
void analyzeButtonClicked(void);
|
void analyzeButtonClicked(void);
|
||||||
void clearButtonClicked(void);
|
void clearButtonClicked(void);
|
||||||
void outputAvailable(void);
|
void outputAvailable(void);
|
||||||
void processStarted(void);
|
|
||||||
void processFinished(void);
|
void processFinished(void);
|
||||||
void linkTriggered(void);
|
void linkTriggered(void);
|
||||||
void showAboutScreen(void);
|
void showAboutScreen(void);
|
||||||
@ -69,6 +68,7 @@ private:
|
|||||||
QProcess *m_process;
|
QProcess *m_process;
|
||||||
QLabel *m_floatingLabel;
|
QLabel *m_floatingLabel;
|
||||||
QString m_droppedFile;
|
QString m_droppedFile;
|
||||||
|
QString m_output;
|
||||||
|
|
||||||
QDate getBuildDate(void);
|
QDate getBuildDate(void);
|
||||||
QString getMediaInfoPath(void);
|
QString getMediaInfoPath(void);
|
||||||
|
Loading…
Reference in New Issue
Block a user