eliminate some bad old-style casts which hide an obscure error
This commit is contained in:
@@ -400,7 +400,7 @@ MainWindow::MainWindow(QWidget * parent, Qt::WindowFlags f)
|
||||
pcReport->setObjectName
|
||||
(QString::fromLatin1(QT_TRANSLATE_NOOP("QDockWidget","Report view")));
|
||||
pDockMgr->registerDockWindow("Std_ReportView", pcReport);
|
||||
ReportOutputObserver* rvObserver = new ReportOutputObserver((QDockWidget*)pcReport->parent());
|
||||
ReportOutputObserver* rvObserver = new ReportOutputObserver(pcReport);
|
||||
qApp->installEventFilter(rvObserver);
|
||||
}
|
||||
|
||||
|
||||
@@ -237,37 +237,43 @@ private:
|
||||
* user always gets the warnings/errors
|
||||
*/
|
||||
|
||||
ReportOutputObserver::ReportOutputObserver(QDockWidget *parent)
|
||||
ReportOutputObserver::ReportOutputObserver(ReportOutput *report)
|
||||
{
|
||||
this->reportViewParent = parent;
|
||||
this->reportView = report;
|
||||
}
|
||||
|
||||
ReportOutputObserver::~ReportOutputObserver(){
|
||||
|
||||
}
|
||||
|
||||
bool ReportOutputObserver::eventFilter(QObject *obj, QEvent *event){
|
||||
if (event->type() == QEvent::User) {
|
||||
CustomReportEvent* cr = (CustomReportEvent*) event;
|
||||
QDockWidget* rv = this->reportViewParent->findChild
|
||||
<QDockWidget*>(QString::fromLatin1(QT_TRANSLATE_NOOP("QDockWidget","Report view")));
|
||||
if(cr && rv){
|
||||
bool ReportOutputObserver::eventFilter(QObject *obj, QEvent *event)
|
||||
{
|
||||
if (event->type() == QEvent::User && obj == reportView.data()) {
|
||||
CustomReportEvent* cr = dynamic_cast<CustomReportEvent*>(event);
|
||||
if (cr) {
|
||||
ReportHighlighter::Paragraph msgType = cr->messageType();
|
||||
if (msgType == ReportHighlighter::Error || msgType == ReportHighlighter::Warning){
|
||||
ParameterGrp::handle group = App::GetApplication().GetUserParameter().
|
||||
GetGroup("BaseApp")->GetGroup("Preferences")->GetGroup("OutputWindow");
|
||||
if(group->GetBool("checkShowReportViewOnWarningOrError", true)){
|
||||
if(!rv->toggleViewAction()->isChecked()){
|
||||
rv->toggleViewAction()->activate(QAction::Trigger);
|
||||
|
||||
if (group->GetBool("checkShowReportViewOnWarningOrError", true)) {
|
||||
// get the QDockWidget parent of the report view
|
||||
QDockWidget* dw = nullptr;
|
||||
QWidget* par = reportView->parentWidget();
|
||||
while (par) {
|
||||
dw = qobject_cast<QDockWidget*>(par);
|
||||
if (dw)
|
||||
break;
|
||||
par = par->parentWidget();
|
||||
}
|
||||
|
||||
if (dw && !dw->toggleViewAction()->isChecked()) {
|
||||
dw->toggleViewAction()->activate(QAction::Trigger);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return false; //true would prevent the messages reaching the report view
|
||||
} else {
|
||||
// standard event processing
|
||||
return QObject::eventFilter(obj, event);
|
||||
}
|
||||
|
||||
// standard event processing
|
||||
return QObject::eventFilter(obj, event);
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------
|
||||
|
||||
@@ -201,11 +201,11 @@ class ReportOutputObserver : public QObject
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
ReportOutputObserver (QDockWidget* parent = 0);
|
||||
~ReportOutputObserver();
|
||||
ReportOutputObserver (ReportOutput* view);
|
||||
bool eventFilter(QObject *obj, QEvent *event);
|
||||
|
||||
protected:
|
||||
QPointer <QDockWidget> reportViewParent;
|
||||
QPointer <ReportOutput> reportView;
|
||||
};
|
||||
|
||||
} // namespace DockWnd
|
||||
|
||||
Reference in New Issue
Block a user