PlatformScrollbar::PlatformScrollbar(ScrollbarClient* client, ScrollbarOrientation orientation, ScrollbarControlSize controlSize) : Scrollbar(client, orientation, controlSize) { QScrollBar* bar = new QScrollBar(orientation == HorizontalScrollbar ? Qt::Horizontal : Qt::Vertical); setQWidget(bar); }
QWidget * Tab::createQtWidget(Proxy *proxy, UIProxy *uiproxy, QWidget *parent) { QWidget *tab = new QWidget(parent); tab->setEnabled(enabled); tab->setVisible(visible); tab->setStyleSheet(QString::fromStdString(style)); LayoutWidget::createQtWidget(proxy, uiproxy, tab); setQWidget(tab); setProxy(proxy); return tab; }
QWidget * Group::createQtWidget(Proxy *proxy, UIProxy *uiproxy, QWidget *parent) { QWidget *groupBox = flat ? new QWidget(parent) : new QGroupBox(parent); groupBox->setEnabled(enabled); groupBox->setVisible(visible); groupBox->setStyleSheet(QString::fromStdString(style)); LayoutWidget::createQtWidget(proxy, uiproxy, groupBox); setQWidget(groupBox); setProxy(proxy); return groupBox; }
QWidget * Label::createQtWidget(Proxy *proxy, UIProxy *uiproxy, QWidget *parent) { QLabel *label = new QLabel(QString::fromStdString(text), parent); label->setEnabled(enabled); label->setVisible(visible); label->setStyleSheet(QString::fromStdString(style)); label->setWordWrap(wordWrap); label->setOpenExternalLinks(false); QObject::connect(label, &QLabel::linkActivated, uiproxy, &UIProxy::onLinkActivated); setQWidget(label); setProxy(proxy); return label; }
QWidget * Table::createQtWidget(Proxy *proxy, UIProxy *uiproxy, QWidget *parent) { QTableWidget *tablewidget = new TableWidget(this, parent); tablewidget->setEnabled(enabled); tablewidget->setVisible(visible); tablewidget->setStyleSheet(QString::fromStdString(style)); size_t rowcount = rows.size(), columncount = 0; for(size_t i = 0; i < rowcount; i++) columncount = std::max(columncount, rows[i].size()); tablewidget->setRowCount(rowcount); tablewidget->setColumnCount(columncount); tablewidget->horizontalHeader()->setVisible(show_horizontal_header); tablewidget->verticalHeader()->setVisible(show_vertical_header); tablewidget->setShowGrid(show_grid); QStringList qtHorizontalHeader; for(size_t i = 0; i < horizontalHeader.size(); i++) qtHorizontalHeader << QString::fromStdString(horizontalHeader[i]); tablewidget->setHorizontalHeaderLabels(qtHorizontalHeader); QStringList qtVerticalHeader; for(size_t i = 0; i < verticalHeader.size(); i++) qtVerticalHeader << QString::fromStdString(verticalHeader[i]); tablewidget->setVerticalHeaderLabels(qtVerticalHeader); if(autosize_horizontal_header) tablewidget->horizontalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents); if(autosize_vertical_header) tablewidget->verticalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents); if(sortable) tablewidget->setSortingEnabled(true); for(size_t row = 0; row < rowcount; row++) { for(size_t column = 0; column < rows[row].size(); column++) { TableItem &item = rows[row][column]; QTableWidgetItem *qtwitem = new QTableWidgetItem(QString::fromStdString(item.text)); if(item.editable) qtwitem->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled | Qt::ItemIsEditable); else qtwitem->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled); tablewidget->setItem(row, column, qtwitem); } } tablewidget->setSelectionBehavior(selectionBehavior); tablewidget->setSelectionMode(selectionMode); QObject::connect(tablewidget, &QTableWidget::cellActivated, uiproxy, &UIProxy::onCellActivate); QObject::connect(tablewidget, &QTableWidget::cellChanged, uiproxy, &UIProxy::onCellActivate); QObject::connect(tablewidget, &QTableWidget::itemSelectionChanged, uiproxy, &UIProxy::onTableSelectionChange); setQWidget(tablewidget); setEditable(editable); setProxy(proxy); return tablewidget; }
QWidget * Tabs::createQtWidget(Proxy *proxy, UIProxy *uiproxy, QWidget *parent) { QTabWidget *tabwidget = new QTabWidget(parent); tabwidget->setEnabled(enabled); tabwidget->setVisible(visible); tabwidget->setStyleSheet(QString::fromStdString(style)); for(std::vector<Tab*>::const_iterator it = tabs.begin(); it != tabs.end(); ++it) { QWidget *tab = (*it)->createQtWidget(proxy, uiproxy, tabwidget); tabwidget->addTab(tab, QString::fromStdString((*it)->title)); } setQWidget(tabwidget); setProxy(proxy); return tabwidget; }