Skip to content

Commit

Permalink
- OMEdit improvements.
Browse files Browse the repository at this point in the history
git-svn-id: https://openmodelica.org/svn/OpenModelica/trunk@10222 f25d12d1-65f4-0310-ae8a-bbce733d8d8e
  • Loading branch information
adeas31 committed Oct 26, 2011
1 parent e07e94d commit 68bc36d
Show file tree
Hide file tree
Showing 10 changed files with 76 additions and 68 deletions.
13 changes: 13 additions & 0 deletions OMEdit/OMEditGUI/DocumentationWidget.cpp
Expand Up @@ -36,6 +36,7 @@
DocumentationWidget::DocumentationWidget(MainWindow *pParent)
: QWidget(pParent)
{
setObjectName(tr("DocumentationWidget"));
mpParentMainWindow = pParent;
mpDocumentationViewer = new DocumentationViewer(this);
mpDocumentationEditor = new DocumentationEditor(this);
Expand Down Expand Up @@ -158,6 +159,18 @@ void DocumentationWidget::saveChanges()
}
}

void DocumentationWidget::paintEvent(QPaintEvent *event)
{
Q_UNUSED(event);
QPainter painter (this);
painter.setPen(Qt::gray);
QRect rectangle = this->rect();
rectangle.setWidth(this->rect().width() - 2);
rectangle.setHeight(this->rect().height() - 2);
painter.drawRect(rectangle);
QWidget::paintEvent(event);
}

DocumentationEditor::DocumentationEditor(DocumentationWidget *pParent)
: QTextEdit(pParent)
{
Expand Down
2 changes: 2 additions & 0 deletions OMEdit/OMEditGUI/DocumentationWidget.h
Expand Up @@ -67,6 +67,8 @@ public slots:
QPushButton *mpSaveButton;
QDialogButtonBox *mpButtonBox;
QString mClassName;
protected:
virtual void paintEvent(QPaintEvent *event);
};
class ModelicaTextSettings;

Expand Down
5 changes: 2 additions & 3 deletions OMEdit/OMEditGUI/InteractiveSimulationTabWidget.cpp
Expand Up @@ -423,7 +423,7 @@ void OMIProxy::readProcessStandardOutput()

void OMIProxy::readProcessStandardError()
{
MessageWidget *pMessageWidget;
ProblemsWidget *pMessageWidget;
pMessageWidget = mpInteractiveSimulationTab->getParentTabWidget()->getParentMainWindow()->mpMessageWidget;
pMessageWidget->addGUIProblem(new ProblemItem("", false, 0, 0, 0, 0, QString(mpSimulationProcess->readAllStandardError()),
Helper::scriptingKind, Helper::errorLevel, 0, pMessageWidget->mpProblem));
Expand All @@ -432,7 +432,7 @@ void OMIProxy::readProcessStandardError()

void OMIProxy::getSocketError(QAbstractSocket::SocketError socketError)
{
MessageWidget *pMessageWidget;
ProblemsWidget *pMessageWidget;
pMessageWidget = mpInteractiveSimulationTab->getParentTabWidget()->getParentMainWindow()->mpMessageWidget;
switch (socketError)
{
Expand Down Expand Up @@ -865,7 +865,6 @@ void InteractiveSimulationTab::paintEvent(QPaintEvent *event)
painter.setPen(Qt::NoPen);
painter.setBrush(QBrush(mpParentInteractiveSimulationTabWidget->palette().color(QPalette::Window)));
painter.drawRect(rect());

QWidget::paintEvent(event);
}

Expand Down
4 changes: 2 additions & 2 deletions OMEdit/OMEditGUI/OMEditGUI.pro
Expand Up @@ -13,7 +13,7 @@ SOURCES += main.cpp\
mainwindow.cpp \
ProjectTabWidget.cpp \
LibraryWidget.cpp \
MessageWidget.cpp \
ProblemsWidget.cpp \
omc_communication.cc \
OMCProxy.cpp \
OMCThread.cpp \
Expand Down Expand Up @@ -47,7 +47,7 @@ SOURCES += main.cpp\
HEADERS += mainwindow.h \
ProjectTabWidget.h \
LibraryWidget.h \
MessageWidget.h \
ProblemsWidget.h \
omc_communication.h \
OMCProxy.h \
OMCThread.h \
Expand Down
Expand Up @@ -31,38 +31,21 @@
*
*/

/*
* HopsanGUI
* Fluid and Mechatronic Systems, Department of Management and Engineering, Linkoping University
* Main Authors 2009-2010: Robert Braun, Bjorn Eriksson, Peter Nordin
* Contributors 2009-2010: Mikael Axin, Alessandro Dell'Amico, Karl Pettersson, Ingo Staack
*/

#include "MessageWidget.h"
#include "ProblemsWidget.h"
#include "mainwindow.h"

//! @class MessageWidget
//! @brief It creates a tab based messages window.
//! @class ProblemsWidget
//! @brief Shows problems in the form of tree.
//! It contains two tabs General, Problems.

//! Constructor
//! @param pParent defines a parent to the new instanced object. pParent is the MainWindow object.
MessageWidget::MessageWidget(MainWindow *pParent)
: QTabWidget(pParent)
ProblemsWidget::ProblemsWidget(MainWindow *pParent)
: QWidget(pParent)
{
setObjectName(tr("MessagesTab"));
mpParentMainWindow = pParent;
// creates Problems window
mpProblem = new Problem(this);
addTab(mpProblem, QString("Problems"));
// create button for clearing problems
mpClearProblemsToolButton = new QToolButton;
mpClearProblemsToolButton->setContentsMargins(0, 0, 0, 0);
mpClearProblemsToolButton->setText(Helper::clearProblems);
mpClearProblemsToolButton->setIcon(QIcon(":/Resources/icons/clearproblems.png"));
mpClearProblemsToolButton->setToolTip(Helper::clearProblems);
mpClearProblemsToolButton->setAutoRaise(true);
connect(mpClearProblemsToolButton, SIGNAL(clicked()), SLOT(clearProblems()));
// create button for only showing notifications
mpShowNotificationsToolButton = new QToolButton;
mpShowNotificationsToolButton->setText(Helper::showNotifications);
Expand Down Expand Up @@ -103,29 +86,41 @@ MessageWidget::MessageWidget(MainWindow *pParent)
mpProblemsButtonGroup->addButton(mpShowWarningsToolButton);
mpProblemsButtonGroup->addButton(mpShowErrorsToolButton);
mpProblemsButtonGroup->addButton(mpShowAllProblemsToolButton);
// create corner widget
QFrame *pCornerWidget = new QFrame(this);
pCornerWidget->resize(tabBar()->width(), tabBar()->height());
QHBoxLayout *pCornerWidgetLayout = new QHBoxLayout;
pCornerWidgetLayout->setContentsMargins(0, 0, 2, 1);
pCornerWidgetLayout->setSpacing(2);
pCornerWidgetLayout->addWidget(mpShowNotificationsToolButton);
pCornerWidgetLayout->addWidget(mpShowWarningsToolButton);
pCornerWidgetLayout->addWidget(mpShowErrorsToolButton);
pCornerWidgetLayout->addWidget(mpShowAllProblemsToolButton);
QFrame *verticalLine = new QFrame;
verticalLine->setFrameShape(QFrame::VLine);
verticalLine->setFrameShadow(QFrame::Sunken);
pCornerWidgetLayout->addWidget(verticalLine);
pCornerWidgetLayout->addWidget(mpClearProblemsToolButton);
pCornerWidget->setLayout(pCornerWidgetLayout);
setCornerWidget(pCornerWidget);
// horizontal line
QFrame *horizontalLine = new QFrame;
horizontalLine->setFrameShape(QFrame::HLine);
horizontalLine->setFrameShadow(QFrame::Sunken);
// create button for clearing problems
mpClearProblemsToolButton = new QToolButton;
mpClearProblemsToolButton->setContentsMargins(0, 0, 0, 0);
mpClearProblemsToolButton->setText(Helper::clearProblems);
mpClearProblemsToolButton->setIcon(QIcon(":/Resources/icons/clearproblems.png"));
mpClearProblemsToolButton->setToolTip(Helper::clearProblems);
mpClearProblemsToolButton->setAutoRaise(true);
connect(mpClearProblemsToolButton, SIGNAL(clicked()), SLOT(clearProblems()));
// layout for buttons
QVBoxLayout *buttonsLayout = new QVBoxLayout;
buttonsLayout->setContentsMargins(0, 0, 0, 0);
buttonsLayout->setSpacing(0);
buttonsLayout->addWidget(mpShowNotificationsToolButton);
buttonsLayout->addWidget(mpShowWarningsToolButton);
buttonsLayout->addWidget(mpShowErrorsToolButton);
buttonsLayout->addWidget(mpShowAllProblemsToolButton);
buttonsLayout->addWidget(horizontalLine);
buttonsLayout->addWidget(mpClearProblemsToolButton);
// layout
QHBoxLayout *layout = new QHBoxLayout;
layout->setContentsMargins(0, 0, 0, 0);
layout->setSpacing(1);
layout->addWidget(mpProblem);
layout->addLayout(buttonsLayout);
setLayout(layout);
}

//! Reimplementation of sizeHint function. Defines the minimum height.
QSize MessageWidget::sizeHint() const
QSize ProblemsWidget::sizeHint() const
{
QSize size = QTabWidget::sizeHint();
QSize size = QWidget::sizeHint();
//Set very small height. A minimum apperantly stops at resonable size.
size.rheight() = 125; //pixels
return size;
Expand All @@ -134,17 +129,16 @@ QSize MessageWidget::sizeHint() const
//! Adds the problem to the Problems tree.
//! If Problems tab is not selected then start blinking the tab.
//! @param pProblemItem is the Problem to add.
void MessageWidget::addGUIProblem(ProblemItem *pProblemItem)
void ProblemsWidget::addGUIProblem(ProblemItem *pProblemItem)
{
mpProblem->addTopLevelItem(pProblemItem);
mpProblem->scrollToBottom();
mpShowAllProblemsToolButton->setChecked(true);
setCurrentWidget(mpProblem);
}

//! Clears all the problems.
//! Slot activated when mpClearProblemsToolButton clicked signal is raised.
void MessageWidget::clearProblems()
void ProblemsWidget::clearProblems()
{
int i = 0;
while(i < mpProblem->topLevelItemCount())
Expand All @@ -157,7 +151,7 @@ void MessageWidget::clearProblems()

//! Filter the Problems tree and only show the notification type problems.
//! Slot activated when mpShowNotificationsToolButton clicked signal is raised.
void MessageWidget::showNotifications()
void ProblemsWidget::showNotifications()
{
QTreeWidgetItemIterator it(mpProblem);
while (*it)
Expand All @@ -173,7 +167,7 @@ void MessageWidget::showNotifications()

//! Filter the Problems tree and only show the warning type problems.
//! Slot activated when mpShowWarningsToolButton clicked signal is raised.
void MessageWidget::showWarnings()
void ProblemsWidget::showWarnings()
{
QTreeWidgetItemIterator it(mpProblem);
while (*it)
Expand All @@ -189,7 +183,7 @@ void MessageWidget::showWarnings()

//! Filter the Problems tree and only show the error type problems.
//! Slot activated when mpShowErrorsToolButton clicked signal is raised.
void MessageWidget::showErrors()
void ProblemsWidget::showErrors()
{
QTreeWidgetItemIterator it(mpProblem);
while (*it)
Expand All @@ -205,7 +199,7 @@ void MessageWidget::showErrors()

//! Shows all type of problems.
//! Slot activated when mpShowAllProblemsToolButton clicked signal is raised.
void MessageWidget::showAllProblems()
void ProblemsWidget::showAllProblems()
{
QTreeWidgetItemIterator it(mpProblem);
while (*it)
Expand All @@ -221,7 +215,7 @@ void MessageWidget::showAllProblems()

//! Constructor
//! @param pParent defines a parent to the new instanced object. pParent is the MessageWidget object.
Problem::Problem(MessageWidget *pParent)
Problem::Problem(ProblemsWidget *pParent)
: QTreeWidget(pParent), mpSelectedProblemItem(0)
{
mpMessageWidget = pParent;
Expand All @@ -232,7 +226,6 @@ Problem::Problem(MessageWidget *pParent)
setColumnCount(4);
setIconSize(QSize(12, 12));
setContentsMargins(0, 0, 0, 0);
setFrameStyle(QFrame::NoFrame);
QStringList labels;
labels << "Kind" << "Time" << "Resource" << "Location" << "Message";
setHeaderLabels(labels);
Expand Down
Expand Up @@ -50,11 +50,11 @@ class Problem;
class ProblemItem;
class StringHandler;

class MessageWidget : public QTabWidget
class ProblemsWidget : public QWidget
{
Q_OBJECT
public:
MessageWidget(MainWindow *pParent);
ProblemsWidget(MainWindow *pParent);

MainWindow *mpParentMainWindow;
Problem *mpProblem;
Expand Down Expand Up @@ -84,9 +84,9 @@ class Problem : public QTreeWidget
QAction *mpCopyAllAction;
QAction *mpRemoveAction;
public:
Problem(MessageWidget *pParent);
Problem(ProblemsWidget *pParent);

MessageWidget *mpMessageWidget;
ProblemsWidget *mpMessageWidget;
private slots:
void openEditor(QTreeWidgetItem *item, int column);
void closeEditor(QTreeWidgetItem *current, QTreeWidgetItem *previous);
Expand Down
4 changes: 2 additions & 2 deletions OMEdit/OMEditGUI/ProjectTabWidget.cpp
Expand Up @@ -164,7 +164,7 @@ void GraphicsView::dropEvent(QDropEvent *event)
{
this->setFocus();
MainWindow *pMainWindow = mpParentProjectTab->mpParentProjectTabWidget->mpParentMainWindow;
MessageWidget *pMessageWidget = pMainWindow->mpMessageWidget;
ProblemsWidget *pMessageWidget = pMainWindow->mpMessageWidget;
// check if the view is readonly or not
if (mpParentProjectTab->isReadOnly())
{
Expand Down Expand Up @@ -3048,7 +3048,7 @@ void ProjectTabWidget::saveProjectTab(int index, bool saveAs)
// if model is a child model then give user a message and return
if (pCurrentTab->isChild())
{
MessageWidget *pMessageWidget = pCurrentTab->mpParentProjectTabWidget->mpParentMainWindow->mpMessageWidget;
ProblemsWidget *pMessageWidget = pCurrentTab->mpParentProjectTabWidget->mpParentMainWindow->mpMessageWidget;
pMessageWidget->addGUIProblem(new ProblemItem("", false, 0, 0, 0, 0, GUIMessages::getMessage(GUIMessages::CHILD_MODEL_SAVE)
.arg(pCurrentTab->getModelicaTypeLabel()).arg(pCurrentTab->mModelName),
Helper::scriptingKind, Helper::notificationLevel, 0, pMessageWidget->mpProblem));
Expand Down
7 changes: 4 additions & 3 deletions OMEdit/OMEditGUI/Resources/css/stylesheet.qss
Expand Up @@ -38,9 +38,6 @@ QPlainTextEdit#ModelicaEditor {
selection-background-color: #3399FF;
selection-color: white;
}
QTextEdit#MessagesTextBox {
border: none;
}

QStatusBar#ProjectStatusBar {
background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #d2d2d2, stop: 1 lightGray);
Expand Down Expand Up @@ -68,3 +65,7 @@ QListWidget#RecentItemsList::item:hover {
border: 1px solid gray;
color: blue;
}

QWidget#DocumentationWidget {
border: 1px solid gray;
}
2 changes: 1 addition & 1 deletion OMEdit/OMEditGUI/mainwindow.cpp
Expand Up @@ -89,7 +89,7 @@ MainWindow::MainWindow(SplashScreen *splashScreen, QWidget *parent)
#endif
messagedock->setFeatures(QDockWidget::DockWidgetVerticalTitleBar | QDockWidget::DockWidgetClosable
| QDockWidget::DockWidgetMovable | QDockWidget::DockWidgetFloatable);
mpMessageWidget = new MessageWidget(this);
mpMessageWidget = new ProblemsWidget(this);
messagedock->setWidget(mpMessageWidget);
addDockWidget(Qt::BottomDockWidgetArea, messagedock);
// load library
Expand Down
6 changes: 3 additions & 3 deletions OMEdit/OMEditGUI/mainwindow.h
Expand Up @@ -56,7 +56,7 @@
#include "LibraryWidget.h"
#include "ProjectTabWidget.h"
#include "StringHandler.h"
#include "MessageWidget.h"
#include "ProblemsWidget.h"
#include "Helper.h"
#include "SimulationWidget.h"
#include "PlotWindowContainer.h"
Expand Down Expand Up @@ -91,7 +91,7 @@ class PlotWidget;
class DocumentationWidget;
class OptionsWidget;
class ImportFMIWidget;
class MessageWidget;
class ProblemsWidget;

class MainWindow : public QMainWindow
{
Expand Down Expand Up @@ -127,7 +127,7 @@ class MainWindow : public QMainWindow
QMenu *menuFMI;
QMenu *menuTools;
QMenu *menuHelp;
MessageWidget *mpMessageWidget;
ProblemsWidget *mpMessageWidget;
QStatusBar *mpStatusBar;
QProgressBar *mpProgressBar;
QPushButton *mpBackButton;
Expand Down

0 comments on commit 68bc36d

Please sign in to comment.