forked from qt-creator/qt-creator
Welcome: Implement new design
2024 redesign Change-Id: I6629849921272d856f201693973a8e29c6465e94 Reviewed-by: hjk <hjk@qt.io> Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
This commit is contained in:
@@ -29,14 +29,6 @@ using namespace Utils;
|
||||
|
||||
namespace ExtensionManager::Internal {
|
||||
|
||||
static QWidget *createVr(QWidget *parent = nullptr)
|
||||
{
|
||||
auto vr = new QWidget(parent);
|
||||
vr->setFixedWidth(1);
|
||||
setBackgroundColor(vr, Theme::Token_Stroke_Subtle);
|
||||
return vr;
|
||||
}
|
||||
|
||||
class CollapsingWidget : public QWidget
|
||||
{
|
||||
public:
|
||||
@@ -79,13 +71,13 @@ ExtensionManagerWidget::ExtensionManagerWidget()
|
||||
|
||||
using namespace Layouting;
|
||||
Row {
|
||||
createVr(),
|
||||
WelcomePageHelpers::createRule(Qt::Vertical),
|
||||
m_secondaryDescription,
|
||||
noMargin(), spacing(0),
|
||||
}.attachTo(m_secondarDescriptionWidget);
|
||||
|
||||
Row {
|
||||
createVr(),
|
||||
WelcomePageHelpers::createRule(Qt::Vertical),
|
||||
Row {
|
||||
m_primaryDescription,
|
||||
noMargin(),
|
||||
@@ -95,13 +87,13 @@ ExtensionManagerWidget::ExtensionManagerWidget()
|
||||
}.attachTo(descriptionColumns);
|
||||
|
||||
Row {
|
||||
Space(WelcomePageHelpers::HSpacing),
|
||||
m_leftColumn,
|
||||
Space(StyleHelper::SpacingTokens::ExVPaddingGapXl),
|
||||
m_leftColumn,
|
||||
descriptionColumns,
|
||||
noMargin(), spacing(0),
|
||||
}.attachTo(this);
|
||||
|
||||
setBackgroundColor(this, Theme::Token_Background_Default);
|
||||
WelcomePageHelpers::setBackgroundColor(this, Theme::Token_Background_Default);
|
||||
|
||||
connect(m_leftColumn, &ExtensionsBrowser::itemSelected,
|
||||
this, &ExtensionManagerWidget::updateView);
|
||||
@@ -132,7 +124,7 @@ void ExtensionManagerWidget::updateView(const QModelIndex ¤t,
|
||||
"margin-left: %3px; margin-right: %3px;")
|
||||
.arg(creatorTheme()->color(Theme::Token_Text_Default).name())
|
||||
.arg(creatorTheme()->color(Theme::Token_Background_Muted).name())
|
||||
.arg(WelcomePageHelpers::HSpacing);
|
||||
.arg(StyleHelper::SpacingTokens::ExVPaddingGapXl);
|
||||
const QString htmlStart = QString(R"(
|
||||
<html>
|
||||
<body style="%1">
|
||||
|
||||
@@ -41,7 +41,7 @@ using PluginSpecList = QList<const PluginSpec *>;
|
||||
using Tags = QStringList;
|
||||
|
||||
constexpr QSize itemSize = {330, 86};
|
||||
constexpr int gapSize = 2 * WelcomePageHelpers::GridItemGap;
|
||||
constexpr int gapSize = StyleHelper::SpacingTokens::ExVPaddingGapXl;
|
||||
constexpr QSize cellSize = {itemSize.width() + gapSize, itemSize.height() + gapSize};
|
||||
|
||||
enum Role {
|
||||
@@ -62,16 +62,6 @@ ItemData itemData(const QModelIndex &index)
|
||||
};
|
||||
}
|
||||
|
||||
void setBackgroundColor(QWidget *widget, Theme::Color colorRole)
|
||||
{
|
||||
QPalette palette = creatorTheme()->palette();
|
||||
palette.setColor(QPalette::Window,
|
||||
creatorTheme()->color(colorRole));
|
||||
widget->setPalette(palette);
|
||||
widget->setBackgroundRole(QPalette::Window);
|
||||
widget->setAutoFillBackground(true);
|
||||
}
|
||||
|
||||
static QColor colorForExtensionName(const QString &name)
|
||||
{
|
||||
const size_t hash = qHash(name);
|
||||
@@ -390,7 +380,7 @@ public:
|
||||
}
|
||||
{
|
||||
constexpr int textX = 80;
|
||||
constexpr int rightMargin = 2 * WelcomePageHelpers::ItemGap;
|
||||
constexpr int rightMargin = StyleHelper::SpacingTokens::ExVPaddingGapXl;
|
||||
constexpr int maxTextWidth = itemSize.width() - textX - rightMargin;
|
||||
constexpr Qt::TextElideMode elideMode = Qt::ElideRight;
|
||||
|
||||
@@ -440,8 +430,7 @@ ExtensionsBrowser::ExtensionsBrowser()
|
||||
m_searchBox = new Core::SearchBox;
|
||||
m_searchBox->setFixedWidth(itemSize.width());
|
||||
|
||||
m_updateButton = new WelcomePageButton;
|
||||
m_updateButton->setText(Tr::tr("Install..."));
|
||||
m_updateButton = new Button(Tr::tr("Install..."), Button::MediumPrimary);
|
||||
|
||||
m_filterProxyModel = new QSortFilterProxyModel(this);
|
||||
m_filterProxyModel->setFilterCaseSensitivity(Qt::CaseInsensitive);
|
||||
@@ -469,9 +458,10 @@ ExtensionsBrowser::ExtensionsBrowser()
|
||||
noMargin(), spacing(0),
|
||||
}.attachTo(this);
|
||||
|
||||
setBackgroundColor(this, Theme::Token_Background_Default);
|
||||
setBackgroundColor(m_extensionsView, Theme::Token_Background_Default);
|
||||
setBackgroundColor(m_extensionsView->viewport(), Theme::Token_Background_Default);
|
||||
WelcomePageHelpers::setBackgroundColor(this, Theme::Token_Background_Default);
|
||||
WelcomePageHelpers::setBackgroundColor(m_extensionsView, Theme::Token_Background_Default);
|
||||
WelcomePageHelpers::setBackgroundColor(m_extensionsView->viewport(),
|
||||
Theme::Token_Background_Default);
|
||||
|
||||
auto updateModel = [this] {
|
||||
m_model.reset(extensionsModel());
|
||||
@@ -488,7 +478,7 @@ ExtensionsBrowser::ExtensionsBrowser()
|
||||
|
||||
connect(ExtensionSystem::PluginManager::instance(),
|
||||
&ExtensionSystem::PluginManager::pluginsChanged, this, updateModel);
|
||||
connect(m_searchBox->m_lineEdit, &Utils::FancyLineEdit::textChanged,
|
||||
connect(m_searchBox, &QLineEdit::textChanged,
|
||||
m_filterProxyModel, &QSortFilterProxyModel::setFilterWildcard);
|
||||
}
|
||||
|
||||
|
||||
@@ -10,7 +10,9 @@
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
class QItemSelectionModel;
|
||||
class QLineEdit;
|
||||
class QListView;
|
||||
class QPushButton;
|
||||
class QSortFilterProxyModel;
|
||||
QT_END_NAMESPACE
|
||||
|
||||
@@ -19,11 +21,6 @@ namespace ExtensionSystem
|
||||
class PluginSpec;
|
||||
}
|
||||
|
||||
namespace Core {
|
||||
class SearchBox;
|
||||
class WelcomePageButton;
|
||||
}
|
||||
|
||||
namespace ExtensionManager::Internal {
|
||||
|
||||
using PluginSpecList = QList<const ExtensionSystem::PluginSpec *>;
|
||||
@@ -42,7 +39,6 @@ struct ItemData {
|
||||
};
|
||||
|
||||
ItemData itemData(const QModelIndex &index);
|
||||
void setBackgroundColor(QWidget *widget, Utils::Theme::Color colorRole);
|
||||
|
||||
class ExtensionsBrowser final : public QWidget
|
||||
{
|
||||
@@ -61,8 +57,8 @@ private:
|
||||
int extraListViewWidth() const; // Space for scrollbar, etc.
|
||||
|
||||
QScopedPointer<QStandardItemModel> m_model;
|
||||
Core::SearchBox *m_searchBox;
|
||||
Core::WelcomePageButton *m_updateButton;
|
||||
QLineEdit *m_searchBox;
|
||||
QPushButton *m_updateButton;
|
||||
QListView *m_extensionsView;
|
||||
QItemSelectionModel *m_selectionModel = nullptr;
|
||||
QSortFilterProxyModel *m_filterProxyModel;
|
||||
|
||||
Reference in New Issue
Block a user