Skip to content

Commit

Permalink
- New options to clear the debugger output & log windows on new run.
Browse files Browse the repository at this point in the history
- Use the UTF-8 for settings object throughout the application.

git-svn-id: https://openmodelica.org/svn/OpenModelica/trunk@22188 f25d12d1-65f4-0310-ae8a-bbce733d8d8e
  • Loading branch information
adeas31 committed Sep 9, 2014
1 parent f85cb1c commit f0d5948
Show file tree
Hide file tree
Showing 11 changed files with 54 additions and 19 deletions.
2 changes: 2 additions & 0 deletions OMEdit/OMEditGUI/Editors/FindReplaceDialog.cpp
Expand Up @@ -144,6 +144,7 @@ void FindReplaceDialog::setTextEdit(BaseEditor *pBaseEditor)
void FindReplaceDialog::readFindTextFromSettings()
{
QSettings settings(QSettings::IniFormat, QSettings::UserScope, Helper::organization, Helper::application);
settings.setIniCodec(Helper::utf8.toStdString().data());
mpFindComboBox->clear();
QList<QVariant> findTexts = settings.value("findReplaceDialog/textsToFind").toList();
int numFindTexts = qMin(findTexts.size(), (int)MaxFindTexts);
Expand All @@ -161,6 +162,7 @@ void FindReplaceDialog::readFindTextFromSettings()
void FindReplaceDialog::saveFindTextToSettings(QString textToFind)
{
QSettings settings(QSettings::IniFormat, QSettings::UserScope, Helper::organization, Helper::application);
settings.setIniCodec(Helper::utf8.toStdString().data());
QList<QVariant> texts = settings.value("findReplaceDialog/textsToFind").toList();
// remove the already present text from the list.
foreach (QVariant text, texts)
Expand Down
6 changes: 6 additions & 0 deletions OMEdit/OMEditGUI/MainWindow.cpp
Expand Up @@ -226,6 +226,7 @@ MainWindow::MainWindow(QSplashScreen *pSplashScreen, QWidget *parent)
mpOMCProxy->setCommandLineOptions("+d=infoXmlOperations");
// restore OMEdit widgets state
QSettings settings(QSettings::IniFormat, QSettings::UserScope, Helper::organization, Helper::application);
settings.setIniCodec(Helper::utf8.toStdString().data());
if (mpOptionsDialog->getGeneralSettingsPage()->getPreserveUserCustomizations())
{
restoreGeometry(settings.value("application/geometry").toByteArray());
Expand Down Expand Up @@ -517,6 +518,7 @@ QAction* MainWindow::getGotoLineNumberAction()
void MainWindow::addRecentFile(const QString &fileName, const QString &encoding)
{
QSettings settings(QSettings::IniFormat, QSettings::UserScope, Helper::organization, Helper::application);
settings.setIniCodec(Helper::utf8.toStdString().data());
QList<QVariant> files = settings.value("recentFilesList/files").toList();
// remove the already present RecentFile instance from the list.
foreach (QVariant file, files)
Expand Down Expand Up @@ -545,6 +547,7 @@ void MainWindow::updateRecentFileActions()
mpRecentFileActions[i]->setVisible(false);
/* read the new recent files list */
QSettings settings(QSettings::IniFormat, QSettings::UserScope, Helper::organization, Helper::application);
settings.setIniCodec(Helper::utf8.toStdString().data());
QList<QVariant> files = settings.value("recentFilesList/files").toList();
int numRecentFiles = qMin(files.size(), (int)MaxRecentFiles);
for (int i = 0; i < numRecentFiles; ++i)
Expand Down Expand Up @@ -605,6 +608,7 @@ void MainWindow::beforeClosingMainWindow()
delete mpSimulationDialog;
/* save the TransformationsWidget last window geometry and splitters state. */
QSettings settings(QSettings::IniFormat, QSettings::UserScope, Helper::organization, Helper::application);
settings.setIniCodec(Helper::utf8.toStdString().data());
QHashIterator<QString, TransformationsWidget*> transformationsWidgets(mTransformationsWidgetHash);
if (mTransformationsWidgetHash.size() > 0)
{
Expand Down Expand Up @@ -1211,6 +1215,7 @@ void MainWindow::openRecentFile()
void MainWindow::clearRecentFilesList()
{
QSettings settings(QSettings::IniFormat, QSettings::UserScope, Helper::organization, Helper::application);
settings.setIniCodec(Helper::utf8.toStdString().data());
settings.remove("recentFilesList/files");
updateRecentFileActions();
mpWelcomePageWidget->addRecentFilesListItems();
Expand All @@ -1219,6 +1224,7 @@ void MainWindow::clearRecentFilesList()
void MainWindow::clearFindReplaceTexts()
{
QSettings settings(QSettings::IniFormat, QSettings::UserScope, Helper::organization, Helper::application);
settings.setIniCodec(Helper::utf8.toStdString().data());
settings.remove("findReplaceDialog/textsToFind");
mpFindReplaceDialog->readFindTextFromSettings();
}
Expand Down
1 change: 1 addition & 0 deletions OMEdit/OMEditGUI/Modeling/LibraryTreeWidget.cpp
Expand Up @@ -1712,6 +1712,7 @@ void LibraryTreeWidget::openFile(QString fileName, QString encoding, bool showPr
QMessageBox::information(mpMainWindow, QString(Helper::applicationName).append(" - ").append(Helper::information),
GUIMessages::getMessage(GUIMessages::FILE_NOT_FOUND).arg(fileName), Helper::ok);
QSettings settings(QSettings::IniFormat, QSettings::UserScope, Helper::organization, Helper::application);
settings.setIniCodec(Helper::utf8.toStdString().data());
QList<QVariant> files = settings.value("recentFilesList/files").toList();
// remove the RecentFile instance from the list.
foreach (QVariant file, files)
Expand Down
1 change: 1 addition & 0 deletions OMEdit/OMEditGUI/Modeling/ModelWidgetContainer.cpp
Expand Up @@ -1782,6 +1782,7 @@ void WelcomePageWidget::addRecentFilesListItems()
// remove list items first
mpRecentItemsList->clear();
QSettings settings(QSettings::IniFormat, QSettings::UserScope, Helper::organization, Helper::application);
settings.setIniCodec(Helper::utf8.toStdString().data());
QList<QVariant> files = settings.value("recentFilesList/files").toList();
int numRecentFiles = qMin(files.size(), (int)mpMainWindow->MaxRecentFiles);
for (int i = 0; i < numRecentFiles; ++i)
Expand Down
2 changes: 2 additions & 0 deletions OMEdit/OMEditGUI/Modeling/ModelicaClassDialog.cpp
Expand Up @@ -891,6 +891,7 @@ InformationDialog::InformationDialog(QString windowTitle, QString informationTex
if (mpMainWindow->getOptionsDialog()->getGeneralSettingsPage()->getPreserveUserCustomizations())
{
QSettings settings(QSettings::IniFormat, QSettings::UserScope, Helper::organization, Helper::application);
settings.setIniCodec(Helper::utf8.toStdString().data());
restoreGeometry(settings.value("InformationDialog/geometry").toByteArray());
}
}
Expand All @@ -901,6 +902,7 @@ void InformationDialog::closeEvent(QCloseEvent *event)
if (mpMainWindow->getOptionsDialog()->getGeneralSettingsPage()->getPreserveUserCustomizations())
{
QSettings settings(QSettings::IniFormat, QSettings::UserScope, Helper::organization, Helper::application);
settings.setIniCodec(Helper::utf8.toStdString().data());
settings.setValue("InformationDialog/geometry", saveGeometry());
}
event->accept();
Expand Down
3 changes: 3 additions & 0 deletions OMEdit/OMEditGUI/OMC/OMCProxy.cpp
Expand Up @@ -325,6 +325,7 @@ bool OMCProxy::startServer()
mObjectRefFile = objectRefFile.fileName();
// read the locale
QSettings settings(QSettings::IniFormat, QSettings::UserScope, Helper::organization, Helper::application);
settings.setIniCodec(Helper::utf8.toStdString().data());
QLocale settingsLocale = QLocale(settings.value("language").toString());
settingsLocale = settingsLocale.name() == "C" ? settings.value("language").toLocale() : settingsLocale;
// Start the omc.exe
Expand Down Expand Up @@ -811,6 +812,7 @@ QString OMCProxy::getEnvironmentVar(QString name)
void OMCProxy::loadSystemLibraries(QSplashScreen *pSplashScreen)
{
QSettings settings(QSettings::IniFormat, QSettings::UserScope, Helper::organization, Helper::application);
settings.setIniCodec(Helper::utf8.toStdString().data());
bool forceModelicaLoad = true;
if (settings.contains("forceModelicaLoad"))
forceModelicaLoad = settings.value("forceModelicaLoad").toBool();
Expand Down Expand Up @@ -850,6 +852,7 @@ void OMCProxy::loadSystemLibraries(QSplashScreen *pSplashScreen)
void OMCProxy::loadUserLibraries(QSplashScreen *pSplashScreen)
{
QSettings settings(QSettings::IniFormat, QSettings::UserScope, Helper::organization, Helper::application);
settings.setIniCodec(Helper::utf8.toStdString().data());
settings.beginGroup("userlibraries");
QStringList libraries = settings.childKeys();
foreach (QString lib, libraries)
Expand Down
6 changes: 6 additions & 0 deletions OMEdit/OMEditGUI/Options/NotificationsDialog.cpp
Expand Up @@ -237,6 +237,7 @@ QString NotificationsDialog::getNotificationCheckBoxString()
void NotificationsDialog::saveQuitNotificationSettings()
{
QSettings settings(QSettings::IniFormat, QSettings::UserScope, Helper::organization, Helper::application);
settings.setIniCodec(Helper::utf8.toStdString().data());
settings.setValue("notifications/promptQuitApplication", true);
}

Expand All @@ -247,6 +248,7 @@ void NotificationsDialog::saveQuitNotificationSettings()
void NotificationsDialog::saveItemDroppedOnItselfNotificationSettings()
{
QSettings settings(QSettings::IniFormat, QSettings::UserScope, Helper::organization, Helper::application);
settings.setIniCodec(Helper::utf8.toStdString().data());
settings.setValue("notifications/itemDroppedOnItself", false);
mpMainWindow->getOptionsDialog()->getNotificationsPage()->getItemDroppedOnItselfCheckBox()->setChecked(false);
}
Expand All @@ -258,6 +260,7 @@ void NotificationsDialog::saveItemDroppedOnItselfNotificationSettings()
void NotificationsDialog::saveReplaceableIfPartialNotificationSettings()
{
QSettings settings(QSettings::IniFormat, QSettings::UserScope, Helper::organization, Helper::application);
settings.setIniCodec(Helper::utf8.toStdString().data());
settings.setValue("notifications/replaceableIfPartial", false);
mpMainWindow->getOptionsDialog()->getNotificationsPage()->getReplaceableIfPartialCheckBox()->setChecked(false);
}
Expand All @@ -269,6 +272,7 @@ void NotificationsDialog::saveReplaceableIfPartialNotificationSettings()
void NotificationsDialog::saveInnerModelNameChangedNotificationSettings()
{
QSettings settings(QSettings::IniFormat, QSettings::UserScope, Helper::organization, Helper::application);
settings.setIniCodec(Helper::utf8.toStdString().data());
settings.setValue("notifications/innerModelNameChanged", false);
mpMainWindow->getOptionsDialog()->getNotificationsPage()->getInnerModelNameChangedCheckBox()->setChecked(false);
}
Expand All @@ -280,6 +284,7 @@ void NotificationsDialog::saveInnerModelNameChangedNotificationSettings()
void NotificationsDialog::saveModelForBitmapInsertionNotificationSettings()
{
QSettings settings(QSettings::IniFormat, QSettings::UserScope, Helper::organization, Helper::application);
settings.setIniCodec(Helper::utf8.toStdString().data());
settings.setValue("notifications/saveModelForBitmapInsertion", false);
mpMainWindow->getOptionsDialog()->getNotificationsPage()->getSaveModelForBitmapInsertionCheckBox()->setChecked(false);
}
Expand All @@ -290,6 +295,7 @@ void NotificationsDialog::saveModelForBitmapInsertionNotificationSettings()
void NotificationsDialog::saveReleaseInformationNotificationSettings()
{
QSettings settings(QSettings::IniFormat, QSettings::UserScope, Helper::organization, Helper::application);
settings.setIniCodec(Helper::utf8.toStdString().data());
settings.clear();
settings.setValue("notifications/releaseInformation", false);
}
Expand Down
42 changes: 25 additions & 17 deletions OMEdit/OMEditGUI/Options/OptionsDialog.cpp
Expand Up @@ -50,7 +50,7 @@ OptionsDialog::OptionsDialog(MainWindow *pParent)
setWindowTitle(QString(Helper::applicationName).append(" - ").append(Helper::options));
setModal(true);
mpMainWindow = pParent;
mSettings.setIniCodec(Helper::utf8.toLatin1().data());
mSettings.setIniCodec(Helper::utf8.toStdString().data());
mpGeneralSettingsPage = new GeneralSettingsPage(this);
mpLibrariesPage = new LibrariesPage(this);
mpModelicaTextSettings = new ModelicaTextSettings();
Expand Down Expand Up @@ -375,6 +375,10 @@ void OptionsDialog::readDebuggerSettings()
mpDebuggerPage->getDisplayCFramesCheckBox()->setChecked(mSettings.value("algorithmicDebugger/displayCFrames").toBool());
if (mSettings.contains("algorithmicDebugger/displayUnknownFrames"))
mpDebuggerPage->getDisplayUnknownFramesCheckBox()->setChecked(mSettings.value("algorithmicDebugger/displayUnknownFrames").toBool());
if (mSettings.contains("algorithmicDebugger/clearOutputOnNewRun"))
mpDebuggerPage->getClearOutputOnNewRunCheckBox()->setChecked(mSettings.value("algorithmicDebugger/clearOutputOnNewRun").toBool());
if (mSettings.contains("algorithmicDebugger/clearLogOnNewRun"))
mpDebuggerPage->getClearLogOnNewRunCheckBox()->setChecked(mSettings.value("algorithmicDebugger/clearLogOnNewRun").toBool());
if (mSettings.contains("transformationalDebugger/alwaysShowTransformationalDebugger"))
mpDebuggerPage->getAlwaysShowTransformationsCheckBox()->setChecked(mSettings.value("transformationalDebugger/alwaysShowTransformationalDebugger").toBool());
if (mSettings.contains("transformationalDebugger/generateOperations"))
Expand Down Expand Up @@ -600,15 +604,21 @@ void OptionsDialog::saveFigaroSettings()
*/
void OptionsDialog::saveDebuggerSettings()
{
mSettings.setValue("algorithmicDebugger/GDBPath", mpDebuggerPage->getGDBPath());
mSettings.value("algorithmicDebugger/GDBCommandTimeout", mpDebuggerPage->getGDBCommandTimeoutSpinBox()->value());
mSettings.setValue("algorithmicDebugger/displayCFrames", mpDebuggerPage->getDisplayCFramesCheckBox()->isChecked());
mSettings.setValue("algorithmicDebugger/displayUnknownFrames", mpDebuggerPage->getDisplayUnknownFramesCheckBox()->isChecked());
mSettings.beginGroup("algorithmicDebugger");
mSettings.setValue("GDBPath", mpDebuggerPage->getGDBPath());
mSettings.value("GDBCommandTimeout", mpDebuggerPage->getGDBCommandTimeoutSpinBox()->value());
mSettings.setValue("displayCFrames", mpDebuggerPage->getDisplayCFramesCheckBox()->isChecked());
mSettings.setValue("displayUnknownFrames", mpDebuggerPage->getDisplayUnknownFramesCheckBox()->isChecked());
mpMainWindow->getDebuggerMainWindow()->getStackFramesWidget()->getStackFramesTreeWidget()->updateStackFrames();
mSettings.setValue("transformationalDebugger/alwaysShowTransformationalDebugger", mpDebuggerPage->getAlwaysShowTransformationsCheckBox()->isChecked());
mSettings.setValue("transformationalDebugger/generateOperations", mpDebuggerPage->getGenerateOperationsCheckBox()->isChecked());
mSettings.setValue("clearOutputOnNewRun", mpDebuggerPage->getClearOutputOnNewRunCheckBox()->isChecked());
mSettings.setValue("clearLogOnNewRun", mpDebuggerPage->getClearLogOnNewRunCheckBox()->isChecked());
mSettings.endGroup();
mSettings.beginGroup("transformationalDebugger");
mSettings.setValue("alwaysShowTransformationalDebugger", mpDebuggerPage->getAlwaysShowTransformationsCheckBox()->isChecked());
mSettings.setValue("generateOperations", mpDebuggerPage->getGenerateOperationsCheckBox()->isChecked());
if (mpDebuggerPage->getGenerateOperationsCheckBox()->isChecked())
mpMainWindow->getOMCProxy()->setCommandLineOptions("+d=infoXmlOperations");
mSettings.endGroup();
}

//! Sets up the Options Widget dialog
Expand Down Expand Up @@ -2936,6 +2946,12 @@ DebuggerPage::DebuggerPage(OptionsDialog *pParent)
mpDisplayCFramesCheckBox = new QCheckBox(tr("Display C frames"));
// Display Unknown Frames
mpDisplayUnknownFramesCheckBox = new QCheckBox(tr("Display unknown frames"));
// clear output on new run
mpClearOutputOnNewRunCheckBox = new QCheckBox(tr("Clear old output on a new run"));
mpClearOutputOnNewRunCheckBox->setChecked(true);
// clear log on new run
mpClearLogOnNewRunCheckBox = new QCheckBox(tr("Clear old log on a new run"));
mpClearLogOnNewRunCheckBox->setChecked(true);
/* set the debugger group box layout */
QGridLayout *pDebuggerLayout = new QGridLayout;
pDebuggerLayout->setAlignment(Qt::AlignTop | Qt::AlignLeft);
Expand All @@ -2946,6 +2962,8 @@ DebuggerPage::DebuggerPage(OptionsDialog *pParent)
pDebuggerLayout->addWidget(mpGDBCommandTimeoutSpinBox, 1, 1, 1, 2);
pDebuggerLayout->addWidget(mpDisplayCFramesCheckBox, 2, 0, 1, 2);
pDebuggerLayout->addWidget(mpDisplayUnknownFramesCheckBox, 3, 0, 1, 2);
pDebuggerLayout->addWidget(mpClearOutputOnNewRunCheckBox, 4, 0, 1, 2);
pDebuggerLayout->addWidget(mpClearLogOnNewRunCheckBox, 5, 0, 1, 2);
mpAlgorithmicDebuggerGroupBox->setLayout(pDebuggerLayout);
/* Transformational Debugger */
mpTransformationalDebuggerGroupBox = new QGroupBox(Helper::transformationalDebugger);
Expand Down Expand Up @@ -2979,16 +2997,6 @@ QString DebuggerPage::getGDBPath()
return mpGDBPathTextBox->text();
}

QCheckBox* DebuggerPage::getDisplayCFramesCheckBox()
{
return mpDisplayCFramesCheckBox;
}

QCheckBox* DebuggerPage::getDisplayUnknownFramesCheckBox()
{
return mpDisplayUnknownFramesCheckBox;
}

void DebuggerPage::browseGDBPath()
{
QString GDBPath = StringHandler::getOpenFileName(this, QString(Helper::applicationName).append(" - ").append(Helper::chooseFile),
Expand Down
8 changes: 6 additions & 2 deletions OMEdit/OMEditGUI/Options/OptionsDialog.h
Expand Up @@ -592,8 +592,10 @@ class DebuggerPage : public QWidget
void setGDBPath(QString path);
QString getGDBPath();
QSpinBox* getGDBCommandTimeoutSpinBox() {return mpGDBCommandTimeoutSpinBox;}
QCheckBox* getDisplayCFramesCheckBox();
QCheckBox* getDisplayUnknownFramesCheckBox();
QCheckBox* getDisplayCFramesCheckBox() {return mpDisplayCFramesCheckBox;}
QCheckBox* getDisplayUnknownFramesCheckBox() {return mpDisplayUnknownFramesCheckBox;}
QCheckBox* getClearOutputOnNewRunCheckBox() {return mpClearOutputOnNewRunCheckBox;}
QCheckBox* getClearLogOnNewRunCheckBox() {return mpClearLogOnNewRunCheckBox;}
QCheckBox* getAlwaysShowTransformationsCheckBox() {return mpAlwaysShowTransformationsCheckBox;}
QCheckBox* getGenerateOperationsCheckBox() {return mpGenerateOperationsCheckBox;}
private:
Expand All @@ -606,6 +608,8 @@ class DebuggerPage : public QWidget
QSpinBox *mpGDBCommandTimeoutSpinBox;
QCheckBox *mpDisplayCFramesCheckBox;
QCheckBox *mpDisplayUnknownFramesCheckBox;
QCheckBox *mpClearOutputOnNewRunCheckBox;
QCheckBox *mpClearLogOnNewRunCheckBox;
QGroupBox *mpTransformationalDebuggerGroupBox;
QCheckBox *mpAlwaysShowTransformationsCheckBox;
QCheckBox *mpGenerateOperationsCheckBox;
Expand Down
Expand Up @@ -738,6 +738,7 @@ TransformationsWidget::TransformationsWidget(QString infoXMLFullFileName, MainWi
setLayout(pMainLayout);
/* restore the TransformationsWidget geometry and splitters state. */
QSettings settings(QSettings::IniFormat, QSettings::UserScope, Helper::organization, Helper::application);
settings.setIniCodec(Helper::utf8.toStdString().data());
if (mpMainWindow->getOptionsDialog()->getGeneralSettingsPage()->getPreserveUserCustomizations())
{
settings.beginGroup("transformationalDebugger");
Expand Down
1 change: 1 addition & 0 deletions OMEdit/OMEditGUI/main.cpp
Expand Up @@ -242,6 +242,7 @@ int main(int argc, char *argv[])
omhome = omhome ? omhome : CONFIG_DEFAULT_OPENMODELICAHOME;
#endif
QSettings settings(QSettings::IniFormat, QSettings::UserScope, Helper::organization, Helper::application);
settings.setIniCodec(Helper::utf8.toStdString().data());
QLocale settingsLocale = QLocale(settings.value("language").toString());
settingsLocale = settingsLocale.name() == "C" ? settings.value("language").toLocale() : settingsLocale;
QString locale = settingsLocale.name().isEmpty() ? QLocale::system().name() : settingsLocale.name();
Expand Down

0 comments on commit f0d5948

Please sign in to comment.