QTableWidget *StManagerStudyListComp::createStudyTable () { QTableWidget *table = new QTableWidget; table->setSelectionBehavior( QAbstractItemView::SelectRows ); table->setSelectionMode( QAbstractItemView::SingleSelection ); table->setEditTriggers( QAbstractItemView::NoEditTriggers ); QStringList labels; for ( int i = 0; i < ATTRIBUTE_NUMBER; i++ ) { labels << tr( attributeNames[i] ); } table->setColumnCount( labels.size() + 1 ); table->setHorizontalHeaderLabels( labels ); table->setColumnHidden( ATTRIBUTE_NUMBER, true ); for ( int i = 0; i < ATTRIBUTE_NUMBER; i++ ) { if ( attributeResizes[i] ) { table->horizontalHeader()->setResizeMode( i, QHeaderView::ResizeToContents ); } } connect( table, SIGNAL(itemSelectionChanged()), this, SLOT(setEnabledView()) ); connect( table, SIGNAL(itemDoubleClicked( QTableWidgetItem * )), this, SLOT(view()) ); return table; }
InformationPanel::InformationPanel(QWidget *parent) : ConfiguratorPanel(false, parent) { _name = "Information"; _icon = QIcon(":/res/icons/info.png"); setHeadline("Information"); setDescription("System paths and variables"); QVBoxLayout *l = new QVBoxLayout; l->setMargin(0); setLayout(l); QTableWidget *table = new QTableWidget; table->setFrameShape(QFrame::NoFrame); table->setColumnCount(2); table->verticalHeader()->setVisible(false); table->horizontalHeader()->setStretchLastSection(true); table->horizontalHeader()->setDefaultAlignment(Qt::AlignLeft); table->setHorizontalHeaderLabels(QStringList() << "Name" << "Value"); table->setAlternatingRowColors(true); table->setSelectionMode(QAbstractItemView::NoSelection); l->addWidget(table); Seiscomp::Environment *env = Seiscomp::Environment::Instance(); addRow(table, "PATH", getenv("PATH")); addRow(table, "ROOTDIR", env->installDir().c_str()); addRow(table, "DEFAULTCONFIGDIR", env->globalConfigDir().c_str()); addRow(table, "SYSTEMCONFIGDIR", env->appConfigDir().c_str()); addRow(table, "CONFIGDIR", env->configDir().c_str()); addRow(table, "LOGDIR", env->logDir().c_str()); addRow(table, "DATADIR", env->shareDir().c_str()); table->resizeColumnsToContents(); }
static QTableWidget* createFilesTable(const QStringList &fileNames) { QTableWidget *table = new QTableWidget(0, 2); table->setSelectionMode(QAbstractItemView::NoSelection); QStringList labels({ QCoreApplication::translate("AddImageToResources","Filename"), QCoreApplication::translate("AddImageToResources","Size") }); table->setHorizontalHeaderLabels(labels); table->horizontalHeader()->setSectionResizeMode(0, QHeaderView::Stretch); table->verticalHeader()->hide(); table->setShowGrid(false); for (const QString &filePath : fileNames) { const QString toolTip = QDir::toNativeSeparators(filePath); const QString fileName = QFileInfo(filePath).fileName(); const qint64 size = QFileInfo(filePath).size() / 1024; QTableWidgetItem *fileNameItem = new QTableWidgetItem(fileName); fileNameItem->setToolTip(toolTip); fileNameItem->setFlags(fileNameItem->flags() ^ Qt::ItemIsEditable); QTableWidgetItem *sizeItem = new QTableWidgetItem(QString::number(size) + " KB"); sizeItem->setToolTip(toolTip); sizeItem->setTextAlignment(Qt::AlignRight | Qt::AlignVCenter); sizeItem->setFlags(sizeItem->flags() ^ Qt::ItemIsEditable); int row = table->rowCount(); table->insertRow(row); table->setItem(row, 0, fileNameItem); table->setItem(row, 1, sizeItem); } return table; }
void MainWindow::standartStuffForAllTables(QTableWidget& table) { table.setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff); table.setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); table.setEditTriggers(QAbstractItemView::NoEditTriggers); table.verticalHeader()->hide(); table.horizontalHeader()->hide(); table.setEditTriggers(QAbstractItemView::NoEditTriggers); table.setSelectionMode(QAbstractItemView::NoSelection); table.setFocusPolicy(Qt::NoFocus); }
QTableWidget *StManagerStudyListComp::createSeriesSelectionTable () { QTableWidget *seriesTable = new QTableWidget; seriesTable->setSelectionMode( QAbstractItemView::SingleSelection ); seriesTable->setEditTriggers( QAbstractItemView::NoEditTriggers ); seriesTable->setColumnCount( 1 ); seriesTable->horizontalHeader()->setResizeMode( QHeaderView::Stretch ); seriesTable->horizontalHeader()->hide(); return seriesTable; }
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; }
AccountWindow::AccountWindow(QWidget* parent, const QString &name, Qt::WindowFlags wflags) :TableWindow(parent, name, wflags) { QStringList nameList; QTableWidget *pTable; QAction* pAction; pTable = TableWindow::getTable(); m_pDb = ISql::pInstance(); pAction = new QAction(tr("&New..."), this); connect(pAction, SIGNAL(triggered()), this, SLOT(file_new())); MDIWindow::addAction(pAction); pAction = new QAction(tr("&Edit..."), this); connect(pAction, SIGNAL(triggered()), this, SLOT(file_edit())); MDIWindow::addAction(pAction, true); pAction = new QAction(tr("&Delete"), this); connect(pAction, SIGNAL(triggered()), this, SLOT(file_delete())); MDIWindow::addAction(pAction); pAction = new QAction(this); pAction->setSeparator(true); MDIWindow::addAction(pAction); pAction = new QAction(tr("&Export all..."), this); connect(pAction, SIGNAL(triggered()), this, SLOT(exportTable())); MDIWindow::addAction(pAction); // configure the table TableWindow::setWindowIcon(QIcon(":/document.xpm")); pTable->setEditTriggers(QAbstractItemView::NoEditTriggers); pTable->setSelectionMode(QAbstractItemView::SingleSelection); // header nameList += tr("Username"); nameList += tr("Contest"); nameList += tr("Description"); setupHeader(nameList); pTable->setColumnWidth(Username, 100); pTable->setColumnWidth(Contest, 100); pTable->setColumnWidth(Description, 200); connect(m_pDb, SIGNAL(accountsChanged()), this, SLOT(file_update())); file_update(); }
KeyBinder::KeyBinder(QWidget * parent, const QString & helpText, const QString & defaultText, const QString & resetButtonText) : QWidget(parent) { this->defaultText = defaultText; enableSignal = false; // Two-column tab layout QHBoxLayout * pageKeysLayout = new QHBoxLayout(this); pageKeysLayout->setSpacing(0); pageKeysLayout->setContentsMargins(0, 0, 0, 0); // Table for category list QVBoxLayout * catListContainer = new QVBoxLayout(); catListContainer->setContentsMargins(10, 10, 10, 10); catList = new QListWidget(); catList->setFixedWidth(180); catList->setStyleSheet("QListWidget::item { font-size: 14px; } QListWidget:hover { border-color: #F6CB1C; } QListWidget::item:selected { background: #150A61; color: yellow; }"); catList->setFocusPolicy(Qt::NoFocus); connect(catList, SIGNAL(currentRowChanged(int)), this, SLOT(changeBindingsPage(int))); catListContainer->addWidget(catList); pageKeysLayout->addLayout(catListContainer); // Reset all binds button if (!resetButtonText.isEmpty()) { QPushButton * btnResetAll = new QPushButton(resetButtonText); catListContainer->addWidget(btnResetAll); btnResetAll->setFixedHeight(40); catListContainer->setStretch(1, 0); catListContainer->setSpacing(10); connect(btnResetAll, SIGNAL(clicked()), this, SIGNAL(resetAllBinds())); } // Container for pages of key bindings QWidget * bindingsPagesContainer = new QWidget(); QVBoxLayout * rightLayout = new QVBoxLayout(bindingsPagesContainer); // Scroll area for key bindings QScrollArea * scrollArea = new QScrollArea(); scrollArea->setContentsMargins(0, 0, 0, 0); scrollArea->setWidget(bindingsPagesContainer); scrollArea->setVerticalScrollBarPolicy(Qt::ScrollBarAsNeeded); scrollArea->setWidgetResizable(true); scrollArea->setFrameShape(QFrame::NoFrame); scrollArea->setStyleSheet("background: #130F2A;"); // Add key binding pages to bindings tab pageKeysLayout->addWidget(scrollArea); pageKeysLayout->setStretch(1, 1); // Custom help text QLabel * helpLabel = new QLabel(); helpLabel->setText(helpText); helpLabel->setStyleSheet("color: #130F2A; background: #F6CB1C; border: solid 4px #F6CB1C; border-radius: 10px; padding: auto 20px;"); helpLabel->setFixedHeight(24); rightLayout->addWidget(helpLabel, 0, Qt::AlignCenter); // Category list and bind table row heights const int rowHeight = 20; QSize catSize, headerSize; catSize.setHeight(36); headerSize.setHeight(24); // Category list header QListWidgetItem * catListHeader = new QListWidgetItem(tr("Category")); catListHeader->setSizeHint(headerSize); catListHeader->setFlags(Qt::NoItemFlags); catListHeader->setForeground(QBrush(QColor("#130F2A"))); catListHeader->setBackground(QBrush(QColor("#F6CB1C"))); catListHeader->setTextAlignment(Qt::AlignCenter); catList->addItem(catListHeader); // Populate bindingsPages = new QHBoxLayout(); bindingsPages->setContentsMargins(0, 0, 0, 0); rightLayout->addLayout(bindingsPages); QWidget * curPage = NULL; QVBoxLayout * curLayout = NULL; QTableWidget * curTable = NULL; bool bFirstPage = true; selectedBindTable = NULL; bindComboBoxCellMappings = new QHash<QObject *, QTableWidgetItem *>(); bindCellComboBoxMappings = new QHash<QTableWidgetItem *, QComboBox *>(); for (int i = 0; i < BINDS_NUMBER; i++) { if (cbinds[i].category != NULL) { // Add stretch at end of previous layout if (curLayout != NULL) curLayout->insertStretch(-1, 1); // Category list item QListWidgetItem * catItem = new QListWidgetItem(HWApplication::translate("binds (categories)", cbinds[i].category)); catItem->setSizeHint(catSize); catList->addItem(catItem); // Create new page curPage = new QWidget(); curLayout = new QVBoxLayout(curPage); curLayout->setSpacing(2); bindingsPages->addWidget(curPage); if (!bFirstPage) curPage->setVisible(false); } // Description if (cbinds[i].description != NULL) { QLabel * desc = new QLabel(HWApplication::translate("binds (descriptions)", cbinds[i].description)); curLayout->addWidget(desc, 0); QFrame * divider = new QFrame(); divider->setFrameShape(QFrame::HLine); divider->setFrameShadow(QFrame::Plain); curLayout->addWidget(divider, 0); } // New table if (cbinds[i].category != NULL || cbinds[i].description != NULL) { curTable = new QTableWidget(0, 2); curTable->verticalHeader()->setVisible(false); curTable->horizontalHeader()->setVisible(false); curTable->horizontalHeader()->setResizeMode(QHeaderView::Stretch); curTable->verticalHeader()->setDefaultSectionSize(rowHeight); curTable->setShowGrid(false); curTable->setStyleSheet("QTableWidget { border: none; } "); curTable->setSelectionBehavior(QAbstractItemView::SelectRows); curTable->setSelectionMode(QAbstractItemView::SingleSelection); curTable->setFocusPolicy(Qt::NoFocus); connect(curTable, SIGNAL(itemSelectionChanged()), this, SLOT(bindSelectionChanged())); connect(curTable, SIGNAL(itemClicked(QTableWidgetItem *)), this, SLOT(bindCellClicked(QTableWidgetItem *))); curLayout->addWidget(curTable, 0); } // Hidden combo box QComboBox * comboBox = CBBind[i] = new QComboBox(curTable); comboBox->setModel((QAbstractItemModel*)DataManager::instance().bindsModel()); comboBox->setVisible(false); comboBox->setFixedWidth(200); // Table row int row = curTable->rowCount(); QTableWidgetItem * nameCell = new QTableWidgetItem(HWApplication::translate("binds", cbinds[i].name)); nameCell->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled); curTable->insertRow(row); curTable->setItem(row, 0, nameCell); QTableWidgetItem * bindCell = new QTableWidgetItem(comboBox->currentText()); bindCell->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled); curTable->setItem(row, 1, bindCell); curTable->resizeColumnsToContents(); curTable->setFixedHeight(curTable->verticalHeader()->length() + 10); // Updates the text in the table cell connect(comboBox, SIGNAL(currentIndexChanged(const QString &)), this, SLOT(bindChanged(const QString &))); // Map combo box and that row's cells to each other bindComboBoxCellMappings->insert(comboBox, bindCell); bindCellComboBoxMappings->insert(nameCell, comboBox); bindCellComboBoxMappings->insert(bindCell, comboBox); }
void model_import_dlg::create_mesh_tab(QTabWidget * parent, size_t index, render::lod lod) { QWidget * tab = new QWidget(parent); tab->setObjectName("meshTab"); auto & geometry = conv.get(index).geometry.at(lod); auto & material = conv.get(index).materials.at(lod); QGroupBox * geometry_box = new QGroupBox(tab); geometry_box->setGeometry(10, 10, 561, 115); geometry_box->setTitle("Geometry"); QLabel * vertices = new QLabel(geometry_box); vertices->setGeometry(20, 20, 200, 20); vertices->setText("Vertices: " + QString::number(geometry.vertex_count)); QLabel * faces = new QLabel(geometry_box); faces->setGeometry(20, 40, 200, 20); faces->setText("Faces: " + QString::number(geometry.index_count / 3)); QLabel * indices = new QLabel(geometry_box); indices->setGeometry(20, 60, 200, 20); indices->setText("Indices: " + QString::number(geometry.index_count)); QLabel * layout = new QLabel(geometry_box); layout->setGeometry(20, 80, 200, 20); layout->setText("Layout: " + QString::fromStdString(render::vertex::str(geometry.vertex_type))); QGroupBox * material_box = new QGroupBox(tab); material_box->setGeometry(10, 130, 561, 400); material_box->setTitle("Material"); QGroupBox * colors_box = new QGroupBox(material_box); colors_box->setGeometry(15, 20, 455, 134); colors_box->setTitle("Colors"); QTableWidget * colorsTable = new QTableWidget(colors_box); colorsTable->setGeometry(15, 25, 237, 92); colorsTable->setObjectName("colorsTable"); colorsTable->setRowCount(3); colorsTable->setColumnCount(3); colorsTable->setFrameShape(QFrame::NoFrame); colorsTable->setShowGrid(false); colorsTable->setSelectionBehavior(QAbstractItemView::SelectionBehavior::SelectRows); colorsTable->setEditTriggers(QAbstractItemView::DoubleClicked); colorsTable->horizontalHeader()->setDefaultSectionSize(60); colorsTable->verticalHeader()->setDefaultSectionSize(23); colorsTable->setSelectionMode(QAbstractItemView::SelectionMode::SingleSelection); QStringList color_types; color_types.append("Ambient"); color_types.append("Diffuse"); color_types.append("Specular"); QStringList color_channels; color_channels.append("R"); color_channels.append("G"); color_channels.append("B"); colorsTable->setVerticalHeaderLabels(color_types); colorsTable->setHorizontalHeaderLabels(color_channels); colorsTable->setItem(0, 0, new QTableWidgetItem(QString::number(rgb_to_byte(material.ambient.x)))); colorsTable->setItem(0, 1, new QTableWidgetItem(QString::number(rgb_to_byte(material.ambient.y)))); colorsTable->setItem(0, 2, new QTableWidgetItem(QString::number(rgb_to_byte(material.ambient.z)))); colorsTable->setItem(1, 0, new QTableWidgetItem(QString::number(rgb_to_byte(material.diffuse.x)))); colorsTable->setItem(1, 1, new QTableWidgetItem(QString::number(rgb_to_byte(material.diffuse.y)))); colorsTable->setItem(1, 2, new QTableWidgetItem(QString::number(rgb_to_byte(material.diffuse.z)))); colorsTable->setItem(2, 0, new QTableWidgetItem(QString::number(rgb_to_byte(material.specular.x)))); colorsTable->setItem(2, 1, new QTableWidgetItem(QString::number(rgb_to_byte(material.specular.y)))); colorsTable->setItem(2, 2, new QTableWidgetItem(QString::number(rgb_to_byte(material.specular.z)))); QPushButton * colorPick = new QPushButton(colors_box); colorPick->setGeometry(290, 24, 75, 23); colorPick->setObjectName("colorPick"); colorPick->setText("Pick"); for (int i = 0; i < 3; i++) for (int j = 0; j < 3; j++) colorsTable->item(i, j)->setTextAlignment(Qt::AlignHCenter | Qt::AlignVCenter); QObject::connect(colorsTable, SIGNAL(itemSelectionChanged()), this, SLOT(on_color_table_changed())); QObject::connect(colorPick, SIGNAL(pressed()), this, SLOT(on_color_pick())); QLabel * spec_power = new QLabel(colors_box); spec_power->setGeometry(290, 89, 80, 23); spec_power->setText("Specular power: "); QDoubleSpinBox * spec_power_box = new QDoubleSpinBox(colors_box); spec_power_box->setObjectName("specularSpinBox"); spec_power_box->setDecimals(2); spec_power_box->setSingleStep(0.05); spec_power_box->setFrame(false); spec_power_box->setGeometry(390, 89, 50, 23); spec_power_box->setValue(material.specular_power); QGroupBox * textures_box = new QGroupBox(material_box); textures_box->setGeometry(15, 159, 531, 225); textures_box->setTitle("Textures"); QTableWidget * texturesTable = new QTableWidget(textures_box); texturesTable->setObjectName("texturesTable"); texturesTable->setGeometry(15, 25, 500, 150); texturesTable->setRowCount(material.textures.size()); texturesTable->setColumnCount(2); texturesTable->setFrameShape(QFrame::NoFrame); texturesTable->setShowGrid(false); texturesTable->setSelectionBehavior(QAbstractItemView::SelectionBehavior::SelectRows); texturesTable->setEditTriggers(QAbstractItemView::DoubleClicked); texturesTable->horizontalHeader()->setDefaultSectionSize(60); texturesTable->verticalHeader()->setDefaultSectionSize(23); texturesTable->verticalHeader()->setVisible(false); QStringList texture_headers; texture_headers.append("File"); texture_headers.append("Type"); texturesTable->setHorizontalHeaderLabels(texture_headers); int i = 0; assimp::texture_type_map texture_map; for (auto texture : material.textures) { texturesTable->setItem(i, 0, new QTableWidgetItem(QString::fromStdString(texture.second.texture_path.generic_string()))); texturesTable->setItem(i, 1, new QTableWidgetItem(QString::fromStdString(texture_map.get(texture.first)))); texturesTable->setColumnWidth(0, 350); texturesTable->setColumnWidth(1, 150); i++; } for (i = 0; i < texturesTable->rowCount(); i++) for (int j = 0; j < texturesTable->columnCount(); j++) texturesTable->item(i, j)->setTextAlignment(Qt::AlignHCenter | Qt::AlignVCenter); QPushButton * add_texture = new QPushButton(textures_box); add_texture->setGeometry(15, 185, 75, 23); add_texture->setText("Add"); QPushButton * edit_texture = new QPushButton(textures_box); edit_texture->setGeometry(100, 185, 75, 23); edit_texture->setObjectName("textureEditButton"); edit_texture->setText("Edit"); edit_texture->setEnabled(false); QPushButton * delete_texture = new QPushButton(textures_box); delete_texture->setGeometry(185, 185, 75, 23); delete_texture->setObjectName("textureDeleteButton"); delete_texture->setText("Delete"); delete_texture->setEnabled(false); QObject::connect(texturesTable, SIGNAL(itemSelectionChanged()), this, SLOT(on_texture_table_changed())); QObject::connect(add_texture, SIGNAL(pressed()), this, SLOT(on_texture_add())); QObject::connect(edit_texture, SIGNAL(pressed()), this, SLOT(on_texture_edit())); QObject::connect(delete_texture, SIGNAL(pressed()), this, SLOT(on_texture_delete())); QString title = "Mesh " + QString::number(index); parent->addTab(tab, title); }
DocumentMetaConfigurationPage::DocumentMetaConfigurationPage(RosegardenDocument *doc, QWidget *parent) : TabbedConfigurationPage(doc, parent) { m_headersPage = new HeadersConfigurationPage(this, doc); addTab(m_headersPage, tr("Headers")); Composition &comp = doc->getComposition(); std::set <TrackId> usedTracks; int audioSegments = 0, internalSegments = 0; for (Composition::iterator ci = comp.begin(); ci != comp.end(); ++ci) { usedTracks.insert((*ci)->getTrack()); if ((*ci)->getType() == Segment::Audio) ++audioSegments; else ++internalSegments; } QFrame *frame = new QFrame(m_tabWidget); frame->setContentsMargins(10, 10, 10, 10); QGridLayout *layout = new QGridLayout(frame); layout->setSpacing(5); layout->addWidget(new QLabel(tr("Filename:"), frame), 0, 0); layout->addWidget(new QLabel(doc->getTitle(), frame), 0, 1); layout->addWidget(new QLabel(tr("Formal duration (to end marker):"), frame), 1, 0); timeT d = comp.getEndMarker(); RealTime rtd = comp.getElapsedRealTime(d); layout->addWidget(new QLabel(durationToString(comp, 0, d, rtd), frame), 1, 1); layout->addWidget(new QLabel(tr("Playing duration:"), frame), 2, 0); d = comp.getDuration(); rtd = comp.getElapsedRealTime(d); layout->addWidget(new QLabel(durationToString(comp, 0, d, rtd), frame), 2, 1); layout->addWidget(new QLabel(tr("Tracks:"), frame), 3, 0); layout->addWidget(new QLabel(tr("%1 used, %2 total") .arg(usedTracks.size()) .arg(comp.getNbTracks()), frame), 3, 1); layout->addWidget(new QLabel(tr("Segments:"), frame), 4, 0); layout->addWidget(new QLabel(tr("%1 MIDI, %2 audio, %3 total") .arg(internalSegments) .arg(audioSegments) .arg(internalSegments + audioSegments), frame), 4, 1); layout->setRowStretch(5, 2); addTab(frame, tr("Statistics")); frame = new QFrame(m_tabWidget); frame->setContentsMargins(10, 10, 10, 10); layout = new QGridLayout(frame); layout->setSpacing(5); QTableWidget *table = new QTableWidget(1, 11, frame); // , "Segment Table" table->setObjectName("StyledTable"); table->setAlternatingRowColors(true); //table->setSelectionMode(QTableWidget::NoSelection); table->setSelectionBehavior( QAbstractItemView::SelectRows ); table->setSelectionMode( QAbstractItemView::SingleSelection ); table->setSortingEnabled(true); table->setHorizontalHeaderItem( 0, new QTableWidgetItem( tr("Type"))); // p1=column table->setHorizontalHeaderItem( 1, new QTableWidgetItem( tr("Track"))); table->setHorizontalHeaderItem( 2, new QTableWidgetItem( tr("Label"))); table->setHorizontalHeaderItem( 3, new QTableWidgetItem( tr("Time"))); table->setHorizontalHeaderItem( 4, new QTableWidgetItem( tr("Duration"))); table->setHorizontalHeaderItem( 5, new QTableWidgetItem( tr("Events"))); table->setHorizontalHeaderItem( 6, new QTableWidgetItem( tr("Polyphony"))); table->setHorizontalHeaderItem( 7, new QTableWidgetItem( tr("Repeat"))); table->setHorizontalHeaderItem( 8, new QTableWidgetItem( tr("Quantize"))); table->setHorizontalHeaderItem( 9, new QTableWidgetItem( tr("Transpose"))); table->setHorizontalHeaderItem( 10, new QTableWidgetItem( tr("Delay"))); //table->setNumRows(audioSegments + internalSegments); table->setRowCount(audioSegments + internalSegments); table->setColumnWidth(0, 50); table->setColumnWidth(1, 50); table->setColumnWidth(2, 150); table->setColumnWidth(3, 80); table->setColumnWidth(4, 80); table->setColumnWidth(5, 80); table->setColumnWidth(6, 80); table->setColumnWidth(7, 80); table->setColumnWidth(8, 80); table->setColumnWidth(9, 80); table->setColumnWidth(10, 80); int i = 0; for (Composition::iterator ci = comp.begin(); ci != comp.end(); ++ci) { Segment *s = *ci; table->setItem(i, 0, new SegmentDataItem (table, s->getType() == Segment::Audio ? tr("Audio") : tr("MIDI"))); table->setItem(i, 1, new SegmentDataItem (table, QString("%1").arg(s->getTrack() + 1))); QPixmap colourPixmap(16, 16); Colour colour = comp.getSegmentColourMap().getColourByIndex(s->getColourIndex()); colourPixmap.fill(GUIPalette::convertColour(colour)); table->setItem(i, 2, new QTableWidgetItem( colourPixmap, strtoqstr(s->getLabel())) ); // new QTableWidgetItem(table, QTableWidgetItem::Never, // strtoqstr(s->getLabel()), // colourPixmap)); table->setItem(i, 3, new SegmentDataItem (table, QString("%1").arg(s->getStartTime()))); table->setItem(i, 4, new SegmentDataItem (table, QString("%1").arg(s->getEndMarkerTime() - s->getStartTime()))); std::set<long> notesOn; std::multimap<timeT, long> noteOffs; int events = 0, notes = 0, poly = 0, maxPoly = 0; for (Segment::iterator si = s->begin(); s->isBeforeEndMarker(si); ++si) { ++events; if ((*si)->isa(Note::EventType)) { ++notes; timeT startTime = (*si)->getAbsoluteTime(); timeT endTime = startTime + (*si)->getDuration(); if (endTime == startTime) continue; while (!noteOffs.empty() && (startTime >= noteOffs.begin()->first)) { notesOn.erase(noteOffs.begin()->second); noteOffs.erase(noteOffs.begin()); } long pitch = 0; (*si)->get<Int>(BaseProperties::PITCH, pitch); notesOn.insert(pitch); noteOffs.insert(std::multimap<timeT, long>::value_type(endTime, pitch)); poly = notesOn.size(); if (poly > maxPoly) maxPoly = poly; } } table->setItem(i, 5, new SegmentDataItem (table, QString("%1").arg(events))); table->setItem(i, 6, new SegmentDataItem (table, QString("%1").arg(maxPoly))); table->setItem(i, 7, new SegmentDataItem (table, s->isRepeating() ? tr("Yes") : tr("No"))); timeT discard; if (s->getQuantizer() && s->hasQuantization()) { timeT unit = s->getQuantizer()->getUnit(); table->setItem(i, 8, new SegmentDataItem (table, NotationStrings::makeNoteMenuLabel (unit, true, discard, false))); } else { table->setItem(i, 8, new SegmentDataItem (table, tr("Off"))); } table->setItem(i, 9, new SegmentDataItem (table, QString("%1").arg(s->getTranspose()))); if (s->getDelay() != 0) { if (s->getRealTimeDelay() != RealTime::zeroTime) { table->setItem(i, 10, new SegmentDataItem (table, QString("%1 + %2 ms") .arg(NotationStrings::makeNoteMenuLabel (s->getDelay(), true, discard, false)) .arg(s->getRealTimeDelay().sec * 1000 + s->getRealTimeDelay().msec()))); } else { table->setItem(i, 10, new SegmentDataItem (table, NotationStrings::makeNoteMenuLabel (s->getDelay(), true, discard, false))); } } else if (s->getRealTimeDelay() != RealTime::zeroTime) { table->setItem(i, 10, new SegmentDataItem (table, QString("%2 ms") .arg(s->getRealTimeDelay().sec * 1000 + s->getRealTimeDelay().msec()))); } else { table->setItem(i, 10, new SegmentDataItem (table, tr("None"))); } ++i; } layout->addWidget(table, 0, 0); addTab(frame, tr("Segment Summary")); }
void InfoDialog::setupUi(const Tags &tags) { int row = 0; QVBoxLayout *layout = new QVBoxLayout; layout->setContentsMargins(0,0,0,0); setWindowTitle(tr("EXIF information")); if (!tags.fileName().isEmpty()) setWindowTitle(windowTitle() + " - " + QFileInfo(tags.fileName()).fileName()); setWindowIcon(QIcon(":images/exif_info")); if (tags.size()) { QMapIterator<int, QPair<Tag, Data> > tag(tags); QTableWidget *tableWidget = new QTableWidget(tags.size(),2,this); tableWidget->setAlternatingRowColors(true); tableWidget->verticalHeader()->setVisible(false); tableWidget->setEditTriggers(QAbstractItemView::NoEditTriggers); tableWidget->setSelectionMode(QAbstractItemView::NoSelection); tableWidget->setHorizontalHeaderItem(0,new QTableWidgetItem(tr("Tag"))); tableWidget->setHorizontalHeaderItem(1,new QTableWidgetItem(tr("Value"))); tableWidget->horizontalHeader()->setStretchLastSection(true); while (tag.hasNext()) { QTableWidgetItem *item; QPair<Tag,Data> exifValue = tag.next().value(); item = new QTableWidgetItem(exifValue.first.title); item->setToolTip(exifValue.first.description.split(". ",QString::SkipEmptyParts).join("\n")); tableWidget->setItem(row,0,item); item = new QTableWidgetItem(exifValue.second.readableValue); item->setToolTip(exifValue.first.description.split(". ",QString::SkipEmptyParts).join("\n")); tableWidget->setItem(row++,1,item); } tableWidget->resizeColumnsToContents(); tableWidget->resizeRowsToContents(); layout->addWidget(tableWidget); } else { QLabel *label = new QLabel(tr("No EXIF information available"),this); label->setAlignment(Qt::AlignCenter); layout->addWidget(label); } #ifdef Q_WS_MAC QDialogButtonBox *buttonBox = new QDialogButtonBox(QDialogButtonBox::Ok,Qt::Horizontal,this); connect(buttonBox,SIGNAL(accepted()),this,SLOT(close())); layout->addWidget(buttonBox); #endif setLayout(layout); resize(600,400); }
void FenPrincipale::calcul_general() { QString html = "<table>\n\t<thead>\n\t\t<tr>\n\t\t\t"; html += "<td>"+tr("Position")+"</td>"; html += "<td>"+tr("Équipage")+"</td>"; html += "<td>"+tr("Points")+"</td>"; for (int j = 0; j < this->nbManches; ++j) { html += "<td>"+tr("M")+QString::number(j+1)+"</td>"; } html += "\n\t\t</tr>\n\t</thead>\n\t<tboby>"; QTableWidget *table = new QTableWidget(); table->verticalHeader()->hide(); table->setSelectionMode(QAbstractItemView::NoSelection); table->setColumnCount(3+this->nbManches); table->setRowCount(this->nbEquipages); table->setColumnWidth(0, 80); table->setColumnWidth(1, 200); table->setColumnWidth(2, 60); int size = 80 + 200 + 60; QList<QString> labels; labels << tr("Position") << tr("Équipage") << tr("Points"); for (int j = 0; j < this->nbManches; ++j) { labels << tr("M")+QString::number(j+1); size += 50; table->setColumnWidth(3+j, 50); } table->setMinimumWidth(size + 20); table->setMaximumWidth(size + 20); table->setHorizontalHeaderLabels(labels); ui->resultatsLayout->insertWidget(0, table); for (int i = 0; i < this->nbEquipages; ++i) { QList<int> ids; Equipage e1; for (int k = 0; k < this->nbEquipages; ++k) { Equipage e2 = this->equipages[k]; if (e2.points <= 0) { // cet équipage a déjà été affiché continue; } if (ids.isEmpty() || e2.points < e1.points) { ids.clear(); ids.append(k); e1 = e2; } else if (e2.points == e1.points) { // égalité de points // pour départager les équipages, on confronte leurs meilleures // manches (sans celles retirées) for (int j = 0; j < e1.pointsTries.size(); ++j) { if (e2.pointsTries[j] < e1.pointsTries[j]) { ids.clear(); ids.append(k); e1 = e2; break; } else if (e2.pointsTries[j] > e1.pointsTries[j]) { break; } else if (j == e1.pointsTries.size()-1) { // égalité des manches // pour départager les équipages, on confronte toutes // leur manches dans l'ordre en partant de la dernière for (int l = 0; l < e1.pointsOrdonnes.size(); ++l) { if (e2.pointsOrdonnes[l] < e1.pointsOrdonnes[l]) { ids.clear(); ids.append(k); e1 = e2; break; } else if (e2.pointsOrdonnes[l] > e1.pointsOrdonnes[l]) { break; } else if (l == e1.pointsOrdonnes.size()-1) { // égalité parfaite ids.append(k); } } } } } } for (int k = 0; k < ids.size(); ++k) { Equipage e = this->equipages[ids[k]]; // on ajoute le début de la table html // on rajoute les manches en parallèle à causes de celles retirées QString nomString = "<span class=\"equipage\">"+e.nom+"</span>"; if (this->typeClmt == CLMT_TEMPS) { nomString += "<span class=\"bateau\">" +this->bateaux.value(e.rating.toUpper()).serie +" ("+QString::number(e.coef)+")</span>"; } html += "\n\t\t<tr>\n\t\t\t<td>"+QString::number(i+1)+"</td>" +"<td>"+nomString+"</td>" +"<td>"+QString::number(e.points)+"</td>"; // on ajout l'équipage QLabel *pos = new QLabel(QString::number(i+1)); QWidget *nomWidget = new QWidget(); QVBoxLayout *nomLayout = new QVBoxLayout(); QLabel *nom = new QLabel(e.nom); nom->setProperty("label", "nom"); nomLayout->addWidget(nom); if (this->typeClmt == CLMT_TEMPS) { QLabel *bateau = new QLabel(); bateau->setText(this->bateaux.value(e.rating.toUpper()).serie +" ("+QString::number(e.coef)+")"); bateau->setProperty("label", "bateau"); nomLayout->addWidget(bateau); table->setRowHeight(i+k, 45); } nomLayout->setContentsMargins(0, 0, 0, 0); nomLayout->setSpacing(0); nomWidget->setLayout(nomLayout); QLabel *points = new QLabel(QString::number(e.points)); table->setCellWidget(i+k, 0, pos); table->setCellWidget(i+k, 1, nomWidget); table->setCellWidget(i+k, 2, points); for (int j = 0; j < this->nbManches; ++j) { Manche m = e.manches[j]; QLabel *la = new QLabel(); if (m.tpsCompense < 0) { la->setText(this->get_abr(m.abr)); } else { la->setText(QString::number(m.points)); } for (int l = 0; l < e.pointsRetires.size(); ++l) { if (e.pointsRetires[l] == m.points) { la->setText("("+la->text()+")"); e.pointsRetires.removeAt(l); break; } } html += "<td>"+la->text()+"</td>"; table->setCellWidget(i+k, j+3, la); } html += "\n\t\t</tr>"; this->equipages[ids[k]].points = 0; } i += ids.size()-1; } html += "\n\t</tbody>\n</table>"; this->htmls.prepend(html); this->progression(95); }
void FenPrincipale::calcul_manches() { for (int j = 0; j < this->nbManches; ++j) { // on initialise la table html pour l'export QString html = "<table>\n\t<thead>\n\t\t<tr>\n\t\t\t"; html += "<td>"+tr("Place")+"</td>"; html += "<td>"+tr("Équipage")+"</td>"; html += "<td>"+tr("Points")+"</td>"; if (this->typeClmt == CLMT_TEMPS) { html += "<td>"+tr("Temps réel")+"</td><td>"+tr("Temps compensé")+"</td>"; } html += "\n\t\t</tr>\n\t</thead>\n\t<tboby>"; // on affiche la table qui va contenir les résultats de la manche QTableWidget *table = new QTableWidget(); table->verticalHeader()->hide(); table->setSelectionMode(QAbstractItemView::NoSelection); table->setProperty("table", "manches"); QList<QString> labels; labels << tr("Place") << tr("Équipage") << tr("Points"); if (this->typeClmt == CLMT_TEMPS) { table->setColumnCount(5); labels << tr("Temps réel") << tr("Temps compensé"); table->setMaximumWidth(560 + 20); table->setMinimumWidth(560 + 20); table->setColumnWidth(3, 120); table->setColumnWidth(4, 120); } else { table->setColumnCount(3); table->setMaximumWidth(320 + 20); table->setMinimumWidth(320 + 20); } table->setColumnWidth(0, 60); table->setColumnWidth(1, 200); table->setColumnWidth(2, 60); table->setHorizontalHeaderLabels(labels); table->setRowCount(this->nbEquipages); ui->choisirResultat->insertItem(j+1, tr("Résultats de la manche %1").arg(QString::number(j+1))); int nbAffiches = 0; // pour savoir à quelle ligne on en est // on traite et affiche les équipages // on traite chaque manche pour attribuer les points aux équipages for (int i = 0; i < this->nbEquipages; ++i) { // on recherche tous les équipages non encore traités pour cette // manches qui ont un tpsCompense minimal int min = 0; QList<int> ids; for (int k = 0; k < this->nbEquipages; ++k) { Manche m = this->equipages[k].manches[j]; if (m.tpsCompense < 0 || m.points > 0 ) { // cet équipage a déjà été traité ou n'a pas de place/temps // (DNF, DNS, OCS, ...) continue; } if (m.tpsCompense < min || min == 0) { min = m.tpsCompense; ids.clear(); ids.append(k); } else if (m.tpsCompense == min) { ids.append(k); } } if (min == 0) { // on n'a pas trouvé d'équipage à traiter (se produit s'il y a // des équipages DNS, DNF, OCS, ...) break; } for (int l = 0; l < ids.size(); ++l) { double points = (ids.size()-1.0)/2.0+i+1.0; this->equipages[ids.at(l)].points += points; this->equipages[ids.at(l)].pointsOrdonnes.prepend(points); this->equipages[ids.at(l)].pointsTries.append(points); this->equipages[ids.at(l)].manches[j].points = points; // on affiche ces équipages Equipage e = this->equipages[ids.at(l)]; Manche m = e.manches[j]; QLabel *place = new QLabel(QString::number(i+1)); table->setCellWidget(i+l, 0, place); QWidget *nomWidget = new QWidget(); QVBoxLayout *nomLayout = new QVBoxLayout(); QLabel *nom = new QLabel(e.nom); nom->setProperty("label", "nom"); nomLayout->addWidget(nom); if (this->typeClmt == CLMT_TEMPS) { QLabel *bateau = new QLabel(); bateau->setText(this->bateaux.value(e.rating.toUpper()).serie +" ("+QString::number(e.coef)+")"); bateau->setProperty("label", "bateau"); nomLayout->addWidget(bateau); table->setRowHeight(i+l, 45); } nomLayout->setContentsMargins(0, 0, 0, 0); nomLayout->setSpacing(0); nomWidget->setLayout(nomLayout); table->setCellWidget(i+l, 1, nomWidget); QLabel *pointsi = new QLabel(QString::number(m.points)); table->setCellWidget(i+l, 2, pointsi); if (this->typeClmt == CLMT_TEMPS) { QLabel *tpsReel = new QLabel(this->formate_tps(m.tpsReel)); table->setCellWidget(i+l, 3, tpsReel); QLabel *tpsCompense = new QLabel(this->formate_tps(qRound(m.tpsCompense))); table->setCellWidget(i+l, 4, tpsCompense); } // on ajoute l'équipage à la table html QString nomString = "<span class=\"equipage\">"+e.nom+"</span>"; if (this->typeClmt == CLMT_TEMPS) { nomString += "<span class=\"bateau\">" +this->bateaux.value(e.rating.toUpper()).serie +" ("+QString::number(e.coef)+")</span>"; } html += "\n\t\t<tr>\n\t\t\t<td>"+QString::number(i+1)+"</td>" +"<td>"+nomString+"</td>" +"<td>"+QString::number(m.points)+"</td>"; if (this->typeClmt == CLMT_TEMPS) { html += "<td>"+this->formate_tps(m.tpsReel)+"</td>" +"<td>"+this->formate_tps(qRound(m.tpsCompense))+"</td>"; } html += "\n\t\t</tr>"; ++nbAffiches; } i = i+ids.size()-1; } // on traite les équipages qui n'ont pas de place/temps for (int i = 0; i < this->nbEquipages; ++i) { if (this->equipages[i].manches[j].tpsCompense < 0) { double points = this->nbEquipages+1.0; this->equipages[i].points += points; this->equipages[i].pointsOrdonnes.prepend(points); this->equipages[i].pointsTries.append(points); this->equipages[i].manches[j].points = points; // on affiche ces équipages Equipage e = this->equipages[i]; Manche m = e.manches[j]; QString abr = this->get_abr(m.abr); QLabel *place = new QLabel(abr); table->setCellWidget(nbAffiches, 0, place); QWidget *nomWidget = new QWidget(); QVBoxLayout *nomLayout = new QVBoxLayout(); QLabel *nom = new QLabel(e.nom); nom->setProperty("label", "nom"); nomLayout->addWidget(nom); if (this->typeClmt == CLMT_TEMPS) { QLabel *bateau = new QLabel(); bateau->setText(this->bateaux.value(e.rating.toUpper()).serie +" ("+QString::number(e.coef)+")"); bateau->setProperty("label", "bateau"); nomLayout->addWidget(bateau); table->setRowHeight(nbAffiches, 45); } nomLayout->setContentsMargins(0, 0, 0, 0); nomLayout->setSpacing(0); nomWidget->setLayout(nomLayout); table->setCellWidget(nbAffiches, 1, nomWidget); QLabel *pointsi = new QLabel(QString::number(m.points)); table->setCellWidget(nbAffiches, 2, pointsi); if (this->typeClmt == CLMT_TEMPS) { QLabel *tpsReel = new QLabel(abr); table->setCellWidget(nbAffiches, 3, tpsReel); QLabel *tpsCompense = new QLabel(abr); table->setCellWidget(nbAffiches, 4, tpsCompense); } // on ajoute l'équipage à la table html QString nomString = "<span class=\"equipage\">"+e.nom+"</span>"; if (this->typeClmt == CLMT_TEMPS) { nomString += "<span class=\"bateau\">" +this->bateaux.value(e.rating.toUpper()).serie +" ("+QString::number(e.coef)+")</span>"; } html += "\n\t\t<tr>\n\t\t\t<td>"+abr+"</td><td>"+nomString+"</td>" +"<td>"+QString::number(m.points)+"</td>"; if (this->typeClmt == CLMT_TEMPS) { html += "<td>"+abr+"</td><td>"+abr+"</td>"; } html += "\n\t\t</tr>"; ++nbAffiches; } } ui->resultatsLayout->addWidget(table); table->hide(); html += "\n\t</tbody>\n</table>"; this->htmls.append(html); this->progression(5+j*75/this->nbManches); } // on trie les liste pointsTries for (int i = 0; i < this->nbEquipages; ++i) { qSort(this->equipages[i].pointsTries); } }
void VirshGui::populateVMInfos(string vmname) { VMStatus vmstatus = vmlist[vmname].getStatus(); string strstatus = vmlist[vmname].statusToString(vmstatus); string memory = vmlist[vmname].getMemory(); string vmxml = vmlist[vmname].dumpXML(); string cpuCount = vmlist[vmname].getCPUCount(); string ostype = vmlist[vmname].getOSType(); string arch = vmlist[vmname].getArch(); vector<string> bootDevs = vmlist[vmname].getBootDevs(); vector<string> hvFeatures = vmlist[vmname].getHVFeatures(); vector<string> cpuFeatures = vmlist[vmname].getCPUFeatures(); string bootDevStr = join(bootDevs, ", "); string hvFeatureStr = join(hvFeatures, ", "); string cpuFeatureStr = join(cpuFeatures, ", "); if (vmstatus == VMStatus::shutoff) { ui->startStopButton->setText("VM starten"); ui->startStopButton->setEnabled(true); ui->shutdownButton->setDisabled(true); ui->rebootButton->setDisabled(true); ui->virtViewerButton->setDisabled(true); } else if (vmstatus == VMStatus::running) { ui->startStopButton->setText("VM ausschalten"); ui->startStopButton->setEnabled(true); ui->shutdownButton->setEnabled(true); ui->rebootButton->setEnabled(true); ui->virtViewerButton->setEnabled(true); } else { ui->startStopButton->setText("keine Aktion"); ui->startStopButton->setDisabled(true); ui->shutdownButton->setDisabled(true); ui->rebootButton->setDisabled(true); ui->virtViewerButton->setDisabled(true); } while (ui->snapshotsTabLayout->count() > 0) { QLayoutItem *item = ui->snapshotsTabLayout->takeAt(0); delete item->widget(); delete item; } int snapshotTableCount = 0; for (auto hdd : vmlist[vmname].getHDDImages()) { int row = 0; QGroupBox *hddGroupBox = new QGroupBox(QString::fromStdString(hdd.getPath())); hddGroupBox->setFlat(false); QVBoxLayout *hddVBox = new QVBoxLayout; QTableWidget *snapshotTable = new QTableWidget(0, 5, this); snapshotTable->setSelectionMode(QAbstractItemView::SingleSelection); snapshotTable->setHorizontalHeaderLabels(QStringList() << "ID" << "Tag" << "VM Size" << "Date" << "VM Clock"); snapshotTable->horizontalHeader()->setSectionResizeMode(0, QHeaderView::ResizeToContents); //snapshotTable->setColumnWidth(0, 45); snapshotTable->horizontalHeader()->setSectionResizeMode(1, QHeaderView::Stretch); snapshotTable->horizontalHeader()->setSectionResizeMode(2, QHeaderView::ResizeToContents); snapshotTable->horizontalHeader()->setSectionResizeMode(3, QHeaderView::ResizeToContents); snapshotTable->horizontalHeader()->setSectionResizeMode(4, QHeaderView::ResizeToContents); snapshotTable->verticalHeader()->hide(); snapshotTable->setAlternatingRowColors(true); //snapshotTable->setSortingEnabled(true); snapshotTable->setEditTriggers(QTableWidget::NoEditTriggers); connect(snapshotTable, &QTableWidget::cellPressed, [this, snapshotTableCount](){ clearSnapshotSelectionsExcept(snapshotTableCount); }); snapshotTableCount++; for (auto snapshot : hdd.getSnapshots()) { snapshotTable->setRowCount(row + 1); QTableWidgetItem *id = new QTableWidgetItem( QString::fromStdString(snapshot.getID())); QTableWidgetItem *tag = new QTableWidgetItem( QString::fromStdString(snapshot.getTag())); QTableWidgetItem *size = new QTableWidgetItem( QString::fromStdString(snapshot.getSize())); QTableWidgetItem *date = new QTableWidgetItem( QString::fromStdString(snapshot.getDate())); QTableWidgetItem *clock = new QTableWidgetItem( QString::fromStdString(snapshot.getClock())); snapshotTable->setItem(row, 0, id); snapshotTable->setItem(row, 1, tag); snapshotTable->setItem(row, 2, size); snapshotTable->setItem(row, 3, date); snapshotTable->setItem(row, 4, clock); row++; } hddVBox->addWidget(snapshotTable); QHBoxLayout *addSnapHBox = new QHBoxLayout; QLineEdit *addSnapNameEdit = new QLineEdit; QPushButton *addSnapButton = new QPushButton; addSnapButton->setText("Snapshot erstellen"); addSnapButton->setEnabled(false); string hddPath = hdd.getPath(); connect(addSnapNameEdit, &QLineEdit::textChanged, [this, addSnapButton, addSnapNameEdit](){ toggleAddSnapshotButton(addSnapButton, addSnapNameEdit); }); connect(addSnapButton, &QPushButton::clicked, [this, hddPath, vmname, addSnapNameEdit](){ createSnapshot(hddPath, vmname, addSnapNameEdit->text().toStdString()); }); addSnapHBox->addWidget(addSnapNameEdit); addSnapHBox->addWidget(addSnapButton); hddVBox->addLayout(addSnapHBox); hddGroupBox->setLayout(hddVBox); ui->snapshotsTabLayout->addWidget(hddGroupBox); } QPushButton *applySnapshotButton = new QPushButton("Snapshot Anwenden", this); connect(applySnapshotButton, SIGNAL(clicked(bool)), this, SLOT(applySnapshot())); //connect(applySnapshotButton, &QPushButton::clicked, [this](){ clearSnapshotSelectionsExcept(1); }); ui->snapshotsTabLayout->addWidget(applySnapshotButton); ui->xmlDisplay->setText(QString::fromStdString(vmxml)); ui->vmnameLabel->setText(QString::fromStdString(vmname)); ui->statusLabel->setText(QString::fromStdString(strstatus)); ui->memoryLabel->setText(QString::fromStdString(memory)); ui->cpucountLabel->setText(QString::fromStdString(cpuCount)); ui->typeLabel->setText(QString::fromStdString(ostype)); ui->archLabel->setText(QString::fromStdString(arch)); ui->bootdevLabel->setText(QString::fromStdString(bootDevStr)); ui->hvFeaturesLabel->setText(QString::fromStdString(hvFeatureStr)); ui->hvFeaturesLabel->setWordWrap(true); ui->cpuFeaturesLabel->setText(QString::fromStdString(cpuFeatureStr)); ui->cpuFeaturesLabel->setWordWrap(true); }
AirSpaceWindow::AirSpaceWindow(QWidget* parent, const QString &name, Qt::WindowFlags wflags, IDataBase::SourceType src) :TableWindow(parent, name, wflags) { QStringList nameList; QAction* pAction; QTableWidget *pTable; pTable = TableWindow::getTable(); m_pWebMapView = NULL; m_pAirSpaceView = NULL; m_externSelect = false; switch(src) { case IDataBase::SqlDB: m_pDb = ISql::pInstance(); connect(m_pDb, SIGNAL(airSpacesChanged()), this, SLOT(file_update())); pAction = new QAction(tr("&Edit"), this); connect(pAction, SIGNAL(triggered()), this, SLOT(file_edit())); MDIWindow::addAction(pAction, true); pAction = new QAction(tr("&Delete"), this); connect(pAction, SIGNAL(triggered()), this, SLOT(file_delete())); MDIWindow::addAction(pAction); pAction = new QAction(tr("&Add to GPS..."), this); connect(pAction, SIGNAL(triggered()), this, SLOT(file_AddToGPS())); MDIWindow::addAction(pAction, true); break; case IDataBase::GPSdevice: { m_pDb = IGPSDevice::pInstance(); connect(m_pDb, SIGNAL(airSpacesChanged()), this, SLOT(file_update())); pAction = new QAction(tr("&Delete"), this); connect(pAction, SIGNAL(triggered()), this, SLOT(file_delete())); MDIWindow::addAction(pAction); pAction = new QAction(tr("&Update"), this); connect(pAction, SIGNAL(triggered()), this, SLOT(file_update())); MDIWindow::addAction(pAction); } break; case IDataBase::File: { m_pDb = NULL; pAction = new QAction(tr("&Add to GPS..."), this); connect(pAction, SIGNAL(triggered()), this, SLOT(file_AddToGPS())); MDIWindow::addAction(pAction, true); } break; } if(src != IDataBase::SqlDB) { pAction = new QAction(tr("Add to DB..."), this); connect(pAction, SIGNAL(triggered()), this, SLOT(file_AddToSqlDB())); MDIWindow::addAction(pAction, true); pAction = new QAction(tr("&Update"), this); connect(pAction, SIGNAL(triggered()), this, SLOT(file_update())); MDIWindow::addAction(pAction); } // import/export pAction = new QAction(this); pAction->setSeparator(true); MDIWindow::addAction(pAction); if(src == IDataBase::File) { pAction = new QAction(tr("&Import..."), this); connect(pAction, SIGNAL(triggered()), this, SLOT(file_open())); MDIWindow::addAction(pAction); } pAction = new QAction(tr("&Export all..."), this); connect(pAction, SIGNAL(triggered()), this, SLOT(exportTable())); MDIWindow::addAction(pAction); // view pAction = new QAction(this); pAction->setSeparator(true); MDIWindow::addAction(pAction); pAction = new QAction(tr("&View..."), this); connect(pAction, SIGNAL(triggered()), this, SLOT(file_viewAirSpace())); MDIWindow::addAction(pAction); pAction = new QAction(tr("View &Web Map..."), this); connect(pAction, SIGNAL(triggered()), this, SLOT(file_viewWebMap())); MDIWindow::addAction(pAction, true); TableWindow::setWindowIcon(QIcon(":/document.xpm")); // configure the table pTable->setEditTriggers(QAbstractItemView::NoEditTriggers); pTable->setSelectionMode(QAbstractItemView::ExtendedSelection); // header nameList += tr("Name"); nameList += tr("Low [m]"); nameList += tr("High [m]"); nameList += tr("Class"); nameList += tr("Comment"); setupHeader(nameList); pTable->setColumnWidth(Name, 200); pTable->setColumnWidth(High, 100); pTable->setColumnWidth(Low, 100); pTable->setColumnWidth(Class, 80); pTable->setColumnWidth(Comment, 750); connect(m_pDb, SIGNAL(airSpacesChanged()), this, SLOT(file_update())); if(src == IDataBase::File) { file_open(); } else { file_update(); } }