Adjustements to the ExceptionWidget behavior.
* Change: In Hurricane::ExceptionWidget, - Use a QTextLabel instead of a QLabel, make it "look like" a QLabel. - Always display using text mode. Not HTML (to preserve indentation). - Make the text of the error message selectable. - Make it resizable.
This commit is contained in:
parent
9c082230b5
commit
235a9eecea
|
@ -43,11 +43,11 @@ namespace Hurricane {
|
|||
|
||||
|
||||
void ExceptionWidget::run ( Error& e )
|
||||
{ run ( e.htmlWhat().c_str(), e.htmlWhere().c_str() ); }
|
||||
{ run ( e.textWhat().c_str(), e.textWhere().c_str() ); }
|
||||
|
||||
|
||||
void ExceptionWidget::run ( Exception& e )
|
||||
{ run ( e.htmlWhat().c_str(), "" ); }
|
||||
{ run ( e.textWhat().c_str(), "" ); }
|
||||
|
||||
|
||||
void ExceptionWidget::run ( exception& e )
|
||||
|
@ -107,7 +107,7 @@ namespace Hurricane {
|
|||
ExceptionWidget::ExceptionWidget ( QWidget* parent )
|
||||
: QDialog (parent)
|
||||
, _header (new QLabel())
|
||||
, _message (new QLabel())
|
||||
, _message (new QTextEdit())
|
||||
, _trace (new QTextEdit())
|
||||
{
|
||||
setAttribute ( Qt::WA_DeleteOnClose );
|
||||
|
@ -119,9 +119,17 @@ namespace Hurricane {
|
|||
_header->setTextFormat ( Qt::RichText );
|
||||
_header->setText ( "<b>[ERROR]</b>" );
|
||||
|
||||
_message->setTextFormat ( Qt::RichText );
|
||||
_message->setFont ( Graphics::getFixedFont(QFont::Normal,false,false) );
|
||||
_message->setText ( "<b>Oups! I did it again!</b>" );
|
||||
QString labelBackground = _header->palette().color( _header->backgroundRole() ).name();
|
||||
//_message->setFrameStyle ( QFrame::NoFrame|QFrame::Plain );
|
||||
_message->setStyleSheet ( QString("* { background-color: %1 }").arg(labelBackground) );
|
||||
_message->setTextInteractionFlags( Qt::TextSelectableByMouse );
|
||||
_message->setAcceptRichText ( false );
|
||||
_message->setLineWrapMode ( QTextEdit::NoWrap );
|
||||
_message->setWordWrapMode ( QTextOption::NoWrap );
|
||||
_message->setMinimumSize ( Graphics::isHighDpi() ? QSize(2500,200) : QSize(800,100) );
|
||||
//_message->setTextFormat ( Qt::RichText );
|
||||
_message->setFont ( Graphics::getFixedFont(QFont::Normal,false,false) );
|
||||
_message->setPlainText ( "Oups! I did it again!" );
|
||||
|
||||
_trace->setTextInteractionFlags ( Qt::TextBrowserInteraction );
|
||||
_trace->setAcceptRichText ( true );
|
||||
|
@ -172,14 +180,15 @@ namespace Hurricane {
|
|||
vLayout1->addLayout ( hLayout2 , Qt::AlignCenter );
|
||||
|
||||
QHBoxLayout* hLayout1 = new QHBoxLayout ();
|
||||
hLayout1->setSizeConstraint ( QLayout::SetFixedSize );
|
||||
//hLayout1->setSizeConstraint ( QLayout::SetFixedSize );
|
||||
hLayout1->setContentsMargins ( 0, 0, 0, 0 );
|
||||
hLayout1->addWidget ( leftMargin );
|
||||
hLayout1->addLayout ( vLayout1 );
|
||||
|
||||
setLayout ( hLayout1 );
|
||||
//setMinimumSize ( QSize(400,150) );
|
||||
setSizePolicy ( QSizePolicy(QSizePolicy::Expanding,QSizePolicy::Expanding) );
|
||||
setLayout ( hLayout1 );
|
||||
//setMinimumSize ( QSize(400,150) );
|
||||
setSizePolicy ( QSizePolicy(QSizePolicy::Expanding,QSizePolicy::Expanding) );
|
||||
setSizeGripEnabled( true );
|
||||
|
||||
connect ( contButton , SIGNAL(clicked()) , this, SLOT(accept()) );
|
||||
connect ( abortButton, SIGNAL(clicked()) , this, SLOT(reject()) );
|
||||
|
@ -204,7 +213,7 @@ namespace Hurricane {
|
|||
} else
|
||||
_header->setText ("<b>[UNKNOW]</b>");
|
||||
|
||||
_message->setText ( contents );
|
||||
_message->setPlainText ( contents );
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -1,22 +1,20 @@
|
|||
// -*- C++ -*-
|
||||
//
|
||||
// This file is part of the Coriolis Software.
|
||||
// Copyright (c) UPMC/LIP6 2008-2018, All Rights Reserved
|
||||
// Copyright (c) SU 2008-2020, All Rights Reserved
|
||||
//
|
||||
// +-----------------------------------------------------------------+
|
||||
// | C O R I O L I S |
|
||||
// | V L S I B a c k e n d D a t a - B a s e |
|
||||
// | |
|
||||
// | Author : Jean-Paul CHAPUT |
|
||||
// | E-mail : Jean-Paul.Chaput@asim.lip6.fr |
|
||||
// | E-mail : Jean-Paul.Chaput@lip6.fr |
|
||||
// | =============================================================== |
|
||||
// | C++ Header : "./ExceptionWidget.h" |
|
||||
// | C++ Header : "./hurricane/viewer/ExceptionWidget.h" |
|
||||
// +-----------------------------------------------------------------+
|
||||
|
||||
|
||||
#ifndef HURRICANE_EXCEPTION_WIDGET_H
|
||||
#define HURRICANE_EXCEPTION_WIDGET_H
|
||||
|
||||
#pragma once
|
||||
#include <exception>
|
||||
#include <functional>
|
||||
#include <QDialog>
|
||||
|
@ -47,12 +45,10 @@ namespace Hurricane {
|
|||
private slots:
|
||||
void _showTrace ( int state );
|
||||
private:
|
||||
QLabel* _header;
|
||||
QLabel* _message;
|
||||
QTextEdit* _trace;
|
||||
QLabel* _header;
|
||||
QTextEdit* _message;
|
||||
QTextEdit* _trace;
|
||||
};
|
||||
|
||||
|
||||
} // Hurricane namespace.
|
||||
|
||||
#endif // HURRICANE_EXCEPTION_WIDGET_H
|
||||
|
|
Loading…
Reference in New Issue