forked from qt-creator/qt-creator
Gerrit: Outline GerritDialog UI
Change-Id: Iad8d804feb16f8b5318d07f4fdb32d050e0798c0 Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io> Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
This commit is contained in:
committed by
Orgad Shaneh
parent
000d9cb280
commit
bb916860ca
@@ -14,4 +14,6 @@ HEADERS += $$PWD/gerritdialog.h \
|
|||||||
$$PWD/gerritpushdialog.h \
|
$$PWD/gerritpushdialog.h \
|
||||||
$$PWD/branchcombobox.h
|
$$PWD/branchcombobox.h
|
||||||
|
|
||||||
FORMS += $$PWD/gerritpushdialog.ui
|
FORMS += $$PWD/gerritdialog.ui \
|
||||||
|
$$PWD/gerritpushdialog.ui
|
||||||
|
|
||||||
|
|||||||
@@ -24,41 +24,31 @@
|
|||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
#include "gerritdialog.h"
|
#include "gerritdialog.h"
|
||||||
|
#include "ui_gerritdialog.h"
|
||||||
#include "gerritmodel.h"
|
#include "gerritmodel.h"
|
||||||
#include "gerritparameters.h"
|
#include "gerritparameters.h"
|
||||||
|
|
||||||
#include <coreplugin/icore.h>
|
|
||||||
#include "../gitplugin.h"
|
#include "../gitplugin.h"
|
||||||
#include "../gitclient.h"
|
#include "../gitclient.h"
|
||||||
|
|
||||||
#include <utils/qtcassert.h>
|
#include <coreplugin/icore.h>
|
||||||
#include <utils/fancylineedit.h>
|
|
||||||
#include <utils/itemviews.h>
|
|
||||||
#include <utils/progressindicator.h>
|
|
||||||
#include <utils/theme/theme.h>
|
|
||||||
#include <utils/asconst.h>
|
#include <utils/asconst.h>
|
||||||
#include <utils/hostosinfo.h>
|
#include <utils/hostosinfo.h>
|
||||||
|
#include <utils/progressindicator.h>
|
||||||
|
#include <utils/qtcassert.h>
|
||||||
|
#include <utils/theme/theme.h>
|
||||||
|
|
||||||
#include <QVBoxLayout>
|
|
||||||
#include <QHBoxLayout>
|
|
||||||
#include <QSplitter>
|
|
||||||
#include <QSpacerItem>
|
|
||||||
#include <QLabel>
|
|
||||||
#include <QTextBrowser>
|
|
||||||
#include <QTreeView>
|
|
||||||
#include <QDialogButtonBox>
|
|
||||||
#include <QPushButton>
|
|
||||||
#include <QDesktopServices>
|
|
||||||
#include <QSortFilterProxyModel>
|
|
||||||
#include <QGroupBox>
|
|
||||||
#include <QUrl>
|
|
||||||
#include <QStringListModel>
|
|
||||||
#include <QCompleter>
|
#include <QCompleter>
|
||||||
|
#include <QDesktopServices>
|
||||||
|
#include <QPushButton>
|
||||||
|
#include <QSortFilterProxyModel>
|
||||||
|
#include <QStringListModel>
|
||||||
|
#include <QUrl>
|
||||||
|
|
||||||
namespace Gerrit {
|
namespace Gerrit {
|
||||||
namespace Internal {
|
namespace Internal {
|
||||||
|
|
||||||
static const int layoutSpacing = 5;
|
|
||||||
static const int maxTitleWidth = 350;
|
static const int maxTitleWidth = 350;
|
||||||
|
|
||||||
GerritDialog::GerritDialog(const QSharedPointer<GerritParameters> &p,
|
GerritDialog::GerritDialog(const QSharedPointer<GerritParameters> &p,
|
||||||
@@ -69,61 +59,34 @@ GerritDialog::GerritDialog(const QSharedPointer<GerritParameters> &p,
|
|||||||
, m_parameters(p)
|
, m_parameters(p)
|
||||||
, m_server(s)
|
, m_server(s)
|
||||||
, m_filterModel(new QSortFilterProxyModel(this))
|
, m_filterModel(new QSortFilterProxyModel(this))
|
||||||
|
, m_ui(new Ui::GerritDialog)
|
||||||
, m_model(new GerritModel(p, this))
|
, m_model(new GerritModel(p, this))
|
||||||
, m_queryModel(new QStringListModel(this))
|
, m_queryModel(new QStringListModel(this))
|
||||||
, m_treeView(new Utils::TreeView)
|
|
||||||
, m_detailsBrowser(new QTextBrowser)
|
|
||||||
, m_queryLineEdit(new Utils::FancyLineEdit)
|
|
||||||
, m_filterLineEdit(new Utils::FancyLineEdit)
|
|
||||||
, m_repositoryChooser(new Utils::PathChooser)
|
|
||||||
, m_buttonBox(new QDialogButtonBox(QDialogButtonBox::Close))
|
|
||||||
, m_repositoryChooserLabel(new QLabel(tr("Apply in:") + ' ', this))
|
|
||||||
, m_fetchRunning(false)
|
, m_fetchRunning(false)
|
||||||
{
|
{
|
||||||
setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
|
setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
|
||||||
|
|
||||||
QGroupBox *changesGroup = new QGroupBox(tr("Changes"));
|
m_ui->setupUi(this);
|
||||||
QVBoxLayout *changesLayout = new QVBoxLayout(changesGroup);
|
|
||||||
changesLayout->setMargin(layoutSpacing);
|
|
||||||
QHBoxLayout *filterLayout = new QHBoxLayout;
|
|
||||||
QLabel *queryLabel = new QLabel(tr("&Query:"));
|
|
||||||
queryLabel->setBuddy(m_queryLineEdit);
|
|
||||||
m_queryLineEdit->setFixedWidth(400);
|
|
||||||
m_queryLineEdit->setPlaceholderText(tr("Change #, SHA-1, tr:id, owner:email or reviewer:email"));
|
|
||||||
m_queryModel->setStringList(m_parameters->savedQueries);
|
m_queryModel->setStringList(m_parameters->savedQueries);
|
||||||
QCompleter *completer = new QCompleter(this);
|
QCompleter *completer = new QCompleter(this);
|
||||||
completer->setModel(m_queryModel);
|
completer->setModel(m_queryModel);
|
||||||
m_queryLineEdit->setSpecialCompleter(completer);
|
m_ui->queryLineEdit->setSpecialCompleter(completer);
|
||||||
m_queryLineEdit->setOkColor(Utils::creatorTheme()->color(Utils::Theme::TextColorNormal));
|
m_ui->queryLineEdit->setOkColor(Utils::creatorTheme()->color(Utils::Theme::TextColorNormal));
|
||||||
m_queryLineEdit->setErrorColor(Utils::creatorTheme()->color(Utils::Theme::TextColorError));
|
m_ui->queryLineEdit->setErrorColor(Utils::creatorTheme()->color(Utils::Theme::TextColorError));
|
||||||
m_queryLineEdit->setValidationFunction([this](Utils::FancyLineEdit *, QString *) {
|
m_ui->queryLineEdit->setValidationFunction([this](Utils::FancyLineEdit *, QString *) {
|
||||||
return m_model->state() != GerritModel::Error;
|
return m_model->state() != GerritModel::Error;
|
||||||
});
|
});
|
||||||
filterLayout->addWidget(queryLabel);
|
m_ui->filterLineEdit->setFiltering(true);
|
||||||
filterLayout->addWidget(m_queryLineEdit);
|
connect(m_ui->filterLineEdit, &Utils::FancyLineEdit::filterChanged,
|
||||||
filterLayout->addItem(new QSpacerItem(0, 0, QSizePolicy::MinimumExpanding, QSizePolicy::Ignored));
|
|
||||||
m_filterLineEdit->setFixedWidth(300);
|
|
||||||
m_filterLineEdit->setFiltering(true);
|
|
||||||
filterLayout->addWidget(m_filterLineEdit);
|
|
||||||
connect(m_filterLineEdit, &Utils::FancyLineEdit::filterChanged,
|
|
||||||
m_filterModel, &QSortFilterProxyModel::setFilterFixedString);
|
m_filterModel, &QSortFilterProxyModel::setFilterFixedString);
|
||||||
connect(m_queryLineEdit, &QLineEdit::returnPressed, this, &GerritDialog::slotRefresh);
|
connect(m_ui->queryLineEdit, &QLineEdit::returnPressed, this, &GerritDialog::slotRefresh);
|
||||||
connect(m_model, &GerritModel::stateChanged, m_queryLineEdit, &Utils::FancyLineEdit::validate);
|
connect(m_model, &GerritModel::stateChanged, m_ui->queryLineEdit, &Utils::FancyLineEdit::validate);
|
||||||
m_filterModel->setFilterCaseSensitivity(Qt::CaseInsensitive);
|
m_filterModel->setFilterCaseSensitivity(Qt::CaseInsensitive);
|
||||||
changesLayout->addLayout(filterLayout);
|
|
||||||
changesLayout->addWidget(m_treeView);
|
|
||||||
|
|
||||||
m_filterModel->setSourceModel(m_model);
|
m_filterModel->setSourceModel(m_model);
|
||||||
m_filterModel->setFilterRole(GerritModel::FilterRole);
|
m_filterModel->setFilterRole(GerritModel::FilterRole);
|
||||||
m_filterModel->setSortRole(GerritModel::SortRole);
|
m_filterModel->setSortRole(GerritModel::SortRole);
|
||||||
m_treeView->setRootIsDecorated(true);
|
m_ui->treeView->setModel(m_filterModel);
|
||||||
m_treeView->setModel(m_filterModel);
|
m_ui->treeView->setActivationMode(Utils::DoubleClickActivation);
|
||||||
m_treeView->setMinimumWidth(600);
|
|
||||||
m_treeView->setUniformRowHeights(true);
|
|
||||||
m_treeView->setRootIsDecorated(false);
|
|
||||||
m_treeView->setSelectionBehavior(QAbstractItemView::SelectRows);
|
|
||||||
m_treeView->setSortingEnabled(true);
|
|
||||||
m_treeView->setActivationMode(Utils::DoubleClickActivation);
|
|
||||||
|
|
||||||
connect(&m_progressIndicatorTimer, &QTimer::timeout,
|
connect(&m_progressIndicatorTimer, &QTimer::timeout,
|
||||||
[this]() { setProgressIndicatorVisible(true); });
|
[this]() { setProgressIndicatorVisible(true); });
|
||||||
@@ -131,31 +94,21 @@ GerritDialog::GerritDialog(const QSharedPointer<GerritParameters> &p,
|
|||||||
m_progressIndicatorTimer.setInterval(50); // don't show progress for < 50ms tasks
|
m_progressIndicatorTimer.setInterval(50); // don't show progress for < 50ms tasks
|
||||||
|
|
||||||
m_progressIndicator = new Utils::ProgressIndicator(Utils::ProgressIndicator::Large,
|
m_progressIndicator = new Utils::ProgressIndicator(Utils::ProgressIndicator::Large,
|
||||||
m_treeView);
|
m_ui->treeView);
|
||||||
m_progressIndicator->attachToWidget(m_treeView->viewport());
|
m_progressIndicator->attachToWidget(m_ui->treeView->viewport());
|
||||||
m_progressIndicator->hide();
|
m_progressIndicator->hide();
|
||||||
|
|
||||||
connect(m_model, &GerritModel::stateChanged, this, &GerritDialog::manageProgressIndicator);
|
connect(m_model, &GerritModel::stateChanged, this, &GerritDialog::manageProgressIndicator);
|
||||||
|
|
||||||
QItemSelectionModel *selectionModel = m_treeView->selectionModel();
|
QItemSelectionModel *selectionModel = m_ui->treeView->selectionModel();
|
||||||
connect(selectionModel, &QItemSelectionModel::currentChanged,
|
connect(selectionModel, &QItemSelectionModel::currentChanged,
|
||||||
this, &GerritDialog::slotCurrentChanged);
|
this, &GerritDialog::slotCurrentChanged);
|
||||||
connect(m_treeView, &QAbstractItemView::activated,
|
connect(m_ui->treeView, &QAbstractItemView::activated,
|
||||||
this, &GerritDialog::slotActivated);
|
this, &GerritDialog::slotActivated);
|
||||||
|
|
||||||
QGroupBox *detailsGroup = new QGroupBox(tr("Details"));
|
m_ui->repositoryChooser->setExpectedKind(Utils::PathChooser::ExistingDirectory);
|
||||||
QVBoxLayout *detailsLayout = new QVBoxLayout(detailsGroup);
|
m_ui->repositoryChooser->setHistoryCompleter("Git.RepoDir.History");
|
||||||
detailsLayout->setMargin(layoutSpacing);
|
m_ui->repositoryChooser->setPath(repository);
|
||||||
m_detailsBrowser->setOpenExternalLinks(true);
|
|
||||||
m_detailsBrowser->setTextInteractionFlags(Qt::TextBrowserInteraction);
|
|
||||||
detailsLayout->addWidget(m_detailsBrowser);
|
|
||||||
|
|
||||||
m_repositoryChooser->setExpectedKind(Utils::PathChooser::ExistingDirectory);
|
|
||||||
m_repositoryChooser->setHistoryCompleter("Git.RepoDir.History");
|
|
||||||
QHBoxLayout *repoPathLayout = new QHBoxLayout;
|
|
||||||
repoPathLayout->addWidget(m_repositoryChooserLabel);
|
|
||||||
repoPathLayout->addWidget(m_repositoryChooser);
|
|
||||||
detailsLayout->addLayout(repoPathLayout);
|
|
||||||
|
|
||||||
m_displayButton = addActionButton(tr("&Show"), [this]() { slotFetchDisplay(); });
|
m_displayButton = addActionButton(tr("&Show"), [this]() { slotFetchDisplay(); });
|
||||||
m_cherryPickButton = addActionButton(tr("Cherry &Pick"), [this]() { slotFetchCherryPick(); });
|
m_cherryPickButton = addActionButton(tr("Cherry &Pick"), [this]() { slotFetchCherryPick(); });
|
||||||
@@ -166,41 +119,28 @@ GerritDialog::GerritDialog(const QSharedPointer<GerritParameters> &p,
|
|||||||
m_refreshButton, &QWidget::setDisabled);
|
m_refreshButton, &QWidget::setDisabled);
|
||||||
connect(m_model, &GerritModel::refreshStateChanged,
|
connect(m_model, &GerritModel::refreshStateChanged,
|
||||||
this, &GerritDialog::slotRefreshStateChanged);
|
this, &GerritDialog::slotRefreshStateChanged);
|
||||||
connect(m_buttonBox, &QDialogButtonBox::accepted, this, &QDialog::accept);
|
|
||||||
connect(m_buttonBox, &QDialogButtonBox::rejected, this, &QDialog::reject);
|
|
||||||
|
|
||||||
QSplitter *splitter = new QSplitter(Qt::Vertical, this);
|
|
||||||
splitter->addWidget(changesGroup);
|
|
||||||
splitter->addWidget(detailsGroup);
|
|
||||||
splitter->setSizes(QList<int>() << 400 << 200);
|
|
||||||
|
|
||||||
QVBoxLayout *mainLayout = new QVBoxLayout(this);
|
|
||||||
mainLayout->addWidget(splitter);
|
|
||||||
mainLayout->addWidget(m_buttonBox);
|
|
||||||
|
|
||||||
m_repositoryChooser->setPath(repository);
|
|
||||||
slotCurrentChanged();
|
slotCurrentChanged();
|
||||||
slotRefresh();
|
slotRefresh();
|
||||||
|
|
||||||
resize(QSize(950, 600));
|
m_ui->treeView->setFocus();
|
||||||
m_treeView->setFocus();
|
|
||||||
m_refreshButton->setDefault(true);
|
m_refreshButton->setDefault(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
QString GerritDialog::repositoryPath() const
|
QString GerritDialog::repositoryPath() const
|
||||||
{
|
{
|
||||||
return m_repositoryChooser->path();
|
return m_ui->repositoryChooser->path();
|
||||||
}
|
}
|
||||||
|
|
||||||
void GerritDialog::setCurrentPath(const QString &path)
|
void GerritDialog::setCurrentPath(const QString &path)
|
||||||
{
|
{
|
||||||
m_repositoryChooser->setPath(path);
|
m_ui->repositoryChooser->setPath(path);
|
||||||
}
|
}
|
||||||
|
|
||||||
QPushButton *GerritDialog::addActionButton(const QString &text,
|
QPushButton *GerritDialog::addActionButton(const QString &text,
|
||||||
const std::function<void()> &buttonSlot)
|
const std::function<void()> &buttonSlot)
|
||||||
{
|
{
|
||||||
QPushButton *button = m_buttonBox->addButton(text, QDialogButtonBox::ActionRole);
|
QPushButton *button = m_ui->buttonBox->addButton(text, QDialogButtonBox::ActionRole);
|
||||||
connect(button, &QPushButton::clicked, this, buttonSlot);
|
connect(button, &QPushButton::clicked, this, buttonSlot);
|
||||||
return button;
|
return button;
|
||||||
}
|
}
|
||||||
@@ -218,6 +158,7 @@ void GerritDialog::updateCompletions(const QString &query)
|
|||||||
|
|
||||||
GerritDialog::~GerritDialog()
|
GerritDialog::~GerritDialog()
|
||||||
{
|
{
|
||||||
|
delete m_ui;
|
||||||
}
|
}
|
||||||
|
|
||||||
void GerritDialog::slotActivated(const QModelIndex &i)
|
void GerritDialog::slotActivated(const QModelIndex &i)
|
||||||
@@ -230,11 +171,11 @@ void GerritDialog::slotActivated(const QModelIndex &i)
|
|||||||
void GerritDialog::slotRefreshStateChanged(bool v)
|
void GerritDialog::slotRefreshStateChanged(bool v)
|
||||||
{
|
{
|
||||||
if (!v && m_model->rowCount()) {
|
if (!v && m_model->rowCount()) {
|
||||||
m_treeView->expandAll();
|
m_ui->treeView->expandAll();
|
||||||
for (int c = 0; c < GerritModel::ColumnCount; ++c)
|
for (int c = 0; c < GerritModel::ColumnCount; ++c)
|
||||||
m_treeView->resizeColumnToContents(c);
|
m_ui->treeView->resizeColumnToContents(c);
|
||||||
if (m_treeView->columnWidth(GerritModel::TitleColumn) > maxTitleWidth)
|
if (m_ui->treeView->columnWidth(GerritModel::TitleColumn) > maxTitleWidth)
|
||||||
m_treeView->setColumnWidth(GerritModel::TitleColumn, maxTitleWidth);
|
m_ui->treeView->setColumnWidth(GerritModel::TitleColumn, maxTitleWidth);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -261,17 +202,17 @@ void GerritDialog::slotFetchCheckout()
|
|||||||
|
|
||||||
void GerritDialog::slotRefresh()
|
void GerritDialog::slotRefresh()
|
||||||
{
|
{
|
||||||
const QString &query = m_queryLineEdit->text().trimmed();
|
const QString &query = m_ui->queryLineEdit->text().trimmed();
|
||||||
updateCompletions(query);
|
updateCompletions(query);
|
||||||
updateRemote();
|
updateRemote();
|
||||||
m_model->refresh(m_server, query);
|
m_model->refresh(m_server, query);
|
||||||
m_treeView->sortByColumn(-1);
|
m_ui->treeView->sortByColumn(-1);
|
||||||
}
|
}
|
||||||
|
|
||||||
void GerritDialog::updateRemote()
|
void GerritDialog::updateRemote()
|
||||||
{
|
{
|
||||||
const QString repository = m_repositoryChooser->path();
|
const QString repository = m_ui->repositoryChooser->path();
|
||||||
if (m_repository == repository || !m_repositoryChooser->isValid())
|
if (m_repository == repository || !m_ui->repositoryChooser->isValid())
|
||||||
return;
|
return;
|
||||||
static const QRegularExpression sshPattern(
|
static const QRegularExpression sshPattern(
|
||||||
"^(?:(?<protocol>[^:]+)://)?(?:(?<user>[^@]+)@)?(?<host>[^:/]+)(?::(?<port>\\d+))?");
|
"^(?:(?<protocol>[^:]+)://)?(?:(?<user>[^@]+)@)?(?<host>[^:/]+)(?::(?<port>\\d+))?");
|
||||||
@@ -338,13 +279,13 @@ void GerritDialog::manageProgressIndicator()
|
|||||||
|
|
||||||
QModelIndex GerritDialog::currentIndex() const
|
QModelIndex GerritDialog::currentIndex() const
|
||||||
{
|
{
|
||||||
const QModelIndex index = m_treeView->selectionModel()->currentIndex();
|
const QModelIndex index = m_ui->treeView->selectionModel()->currentIndex();
|
||||||
return index.isValid() ? m_filterModel->mapToSource(index) : QModelIndex();
|
return index.isValid() ? m_filterModel->mapToSource(index) : QModelIndex();
|
||||||
}
|
}
|
||||||
|
|
||||||
void GerritDialog::updateButtons()
|
void GerritDialog::updateButtons()
|
||||||
{
|
{
|
||||||
const bool enabled = !m_fetchRunning && m_treeView->selectionModel()->currentIndex().isValid();
|
const bool enabled = !m_fetchRunning && m_ui->treeView->selectionModel()->currentIndex().isValid();
|
||||||
m_displayButton->setEnabled(enabled);
|
m_displayButton->setEnabled(enabled);
|
||||||
m_cherryPickButton->setEnabled(enabled);
|
m_cherryPickButton->setEnabled(enabled);
|
||||||
m_checkoutButton->setEnabled(enabled);
|
m_checkoutButton->setEnabled(enabled);
|
||||||
@@ -353,7 +294,7 @@ void GerritDialog::updateButtons()
|
|||||||
void GerritDialog::slotCurrentChanged()
|
void GerritDialog::slotCurrentChanged()
|
||||||
{
|
{
|
||||||
const QModelIndex current = currentIndex();
|
const QModelIndex current = currentIndex();
|
||||||
m_detailsBrowser->setText(current.isValid() ? m_model->toHtml(current) : QString());
|
m_ui->detailsBrowser->setText(current.isValid() ? m_model->toHtml(current) : QString());
|
||||||
updateButtons();
|
updateButtons();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -25,37 +25,28 @@
|
|||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include <utils/pathchooser.h>
|
|
||||||
|
|
||||||
#include <QDialog>
|
#include <QDialog>
|
||||||
#include <QSharedPointer>
|
#include <QSharedPointer>
|
||||||
#include <QTimer>
|
#include <QTimer>
|
||||||
|
|
||||||
|
#include <functional>
|
||||||
|
|
||||||
QT_BEGIN_NAMESPACE
|
QT_BEGIN_NAMESPACE
|
||||||
class QTreeView;
|
|
||||||
class QLabel;
|
|
||||||
class QModelIndex;
|
class QModelIndex;
|
||||||
class QSortFilterProxyModel;
|
class QSortFilterProxyModel;
|
||||||
class QStandardItem;
|
|
||||||
class QStringListModel;
|
class QStringListModel;
|
||||||
class QPushButton;
|
class QPushButton;
|
||||||
class QDialogButtonBox;
|
|
||||||
class QTextBrowser;
|
|
||||||
QT_END_NAMESPACE
|
QT_END_NAMESPACE
|
||||||
|
|
||||||
namespace Utils {
|
namespace Utils { class ProgressIndicator; }
|
||||||
class FancyLineEdit;
|
|
||||||
class ProgressIndicator;
|
|
||||||
class TreeView;
|
|
||||||
}
|
|
||||||
|
|
||||||
namespace Gerrit {
|
namespace Gerrit {
|
||||||
namespace Internal {
|
namespace Internal {
|
||||||
|
namespace Ui { class GerritDialog; }
|
||||||
class GerritChange;
|
class GerritChange;
|
||||||
class GerritModel;
|
class GerritModel;
|
||||||
class GerritParameters;
|
class GerritParameters;
|
||||||
class GerritServer;
|
class GerritServer;
|
||||||
class QueryValidatingLineEdit;
|
|
||||||
|
|
||||||
class GerritDialog : public QDialog
|
class GerritDialog : public QDialog
|
||||||
{
|
{
|
||||||
@@ -99,19 +90,13 @@ private:
|
|||||||
const QSharedPointer<GerritParameters> m_parameters;
|
const QSharedPointer<GerritParameters> m_parameters;
|
||||||
const QSharedPointer<GerritServer> m_server;
|
const QSharedPointer<GerritServer> m_server;
|
||||||
QSortFilterProxyModel *m_filterModel;
|
QSortFilterProxyModel *m_filterModel;
|
||||||
|
Ui::GerritDialog *m_ui;
|
||||||
GerritModel *m_model;
|
GerritModel *m_model;
|
||||||
QStringListModel *m_queryModel;
|
QStringListModel *m_queryModel;
|
||||||
Utils::TreeView *m_treeView;
|
|
||||||
QTextBrowser *m_detailsBrowser;
|
|
||||||
Utils::FancyLineEdit *m_queryLineEdit;
|
|
||||||
Utils::FancyLineEdit *m_filterLineEdit;
|
|
||||||
Utils::PathChooser *m_repositoryChooser;
|
|
||||||
QDialogButtonBox *m_buttonBox;
|
|
||||||
QPushButton *m_displayButton;
|
QPushButton *m_displayButton;
|
||||||
QPushButton *m_cherryPickButton;
|
QPushButton *m_cherryPickButton;
|
||||||
QPushButton *m_checkoutButton;
|
QPushButton *m_checkoutButton;
|
||||||
QPushButton *m_refreshButton;
|
QPushButton *m_refreshButton;
|
||||||
QLabel *m_repositoryChooserLabel;
|
|
||||||
Utils::ProgressIndicator *m_progressIndicator;
|
Utils::ProgressIndicator *m_progressIndicator;
|
||||||
QTimer m_progressIndicatorTimer;
|
QTimer m_progressIndicatorTimer;
|
||||||
QString m_repository;
|
QString m_repository;
|
||||||
|
|||||||
256
src/plugins/git/gerrit/gerritdialog.ui
Normal file
256
src/plugins/git/gerrit/gerritdialog.ui
Normal file
@@ -0,0 +1,256 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<ui version="4.0">
|
||||||
|
<class>Gerrit::Internal::GerritDialog</class>
|
||||||
|
<widget class="QDialog" name="Gerrit::Internal::GerritDialog">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>0</x>
|
||||||
|
<y>0</y>
|
||||||
|
<width>950</width>
|
||||||
|
<height>672</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="windowTitle">
|
||||||
|
<string>Gerrit</string>
|
||||||
|
</property>
|
||||||
|
<layout class="QVBoxLayout" name="verticalLayout">
|
||||||
|
<item>
|
||||||
|
<widget class="QWidget" name="widget" native="true">
|
||||||
|
<layout class="QVBoxLayout" name="verticalLayout_2">
|
||||||
|
<item>
|
||||||
|
<widget class="QSplitter" name="splitter">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Vertical</enum>
|
||||||
|
</property>
|
||||||
|
<property name="childrenCollapsible">
|
||||||
|
<bool>false</bool>
|
||||||
|
</property>
|
||||||
|
<widget class="QGroupBox" name="changesGroup">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>2</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="minimumSize">
|
||||||
|
<size>
|
||||||
|
<width>0</width>
|
||||||
|
<height>400</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="title">
|
||||||
|
<string>Changes</string>
|
||||||
|
</property>
|
||||||
|
<layout class="QVBoxLayout" name="verticalLayout_3">
|
||||||
|
<item>
|
||||||
|
<layout class="QHBoxLayout" name="filterLayout">
|
||||||
|
<item>
|
||||||
|
<widget class="QLabel" name="queryLabel">
|
||||||
|
<property name="text">
|
||||||
|
<string>&Query:</string>
|
||||||
|
</property>
|
||||||
|
<property name="buddy">
|
||||||
|
<cstring>queryLineEdit</cstring>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="Utils::FancyLineEdit" name="queryLineEdit">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="minimumSize">
|
||||||
|
<size>
|
||||||
|
<width>400</width>
|
||||||
|
<height>0</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="placeholderText">
|
||||||
|
<string>Change #, SHA-1, tr:id, owner:email or reviewer:email</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<spacer name="horizontalSpacer">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Horizontal</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>40</width>
|
||||||
|
<height>20</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="Utils::FancyLineEdit" name="filterLineEdit">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="minimumSize">
|
||||||
|
<size>
|
||||||
|
<width>300</width>
|
||||||
|
<height>0</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="Utils::TreeView" name="treeView">
|
||||||
|
<property name="minimumSize">
|
||||||
|
<size>
|
||||||
|
<width>600</width>
|
||||||
|
<height>0</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="rootIsDecorated">
|
||||||
|
<bool>false</bool>
|
||||||
|
</property>
|
||||||
|
<property name="uniformRowHeights">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
<property name="sortingEnabled">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
<widget class="QGroupBox" name="detailsGroup">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>1</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="minimumSize">
|
||||||
|
<size>
|
||||||
|
<width>0</width>
|
||||||
|
<height>200</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="title">
|
||||||
|
<string>Details</string>
|
||||||
|
</property>
|
||||||
|
<layout class="QVBoxLayout" name="verticalLayout_4">
|
||||||
|
<property name="leftMargin">
|
||||||
|
<number>5</number>
|
||||||
|
</property>
|
||||||
|
<property name="topMargin">
|
||||||
|
<number>5</number>
|
||||||
|
</property>
|
||||||
|
<property name="rightMargin">
|
||||||
|
<number>5</number>
|
||||||
|
</property>
|
||||||
|
<property name="bottomMargin">
|
||||||
|
<number>5</number>
|
||||||
|
</property>
|
||||||
|
<item>
|
||||||
|
<widget class="QTextBrowser" name="detailsBrowser">
|
||||||
|
<property name="openExternalLinks">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||||
|
<item>
|
||||||
|
<widget class="QLabel" name="repositoryChooserLabel">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Fixed" vsizetype="Preferred">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Apply in:</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="Utils::PathChooser" name="repositoryChooser" native="true"/>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QDialogButtonBox" name="buttonBox">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Horizontal</enum>
|
||||||
|
</property>
|
||||||
|
<property name="standardButtons">
|
||||||
|
<set>QDialogButtonBox::Close</set>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
<customwidgets>
|
||||||
|
<customwidget>
|
||||||
|
<class>Utils::FancyLineEdit</class>
|
||||||
|
<extends>QLineEdit</extends>
|
||||||
|
<header location="global">utils/fancylineedit.h</header>
|
||||||
|
</customwidget>
|
||||||
|
<customwidget>
|
||||||
|
<class>Utils::TreeView</class>
|
||||||
|
<extends>QTreeView</extends>
|
||||||
|
<header location="global">utils/itemviews.h</header>
|
||||||
|
</customwidget>
|
||||||
|
<customwidget>
|
||||||
|
<class>Utils::PathChooser</class>
|
||||||
|
<extends>QWidget</extends>
|
||||||
|
<header location="global">utils/pathchooser.h</header>
|
||||||
|
<container>1</container>
|
||||||
|
</customwidget>
|
||||||
|
</customwidgets>
|
||||||
|
<resources/>
|
||||||
|
<connections>
|
||||||
|
<connection>
|
||||||
|
<sender>buttonBox</sender>
|
||||||
|
<signal>accepted()</signal>
|
||||||
|
<receiver>Gerrit::Internal::GerritDialog</receiver>
|
||||||
|
<slot>accept()</slot>
|
||||||
|
<hints>
|
||||||
|
<hint type="sourcelabel">
|
||||||
|
<x>248</x>
|
||||||
|
<y>254</y>
|
||||||
|
</hint>
|
||||||
|
<hint type="destinationlabel">
|
||||||
|
<x>157</x>
|
||||||
|
<y>274</y>
|
||||||
|
</hint>
|
||||||
|
</hints>
|
||||||
|
</connection>
|
||||||
|
<connection>
|
||||||
|
<sender>buttonBox</sender>
|
||||||
|
<signal>rejected()</signal>
|
||||||
|
<receiver>Gerrit::Internal::GerritDialog</receiver>
|
||||||
|
<slot>reject()</slot>
|
||||||
|
<hints>
|
||||||
|
<hint type="sourcelabel">
|
||||||
|
<x>316</x>
|
||||||
|
<y>260</y>
|
||||||
|
</hint>
|
||||||
|
<hint type="destinationlabel">
|
||||||
|
<x>286</x>
|
||||||
|
<y>274</y>
|
||||||
|
</hint>
|
||||||
|
</hints>
|
||||||
|
</connection>
|
||||||
|
</connections>
|
||||||
|
</ui>
|
||||||
@@ -79,6 +79,7 @@ QtcPlugin {
|
|||||||
"branchcombobox.h",
|
"branchcombobox.h",
|
||||||
"gerritdialog.cpp",
|
"gerritdialog.cpp",
|
||||||
"gerritdialog.h",
|
"gerritdialog.h",
|
||||||
|
"gerritdialog.ui",
|
||||||
"gerritmodel.cpp",
|
"gerritmodel.cpp",
|
||||||
"gerritmodel.h",
|
"gerritmodel.h",
|
||||||
"gerritoptionspage.cpp",
|
"gerritoptionspage.cpp",
|
||||||
|
|||||||
Reference in New Issue
Block a user