Debugger: Maintain slider position in watch view

Setting column width seems to reset slider positions, needlessly.
Work around.

Change-Id: Ifa6c6a204dd2fbd7ad3dada0c386b697ae7a4100
Reviewed-by: Christian Stenger <christian.stenger@digia.com>
This commit is contained in:
hjk
2014-07-01 10:55:24 +02:00
parent 0544f9dd05
commit 1fd24aa8b7
2 changed files with 26 additions and 5 deletions

View File

@@ -47,17 +47,18 @@
#include <utils/savedaction.h> #include <utils/savedaction.h>
#include <utils/fancylineedit.h> #include <utils/fancylineedit.h>
#include <QDebug>
#include <QMetaProperty>
#include <QMimeData>
#include <QApplication> #include <QApplication>
#include <QClipboard> #include <QClipboard>
#include <QDebug>
#include <QHeaderView> #include <QHeaderView>
#include <QInputDialog>
#include <QItemDelegate> #include <QItemDelegate>
#include <QMenu> #include <QMenu>
#include <QInputDialog>
#include <QMessageBox> #include <QMessageBox>
#include <QMetaProperty>
#include <QMimeData>
#include <QScrollBar>
#include <QTimer>
//#define USE_WATCH_MODEL_TEST 1 //#define USE_WATCH_MODEL_TEST 1
@@ -1055,6 +1056,23 @@ void WatchTreeView::reset()
resetHelper(); resetHelper();
} }
void WatchTreeView::doItemsLayout()
{
if (m_sliderPosition == 0)
m_sliderPosition = verticalScrollBar()->sliderPosition();
Utils::BaseTreeView::doItemsLayout();
if (m_sliderPosition)
QTimer::singleShot(0, this, SLOT(adjustSlider()));
}
void WatchTreeView::adjustSlider()
{
if (m_sliderPosition) {
verticalScrollBar()->setSliderPosition(m_sliderPosition);
m_sliderPosition = 0;
}
}
void WatchTreeView::watchExpression(const QString &exp) void WatchTreeView::watchExpression(const QString &exp)
{ {
watchExpression(exp, QString()); watchExpression(exp, QString());

View File

@@ -69,6 +69,7 @@ private slots:
void resetHelper(); void resetHelper();
void expandNode(const QModelIndex &idx); void expandNode(const QModelIndex &idx);
void collapseNode(const QModelIndex &idx); void collapseNode(const QModelIndex &idx);
void adjustSlider();
void onClearIndividualFormat(); void onClearIndividualFormat();
void onClearTypeFormat(); void onClearTypeFormat();
@@ -78,6 +79,7 @@ private slots:
void onIndividualFormatChange(); void onIndividualFormatChange();
private: private:
void doItemsLayout();
void keyPressEvent(QKeyEvent *ev); void keyPressEvent(QKeyEvent *ev);
void contextMenuEvent(QContextMenuEvent *ev); void contextMenuEvent(QContextMenuEvent *ev);
void dragEnterEvent(QDragEnterEvent *ev); void dragEnterEvent(QDragEnterEvent *ev);
@@ -95,6 +97,7 @@ private:
WatchType m_type; WatchType m_type;
bool m_grabbing; bool m_grabbing;
int m_sliderPosition;
}; };
} // namespace Internal } // namespace Internal