forked from qt-creator/qt-creator
debugger: use common baseclass for all dock treeviews
Reduces amount of boilerplate code. Change-Id: I048d901b4b80860df05f09b48650ea58b83fbc66 Reviewed-on: http://codereview.qt-project.org/5864 Reviewed-by: hjk <qthjk@ovi.com>
This commit is contained in:
@@ -58,23 +58,13 @@ namespace Debugger {
|
||||
namespace Internal {
|
||||
|
||||
ModulesWindow::ModulesWindow(QWidget *parent)
|
||||
: QTreeView(parent)
|
||||
: BaseWindow(parent)
|
||||
{
|
||||
QAction *act = debuggerCore()->action(UseAlternatingRowColors);
|
||||
setWindowTitle(tr("Modules"));
|
||||
setAttribute(Qt::WA_MacShowFocusRect, false);
|
||||
setSortingEnabled(true);
|
||||
setAlternatingRowColors(act->isChecked());
|
||||
setRootIsDecorated(false);
|
||||
setIconSize(QSize(10, 10));
|
||||
setAlwaysAdjustColumnsAction(debuggerCore()->action(AlwaysAdjustModulesColumnWidths));
|
||||
|
||||
connect(this, SIGNAL(activated(QModelIndex)),
|
||||
SLOT(moduleActivated(QModelIndex)));
|
||||
connect(act, SIGNAL(toggled(bool)),
|
||||
SLOT(setAlternatingRowColorsHelper(bool)));
|
||||
connect(debuggerCore()->action(AlwaysAdjustModulesColumnWidths),
|
||||
SIGNAL(toggled(bool)),
|
||||
SLOT(setAlwaysResizeColumnsToContents(bool)));
|
||||
}
|
||||
|
||||
void ModulesWindow::moduleActivated(const QModelIndex &index)
|
||||
@@ -163,19 +153,12 @@ void ModulesWindow::contextMenuEvent(QContextMenuEvent *ev)
|
||||
menu.addAction(actLoadSymbolsForModule);
|
||||
menu.addAction(actEditFile);
|
||||
menu.addAction(actShowModuleSymbols);
|
||||
menu.addSeparator();
|
||||
QAction *actAdjustColumnWidths =
|
||||
menu.addAction(tr("Adjust Column Widths to Contents"));
|
||||
menu.addAction(debuggerCore()->action(AlwaysAdjustModulesColumnWidths));
|
||||
menu.addSeparator();
|
||||
menu.addAction(debuggerCore()->action(SettingsDialog));
|
||||
addBaseContextActions(&menu);
|
||||
|
||||
QAction *act = menu.exec(ev->globalPos());
|
||||
|
||||
if (act == actUpdateModuleList)
|
||||
engine->reloadModules();
|
||||
else if (act == actAdjustColumnWidths)
|
||||
resizeColumnsToContents();
|
||||
else if (act == actShowModuleSources)
|
||||
engine->loadSymbols(name);
|
||||
else if (act == actLoadSymbolsForAllModules)
|
||||
@@ -190,35 +173,8 @@ void ModulesWindow::contextMenuEvent(QContextMenuEvent *ev)
|
||||
engine->requestModuleSymbols(name);
|
||||
else if (actShowDependencies && act == actShowDependencies)
|
||||
QProcess::startDetached(QLatin1String("depends"), QStringList(fileName));
|
||||
}
|
||||
|
||||
void ModulesWindow::resizeColumnsToContents()
|
||||
{
|
||||
resizeColumnToContents(0);
|
||||
resizeColumnToContents(1);
|
||||
resizeColumnToContents(2);
|
||||
resizeColumnToContents(3);
|
||||
}
|
||||
|
||||
void ModulesWindow::setAlwaysResizeColumnsToContents(bool on)
|
||||
{
|
||||
QHeaderView::ResizeMode mode = on
|
||||
? QHeaderView::ResizeToContents : QHeaderView::Interactive;
|
||||
header()->setResizeMode(0, mode);
|
||||
header()->setResizeMode(1, mode);
|
||||
header()->setResizeMode(2, mode);
|
||||
header()->setResizeMode(3, mode);
|
||||
header()->setResizeMode(4, mode);
|
||||
//setColumnHidden(3, true);
|
||||
}
|
||||
|
||||
void ModulesWindow::setModel(QAbstractItemModel *model)
|
||||
{
|
||||
QTreeView::setModel(model);
|
||||
if (header()) {
|
||||
bool adjust = debuggerCore()->boolSetting(AlwaysAdjustModulesColumnWidths);
|
||||
setAlwaysResizeColumnsToContents(adjust);
|
||||
}
|
||||
else
|
||||
handleBaseContextAction(act);
|
||||
}
|
||||
|
||||
} // namespace Internal
|
||||
|
||||
Reference in New Issue
Block a user