mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-08-14 03:14:23 +00:00
Interface mockup 5
This commit is contained in:
@@ -0,0 +1,82 @@
|
||||
// This file was generated with the assistance of an AI coding tool.
|
||||
/********************************************************************************
|
||||
* *
|
||||
* This file is part of IfcOpenShell. *
|
||||
* *
|
||||
* IfcOpenShell is free software: you can redistribute it and/or modify *
|
||||
* it under the terms of the Lesser GNU General Public License as published by *
|
||||
* the Free Software Foundation, either version 3.0 of the License, or *
|
||||
* (at your option) any later version. *
|
||||
* *
|
||||
* IfcOpenShell is distributed in the hope that it will be useful, *
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
||||
* Lesser GNU General Public License for more details. *
|
||||
* *
|
||||
* You should have received a copy of the Lesser GNU General Public License *
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>. *
|
||||
* *
|
||||
********************************************************************************/
|
||||
|
||||
#include "KeyValueTable.h"
|
||||
|
||||
#include "SvgIcon.h"
|
||||
|
||||
#include <QHBoxLayout>
|
||||
#include <QLabel>
|
||||
#include <QVBoxLayout>
|
||||
|
||||
namespace ifcinterface::components {
|
||||
|
||||
KeyValueTable::KeyValueTable(const QList<KeyValueTableRow>& rows, QWidget* parent)
|
||||
: QWidget(parent)
|
||||
{
|
||||
setObjectName("attributeList");
|
||||
|
||||
auto* layout = new QVBoxLayout(this);
|
||||
layout->setContentsMargins(0, 0, 0, 0);
|
||||
layout->setSpacing(6);
|
||||
|
||||
for (const auto& row_data : rows) {
|
||||
auto* row = new QWidget(this);
|
||||
if (!row_data.trailing_icon_path.isEmpty()) {
|
||||
row->setObjectName("relationshipRow");
|
||||
} else {
|
||||
row->setObjectName("keyValueRow");
|
||||
}
|
||||
|
||||
auto* row_layout = new QHBoxLayout(row);
|
||||
row_layout->setContentsMargins(0, 0, 0, 0);
|
||||
row_layout->setSpacing(12);
|
||||
|
||||
auto* key = new QLabel(row_data.key, row);
|
||||
key->setObjectName("propertyKeyLabel");
|
||||
if (row_data.key_minimum_width > 0) {
|
||||
key->setMinimumWidth(row_data.key_minimum_width);
|
||||
}
|
||||
|
||||
auto* value = new QLabel(row_data.value, row);
|
||||
value->setObjectName(row_data.value_object_name.isEmpty()
|
||||
? "propertyValueLabel"
|
||||
: row_data.value_object_name);
|
||||
value->setWordWrap(true);
|
||||
value->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred);
|
||||
|
||||
row_layout->addWidget(key);
|
||||
row_layout->addWidget(value, 1);
|
||||
|
||||
if (!row_data.trailing_icon_path.isEmpty()) {
|
||||
auto* icon = new QLabel(row);
|
||||
icon->setObjectName(row_data.trailing_icon_object_name.isEmpty()
|
||||
? "relationshipIconLabel"
|
||||
: row_data.trailing_icon_object_name);
|
||||
icon->setPixmap(icons::makePanelSvgPixmap(row_data.trailing_icon_path, QSize(14, 14)));
|
||||
icon->setAlignment(Qt::AlignRight | Qt::AlignVCenter);
|
||||
row_layout->addWidget(icon, 0, Qt::AlignRight | Qt::AlignVCenter);
|
||||
}
|
||||
|
||||
layout->addWidget(row);
|
||||
}
|
||||
}
|
||||
|
||||
} // namespace ifcinterface::components
|
||||
@@ -0,0 +1,47 @@
|
||||
// This file was generated with the assistance of an AI coding tool.
|
||||
/********************************************************************************
|
||||
* *
|
||||
* This file is part of IfcOpenShell. *
|
||||
* *
|
||||
* IfcOpenShell is free software: you can redistribute it and/or modify *
|
||||
* it under the terms of the Lesser GNU General Public License as published by *
|
||||
* the Free Software Foundation, either version 3.0 of the License, or *
|
||||
* (at your option) any later version. *
|
||||
* *
|
||||
* IfcOpenShell is distributed in the hope that it will be useful, *
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
||||
* Lesser GNU General Public License for more details. *
|
||||
* *
|
||||
* You should have received a copy of the Lesser GNU General Public License *
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>. *
|
||||
* *
|
||||
********************************************************************************/
|
||||
|
||||
#ifndef IFCINTERFACE_COMPONENTS_KEYVALUETABLE_H
|
||||
#define IFCINTERFACE_COMPONENTS_KEYVALUETABLE_H
|
||||
|
||||
#include <QList>
|
||||
#include <QString>
|
||||
#include <QWidget>
|
||||
|
||||
namespace ifcinterface::components {
|
||||
|
||||
struct KeyValueTableRow {
|
||||
QString key;
|
||||
QString value;
|
||||
QString value_object_name = "propertyValueLabel";
|
||||
QString trailing_icon_path;
|
||||
QString trailing_icon_object_name;
|
||||
int key_minimum_width = 0;
|
||||
};
|
||||
|
||||
class KeyValueTable : public QWidget {
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit KeyValueTable(const QList<KeyValueTableRow>& rows, QWidget* parent = nullptr);
|
||||
};
|
||||
|
||||
} // namespace ifcinterface::components
|
||||
|
||||
#endif
|
||||
@@ -18,8 +18,9 @@
|
||||
* *
|
||||
********************************************************************************/
|
||||
|
||||
#include "PanelChrome.h"
|
||||
#include "Panel.h"
|
||||
|
||||
#include "Style.h"
|
||||
#include "SvgIcon.h"
|
||||
|
||||
#include <QDockWidget>
|
||||
@@ -30,7 +31,7 @@
|
||||
#include <QToolButton>
|
||||
#include <QVBoxLayout>
|
||||
|
||||
namespace ifcinterface::components::panel {
|
||||
namespace ifcinterface::components {
|
||||
|
||||
namespace {
|
||||
|
||||
@@ -69,32 +70,31 @@ public:
|
||||
|
||||
} // namespace
|
||||
|
||||
QDockWidget* makeDock(const QString& title, QWidget* content, QWidget* parent, bool has_settings) {
|
||||
auto* dock = new QDockWidget(title, parent);
|
||||
dock->setObjectName(title);
|
||||
dock->setFeatures(QDockWidget::DockWidgetMovable |
|
||||
QDockWidget::DockWidgetFloatable |
|
||||
QDockWidget::DockWidgetClosable);
|
||||
dock->setTitleBarWidget(new DockTitleBar(title, has_settings, dock));
|
||||
dock->setWidget(content);
|
||||
return dock;
|
||||
}
|
||||
|
||||
QFrame* wrapPanel(QWidget* inner) {
|
||||
Panel::Panel(const QString& title, QWidget* content, QWidget* parent, bool has_settings)
|
||||
: QDockWidget(title, parent)
|
||||
{
|
||||
auto* outer = new QFrame();
|
||||
auto* outer_layout = new QVBoxLayout(outer);
|
||||
outer_layout->setContentsMargins(6, 6, 6, 6);
|
||||
outer_layout->setContentsMargins(style::metrics::padding,
|
||||
style::metrics::padding,
|
||||
style::metrics::padding,
|
||||
style::metrics::padding);
|
||||
outer_layout->setSpacing(0);
|
||||
|
||||
auto* frame = new QFrame(outer);
|
||||
frame->setObjectName("panelFrame");
|
||||
auto* layout = new QVBoxLayout(frame);
|
||||
layout->setContentsMargins(0, 8, 0, 8);
|
||||
layout->setSpacing(0);
|
||||
layout->addWidget(inner);
|
||||
|
||||
frame->setObjectName("panel");
|
||||
auto* frame_layout = new QVBoxLayout(frame);
|
||||
frame_layout->setContentsMargins(0, style::metrics::padding, 0, style::metrics::padding);
|
||||
frame_layout->setSpacing(0);
|
||||
frame_layout->addWidget(content);
|
||||
outer_layout->addWidget(frame);
|
||||
return outer;
|
||||
|
||||
setObjectName(title);
|
||||
setFeatures(QDockWidget::DockWidgetMovable |
|
||||
QDockWidget::DockWidgetFloatable |
|
||||
QDockWidget::DockWidgetClosable);
|
||||
setTitleBarWidget(new DockTitleBar(title, has_settings, this));
|
||||
setWidget(outer);
|
||||
}
|
||||
|
||||
} // namespace ifcinterface::components::panel
|
||||
} // namespace ifcinterface::components
|
||||
@@ -21,17 +21,19 @@
|
||||
#ifndef IFCINTERFACE_COMPONENTS_PANEL_PANELCHROME_H
|
||||
#define IFCINTERFACE_COMPONENTS_PANEL_PANELCHROME_H
|
||||
|
||||
#include <QString>
|
||||
#include <QDockWidget>
|
||||
|
||||
class QDockWidget;
|
||||
class QFrame;
|
||||
class QWidget;
|
||||
|
||||
namespace ifcinterface::components::panel {
|
||||
namespace ifcinterface::components {
|
||||
|
||||
QDockWidget* makeDock(const QString& title, QWidget* content, QWidget* parent, bool has_settings = false);
|
||||
QFrame* wrapPanel(QWidget* inner);
|
||||
class Panel : public QDockWidget {
|
||||
Q_OBJECT
|
||||
|
||||
} // namespace ifcinterface::components::panel
|
||||
public:
|
||||
explicit Panel(const QString& title, QWidget* content, QWidget* parent = nullptr, bool has_settings = false);
|
||||
};
|
||||
|
||||
} // namespace ifcinterface::components
|
||||
|
||||
#endif
|
||||
@@ -20,6 +20,7 @@
|
||||
|
||||
#include "Section.h"
|
||||
|
||||
#include "Style.h"
|
||||
#include "SvgIcon.h"
|
||||
|
||||
#include <QFrame>
|
||||
@@ -49,14 +50,14 @@ Section::Section(const QString& title, SectionHeaderMode header_mode,
|
||||
setObjectName("panelSection");
|
||||
auto* layout = new QVBoxLayout(this);
|
||||
layout->setContentsMargins(0, 0, 0, 0);
|
||||
layout->setSpacing(6);
|
||||
layout->setSpacing(style::metrics::section_spacing);
|
||||
|
||||
if (header_mode == SectionHeaderMode::Visible) {
|
||||
auto* header = new QFrame(this);
|
||||
header->setObjectName("panelSectionHeader");
|
||||
auto* header_layout = new QHBoxLayout(header);
|
||||
header_layout->setContentsMargins(0, 0, 0, 0);
|
||||
header_layout->setSpacing(6);
|
||||
header_layout->setSpacing(style::metrics::section_spacing);
|
||||
|
||||
auto* toggle = new QToolButton(header);
|
||||
toggle->setObjectName("panelSectionHeaderButton");
|
||||
@@ -89,7 +90,8 @@ Section::Section(const QString& title, SectionHeaderMode header_mode,
|
||||
auto* filter_wrapper = new QWidget(this);
|
||||
filter_wrapper->setObjectName("panelSectionFilterWrapper");
|
||||
auto* filter_wrapper_layout = new QVBoxLayout(filter_wrapper);
|
||||
filter_wrapper_layout->setContentsMargins(10, 0, 10, 0);
|
||||
filter_wrapper_layout->setContentsMargins(style::metrics::filter_body_padding_x, 0,
|
||||
style::metrics::filter_body_padding_x, 0);
|
||||
filter_wrapper_layout->setSpacing(0);
|
||||
filter_wrapper_layout->addWidget(filter_field_);
|
||||
layout->addWidget(filter_wrapper);
|
||||
@@ -108,7 +110,8 @@ Section::Section(const QString& title, SectionHeaderMode header_mode,
|
||||
auto* filter_wrapper = new QWidget(this);
|
||||
filter_wrapper->setObjectName("panelSectionFilterWrapper");
|
||||
auto* filter_wrapper_layout = new QVBoxLayout(filter_wrapper);
|
||||
filter_wrapper_layout->setContentsMargins(8, 0, 8, 0);
|
||||
filter_wrapper_layout->setContentsMargins(style::metrics::hidden_filter_body_padding_x, 0,
|
||||
style::metrics::hidden_filter_body_padding_x, 0);
|
||||
filter_wrapper_layout->setSpacing(0);
|
||||
filter_wrapper_layout->addWidget(filter_field_);
|
||||
layout->addWidget(filter_wrapper);
|
||||
@@ -118,11 +121,14 @@ Section::Section(const QString& title, SectionHeaderMode header_mode,
|
||||
body_->setObjectName("panelSectionBody");
|
||||
body_layout_ = new QVBoxLayout(body_);
|
||||
if (header_mode == SectionHeaderMode::Visible) {
|
||||
body_layout_->setContentsMargins(10, 6, 10, 0);
|
||||
body_layout_->setContentsMargins(style::metrics::section_body_padding_x,
|
||||
style::metrics::section_body_padding_top,
|
||||
style::metrics::section_body_padding_x, 0);
|
||||
} else {
|
||||
body_layout_->setContentsMargins(8, 0, 8, 0);
|
||||
body_layout_->setContentsMargins(style::metrics::hidden_section_body_padding_x, 0,
|
||||
style::metrics::hidden_section_body_padding_x, 0);
|
||||
}
|
||||
body_layout_->setSpacing(6);
|
||||
body_layout_->setSpacing(style::metrics::section_spacing);
|
||||
layout->addWidget(body_);
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,303 @@
|
||||
// This file was generated with the assistance of an AI coding tool.
|
||||
/********************************************************************************
|
||||
* *
|
||||
* This file is part of IfcOpenShell. *
|
||||
* *
|
||||
* IfcOpenShell is free software: you can redistribute it and/or modify *
|
||||
* it under the terms of the Lesser GNU General Public License as published by *
|
||||
* the Free Software Foundation, either version 3.0 of the License, or *
|
||||
* (at your option) any later version. *
|
||||
* *
|
||||
* IfcOpenShell is distributed in the hope that it will be useful, *
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
||||
* Lesser GNU General Public License for more details. *
|
||||
* *
|
||||
* You should have received a copy of the Lesser GNU General Public License *
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>. *
|
||||
* *
|
||||
********************************************************************************/
|
||||
|
||||
#include "Style.h"
|
||||
|
||||
namespace ifcinterface::components::style {
|
||||
|
||||
QString buildAppStyleSheet() {
|
||||
return QString(R"(
|
||||
QMainWindow {
|
||||
background: #26292f;
|
||||
}
|
||||
QWidget {
|
||||
color: #d0d5dd;
|
||||
background: #26292f;
|
||||
selection-background-color: #39b54a;
|
||||
selection-color: #14161a;
|
||||
}
|
||||
QFrame#ribbonShell {
|
||||
background: #2d3138;
|
||||
border-bottom: 1px solid #1b1d22;
|
||||
}
|
||||
QTabBar::tab {
|
||||
background: transparent;
|
||||
color: #8d97a7;
|
||||
padding: 8px 14px;
|
||||
margin-right: 2px;
|
||||
border-bottom: 2px solid transparent;
|
||||
}
|
||||
QTabBar::tab:selected {
|
||||
color: #f2f5fa;
|
||||
border-bottom: 2px solid #39b54a;
|
||||
}
|
||||
QTabBar::tab:hover {
|
||||
color: #ffffff;
|
||||
}
|
||||
QFrame#ribbonBand {
|
||||
background: #31353d;
|
||||
border-top: 1px solid #3b4048;
|
||||
}
|
||||
QFrame#ribbonPage {
|
||||
background: transparent;
|
||||
}
|
||||
QFrame#ribbonGroup {
|
||||
background: transparent;
|
||||
border-right: 1px solid #434852;
|
||||
}
|
||||
QLabel#ribbonGroupLabel {
|
||||
color: #7f8796;
|
||||
font-size: 9px;
|
||||
font-weight: 600;
|
||||
letter-spacing: 0.08em;
|
||||
}
|
||||
QToolButton#ribbonButton {
|
||||
background: transparent;
|
||||
border: none;
|
||||
padding: 6px 4px 4px 4px;
|
||||
font-size: 11px;
|
||||
color: #d6dce6;
|
||||
}
|
||||
QToolButton#ribbonButton:hover {
|
||||
background: #3a3f48;
|
||||
}
|
||||
QToolButton#ribbonButton:pressed {
|
||||
background: #24282f;
|
||||
}
|
||||
QFrame#viewportShell {
|
||||
background: #202329;
|
||||
border-top: 1px solid #1d2025;
|
||||
}
|
||||
QFrame#viewportFrame {
|
||||
background: #1a1d22;
|
||||
border: 1px solid #333942;
|
||||
}
|
||||
QDockWidget {
|
||||
color: #d0d5dd;
|
||||
}
|
||||
QLabel#dockTitleText {
|
||||
color: #dfe4ec;
|
||||
font-size: 10px;
|
||||
font-weight: 700;
|
||||
letter-spacing: 0.08em;
|
||||
}
|
||||
QToolButton#dockTitleButton {
|
||||
color: #8e97a5;
|
||||
border: none;
|
||||
background: transparent;
|
||||
}
|
||||
QToolButton#dockTitleButton:hover {
|
||||
color: #ffffff;
|
||||
background: #353a42;
|
||||
}
|
||||
QFrame#panel {
|
||||
background: #2b2f36;
|
||||
border: 1px solid #3e444e;
|
||||
border-radius: %1px;
|
||||
}
|
||||
QTreeWidget, QListWidget, QTableWidget, QAbstractScrollArea {
|
||||
background: #2b2f36;
|
||||
border: none;
|
||||
outline: none;
|
||||
gridline-color: #333842;
|
||||
}
|
||||
QTreeWidget::viewport, QListWidget::viewport, QTableWidget::viewport {
|
||||
background: #2b2f36;
|
||||
}
|
||||
QHeaderView::section {
|
||||
background: #31353d;
|
||||
color: #b5becc;
|
||||
border: none;
|
||||
border-bottom: 1px solid #434a55;
|
||||
padding: 7px 8px;
|
||||
font-weight: 600;
|
||||
}
|
||||
QTableCornerButton::section {
|
||||
background: #31353d;
|
||||
border: none;
|
||||
}
|
||||
QScrollArea {
|
||||
background: #2b2f36;
|
||||
border: none;
|
||||
}
|
||||
QScrollArea > QWidget > QWidget {
|
||||
background: #2b2f36;
|
||||
}
|
||||
QLineEdit {
|
||||
background: #31353d;
|
||||
border: 1px solid #434a55;
|
||||
border-radius: %1px;
|
||||
padding: %2px %3px;
|
||||
color: #d9dfeb;
|
||||
}
|
||||
QLineEdit:focus {
|
||||
border: 1px solid #5b6472;
|
||||
}
|
||||
QFrame#entityClassCard {
|
||||
background: #26292f;
|
||||
border: 1px solid #404650;
|
||||
border-radius: %1px;
|
||||
}
|
||||
QLabel#entityClassLabel {
|
||||
color: #eef2f8;
|
||||
font-weight: 700;
|
||||
background: transparent;
|
||||
}
|
||||
QLabel#entityTypeLabel {
|
||||
color: #9aa4b3;
|
||||
background: transparent;
|
||||
}
|
||||
QWidget#attributeList {
|
||||
background: transparent;
|
||||
}
|
||||
QTreeView::item, QListView::item, QTableView::item {
|
||||
padding: 4px;
|
||||
}
|
||||
QScrollBar:vertical {
|
||||
background: transparent;
|
||||
width: 10px;
|
||||
margin: 2px 2px 2px 0;
|
||||
}
|
||||
QScrollBar:horizontal {
|
||||
background: transparent;
|
||||
height: 10px;
|
||||
margin: 0 2px 2px 2px;
|
||||
}
|
||||
QScrollBar::handle:vertical, QScrollBar::handle:horizontal {
|
||||
background: #525a67;
|
||||
border-radius: %1px;
|
||||
min-height: 24px;
|
||||
min-width: 24px;
|
||||
}
|
||||
QScrollBar::handle:vertical:hover, QScrollBar::handle:horizontal:hover {
|
||||
background: #697385;
|
||||
}
|
||||
QScrollBar::add-line, QScrollBar::sub-line,
|
||||
QScrollBar::add-page, QScrollBar::sub-page {
|
||||
background: transparent;
|
||||
border: none;
|
||||
}
|
||||
QStatusBar {
|
||||
background: #24272c;
|
||||
border-top: 1px solid #1a1c20;
|
||||
}
|
||||
QStatusBar QLabel {
|
||||
color: #97a1af;
|
||||
background: transparent;
|
||||
border: none;
|
||||
padding: 2px 8px;
|
||||
}
|
||||
QGroupBox {
|
||||
background: transparent;
|
||||
border: 1px solid #404650;
|
||||
border-radius: %1px;
|
||||
margin-top: 10px;
|
||||
padding-top: 10px;
|
||||
}
|
||||
QGroupBox#propertySetCard {
|
||||
background: #26292f;
|
||||
border: 1px solid #404650;
|
||||
border-radius: %1px;
|
||||
}
|
||||
QGroupBox#propertySetCard::title {
|
||||
subcontrol-origin: margin;
|
||||
left: %4px;
|
||||
padding: 0 4px;
|
||||
color: #d5dbe5;
|
||||
}
|
||||
QGroupBox#propertySetCard > QWidget {
|
||||
background: #26292f;
|
||||
}
|
||||
QWidget#panelSection {
|
||||
background: transparent;
|
||||
}
|
||||
QWidget#panelSectionFilterWrapper {
|
||||
background: transparent;
|
||||
}
|
||||
QWidget#relationshipRow {
|
||||
background: transparent;
|
||||
}
|
||||
QLabel#relationshipIconLabel {
|
||||
background: transparent;
|
||||
}
|
||||
QWidget#inspectorPanel {
|
||||
background: #2b2f36;
|
||||
}
|
||||
QFrame#panelSectionHeader {
|
||||
background: #26292f;
|
||||
}
|
||||
QToolButton#panelSectionHeaderButton {
|
||||
background: transparent;
|
||||
border: none;
|
||||
color: #e1e7f0;
|
||||
font-weight: 700;
|
||||
text-align: left;
|
||||
padding: %5px;
|
||||
margin: 0;
|
||||
}
|
||||
QToolButton#panelSectionHeaderButton:hover {
|
||||
color: #ffffff;
|
||||
}
|
||||
QToolButton#panelSectionHeaderButton::menu-indicator {
|
||||
image: none;
|
||||
width: 0;
|
||||
}
|
||||
QToolButton#panelSectionFilterToggle {
|
||||
background: transparent;
|
||||
border: none;
|
||||
padding: %5px;
|
||||
}
|
||||
QToolButton#panelSectionFilterToggle:hover {
|
||||
background: #353a42;
|
||||
}
|
||||
QWidget#panelSectionBody {
|
||||
background: transparent;
|
||||
}
|
||||
QLabel#propertyKeyLabel {
|
||||
color: #9aa4b3;
|
||||
background: transparent;
|
||||
}
|
||||
QLabel#propertyValueLabel {
|
||||
color: #dce2eb;
|
||||
background: transparent;
|
||||
}
|
||||
QLabel#relationshipValueLabel {
|
||||
color: #dce2eb;
|
||||
background: transparent;
|
||||
}
|
||||
QLabel#todoPanelTitle {
|
||||
font-size: 14px;
|
||||
font-weight: 600;
|
||||
color: #e1e6ee;
|
||||
background: transparent;
|
||||
}
|
||||
QLabel#todoPanelBody {
|
||||
color: #8f98a6;
|
||||
background: transparent;
|
||||
}
|
||||
)")
|
||||
.arg(metrics::panel_radius)
|
||||
.arg(metrics::control_padding_y)
|
||||
.arg(metrics::control_padding_x)
|
||||
.arg(metrics::card_padding)
|
||||
.arg(metrics::section_header_padding);
|
||||
}
|
||||
|
||||
} // namespace ifcinterface::components::style
|
||||
@@ -0,0 +1,49 @@
|
||||
// This file was generated with the assistance of an AI coding tool.
|
||||
/********************************************************************************
|
||||
* *
|
||||
* This file is part of IfcOpenShell. *
|
||||
* *
|
||||
* IfcOpenShell is free software: you can redistribute it and/or modify *
|
||||
* it under the terms of the Lesser GNU General Public License as published by *
|
||||
* the Free Software Foundation, either version 3.0 of the License, or *
|
||||
* (at your option) any later version. *
|
||||
* *
|
||||
* IfcOpenShell is distributed in the hope that it will be useful, *
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
||||
* Lesser GNU General Public License for more details. *
|
||||
* *
|
||||
* You should have received a copy of the Lesser GNU General Public License *
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>. *
|
||||
* *
|
||||
********************************************************************************/
|
||||
|
||||
#ifndef IFCINTERFACE_COMPONENTS_STYLE_H
|
||||
#define IFCINTERFACE_COMPONENTS_STYLE_H
|
||||
|
||||
#include <QString>
|
||||
|
||||
namespace ifcinterface::components::style::metrics {
|
||||
|
||||
inline constexpr int padding = 6;
|
||||
inline constexpr int section_spacing = 6;
|
||||
inline constexpr int section_body_padding_x = 10;
|
||||
inline constexpr int section_body_padding_top = 6;
|
||||
inline constexpr int hidden_section_body_padding_x = 8;
|
||||
inline constexpr int section_header_padding = 2;
|
||||
inline constexpr int filter_body_padding_x = 10;
|
||||
inline constexpr int hidden_filter_body_padding_x = 8;
|
||||
inline constexpr int card_padding = 10;
|
||||
inline constexpr int control_padding_y = 6;
|
||||
inline constexpr int control_padding_x = 8;
|
||||
inline constexpr int panel_radius = 3;
|
||||
|
||||
} // namespace ifcinterface::components::style::metrics
|
||||
|
||||
namespace ifcinterface::components::style {
|
||||
|
||||
QString buildAppStyleSheet();
|
||||
|
||||
} // namespace ifcinterface::components::style
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user