forked from teamnwah/openmw-tes3coop
display load error messages in loading window
This commit is contained in:
parent
aadaf7827d
commit
95d24492de
7 changed files with 39 additions and 0 deletions
|
@ -35,6 +35,8 @@ CSMDoc::DocumentManager::DocumentManager (const Files::ConfigurationManager& con
|
||||||
this, SIGNAL (nextRecord (CSMDoc::Document *)));
|
this, SIGNAL (nextRecord (CSMDoc::Document *)));
|
||||||
connect (this, SIGNAL (cancelLoading (CSMDoc::Document *)),
|
connect (this, SIGNAL (cancelLoading (CSMDoc::Document *)),
|
||||||
&mLoader, SLOT (abortLoading (CSMDoc::Document *)));
|
&mLoader, SLOT (abortLoading (CSMDoc::Document *)));
|
||||||
|
connect (&mLoader, SIGNAL (loadMessage (CSMDoc::Document *, const std::string&)),
|
||||||
|
this, SIGNAL (loadMessage (CSMDoc::Document *, const std::string&)));
|
||||||
}
|
}
|
||||||
|
|
||||||
CSMDoc::DocumentManager::~DocumentManager()
|
CSMDoc::DocumentManager::~DocumentManager()
|
||||||
|
|
|
@ -79,6 +79,8 @@ namespace CSMDoc
|
||||||
void nextRecord (CSMDoc::Document *document);
|
void nextRecord (CSMDoc::Document *document);
|
||||||
|
|
||||||
void cancelLoading (CSMDoc::Document *document);
|
void cancelLoading (CSMDoc::Document *document);
|
||||||
|
|
||||||
|
void loadMessage (CSMDoc::Document *document, const std::string& message);
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -63,7 +63,10 @@ void CSMDoc::Loader::load()
|
||||||
|
|
||||||
for (CSMDoc::Stage::Messages::const_iterator iter (messages.begin());
|
for (CSMDoc::Stage::Messages::const_iterator iter (messages.begin());
|
||||||
iter!=messages.end(); ++iter)
|
iter!=messages.end(); ++iter)
|
||||||
|
{
|
||||||
document->getReport (log)->add (iter->first, iter->second);
|
document->getReport (log)->add (iter->first, iter->second);
|
||||||
|
emit loadMessage (document, iter->second);
|
||||||
|
}
|
||||||
|
|
||||||
emit nextRecord (document);
|
emit nextRecord (document);
|
||||||
|
|
||||||
|
|
|
@ -62,6 +62,9 @@ namespace CSMDoc
|
||||||
///< \note This signal is only given once per group of records. The group size is
|
///< \note This signal is only given once per group of records. The group size is
|
||||||
/// approximately the total number of records divided by the steps value of the
|
/// approximately the total number of records divided by the steps value of the
|
||||||
/// previous nextStage signal.
|
/// previous nextStage signal.
|
||||||
|
|
||||||
|
void loadMessage (CSMDoc::Document *document, const std::string& message);
|
||||||
|
///< Non-critical load error or warning
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -7,6 +7,7 @@
|
||||||
#include <QCursor>
|
#include <QCursor>
|
||||||
#include <QDialogButtonBox>
|
#include <QDialogButtonBox>
|
||||||
#include <QCloseEvent>
|
#include <QCloseEvent>
|
||||||
|
#include <QListWidget>
|
||||||
|
|
||||||
#include "../../model/doc/document.hpp"
|
#include "../../model/doc/document.hpp"
|
||||||
|
|
||||||
|
@ -58,6 +59,11 @@ CSVDoc::LoadingDocument::LoadingDocument (CSMDoc::Document *document)
|
||||||
|
|
||||||
layout->addWidget (mError);
|
layout->addWidget (mError);
|
||||||
|
|
||||||
|
// other messages
|
||||||
|
mMessages = new QListWidget (this);
|
||||||
|
|
||||||
|
layout->addWidget (mMessages);
|
||||||
|
|
||||||
// buttons
|
// buttons
|
||||||
mButtons = new QDialogButtonBox (QDialogButtonBox::Cancel, Qt::Horizontal, this);
|
mButtons = new QDialogButtonBox (QDialogButtonBox::Cancel, Qt::Horizontal, this);
|
||||||
|
|
||||||
|
@ -97,6 +103,11 @@ void CSVDoc::LoadingDocument::abort (const std::string& error)
|
||||||
mButtons->setStandardButtons (QDialogButtonBox::Close);
|
mButtons->setStandardButtons (QDialogButtonBox::Close);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void CSVDoc::LoadingDocument::addMessage (const std::string& message)
|
||||||
|
{
|
||||||
|
new QListWidgetItem (QString::fromUtf8 (message.c_str()), mMessages);
|
||||||
|
}
|
||||||
|
|
||||||
void CSVDoc::LoadingDocument::cancel()
|
void CSVDoc::LoadingDocument::cancel()
|
||||||
{
|
{
|
||||||
if (!mAborted)
|
if (!mAborted)
|
||||||
|
@ -168,4 +179,12 @@ void CSVDoc::Loader::nextRecord (CSMDoc::Document *document)
|
||||||
|
|
||||||
if (iter!=mDocuments.end())
|
if (iter!=mDocuments.end())
|
||||||
iter->second->nextRecord();
|
iter->second->nextRecord();
|
||||||
|
}
|
||||||
|
|
||||||
|
void CSVDoc::Loader::loadMessage (CSMDoc::Document *document, const std::string& message)
|
||||||
|
{
|
||||||
|
std::map<CSMDoc::Document *, LoadingDocument *>::iterator iter = mDocuments.find (document);
|
||||||
|
|
||||||
|
if (iter!=mDocuments.end())
|
||||||
|
iter->second->addMessage (message);
|
||||||
}
|
}
|
|
@ -10,6 +10,7 @@
|
||||||
class QLabel;
|
class QLabel;
|
||||||
class QProgressBar;
|
class QProgressBar;
|
||||||
class QDialogButtonBox;
|
class QDialogButtonBox;
|
||||||
|
class QListWidget;
|
||||||
|
|
||||||
namespace CSMDoc
|
namespace CSMDoc
|
||||||
{
|
{
|
||||||
|
@ -29,6 +30,7 @@ namespace CSVDoc
|
||||||
bool mAborted;
|
bool mAborted;
|
||||||
QDialogButtonBox *mButtons;
|
QDialogButtonBox *mButtons;
|
||||||
QLabel *mError;
|
QLabel *mError;
|
||||||
|
QListWidget *mMessages;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
|
@ -44,6 +46,8 @@ namespace CSVDoc
|
||||||
|
|
||||||
void abort (const std::string& error);
|
void abort (const std::string& error);
|
||||||
|
|
||||||
|
void addMessage (const std::string& message);
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
|
|
||||||
void cancel();
|
void cancel();
|
||||||
|
@ -85,6 +89,8 @@ namespace CSVDoc
|
||||||
void nextStage (CSMDoc::Document *document, const std::string& name, int steps);
|
void nextStage (CSMDoc::Document *document, const std::string& name, int steps);
|
||||||
|
|
||||||
void nextRecord (CSMDoc::Document *document);
|
void nextRecord (CSMDoc::Document *document);
|
||||||
|
|
||||||
|
void loadMessage (CSMDoc::Document *document, const std::string& message);
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -100,6 +100,10 @@ CSVDoc::ViewManager::ViewManager (CSMDoc::DocumentManager& documentManager)
|
||||||
&mDocumentManager, SIGNAL (nextRecord (CSMDoc::Document *)),
|
&mDocumentManager, SIGNAL (nextRecord (CSMDoc::Document *)),
|
||||||
&mLoader, SLOT (nextRecord (CSMDoc::Document *)));
|
&mLoader, SLOT (nextRecord (CSMDoc::Document *)));
|
||||||
|
|
||||||
|
connect (
|
||||||
|
&mDocumentManager, SIGNAL (loadMessage (CSMDoc::Document *, const std::string&)),
|
||||||
|
&mLoader, SLOT (loadMessage (CSMDoc::Document *, const std::string&)));
|
||||||
|
|
||||||
connect (
|
connect (
|
||||||
&mLoader, SIGNAL (cancel (CSMDoc::Document *)),
|
&mLoader, SIGNAL (cancel (CSMDoc::Document *)),
|
||||||
&mDocumentManager, SIGNAL (cancelLoading (CSMDoc::Document *)));
|
&mDocumentManager, SIGNAL (cancelLoading (CSMDoc::Document *)));
|
||||||
|
|
Loading…
Reference in a new issue