Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
- Option to reset the messages number before each simulation run.
- The messages number will also reset when user clears all the messages.

git-svn-id: https://openmodelica.org/svn/OpenModelica/trunk@24315 f25d12d1-65f4-0310-ae8a-bbce733d8d8e
  • Loading branch information
adeas31 committed Jan 29, 2015
1 parent 0f73a1a commit 9ce0441
Show file tree
Hide file tree
Showing 5 changed files with 32 additions and 5 deletions.
19 changes: 14 additions & 5 deletions OMEdit/OMEditGUI/Modeling/MessagesWidget.cpp
Expand Up @@ -96,6 +96,7 @@ MessagesWidget::MessagesWidget(MainWindow *pMainWindow)
: QWidget(pMainWindow, Qt::WindowTitleHint)
{
mpMainWindow = pMainWindow;
mMessageNumber = 1;
mpMessagesTextBrowser = new QTextBrowser;
mpMessagesTextBrowser->setOpenLinks(false);
mpMessagesTextBrowser->setOpenExternalLinks(false);
Expand All @@ -118,7 +119,7 @@ MessagesWidget::MessagesWidget(MainWindow *pMainWindow)
connect(mpCopyAction, SIGNAL(triggered()), mpMessagesTextBrowser, SLOT(copy()));
mpClearAllAction = new QAction(tr("Clear All"), this);
mpClearAllAction->setStatusTip(tr("clears the Messages Browser"));
connect(mpClearAllAction, SIGNAL(triggered()), mpMessagesTextBrowser, SLOT(clear()));
connect(mpClearAllAction, SIGNAL(triggered()), SLOT(clearMessages()));
// set layout for MessagesTextBrowser frame
QVBoxLayout *pMessagesTextBrowserLayout = new QVBoxLayout;
pMessagesTextBrowserLayout->setContentsMargins(0, 0, 0, 0);
Expand Down Expand Up @@ -184,8 +185,6 @@ void MessagesWidget::addGUIMessage(MessageItem *pMessageItem)
messageCSSClass = "notification";
break;
}
// the error count number
static int errorCounter = 1;
QString message;
if (pMessageItem->getFileName().isEmpty()) { // if custom error message
message = pMessageItem->getMessage();
Expand All @@ -208,13 +207,13 @@ void MessagesWidget::addGUIMessage(MessageItem *pMessageItem)
"%6"
"</div><br />")
.arg(messageCSSClass)
.arg(QString::number(errorCounter))
.arg(QString::number(mMessageNumber))
.arg(QTime::currentTime().toString())
.arg(StringHandler::getErrorKindString(pMessageItem->getErrorKind()))
.arg(StringHandler::getErrorTypeDisplayString(pMessageItem->getErrorType()))
.arg(message);
mpMessagesTextBrowser->insertHtml(errorString);
errorCounter++;
mMessageNumber++;
// move the cursor down after adding message.
textCursor.movePosition(QTextCursor::End);
mpMessagesTextBrowser->setTextCursor(textCursor);
Expand Down Expand Up @@ -263,3 +262,13 @@ void MessagesWidget::showContextMenu(QPoint point)
menu.addAction(mpClearAllAction);
menu.exec(mpMessagesTextBrowser->viewport()->mapToGlobal(point));
}

/*!
Clears the Messages Browser and resets the messages number.
Slot activated when mpClearAllAction triggered signal is raised.
*/
void MessagesWidget::clearMessages()
{
resetMessagesNumber();
mpMessagesTextBrowser->clear();
}
3 changes: 3 additions & 0 deletions OMEdit/OMEditGUI/Modeling/MessagesWidget.h
Expand Up @@ -79,12 +79,14 @@ class MessagesWidget : public QWidget
Q_OBJECT
private:
MainWindow *mpMainWindow;
int mMessageNumber;
QTextBrowser *mpMessagesTextBrowser;
QAction *mpSelectAllAction;
QAction *mpCopyAction;
QAction *mpClearAllAction;
public:
MessagesWidget(MainWindow *pMainWindow);
void resetMessagesNumber() {mMessageNumber = 1;}
QTextBrowser* getMessagesTextBrowser() {return mpMessagesTextBrowser;}
void applyMessagesSettings();
void addGUIMessage(MessageItem *pMessageItem);
Expand All @@ -93,6 +95,7 @@ class MessagesWidget : public QWidget
private slots:
void openErrorMessageClass(QUrl url);
void showContextMenu(QPoint point);
void clearMessages();
};

#endif // MESSAGESWIDGET_H
9 changes: 9 additions & 0 deletions OMEdit/OMEditGUI/Options/OptionsDialog.cpp
Expand Up @@ -292,6 +292,9 @@ void OptionsDialog::readMessagesSettings()
if (mpSettings->contains("messages/outputSize")) {
mpMessagesPage->getOutputSizeSpinBox()->setValue(mpSettings->value("messages/outputSize").toInt());
}
if (mpSettings->contains("messages/resetMessagesNumber")) {
mpMessagesPage->getResetMessagesNumberBeforeSimulationCheckBox()->setChecked(mpSettings->value("messages/resetMessagesNumber").toBool());
}
// read font family
if (mpSettings->contains("messages/fontFamily")) {
int currentIndex;
Expand Down Expand Up @@ -627,6 +630,8 @@ void OptionsDialog::saveMessagesSettings()
{
// save output size
mpSettings->setValue("messages/outputSize", mpMessagesPage->getOutputSizeSpinBox()->value());
// save reset messages number
mpSettings->setValue("messages/resetMessagesNumber", mpMessagesPage->getResetMessagesNumberBeforeSimulationCheckBox()->isChecked());
// save font
mpSettings->setValue("messages/fontFamily", mpMessagesPage->getFontFamilyComboBox()->currentFont().family());
mpSettings->setValue("messages/fontSize", mpMessagesPage->getFontSizeSpinBox()->value());
Expand Down Expand Up @@ -2575,11 +2580,15 @@ MessagesPage::MessagesPage(OptionsDialog *pOptionsDialog)
mpOutputSizeSpinBox->setSingleStep(1000);
mpOutputSizeSpinBox->setSuffix(" rows");
mpOutputSizeSpinBox->setSpecialValueText(tr("unlimited"));
// reset messages number before simulation
mpResetMessagesNumberBeforeSimulationCheckBox = new QCheckBox(tr("Reset messages number before simulation"));
mpResetMessagesNumberBeforeSimulationCheckBox->setChecked(true);
// set general groupbox layout
QGridLayout *pGeneralGroupBoxLayout = new QGridLayout;
pGeneralGroupBoxLayout->setColumnStretch(1, 1);
pGeneralGroupBoxLayout->addWidget(mpOutputSizeLabel, 0, 0);
pGeneralGroupBoxLayout->addWidget(mpOutputSizeSpinBox, 0, 1);
pGeneralGroupBoxLayout->addWidget(mpResetMessagesNumberBeforeSimulationCheckBox, 1, 0, 1, 2);
mpGeneralGroupBox->setLayout(pGeneralGroupBoxLayout);
// Font and Colors
mpFontColorsGroupBox = new QGroupBox(Helper::fontAndColors);
Expand Down
2 changes: 2 additions & 0 deletions OMEdit/OMEditGUI/Options/OptionsDialog.h
Expand Up @@ -480,6 +480,7 @@ class MessagesPage : public QWidget
public:
MessagesPage(OptionsDialog *pOptionsDialog);
QSpinBox* getOutputSizeSpinBox() {return mpOutputSizeSpinBox;}
QCheckBox* getResetMessagesNumberBeforeSimulationCheckBox() {return mpResetMessagesNumberBeforeSimulationCheckBox;}
QFontComboBox* getFontFamilyComboBox() {return mpFontFamilyComboBox;}
DoubleSpinBox* getFontSizeSpinBox() {return mpFontSizeSpinBox;}
void setNotificationColor(QColor color) {mNotificaitonColor = color;}
Expand All @@ -496,6 +497,7 @@ class MessagesPage : public QWidget
QGroupBox *mpGeneralGroupBox;
Label *mpOutputSizeLabel;
QSpinBox *mpOutputSizeSpinBox;
QCheckBox *mpResetMessagesNumberBeforeSimulationCheckBox;
QGroupBox *mpFontColorsGroupBox;
Label *mpFontFamilyLabel;
QFontComboBox *mpFontFamilyComboBox;
Expand Down
4 changes: 4 additions & 0 deletions OMEdit/OMEditGUI/Simulation/SimulationDialog.cpp
Expand Up @@ -699,6 +699,10 @@ void SimulationDialog::initializeFields(bool isReSimulate, SimulationOptions sim
*/
bool SimulationDialog::translateModel(QString simulationParameters)
{
// check reset messages number before simulation option
if (mpMainWindow->getOptionsDialog()->getMessagesPage()->getResetMessagesNumberBeforeSimulationCheckBox()->isChecked()) {
mpMainWindow->getMessagesWidget()->resetMessagesNumber();
}
/* save the model before translating */
if (mpMainWindow->getOptionsDialog()->getSimulationPage()->getSaveClassBeforeSimulationCheckBox()->isChecked() &&
!mpLibraryTreeNode->isSaved() &&
Expand Down

0 comments on commit 9ce0441

Please sign in to comment.