lyx_mirror/src/frontends/qt2/QLog.C
John Levon fabd5d2057 The big Qt toqstr/fromqstr patch.
This kind of wrapping will be needed anyway, and it's an
improvement on what we had. Please give it a run.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@5846 a592a061-630c-0410-9148-cb99ea01b6c8
2002-12-17 20:37:13 +00:00

76 lines
1.3 KiB
C

/**
* \file QLog.C
* This file is part of LyX, the document processor.
* Licence details can be found in the file COPYING.
*
* \author John Levon
*
* Full author contact details are available in file CREDITS
*/
#include <config.h>
#ifdef __GNUG__
#pragma implementation
#endif
#include "LyXView.h"
#include "qt_helpers.h"
#include "ControlLog.h"
#include "Lsstream.h"
#include <qtextview.h>
#include <qpushbutton.h>
#include "QLogDialog.h"
#include "QLog.h"
#include "Qt2BC.h"
#include <fstream>
using std::ifstream;
using std::getline;
typedef Qt2CB<ControlLog, Qt2DB<QLogDialog> > base_class;
QLog::QLog()
: base_class(qt_("Log"))
{
}
void QLog::build_dialog()
{
dialog_.reset(new QLogDialog(this));
bc().setCancel(dialog_->closePB);
}
void QLog::update_contents()
{
std::pair<Buffer::LogType, string> const & logfile =
controller().logfile();
if (logfile.first == Buffer::buildlog)
dialog_->setCaption(qt_("Build log"));
else
dialog_->setCaption(qt_("LaTeX log"));
dialog_->logTV->setText("");
ifstream ifstr(logfile.second.c_str());
if (!ifstr) {
if (logfile.first == Buffer::buildlog)
dialog_->logTV->setText(qt_("No build log file found"));
else
dialog_->logTV->setText(qt_("No LaTeX log file found"));
return;
}
ostringstream ost;
ost << ifstr.rdbuf();
dialog_->logTV->setText(toqstr(ost.str()));
}