Debugger: More column resizing

Turns out setting the column resize mode on the view itself
is counter-productive as it takes away the ability to
manually re-adjust.

So set the mode only temporarily to get the preferred width
than switch back to manually resize mode and use the hint
to set some initial size. Also use the length of the header
label as absolute minimum.

Change-Id: Ic17e31334b23ce6d541f9459cd22be65145046d3
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
This commit is contained in:
hjk
2014-06-03 11:34:52 +02:00
parent ac930e4ff0
commit 8694ad982d
17 changed files with 102 additions and 179 deletions

View File

@@ -50,11 +50,16 @@ BaseTreeView::BaseTreeView(QWidget *parent)
setAlternatingRowColors(act->isChecked());
connect(act, SIGNAL(toggled(bool)),
SLOT(setAlternatingRowColorsHelper(bool)));
act = debuggerCore()->action(AlwaysAdjustColumnWidths);
setAlwaysAdjustColumns(act->isChecked());
connect(act, SIGNAL(toggled(bool)),
SLOT(setAlwaysAdjustColumns(bool)));
}
void BaseTreeView::addBaseContextActions(QMenu *menu)
{
Utils::BaseTreeView::addBaseContextActions(menu);
menu->addSeparator();
menu->addAction(debuggerCore()->action(SettingsDialog));
}

View File

@@ -679,7 +679,6 @@ BreakTreeView::BreakTreeView(QWidget *parent)
{
setWindowIcon(QIcon(QLatin1String(":/debugger/images/debugger_breakpoints.png")));
setSelectionMode(QAbstractItemView::ExtendedSelection);
setAlwaysAdjustColumnsAction(debuggerCore()->action(AlwaysAdjustBreakpointsColumnWidths));
connect(debuggerCore()->action(UseAddressInBreakpointsView),
SIGNAL(toggled(bool)), SLOT(showAddressColumn(bool)));
}
@@ -844,7 +843,7 @@ void BreakTreeView::contextMenuEvent(QContextMenuEvent *ev)
else if (act == deleteByFileAction)
deleteBreakpoints(breakpointsInFile);
else if (act == adjustColumnAction)
resizeColumnsToContents();
resizeColumns();
else if (act == editBreakpointAction)
editBreakpoints(selectedIds);
else if (act == associateBreakpointAction)
@@ -855,8 +854,6 @@ void BreakTreeView::contextMenuEvent(QContextMenuEvent *ev)
setBreakpointsEnabled(selectedIds, !enabled);
else if (act == addBreakpointAction)
addBreakpoint();
else
handleBaseContextAction(act);
}
void BreakTreeView::setBreakpointsEnabled(const BreakpointModelIds &ids, bool enabled)

View File

@@ -233,16 +233,11 @@ CommonOptionsPageWidget::CommonOptionsPageWidget
checkBoxFontSizeFollowsEditor);
m_group->insert(dc->action(AutoDerefPointers), 0);
m_group->insert(dc->action(UseToolTipsInLocalsView), 0);
m_group->insert(dc->action(AlwaysAdjustLocalsColumnWidths), 0);
m_group->insert(dc->action(AlwaysAdjustThreadsColumnWidths), 0);
m_group->insert(dc->action(AlwaysAdjustSnapshotsColumnWidths), 0);
m_group->insert(dc->action(AlwaysAdjustBreakpointsColumnWidths), 0);
m_group->insert(dc->action(AlwaysAdjustModulesColumnWidths), 0);
m_group->insert(dc->action(AlwaysAdjustColumnWidths), 0);
m_group->insert(dc->action(UseToolTipsInBreakpointsView), 0);
m_group->insert(dc->action(UseToolTipsInStackView), 0);
m_group->insert(dc->action(UseAddressInBreakpointsView), 0);
m_group->insert(dc->action(UseAddressInStackView), 0);
m_group->insert(dc->action(AlwaysAdjustStackColumnWidths), 0);
m_group->insert(dc->action(MaximalStackDepth), spinBoxMaximalStackDepth);
m_group->insert(dc->action(DisplayStringLimit), spinBoxDisplayStringLimit);
m_group->insert(dc->action(MaximalStringLength), spinBoxMaximalStringLength);

View File

@@ -106,69 +106,15 @@ DebuggerSettings::DebuggerSettings()
// View
//
item = new SavedAction(this);
item->setText(tr("Always Adjust Column Widths to Contents"));
item->setText(tr("Always Adjust View Column Widths to Contents"));
item->setCheckable(true);
item->setValue(true);
item->setDefaultValue(true);
item->setSettingsKey(debugModeGroup,
QLatin1String("AlwaysAdjustLocalsColumnWidths2"));
insertItem(AlwaysAdjustLocalsColumnWidths, item);
QLatin1String("AlwaysAdjustColumnWidths"));
insertItem(AlwaysAdjustColumnWidths, item);
item = new SavedAction(this);
item->setText(tr("Always Adjust Column Widths to Contents"));
item->setCheckable(true);
item->setValue(true);
item->setDefaultValue(true);
item->setSettingsKey(debugModeGroup,
QLatin1String("AlwaysAdjustStackColumnWidths2"));
insertItem(AlwaysAdjustStackColumnWidths, item);
item = new SavedAction(this);
item->setText(tr("Always Adjust Column Widths to Contents"));
item->setCheckable(true);
item->setValue(true);
item->setDefaultValue(true);
item->setSettingsKey(debugModeGroup,
QLatin1String("AlwaysAdjustThreadsColumnWidths2"));
insertItem(AlwaysAdjustThreadsColumnWidths, item);
item = new SavedAction(this);
item->setText(tr("Always Adjust Column Widths to Contents"));
item->setCheckable(true);
item->setValue(false);
item->setDefaultValue(false);
item->setSettingsKey(debugModeGroup,
QLatin1String("AlwaysAdjustRegistersColumnWidths"));
insertItem(AlwaysAdjustRegistersColumnWidths, item);
item = new SavedAction(this);
item->setText(tr("Always Adjust Column Widths to Contents"));
item->setCheckable(true);
item->setValue(false);
item->setDefaultValue(false);
item->setSettingsKey(debugModeGroup,
QLatin1String("AlwaysAdjustSnapshotsColumnWidths"));
insertItem(AlwaysAdjustSnapshotsColumnWidths, item);
item = new SavedAction(this);
item->setText(tr("Always Adjust Column Widths to Contents"));
item->setCheckable(true);
item->setValue(false);
item->setDefaultValue(false);
item->setSettingsKey(debugModeGroup,
QLatin1String("AlwaysAdjustBreakpointsColumnWidths"));
insertItem(AlwaysAdjustBreakpointsColumnWidths, item);
item = new SavedAction(this);
item->setText(tr("Always Adjust Column Widths to Contents"));
item->setCheckable(true);
item->setValue(false);
item->setDefaultValue(false);
item->setSettingsKey(debugModeGroup,
QLatin1String("AlwaysAdjustModulesColumnWidths"));
insertItem(AlwaysAdjustModulesColumnWidths, item);
//Needed by QML Inspector
// Needed by QML Inspector
item = new SavedAction(this);
item->setText(tr("Use Alternating Row Colors"));
item->setSettingsKey(debugModeGroup, QLatin1String("UseAlternatingRowColours"));

View File

@@ -108,6 +108,8 @@ enum DebuggerActionCode
UseAddressInStackView,
RegisterForPostMortem,
AlwaysAdjustColumnWidths,
// Cdb
CdbAdditionalArguments,
@@ -139,14 +141,12 @@ enum DebuggerActionCode
MaximalStackDepth,
ExpandStack,
CreateFullBacktrace,
AlwaysAdjustStackColumnWidths,
// Watchers & Locals
ShowStdNamespace,
ShowQtNamespace,
SortStructMembers,
AutoDerefPointers,
AlwaysAdjustLocalsColumnWidths,
MaximalStringLength,
DisplayStringLimit,
@@ -162,7 +162,6 @@ enum DebuggerActionCode
AllPluginBreakpoints,
SelectedPluginBreakpoints,
AdjustBreakpointLocations,
AlwaysAdjustBreakpointsColumnWidths,
NoPluginBreakpoints,
SelectedPluginBreakpointsPattern,
BreakOnThrow,
@@ -171,18 +170,6 @@ enum DebuggerActionCode
BreakOnFatal,
BreakOnAbort,
// Registers
AlwaysAdjustRegistersColumnWidths,
// Snapshots
AlwaysAdjustSnapshotsColumnWidths,
// Threads
AlwaysAdjustThreadsColumnWidths,
// Modules
AlwaysAdjustModulesColumnWidths,
// QML Tools
ShowQmlObjectTree,
ShowAppOnTop,

View File

@@ -57,7 +57,6 @@ ModulesTreeView::ModulesTreeView(QWidget *parent)
: BaseTreeView(parent)
{
setSortingEnabled(true);
setAlwaysAdjustColumnsAction(debuggerCore()->action(AlwaysAdjustModulesColumnWidths));
connect(this, SIGNAL(activated(QModelIndex)),
SLOT(moduleActivated(QModelIndex)));
@@ -173,8 +172,6 @@ void ModulesTreeView::contextMenuEvent(QContextMenuEvent *ev)
engine->requestModuleSections(fileName);
else if (actShowDependencies && act == actShowDependencies)
QProcess::startDetached(QLatin1String("depends"), QStringList(fileName));
else
handleBaseContextAction(act);
}
ModulesWindow::ModulesWindow()

View File

@@ -257,8 +257,6 @@ void RegisterTreeView::contextMenuEvent(QContextMenuEvent *ev)
handler->setNumberBase(8);
else if (act == act2)
handler->setNumberBase(2);
else
handleBaseContextAction(act);
}
void RegisterTreeView::reloadRegisters()

View File

@@ -56,7 +56,6 @@ SnapshotTreeView::SnapshotTreeView(SnapshotHandler *handler)
{
m_snapshotHandler = handler;
setWindowTitle(tr("Snapshots"));
setAlwaysAdjustColumnsAction(debuggerCore()->action(AlwaysAdjustSnapshotsColumnWidths));
}
void SnapshotTreeView::rowActivated(const QModelIndex &index)
@@ -101,8 +100,6 @@ void SnapshotTreeView::contextMenuEvent(QContextMenuEvent *ev)
m_snapshotHandler->createSnapshot(idx.row());
else if (act == actRemove)
removeSnapshot(idx.row());
else
handleBaseContextAction(act);
}
void SnapshotTreeView::removeSnapshot(int i)

View File

@@ -95,8 +95,6 @@ void SourceFilesTreeView::contextMenuEvent(QContextMenuEvent *ev)
engine->reloadSourceFiles();
else if (act == act2)
engine->gotoLocation(name);
else
handleBaseContextAction(act);
}
SourceFilesWindow::SourceFilesWindow()

View File

@@ -64,7 +64,6 @@ StackTreeView::StackTreeView(QWidget *parent)
: BaseTreeView(parent)
{
setWindowTitle(tr("Stack"));
setAlwaysAdjustColumnsAction(debuggerCore()->action(AlwaysAdjustStackColumnWidths));
connect(debuggerCore()->action(UseAddressInStackView), SIGNAL(toggled(bool)),
SLOT(showAddressColumn(bool)));
@@ -248,8 +247,6 @@ void StackTreeView::contextMenuEvent(QContextMenuEvent *ev)
saveTaskFile(this, handler);
else if (act == additionalQmlStackAction)
engine->loadAdditionalQmlStack();
else
handleBaseContextAction(act);
}
void StackTreeView::copyContentsToClipboard()

View File

@@ -45,7 +45,6 @@ namespace Internal {
ThreadsTreeView::ThreadsTreeView()
{
setSortingEnabled(true);
setAlwaysAdjustColumnsAction(debuggerCore()->action(AlwaysAdjustThreadsColumnWidths));
}
void ThreadsTreeView::rowActivated(const QModelIndex &index)
@@ -57,20 +56,19 @@ void ThreadsTreeView::rowActivated(const QModelIndex &index)
void ThreadsTreeView::setModel(QAbstractItemModel *model)
{
BaseTreeView::setModel(model);
resizeColumnToContents(ThreadData::IdColumn);
resizeColumnToContents(ThreadData::LineColumn);
resizeColumnToContents(ThreadData::NameColumn);
resizeColumnToContents(ThreadData::StateColumn);
resizeColumnToContents(ThreadData::TargetIdColumn);
resizeColumnToContents(ThreadData::DetailsColumn);
// resizeColumnToContents(ThreadData::IdColumn);
// resizeColumnToContents(ThreadData::LineColumn);
// resizeColumnToContents(ThreadData::NameColumn);
// resizeColumnToContents(ThreadData::StateColumn);
// resizeColumnToContents(ThreadData::TargetIdColumn);
// resizeColumnToContents(ThreadData::DetailsColumn);
}
void ThreadsTreeView::contextMenuEvent(QContextMenuEvent *ev)
{
QMenu menu;
addBaseContextActions(&menu);
QAction *act = menu.exec(ev->globalPos());
handleBaseContextAction(act);
menu.exec(ev->globalPos());
}
ThreadsWindow::ThreadsWindow()

View File

@@ -483,7 +483,6 @@ WatchTreeView::WatchTreeView(WatchType type, QWidget *parent)
setDragEnabled(true);
setAcceptDrops(true);
setDropIndicatorShown(true);
setAlwaysAdjustColumnsAction(debuggerCore()->action(AlwaysAdjustLocalsColumnWidths));
connect(this, SIGNAL(expanded(QModelIndex)),
SLOT(expandNode(QModelIndex)));

View File

@@ -48,9 +48,9 @@ class WatchTreeView : public BaseTreeView
Q_OBJECT
public:
explicit WatchTreeView(WatchType type, QWidget *parent = 0);
WatchType type() const { return m_type; }
void setModel(QAbstractItemModel *model);
void rowActivated(const QModelIndex &index);
void reset();