Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void CircuitsView::manageButton()
- {
- int tlIndex = m_transmissionLines->currentIndex();
- TransmissionLine *tl = g_project->getTransmissionLine(tlIndex);
- if(!tl)
- return;
- QDialog manageWindow;
- QGridLayout *layout = new QGridLayout;
- TableWidget *listWidget = new TableWidget(tl->getCircuits().size(), 1);
- QPushButton *addButton = new QPushButton("Add");
- QPushButton *copyButton = new QPushButton("Copy");
- QPushButton *removeButton = new QPushButton("Remove");
- manageWindow.setLayout(layout);
- listWidget->setDragEnabled(true);
- listWidget->setDisplayMenu(false);
- listWidget->horizontalHeader()->hide();
- listWidget->horizontalHeader()->resizeSections(QHeaderView::Stretch);
- listWidget->setSelectionMode(listWidget->SingleSelection);
- listWidget->setEditTriggers(QAbstractItemView::NoEditTriggers);
- layout->addWidget(listWidget, 0, 0, 1 ,3);
- layout->addWidget(addButton, 1, 0);
- layout->addWidget(copyButton, 1, 1);
- layout->addWidget(removeButton, 1, 2);
- connect(listWidget, &TableWidget::sectionLogicalMoved, [this, listWidget, tl](int fromIndex, int toIndex) {
- tl->chanceCircuitIndex(fromIndex, toIndex);
- });
- connect(addButton, &QPushButton::clicked, [this, listWidget]() {
- int tlIndex = m_transmissionLines->currentIndex();
- TransmissionLine *tl = g_project->getTransmissionLine(tlIndex);
- if(!tl)
- return;
- int circuitIndex = listWidget->rowCount();
- tl->addCircuit(circuitIndex, false);
- updateFromProject(tlIndex, circuitIndex+1);
- nameUpdate();
- listWidget->setRowCount(tl->getCircuits().size());
- listWidget->setItem(circuitIndex + 1, 0, new QTableWidgetItem(tl->getCircuit(circuitIndex)->getName()));
- });
- connect(copyButton, &QPushButton::clicked, [this, listWidget]() {
- int circuitIndex = 0;
- if(listWidget->selectedItems().size() == 0) {
- QMessageBox::critical(nullptr, tr("Error"), tr("Please select a item to copy"));
- return;
- } else
- circuitIndex = listWidget->selectedItems().at(0)->row();
- int tlIndex = m_transmissionLines->currentIndex();
- TransmissionLine *tl = g_project->getTransmissionLine(tlIndex);
- if(!tl)
- return;
- tl->addCircuit(circuitIndex, true);
- updateFromProject(tlIndex, circuitIndex+1);
- nameUpdate();
- listWidget->setRowCount(tl->getCircuits().size());
- listWidget->setItem(circuitIndex, 0, new QTableWidgetItem(tl->getCircuit(circuitIndex +1)->getName()));
- });
- connect(removeButton, &QPushButton::clicked, [this, listWidget]() {
- QMessageBox::StandardButton reply;
- reply = QMessageBox::question(this, "", tr("Are you sure do you want to remove this circuit?"),
- QMessageBox::Yes|QMessageBox::No);
- if(reply == QMessageBox::No)
- return;
- int circuitIndex = 0;
- if(listWidget->selectedItems().size() == 0) {
- QMessageBox::critical(nullptr, tr("Error"), tr("Please select a item to remove"));
- return;
- } else
- circuitIndex = listWidget->selectedItems().at(0)->row();
- int tlIndex = m_transmissionLines->currentIndex();
- TransmissionLine *tl = g_project->getTransmissionLine(tlIndex);
- if(!tl)
- return;
- QString error;
- if(!tl->removeCircuit(circuitIndex, error))
- QMessageBox::critical(nullptr, tr("Error"), error);
- int count = m_circuits->count();
- if(circuitIndex >= count-1)
- --circuitIndex;
- updateFromProject(tlIndex, circuitIndex);
- listWidget->removeRow(circuitIndex);
- });
- for(int i = 0; i < tl->getCircuits().size(); i++) {
- listWidget->setItem(i, 0, new QTableWidgetItem(tl->getCircuit(i)->getName()));
- }
- manageWindow.exec();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement