forked from qt-creator/qt-creator
Debugger: Minimize flicker when switching between Locals and Inspector
Change-Id: Ib31190aaf426ba9e68d437e258597d30970a1898 Reviewed-by: Christiaan Janssen <christiaan.janssen@digia.com>
This commit is contained in:
@@ -41,7 +41,8 @@ namespace Internal {
|
|||||||
LocalsAndExpressionsWindow::LocalsAndExpressionsWindow(
|
LocalsAndExpressionsWindow::LocalsAndExpressionsWindow(
|
||||||
QWidget *locals, QWidget *inspector, QWidget *returnWidget,
|
QWidget *locals, QWidget *inspector, QWidget *returnWidget,
|
||||||
QWidget *watchers, QWidget *parent)
|
QWidget *watchers, QWidget *parent)
|
||||||
: QWidget(parent)
|
: QWidget(parent),
|
||||||
|
m_showLocals(false)
|
||||||
{
|
{
|
||||||
QVBoxLayout *layout = new QVBoxLayout(this);
|
QVBoxLayout *layout = new QVBoxLayout(this);
|
||||||
layout->setMargin(0);
|
layout->setMargin(0);
|
||||||
@@ -62,11 +63,23 @@ LocalsAndExpressionsWindow::LocalsAndExpressionsWindow(
|
|||||||
m_splitter->setStretchFactor(0, 3);
|
m_splitter->setStretchFactor(0, 3);
|
||||||
m_splitter->setStretchFactor(2, 1);
|
m_splitter->setStretchFactor(2, 1);
|
||||||
m_splitter->setStretchFactor(3, 1);
|
m_splitter->setStretchFactor(3, 1);
|
||||||
|
|
||||||
|
// Timer is to prevent flicker when switching between Inpector and Locals
|
||||||
|
// when debugger engine changes states.
|
||||||
|
m_timer.setSingleShot(true);
|
||||||
|
m_timer.setInterval(500); // TODO: remove the magic number!
|
||||||
|
connect(&m_timer, SIGNAL(timeout()), SLOT(showLocals()));
|
||||||
}
|
}
|
||||||
|
|
||||||
void LocalsAndExpressionsWindow::setShowLocals(bool showLocals)
|
void LocalsAndExpressionsWindow::setShowLocals(bool showLocals)
|
||||||
{
|
{
|
||||||
m_localsAndInspector->setCurrentIndex(showLocals ? 0 : 1);
|
m_showLocals = showLocals;
|
||||||
|
m_timer.start();
|
||||||
|
}
|
||||||
|
|
||||||
|
void LocalsAndExpressionsWindow::showLocals()
|
||||||
|
{
|
||||||
|
m_localsAndInspector->setCurrentIndex(m_showLocals ? 0 : 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace Internal
|
} // namespace Internal
|
||||||
|
|||||||
@@ -31,6 +31,7 @@
|
|||||||
#define LOCALSANDEXPRESSIONSWINDOW_H
|
#define LOCALSANDEXPRESSIONSWINDOW_H
|
||||||
|
|
||||||
#include <QWidget>
|
#include <QWidget>
|
||||||
|
#include <QTimer>
|
||||||
|
|
||||||
QT_BEGIN_NAMESPACE
|
QT_BEGIN_NAMESPACE
|
||||||
class QSplitter;
|
class QSplitter;
|
||||||
@@ -50,9 +51,14 @@ public:
|
|||||||
|
|
||||||
void setShowLocals(bool showLocals);
|
void setShowLocals(bool showLocals);
|
||||||
|
|
||||||
|
private slots:
|
||||||
|
void showLocals();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QSplitter *m_splitter;
|
QSplitter *m_splitter;
|
||||||
QStackedWidget *m_localsAndInspector;
|
QStackedWidget *m_localsAndInspector;
|
||||||
|
QTimer m_timer;
|
||||||
|
bool m_showLocals;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace Internal
|
} // namespace Internal
|
||||||
|
|||||||
Reference in New Issue
Block a user