Commit c395680e authored by dt's avatar dt
Browse files

Merge branch 'master' of git@scm.dev.nokia.troll.no:creator/mainline

Conflicts:
	src/plugins/debugger/gdbengine.cpp
parents e8d990e7 c0b13863
...@@ -700,7 +700,7 @@ ...@@ -700,7 +700,7 @@
\section1 Usage \section1 Usage
You can find the version control menu entires in a sub-menu of the You can find the version control menu entries in a sub-menu of the
\gui{Tools} menu. The version control system displayed here is the system \gui{Tools} menu. The version control system displayed here is the system
that manages the current project. that manages the current project.
......
...@@ -114,8 +114,6 @@ public: ...@@ -114,8 +114,6 @@ public:
QObject *instance(); QObject *instance();
static QObjectList staticInstances();
bool load(); bool load();
bool unload(); bool unload();
bool isLoaded() const; bool isLoaded() const;
...@@ -831,9 +829,6 @@ QString PatchedPluginLoader::errorString() const ...@@ -831,9 +829,6 @@ QString PatchedPluginLoader::errorString() const
return (!d || d->errorString.isEmpty()) ? QLibrary::tr("Unknown error") : d->errorString; return (!d || d->errorString.isEmpty()) ? QLibrary::tr("Unknown error") : d->errorString;
} }
typedef QList<QtPluginInstanceFunction> StaticInstanceFunctionList;
Q_GLOBAL_STATIC(StaticInstanceFunctionList, staticInstanceFunctionList)
void PatchedPluginLoader::setLoadHints(QLibrary::LoadHints loadHints) void PatchedPluginLoader::setLoadHints(QLibrary::LoadHints loadHints)
{ {
if (!d) { if (!d) {
...@@ -853,24 +848,6 @@ QLibrary::LoadHints PatchedPluginLoader::loadHints() const ...@@ -853,24 +848,6 @@ QLibrary::LoadHints PatchedPluginLoader::loadHints() const
return d->loadHints; return d->loadHints;
} }
void qRegisterStaticPluginInstanceFunction(QtPluginInstanceFunction function)
{
staticInstanceFunctionList()->append(function);
}
QObjectList PatchedPluginLoader::staticInstances()
{
QObjectList instances;
StaticInstanceFunctionList *functions = staticInstanceFunctionList();
if (functions) {
for (int i = 0; i < functions->count(); ++i)
instances.append((*functions)[i]());
}
return instances;
}
......
...@@ -628,6 +628,7 @@ QList<IFile *> EditorManager::filesForEditors(QList<IEditor *> editors) const ...@@ -628,6 +628,7 @@ QList<IFile *> EditorManager::filesForEditors(QList<IEditor *> editors) const
bool EditorManager::closeAllEditors(bool askAboutModifiedEditors) bool EditorManager::closeAllEditors(bool askAboutModifiedEditors)
{ {
m_d->m_editorModel->removeAllRestoredEditors();
return closeEditors(openedEditors(), askAboutModifiedEditors); return closeEditors(openedEditors(), askAboutModifiedEditors);
} }
......
...@@ -181,6 +181,17 @@ void EditorModel::removeEditor(IEditor *editor) ...@@ -181,6 +181,17 @@ void EditorModel::removeEditor(IEditor *editor)
disconnect(editor, SIGNAL(changed()), this, SLOT(itemChanged())); disconnect(editor, SIGNAL(changed()), this, SLOT(itemChanged()));
} }
void EditorModel::removeAllRestoredEditors()
{
for (int i = m_editors.count()-1; i >= 0; --i) {
if (!m_editors.at(i).editor) {
beginRemoveRows(QModelIndex(), i, i);
m_editors.removeAt(i);
endRemoveRows();
}
}
}
bool EditorModel::isDuplicate(IEditor *editor) const bool EditorModel::isDuplicate(IEditor *editor) const
{ {
return m_duplicateEditors.contains(editor); return m_duplicateEditors.contains(editor);
......
...@@ -86,6 +86,7 @@ public: ...@@ -86,6 +86,7 @@ public:
QList<Entry> entries() const { return m_editors; } QList<Entry> entries() const { return m_editors; }
void removeEditor(IEditor *editor); void removeEditor(IEditor *editor);
void removeAllRestoredEditors();
void emitDataChanged(IEditor *editor); void emitDataChanged(IEditor *editor);
QList<IEditor *> editors() const; QList<IEditor *> editors() const;
......
...@@ -1138,13 +1138,12 @@ void MainWindow::aboutToShowRecentFiles() ...@@ -1138,13 +1138,12 @@ void MainWindow::aboutToShowRecentFiles()
ActionContainer *aci = ActionContainer *aci =
m_actionManager->actionContainer(Constants::M_FILE_RECENTFILES); m_actionManager->actionContainer(Constants::M_FILE_RECENTFILES);
aci->menu()->clear(); aci->menu()->clear();
m_recentFilesActions.clear();
bool hasRecentFiles = false; bool hasRecentFiles = false;
foreach (QString s, m_fileManager->recentFiles()) { foreach (const QString &fileName, m_fileManager->recentFiles()) {
hasRecentFiles = true; hasRecentFiles = true;
QAction *action = aci->menu()->addAction(s); QAction *action = aci->menu()->addAction(fileName);
m_recentFilesActions.insert(action, s); action->setData(fileName);
connect(action, SIGNAL(triggered()), this, SLOT(openRecentFile())); connect(action, SIGNAL(triggered()), this, SLOT(openRecentFile()));
} }
aci->menu()->setEnabled(hasRecentFiles); aci->menu()->setEnabled(hasRecentFiles);
...@@ -1152,9 +1151,12 @@ void MainWindow::aboutToShowRecentFiles() ...@@ -1152,9 +1151,12 @@ void MainWindow::aboutToShowRecentFiles()
void MainWindow::openRecentFile() void MainWindow::openRecentFile()
{ {
QAction *a = qobject_cast<QAction*>(sender()); QAction *action = qobject_cast<QAction*>(sender());
if (m_recentFilesActions.contains(a)) { if (!action)
editorManager()->openEditor(m_recentFilesActions.value(a)); return;
QString fileName = action->data().toString();
if (!fileName.isEmpty()) {
editorManager()->openEditor(fileName);
editorManager()->ensureEditorManagerVisible(); editorManager()->ensureEditorManagerVisible();
} }
} }
......
...@@ -191,8 +191,6 @@ private: ...@@ -191,8 +191,6 @@ private:
GeneralSettings *m_generalSettings; GeneralSettings *m_generalSettings;
ShortcutSettings *m_shortcutSettings; ShortcutSettings *m_shortcutSettings;
QMap<QAction*, QString> m_recentFilesActions;
// actions // actions
QShortcut *m_focusToEditor; QShortcut *m_focusToEditor;
QAction *m_newAction; QAction *m_newAction;
......
...@@ -534,7 +534,7 @@ void BreakHandler::loadSessionData() ...@@ -534,7 +534,7 @@ void BreakHandler::loadSessionData()
updateMarkers(); updateMarkers();
} }
void BreakHandler::activateBreakPoint(int index) void BreakHandler::activateBreakpoint(int index)
{ {
const BreakpointData *data = at(index); const BreakpointData *data = at(index);
//qDebug() << "BREAKPOINT ACTIVATED: " << data->fileName; //qDebug() << "BREAKPOINT ACTIVATED: " << data->fileName;
......
...@@ -134,7 +134,7 @@ public: ...@@ -134,7 +134,7 @@ public:
public slots: public slots:
void setBreakpoint(const QString &fileName, int lineNumber); void setBreakpoint(const QString &fileName, int lineNumber);
void breakByFunction(const QString &functionName); void breakByFunction(const QString &functionName);
void activateBreakPoint(int index); void activateBreakpoint(int index);
void removeBreakpoint(int index); void removeBreakpoint(int index);
signals: signals:
......
...@@ -85,18 +85,23 @@ void BreakWindow::contextMenuEvent(QContextMenuEvent *ev) ...@@ -85,18 +85,23 @@ void BreakWindow::contextMenuEvent(QContextMenuEvent *ev)
QMenu menu; QMenu menu;
QModelIndex index = indexAt(ev->pos()); QModelIndex index = indexAt(ev->pos());
QAction *act0 = new QAction("Delete breakpoint", &menu); QAction *act0 = new QAction("Delete breakpoint", &menu);
act0->setEnabled(index.isValid());
QAction *act1 = new QAction("Adjust column widths to contents", &menu); QAction *act1 = new QAction("Adjust column widths to contents", &menu);
QAction *act2 = new QAction("Always adjust column widths to contents", &menu); QAction *act2 = new QAction("Always adjust column widths to contents", &menu);
QAction *act3 = new QAction("Edit condition...", &menu);
act2->setCheckable(true); act2->setCheckable(true);
act2->setChecked(m_alwaysResizeColumnsToContents); act2->setChecked(m_alwaysResizeColumnsToContents);
if (index.isValid()) { QAction *act3 = new QAction("Edit condition...", &menu);
menu.addAction(act0); act0->setEnabled(index.isValid());
menu.addAction(act3); QAction *act4 = new QAction("Syncronize breakpoints", &menu);
menu.addSeparator(); QAction *act5 = new QAction("Debugger properties...", &menu);
}
menu.addAction(act0);
menu.addAction(act3);
menu.addSeparator();
menu.addAction(act1); menu.addAction(act1);
menu.addAction(act2); menu.addAction(act2);
menu.addAction(act4);
menu.addAction(act5);
QAction *act = menu.exec(ev->globalPos()); QAction *act = menu.exec(ev->globalPos());
...@@ -108,6 +113,10 @@ void BreakWindow::contextMenuEvent(QContextMenuEvent *ev) ...@@ -108,6 +113,10 @@ void BreakWindow::contextMenuEvent(QContextMenuEvent *ev)
setAlwaysResizeColumnsToContents(!m_alwaysResizeColumnsToContents); setAlwaysResizeColumnsToContents(!m_alwaysResizeColumnsToContents);
else if (act == act3) else if (act == act3)
editCondition(index); editCondition(index);
else if (act == act4)
emit breakpointSynchronizationRequested();
else if (act == act5)
emit settingsDialogRequested();
} }
void BreakWindow::deleteBreakpoint(const QModelIndex &idx) void BreakWindow::deleteBreakpoint(const QModelIndex &idx)
...@@ -116,7 +125,7 @@ void BreakWindow::deleteBreakpoint(const QModelIndex &idx) ...@@ -116,7 +125,7 @@ void BreakWindow::deleteBreakpoint(const QModelIndex &idx)
if (row == model()->rowCount() - 1) if (row == model()->rowCount() - 1)
--row; --row;
setCurrentIndex(idx.sibling(row, 0)); setCurrentIndex(idx.sibling(row, 0));
emit breakPointDeleted(idx.row()); emit breakpointDeleted(idx.row());
} }
void BreakWindow::editCondition(const QModelIndex &idx) void BreakWindow::editCondition(const QModelIndex &idx)
...@@ -158,6 +167,6 @@ void BreakWindow::setAlwaysResizeColumnsToContents(bool on) ...@@ -158,6 +167,6 @@ void BreakWindow::setAlwaysResizeColumnsToContents(bool on)
void BreakWindow::rowActivated(const QModelIndex &index) void BreakWindow::rowActivated(const QModelIndex &index)
{ {
emit breakPointActivated(index.row()); emit breakpointActivated(index.row());
} }
...@@ -47,8 +47,10 @@ public slots: ...@@ -47,8 +47,10 @@ public slots:
void setAlwaysResizeColumnsToContents(bool on); void setAlwaysResizeColumnsToContents(bool on);
signals: signals:
void breakPointDeleted(int index); void breakpointDeleted(int index);
void breakPointActivated(int index); void breakpointActivated(int index);
void breakpointSynchronizationRequested();
void settingsDialogRequested();
private slots: private slots:
void rowActivated(const QModelIndex &index); void rowActivated(const QModelIndex &index);
......
...@@ -60,6 +60,7 @@ ...@@ -60,6 +60,7 @@
#include <QtCore/QDebug> #include <QtCore/QDebug>
#include <QtCore/QDir> #include <QtCore/QDir>
#include <QtCore/QFileInfo> #include <QtCore/QFileInfo>
#include <QtCore/QTextStream>
#include <QtCore/QTime> #include <QtCore/QTime>
#include <QtCore/QTimer> #include <QtCore/QTimer>
...@@ -94,6 +95,30 @@ DebuggerSettings::DebuggerSettings() ...@@ -94,6 +95,30 @@ DebuggerSettings::DebuggerSettings()
m_debugDumpers = false; m_debugDumpers = false;
m_useToolTips = false; m_useToolTips = false;
m_useCustomDumpers = true; m_useCustomDumpers = true;
m_listSourceFiles = false;
}
QString DebuggerSettings::dump()
{
QString out;
QTextStream ts(&out);
ts << "Debugger settings: "
<< " gdbCmd: " << m_gdbCmd
<< " gdbEnv: " << m_gdbEnv
<< " autoRun: " << m_autoRun
<< " autoQuit: " << m_autoQuit
<< " useCustomDumpers: " << m_useCustomDumpers
<< " skipKnownFrames: " << m_skipKnownFrames
<< " debugDumpers: " << m_debugDumpers
<< " useToolTips: " << m_useToolTips
<< " listSourceFiles: " << m_listSourceFiles
<< " scriptFile: " << m_scriptFile
<< " pluginAllBreakpoints: " << m_pluginAllBreakpoints
<< " pluginSelectedBreakpoints: " << m_pluginSelectedBreakpoints
<< " pluginNoBreakpoints: " << m_pluginNoBreakpoints
<< " pluginSelectedBreakpointsPattern: " << m_pluginSelectedBreakpointsPattern;
return out;
} }
/////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////
...@@ -209,10 +234,14 @@ void DebuggerManager::init() ...@@ -209,10 +234,14 @@ void DebuggerManager::init()
QAbstractItemView *breakView = QAbstractItemView *breakView =
qobject_cast<QAbstractItemView *>(m_breakWindow); qobject_cast<QAbstractItemView *>(m_breakWindow);
breakView->setModel(m_breakHandler->model()); breakView->setModel(m_breakHandler->model());
connect(breakView, SIGNAL(breakPointActivated(int)), connect(breakView, SIGNAL(breakpointActivated(int)),
m_breakHandler, SLOT(activateBreakPoint(int))); m_breakHandler, SLOT(activateBreakpoint(int)));
connect(breakView, SIGNAL(breakPointDeleted(int)), connect(breakView, SIGNAL(breakpointDeleted(int)),
m_breakHandler, SLOT(removeBreakpoint(int))); m_breakHandler, SLOT(removeBreakpoint(int)));
connect(breakView, SIGNAL(settingsDialogRequested()),
this, SIGNAL(settingsDialogRequested()));
connect(breakView, SIGNAL(breakpointSynchronizationRequested()),
this, SLOT(attemptBreakpointSynchronization()));
connect(m_breakHandler, SIGNAL(gotoLocation(QString,int,bool)), connect(m_breakHandler, SIGNAL(gotoLocation(QString,int,bool)),
this, SLOT(gotoLocation(QString,int,bool))); this, SLOT(gotoLocation(QString,int,bool)));
connect(m_breakHandler, SIGNAL(sessionValueRequested(QString,QVariant*)), connect(m_breakHandler, SIGNAL(sessionValueRequested(QString,QVariant*)),
...@@ -231,6 +260,8 @@ void DebuggerManager::init() ...@@ -231,6 +260,8 @@ void DebuggerManager::init()
this, SLOT(loadSymbols(QString))); this, SLOT(loadSymbols(QString)));
connect(modulesView, SIGNAL(loadAllSymbolsRequested()), connect(modulesView, SIGNAL(loadAllSymbolsRequested()),
this, SLOT(loadAllSymbols())); this, SLOT(loadAllSymbols()));
connect(modulesView, SIGNAL(fileOpenRequested(QString)),
this, SLOT(fileOpen(QString)));
// Source Files // Source Files
//m_sourceFilesHandler = new SourceFilesHandler; //m_sourceFilesHandler = new SourceFilesHandler;
...@@ -239,6 +270,8 @@ void DebuggerManager::init() ...@@ -239,6 +270,8 @@ void DebuggerManager::init()
//sourceFileView->setModel(m_stackHandler->stackModel()); //sourceFileView->setModel(m_stackHandler->stackModel());
connect(sourceFilesView, SIGNAL(reloadSourceFilesRequested()), connect(sourceFilesView, SIGNAL(reloadSourceFilesRequested()),
this, SLOT(reloadSourceFiles())); this, SLOT(reloadSourceFiles()));
connect(sourceFilesView, SIGNAL(fileOpenRequested(QString)),
this, SLOT(fileOpen(QString)));
// Registers // Registers
QAbstractItemView *registerView = QAbstractItemView *registerView =
...@@ -635,6 +668,7 @@ void DebuggerManager::shutdown() ...@@ -635,6 +668,7 @@ void DebuggerManager::shutdown()
delete m_outputWindow; delete m_outputWindow;
delete m_registerWindow; delete m_registerWindow;
delete m_stackWindow; delete m_stackWindow;
delete m_sourceFilesWindow;
delete m_threadsWindow; delete m_threadsWindow;
delete m_tooltipWindow; delete m_tooltipWindow;
delete m_watchersWindow; delete m_watchersWindow;
...@@ -646,6 +680,7 @@ void DebuggerManager::shutdown() ...@@ -646,6 +680,7 @@ void DebuggerManager::shutdown()
m_outputWindow = 0; m_outputWindow = 0;
m_registerWindow = 0; m_registerWindow = 0;
m_stackWindow = 0; m_stackWindow = 0;
m_sourceFilesWindow = 0;
m_threadsWindow = 0; m_threadsWindow = 0;
m_tooltipWindow = 0; m_tooltipWindow = 0;
m_watchersWindow = 0; m_watchersWindow = 0;
...@@ -701,6 +736,11 @@ void DebuggerManager::toggleBreakpoint(const QString &fileName, int lineNumber) ...@@ -701,6 +736,11 @@ void DebuggerManager::toggleBreakpoint(const QString &fileName, int lineNumber)
m_engine->attemptBreakpointSynchronization(); m_engine->attemptBreakpointSynchronization();
} }
void DebuggerManager::attemptBreakpointSynchronization()
{
m_engine->attemptBreakpointSynchronization();
}
void DebuggerManager::setToolTipExpression(const QPoint &pos, const QString &exp) void DebuggerManager::setToolTipExpression(const QPoint &pos, const QString &exp)
{ {
QTC_ASSERT(m_engine, return); QTC_ASSERT(m_engine, return);
...@@ -960,6 +1000,7 @@ void DebuggerManager::cleanupViews() ...@@ -960,6 +1000,7 @@ void DebuggerManager::cleanupViews()
disassemblerHandler()->removeAll(); disassemblerHandler()->removeAll();
modulesHandler()->removeAll(); modulesHandler()->removeAll();
watchHandler()->cleanup(); watchHandler()->cleanup();
m_sourceFilesWindow->removeAll();
} }
void DebuggerManager::exitDebugger() void DebuggerManager::exitDebugger()
...@@ -1215,6 +1256,7 @@ void DebuggerManager::setBusyCursor(bool busy) ...@@ -1215,6 +1256,7 @@ void DebuggerManager::setBusyCursor(bool busy)
m_outputWindow->setCursor(cursor); m_outputWindow->setCursor(cursor);
m_registerWindow->setCursor(cursor); m_registerWindow->setCursor(cursor);
m_stackWindow->setCursor(cursor); m_stackWindow->setCursor(cursor);
m_sourceFilesWindow->setCursor(cursor);
m_threadsWindow->setCursor(cursor); m_threadsWindow->setCursor(cursor);
m_tooltipWindow->setCursor(cursor); m_tooltipWindow->setCursor(cursor);
m_watchersWindow->setCursor(cursor); m_watchersWindow->setCursor(cursor);
...@@ -1352,6 +1394,13 @@ void DebuggerManager::gotoLocation(const QString &fileName, int line, ...@@ -1352,6 +1394,13 @@ void DebuggerManager::gotoLocation(const QString &fileName, int line,
emit gotoLocationRequested(fileName, line, setMarker); emit gotoLocationRequested(fileName, line, setMarker);
} }
void DebuggerManager::fileOpen(const QString &fileName)
{
// connected to the plugin
emit gotoLocationRequested(fileName, 1, false);
}
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
// //
......
...@@ -164,6 +164,7 @@ private: ...@@ -164,6 +164,7 @@ private:
virtual bool debugDumpers() const = 0; virtual bool debugDumpers() const = 0;
virtual bool useCustomDumpers() const = 0; virtual bool useCustomDumpers() const = 0;
virtual bool wantsSourceFileList() const = 0;
virtual bool wantsAllPluginBreakpoints() const = 0; virtual bool wantsAllPluginBreakpoints() const = 0;
virtual bool wantsSelectedPluginBreakpoints() const = 0; virtual bool wantsSelectedPluginBreakpoints() const = 0;
virtual bool wantsNoPluginBreakpoints() const = 0; virtual bool wantsNoPluginBreakpoints() const = 0;
...@@ -184,6 +185,7 @@ class DebuggerSettings ...@@ -184,6 +185,7 @@ class DebuggerSettings
{ {
public: public:
DebuggerSettings(); DebuggerSettings();
QString dump();
public: public:
QString m_gdbCmd; QString m_gdbCmd;
...@@ -194,8 +196,8 @@ public: ...@@ -194,8 +196,8 @@ public:
bool m_useCustomDumpers; bool m_useCustomDumpers;
bool m_skipKnownFrames; bool m_skipKnownFrames;
bool m_debugDumpers; bool m_debugDumpers;
bool m_useFastStart;
bool m_useToolTips; bool m_useToolTips;
bool m_listSourceFiles;
QString m_scriptFile; QString m_scriptFile;
...@@ -243,6 +245,7 @@ public slots: ...@@ -243,6 +245,7 @@ public slots:
QVariant sessionValue(const QString &name); QVariant sessionValue(const QString &name);
void gotoLocation(const QString &file, int line, bool setLocationMarker); void gotoLocation(const QString &file, int line, bool setLocationMarker);
void fileOpen(const QString &file);
void resetLocation(); void resetLocation();
void interruptDebuggingRequest(); void interruptDebuggingRequest();
...@@ -307,6 +310,7 @@ private slots: ...@@ -307,6 +310,7 @@ private slots:
void registerDockToggled(bool on); void registerDockToggled(bool on);
void setStatus(int status); void setStatus(int status);
void clearStatusMessage(); void clearStatusMessage();
void attemptBreakpointSynchronization();
private: private:
// //
...@@ -324,6 +328,8 @@ private: ...@@ -324,6 +328,8 @@ private:
bool skipKnownFrames() const; bool skipKnownFrames() const;
bool debugDumpers() const; bool debugDumpers() const;
bool useCustomDumpers() const; bool useCustomDumpers() const;
bool wantsSourceFileList() const
{ return m_settings.m_listSourceFiles; }
bool wantsAllPluginBreakpoints() const bool wantsAllPluginBreakpoints() const
{ return m_settings.m_pluginAllBreakpoints; } { return m_settings.m_pluginAllBreakpoints; }
bool wantsSelectedPluginBreakpoints() const bool wantsSelectedPluginBreakpoints() const
......
...@@ -283,6 +283,7 @@ QWidget *GdbOptionPage::createPage(QWidget *parent) ...@@ -283,6 +283,7 @@ QWidget *GdbOptionPage::createPage(QWidget *parent)
m_ui.lineEditSelectedPluginBreakpointsPattern-> m_ui.lineEditSelectedPluginBreakpointsPattern->
setEnabled(m_settings.m_pluginSelectedBreakpoints); setEnabled(m_settings.m_pluginSelectedBreakpoints);
m_ui.checkBoxListSourceFiles->setChecked(m_settings.m_listSourceFiles);
m_ui.checkBoxSkipKnownFrames->setChecked(m_settings.m_skipKnownFrames); m_ui.checkBoxSkipKnownFrames->setChecked(m_settings.m_skipKnownFrames);
m_ui.checkBoxDebugDumpers->setChecked(m_settings.m_debugDumpers); m_ui.checkBoxDebugDumpers->setChecked(m_settings.m_debugDumpers);
m_ui.checkBoxUseCustomDumpers->setChecked(m_settings.m_useCustomDumpers); m_ui.checkBoxUseCustomDumpers->setChecked(m_settings.m_useCustomDumpers);
...@@ -321,6 +322,7 @@ void GdbOptionPage::apply() ...@@ -321,6 +322,7 @@ void GdbOptionPage::apply()
m_settings.m_scriptFile = m_ui.scriptFileChooser->path(); m_settings.m_scriptFile = m_ui.scriptFileChooser->path();
m_settings.m_skipKnownFrames = m_ui.checkBoxSkipKnownFrames->isChecked(); m_settings.m_skipKnownFrames = m_ui.checkBoxSkipKnownFrames->isChecked();
m_settings.m_listSourceFiles = m_ui.checkBoxListSourceFiles->isChecked();
m_settings.m_debugDumpers = m_ui.checkBoxDebugDumpers->isChecked(); m_settings.m_debugDumpers = m_ui.checkBoxDebugDumpers->isChecked();
m_settings.m_useCustomDumpers = m_ui.checkBoxUseCustomDumpers->isChecked();