forked from qt-creator/qt-creator
LogChangeWidget: Fix keyboard navigation on all platforms
Change-Id: I42858fd8aa8b5403e0d2a0639a6fe9fe5817f4a6 Reviewed-by: Eike Ziller <eike.ziller@digia.com>
This commit is contained in:
@@ -99,7 +99,7 @@ void GitSubmitEditorWidget::initialize(CommitType commitType,
|
|||||||
logChangeGroupBox->setLayout(logChangeLayout);
|
logChangeGroupBox->setLayout(logChangeLayout);
|
||||||
m_logChangeWidget = new LogChangeWidget;
|
m_logChangeWidget = new LogChangeWidget;
|
||||||
m_logChangeWidget->init(repository);
|
m_logChangeWidget->init(repository);
|
||||||
connect(m_logChangeWidget, SIGNAL(doubleClicked(QString)), this, SIGNAL(show(QString)));
|
connect(m_logChangeWidget, SIGNAL(activated(QString)), this, SIGNAL(show(QString)));
|
||||||
logChangeLayout->addWidget(m_logChangeWidget);
|
logChangeLayout->addWidget(m_logChangeWidget);
|
||||||
insertTopWidget(logChangeGroupBox);
|
insertTopWidget(logChangeGroupBox);
|
||||||
m_gitSubmitPanelUi.editGroup->hide();
|
m_gitSubmitPanelUi.editGroup->hide();
|
||||||
|
|||||||
@@ -59,7 +59,7 @@ enum Columns
|
|||||||
};
|
};
|
||||||
|
|
||||||
LogChangeWidget::LogChangeWidget(QWidget *parent)
|
LogChangeWidget::LogChangeWidget(QWidget *parent)
|
||||||
: QTreeView(parent)
|
: Utils::TreeView(parent)
|
||||||
, m_model(new QStandardItemModel(0, ColumnCount, this))
|
, m_model(new QStandardItemModel(0, ColumnCount, this))
|
||||||
, m_hasCustomDelegate(false)
|
, m_hasCustomDelegate(false)
|
||||||
{
|
{
|
||||||
@@ -71,7 +71,8 @@ LogChangeWidget::LogChangeWidget(QWidget *parent)
|
|||||||
setUniformRowHeights(true);
|
setUniformRowHeights(true);
|
||||||
setRootIsDecorated(false);
|
setRootIsDecorated(false);
|
||||||
setSelectionBehavior(QAbstractItemView::SelectRows);
|
setSelectionBehavior(QAbstractItemView::SelectRows);
|
||||||
connect(this, SIGNAL(doubleClicked(QModelIndex)), this, SLOT(emitDoubleClicked(QModelIndex)));
|
setActivationMode(Utils::DoubleClickActivation);
|
||||||
|
connect(this, SIGNAL(activated(QModelIndex)), this, SLOT(emitActivated(QModelIndex)));
|
||||||
}
|
}
|
||||||
|
|
||||||
bool LogChangeWidget::init(const QString &repository, const QString &commit, LogFlags flags)
|
bool LogChangeWidget::init(const QString &repository, const QString &commit, LogFlags flags)
|
||||||
@@ -114,23 +115,23 @@ QString LogChangeWidget::earliestCommit() const
|
|||||||
|
|
||||||
void LogChangeWidget::setItemDelegate(QAbstractItemDelegate *delegate)
|
void LogChangeWidget::setItemDelegate(QAbstractItemDelegate *delegate)
|
||||||
{
|
{
|
||||||
QTreeView::setItemDelegate(delegate);
|
Utils::TreeView::setItemDelegate(delegate);
|
||||||
m_hasCustomDelegate = true;
|
m_hasCustomDelegate = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void LogChangeWidget::emitDoubleClicked(const QModelIndex &index)
|
void LogChangeWidget::emitActivated(const QModelIndex &index)
|
||||||
{
|
{
|
||||||
if (index.isValid()) {
|
if (index.isValid()) {
|
||||||
QString commit = index.sibling(index.row(), Sha1Column).data().toString();
|
QString commit = index.sibling(index.row(), Sha1Column).data().toString();
|
||||||
if (!commit.isEmpty())
|
if (!commit.isEmpty())
|
||||||
emit doubleClicked(commit);
|
emit activated(commit);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void LogChangeWidget::selectionChanged(const QItemSelection &selected,
|
void LogChangeWidget::selectionChanged(const QItemSelection &selected,
|
||||||
const QItemSelection &deselected)
|
const QItemSelection &deselected)
|
||||||
{
|
{
|
||||||
QTreeView::selectionChanged(selected, deselected);
|
Utils::TreeView::selectionChanged(selected, deselected);
|
||||||
if (!m_hasCustomDelegate)
|
if (!m_hasCustomDelegate)
|
||||||
return;
|
return;
|
||||||
const QModelIndexList previousIndexes = deselected.indexes();
|
const QModelIndexList previousIndexes = deselected.indexes();
|
||||||
|
|||||||
@@ -30,10 +30,11 @@
|
|||||||
#ifndef LOGCHANGEDDIALOG_H
|
#ifndef LOGCHANGEDDIALOG_H
|
||||||
#define LOGCHANGEDDIALOG_H
|
#define LOGCHANGEDDIALOG_H
|
||||||
|
|
||||||
|
#include <utils/itemviews.h>
|
||||||
|
|
||||||
#include <QDialog>
|
#include <QDialog>
|
||||||
#include <QIcon>
|
#include <QIcon>
|
||||||
#include <QStyledItemDelegate>
|
#include <QStyledItemDelegate>
|
||||||
#include <QTreeView>
|
|
||||||
|
|
||||||
QT_BEGIN_NAMESPACE
|
QT_BEGIN_NAMESPACE
|
||||||
class QDialogButtonBox;
|
class QDialogButtonBox;
|
||||||
@@ -48,7 +49,7 @@ namespace Internal {
|
|||||||
// A widget that lists SHA1 and subject of the changes
|
// A widget that lists SHA1 and subject of the changes
|
||||||
// Used for reset and interactive rebase
|
// Used for reset and interactive rebase
|
||||||
|
|
||||||
class LogChangeWidget : public QTreeView
|
class LogChangeWidget : public Utils::TreeView
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
@@ -70,10 +71,10 @@ public:
|
|||||||
void setItemDelegate(QAbstractItemDelegate *delegate);
|
void setItemDelegate(QAbstractItemDelegate *delegate);
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void doubleClicked(const QString &commit);
|
void activated(const QString &commit);
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
void emitDoubleClicked(const QModelIndex &index);
|
void emitActivated(const QModelIndex &index);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void selectionChanged(const QItemSelection &selected, const QItemSelection &deselected);
|
void selectionChanged(const QItemSelection &selected, const QItemSelection &deselected);
|
||||||
|
|||||||
Reference in New Issue
Block a user