void ServerWidget::init_cvar_table() { delegate_cvar.set_cvar = [this](const QString& name, const QString& value) { /// \todo Maybe option to choose set or seta rcon_command("set "+name+' '+value); auto cvar = model_cvar.cvar(name); cvar.value = value; model_cvar.set_cvar(cvar); }; table_cvars->setModel(&proxy_cvar); table_cvars->setItemDelegate(&delegate_cvar); proxy_cvar.setSourceModel(&model_cvar); connect(&log_parser, &xonotic::LogParser::cvar, &model_cvar, &CvarModel::set_cvar); connect(&log_parser, &xonotic::LogParser::cvarlist_begin, &model_cvar, &CvarModel::block_updates); connect(&log_parser, &xonotic::LogParser::cvarlist_end, &model_cvar, &CvarModel::unblock_updates); auto header_view = table_cvars->horizontalHeader(); header_view->setSectionResizeMode(CvarModel::Name, QHeaderView::ResizeToContents); header_view->setSectionResizeMode(CvarModel::Value, QHeaderView::Stretch); table_cvars->hideColumn(CvarModel::Default); table_cvars->hideColumn(CvarModel::Description); for ( int i = 0; i < model_cvar.columnCount(); i++ ) input_cvar_filter_section->addItem( model_cvar.headerData(i,Qt::Horizontal).toString()); }
void ServerWidget::init_player_table() { table_players->setModel(&model_player); connect(&log_parser, &xonotic::LogParser::players_changed, &model_player, &PlayerModel::set_players, Qt::QueuedConnection); auto header_view = table_players->horizontalHeader(); for ( int i = 0; i < model_player.columnCount(); i++) header_view->setSectionResizeMode(i, QHeaderView::ResizeToContents); header_view->setSectionResizeMode(PlayerModel::Name, QHeaderView::Stretch); connect(&model_player, &PlayerModel::players_changed, this, &ServerWidget::update_player_actions); }
ViewHeader::ViewHeader( QAbstractItemView* parent ) : QHeaderView( Qt::Horizontal, parent ) , m_parent( parent ) , m_menu( new QMenu( this ) ) , m_sigmap( new QSignalMapper( this ) ) , m_init( false ) { m_menu->setFont( TomahawkUtils::systemFont() ); #if QT_VERSION >= QT_VERSION_CHECK( 5, 0, 0 ) setSectionResizeMode( QHeaderView::Interactive ); setSectionsMovable( true ); #else setResizeMode( QHeaderView::Interactive ); setMovable( true ); #endif setMinimumSectionSize( 60 ); setDefaultAlignment( Qt::AlignLeft ); setStretchLastSection( true ); // m_menu->addAction( tr( "Resize columns to fit window" ), this, SLOT( onToggleResizeColumns() ) ); // m_menu->addSeparator(); connect( m_sigmap, SIGNAL( mapped( int ) ), SLOT( toggleVisibility( int ) ) ); }
void QxtHeaderView::setProportionalSectionSizes(bool enabled) { if (qxt_d().proportional != enabled) { qxt_d().proportional = enabled; if (enabled) #if QT_VERSION < QT_VERSION_CHECK(5,0,0) setResizeMode(QHeaderView::Fixed); #else setSectionResizeMode(QHeaderView::Fixed); #endif } }
QWidget *ItemTagsLoader::createSettingsWidget(QWidget *parent) { ui.reset(new Ui::ItemTagsSettings); QWidget *w = new QWidget(parent); ui->setupUi(w); // Init tag table. for (const auto &tag : m_tags) addTagToSettingsTable(tag); for (int i = 0; i < 10; ++i) addTagToSettingsTable(); auto header = ui->tableWidget->horizontalHeader(); header->setSectionResizeMode(tagsTableColumns::name, QHeaderView::Stretch); header->setSectionResizeMode(tagsTableColumns::styleSheet, QHeaderView::Stretch); header->setSectionResizeMode(tagsTableColumns::match, QHeaderView::Stretch); setFixedColumnSize(ui->tableWidget, tagsTableColumns::color); setFixedColumnSize(ui->tableWidget, tagsTableColumns::icon); connect( ui->tableWidget, &QTableWidget::itemChanged, this, &ItemTagsLoader::onTableWidgetItemChanged ); return w; }
EvalWidget::EvalWidget(QWidget *parent) : QWidget(parent), m_player(nullptr), m_statsTable(new QTableWidget(1, 5, this)), m_pvTable(new QTableWidget(0, 5, this)), m_depth(-1) { m_statsTable->setEditTriggers(QAbstractItemView::NoEditTriggers); auto hHeader = m_statsTable->horizontalHeader(); auto vHeader = m_statsTable->verticalHeader(); vHeader->hide(); int maxHeight = hHeader->sizeHint().height() + vHeader->defaultSectionSize(); m_statsTable->setMaximumHeight(maxHeight); QStringList statsHeaders; statsHeaders << tr("NPS") << tr("Hash") << tr("Pondermove") << tr("Ponderhit") << tr("TB"); m_statsTable->setHorizontalHeaderLabels(statsHeaders); hHeader->setSectionResizeMode(QHeaderView::Stretch); auto protoItem = new QTableWidgetItem; protoItem->setTextAlignment(Qt::AlignVCenter | Qt::AlignRight); m_statsTable->setItemPrototype(protoItem); m_pvTable->setEditTriggers(QAbstractItemView::NoEditTriggers); m_pvTable->verticalHeader()->hide(); QStringList pvHeaders; pvHeaders << tr("Depth") << tr("Time") << tr("Nodes") << tr("Score") << tr("PV"); m_pvTable->setHorizontalHeaderLabels(pvHeaders); m_pvTable->setColumnWidth(0, 60); m_pvTable->setColumnWidth(1, 60); m_pvTable->setColumnWidth(2, 100); m_pvTable->setColumnWidth(3, 60); m_pvTable->horizontalHeader()->setStretchLastSection(true); QVBoxLayout* layout = new QVBoxLayout(); layout->addWidget(m_statsTable); layout->addWidget(m_pvTable); layout->setContentsMargins(0, 0, 0, 0); setLayout(layout); }
ColorListWidget::ColorListWidget(Map* map, MainWindow* window, QWidget* parent) : QWidget(parent) , map(map) , window(window) { react_to_changes = true; setWhatsThis(Util::makeWhatThis("color_dock_widget.html")); // Color table color_table = new QTableWidget(map->getNumColors(), 7); color_table->setEditTriggers(QAbstractItemView::SelectedClicked | QAbstractItemView::AnyKeyPressed); color_table->setSelectionMode(QAbstractItemView::SingleSelection); color_table->setSelectionBehavior(QAbstractItemView::SelectRows); color_table->verticalHeader()->setVisible(false); color_table->setHorizontalHeaderLabels(QStringList() << QString{} << tr("Name") << tr("Spot color") << tr("CMYK") << tr("RGB") << tr("K.o.") << tr("Opacity") ); color_table->setItemDelegateForColumn(0, new ColorItemDelegate(this)); color_table->setItemDelegateForColumn(6, new PercentageDelegate(this)); color_table->setColumnHidden(6, true); auto new_button_menu = new QMenu(this); (void) new_button_menu->addAction(tr("New"), this, SLOT(newColor())); duplicate_action = new_button_menu->addAction(tr("Duplicate"), this, SLOT(duplicateColor())); duplicate_action->setIcon(QIcon(QString::fromLatin1(":/images/tool-duplicate.png"))); // Buttons auto new_button = newToolButton(QIcon(QString::fromLatin1(":/images/plus.png")), tr("New")); new_button->setPopupMode(QToolButton::DelayedPopup); // or MenuButtonPopup new_button->setMenu(new_button_menu); delete_button = newToolButton(QIcon(QString::fromLatin1(":/images/minus.png")), tr("Delete")); auto add_remove_layout = new SegmentedButtonLayout(); add_remove_layout->addWidget(new_button); add_remove_layout->addWidget(delete_button); move_up_button = newToolButton(QIcon(QString::fromLatin1(":/images/arrow-up.png")), tr("Move Up")); move_up_button->setAutoRepeat(true); move_down_button = newToolButton(QIcon(QString::fromLatin1(":/images/arrow-down.png")), tr("Move Down")); move_down_button->setAutoRepeat(true); auto up_down_layout = new SegmentedButtonLayout(); up_down_layout->addWidget(move_up_button); up_down_layout->addWidget(move_down_button); // TODO: In Mapper >= 0.6, switch to ColorWidget (or generic) translation context. edit_button = newToolButton(QIcon(QString::fromLatin1(":/images/settings.png")), QApplication::translate("OpenOrienteering::MapEditorController", "&Edit").remove(QLatin1Char('&'))); edit_button->setToolButtonStyle(Qt::ToolButtonTextBesideIcon); auto help_button = newToolButton(QIcon(QString::fromLatin1(":/images/help.png")), tr("Help")); help_button->setAutoRaise(true); // The buttons row layout auto buttons_group_layout = new QHBoxLayout(); buttons_group_layout->addLayout(add_remove_layout); buttons_group_layout->addLayout(up_down_layout); buttons_group_layout->addWidget(edit_button); buttons_group_layout->addWidget(new QLabel(QString::fromLatin1(" ")), 1); buttons_group_layout->addWidget(help_button); // The layout of all components below the table auto bottom_layout = new QVBoxLayout(); QStyleOption style_option(QStyleOption::Version, QStyleOption::SO_DockWidget); bottom_layout->setContentsMargins( style()->pixelMetric(QStyle::PM_LayoutLeftMargin, &style_option) / 2, 0, // Covered by the main layout's spacing. style()->pixelMetric(QStyle::PM_LayoutRightMargin, &style_option) / 2, style()->pixelMetric(QStyle::PM_LayoutBottomMargin, &style_option) / 2 ); bottom_layout->addLayout(buttons_group_layout); bottom_layout->addWidget(new QLabel(tr("Double-click a color value to open a dialog."))); // The main layout auto layout = new QVBoxLayout(); layout->setContentsMargins(QMargins()); layout->addWidget(color_table, 1); layout->addLayout(bottom_layout); setLayout(layout); for (int i = 0; i < map->getNumColors(); ++i) addRow(i); auto header_view = color_table->horizontalHeader(); header_view->setSectionResizeMode(QHeaderView::Interactive); header_view->resizeSections(QHeaderView::ResizeToContents); header_view->setSectionResizeMode(0, QHeaderView::Fixed); // Color header_view->resizeSection(0, 32); header_view->setSectionResizeMode(1, QHeaderView::Stretch); // Name header_view->setSectionResizeMode(1, QHeaderView::Interactive); // Spot colors header_view->setSectionResizeMode(5, QHeaderView::Fixed); // Knockout header_view->resizeSection(5, 32); header_view->setSectionsClickable(false); currentCellChange(color_table->currentRow(), 0, 0, 0); // enable / disable move color buttons // Connections connect(color_table, &QTableWidget::cellChanged, this, &ColorListWidget::cellChange); connect(color_table, &QTableWidget::currentCellChanged, this, &ColorListWidget::currentCellChange); connect(color_table, &QTableWidget::cellDoubleClicked, this, &ColorListWidget::editCurrentColor); connect(new_button, &QAbstractButton::clicked, this, &ColorListWidget::newColor); connect(delete_button, &QAbstractButton::clicked, this, &ColorListWidget::deleteColor); connect(move_up_button, &QAbstractButton::clicked, this, &ColorListWidget::moveColorUp); connect(move_down_button, &QAbstractButton::clicked, this, &ColorListWidget::moveColorDown); connect(edit_button, &QAbstractButton::clicked, this, &ColorListWidget::editCurrentColor); connect(help_button, &QAbstractButton::clicked, this, &ColorListWidget::showHelp); connect(map, &Map::colorAdded, this, &ColorListWidget::colorAdded); connect(map, &Map::colorChanged, this, &ColorListWidget::colorChanged); connect(map, &Map::colorDeleted, this, &ColorListWidget::colorDeleted); }