void PointPropertyView::updateProperty(Member *m, const QByteArray &array) { MatrixEdit *e = findChild<MatrixEdit*>(QLatin1String("inputLoads")); QVBoxLayout *v = findChild<QVBoxLayout*>(QLatin1String("index")); QVBoxLayout *u = findChild<QVBoxLayout*>(QLatin1String("insert")); QVBoxLayout *w = findChild<QVBoxLayout*>(QLatin1String("remove")); if (array.startsWith('i')) { e->insertRow(array.right(array.size()-1).toInt()); for (int i=0;i<6;++i) e->setText(array.right(array.size()-1).toInt(),i,QString::number(static_cast<Point*>(m)->loads.at(array.right(array.size()-1).toInt())[i])); v->addWidget(new QLabel(QString::number(v->count()+1).prepend(QLatin1String("No.")))); static_cast<QLabel*>(v->itemAt(v->count()-1)->widget())->setFrameShape(QFrame::StyledPanel); u->addWidget(new QToolButton); static_cast<QToolButton*>(u->itemAt(u->count()-1)->widget())->setText(QLatin1String("+")); connect(u->itemAt(u->count()-1)->widget(),SIGNAL(clicked()),SLOT(addLoad())); w->addWidget(new QToolButton); static_cast<QToolButton*>(w->itemAt(w->count()-1)->widget())->setText(QLatin1String("-")); connect(w->itemAt(w->count()-1)->widget(),SIGNAL(clicked()),SLOT(removeLoad())); } else if (array.startsWith('r')) { e->removeRow(array.right(array.size()-1).toInt()); delete v->takeAt(v->count()-1)->widget(); delete u->takeAt(u->count()-1)->widget(); delete w->takeAt(w->count()-1)->widget(); } else if (array.startsWith('s')) { e->insertColumns(0,6); e->insertRows(0,static_cast<Point*>(m)->loads.size()); for (int i=0,j;i<static_cast<Point*>(m)->loads.size();) { for (j=0;j<6;++j) e->setText(i,j,QString::number(static_cast<Point*>(m)->loads.at(i)[j])); u->addWidget(new QToolButton); static_cast<QToolButton*>(u->itemAt(i)->widget())->setText(QLatin1String("+")); connect(u->itemAt(i)->widget(),SIGNAL(clicked()),SLOT(addLoad())); w->addWidget(new QToolButton); static_cast<QToolButton*>(w->itemAt(w->count()-1)->widget())->setText(QLatin1String("-")); connect(w->itemAt(w->count()-1)->widget(),SIGNAL(clicked()),SLOT(removeLoad())); v->addWidget(new QLabel(QString::number(++i).prepend(QLatin1String("No.")))); static_cast<QLabel*>(v->itemAt(i-1)->widget())->setFrameShape(QFrame::StyledPanel); } } else e->setText(array.split(' ').first().toInt(),array.split(' ').last().toInt(),QString::number(static_cast<Point*>(m)->loads.at(array.split(' ').first().toInt())[array.split(' ').last().toInt()])); }
void LXQtGroupPopup::dropEvent(QDropEvent *event) { qlonglong temp; QDataStream stream(event->mimeData()->data(LXQtTaskButton::mimeDataFormat())); stream >> temp; WId window = (WId) temp; LXQtTaskButton *button = nullptr; int oldIndex(0); // get current position of the button being dragged for (int i = 0; i < layout()->count(); i++) { LXQtTaskButton *b = qobject_cast<LXQtTaskButton*>(layout()->itemAt(i)->widget()); if (b && b->windowId() == window) { button = b; oldIndex = i; break; } } if (button == nullptr) return; int newIndex = -1; // find the new position to place it in for (int i = 0; i < oldIndex && newIndex == -1; i++) { QWidget *w = layout()->itemAt(i)->widget(); if (w && w->pos().y() + w->height() / 2 > event->pos().y()) newIndex = i; } const int size = layout()->count(); for (int i = size - 1; i > oldIndex && newIndex == -1; i--) { QWidget *w = layout()->itemAt(i)->widget(); if (w && w->pos().y() + w->height() / 2 < event->pos().y()) newIndex = i; } if (newIndex == -1 || newIndex == oldIndex) return; QVBoxLayout * l = qobject_cast<QVBoxLayout *>(layout()); l->takeAt(oldIndex); l->insertWidget(newIndex, button); l->invalidate(); }
void FormResizer::setFormWindow(QDesignerFormWindowInterface *fw) { if (debugFormResizer) qDebug() << "FormResizer::setFormWindow " << fw; QVBoxLayout *layout = qobject_cast<QVBoxLayout *>(m_frame->layout()); Q_ASSERT(layout); if (layout->count()) delete layout->takeAt(0); m_formWindow = fw; if (m_formWindow) layout->addWidget(m_formWindow); mainContainerChanged(); connect(fw, SIGNAL(mainContainerChanged(QWidget*)), this, SLOT(mainContainerChanged())); }
void SoundApplet::sinkInputsChanged() { m_centeralWidget->setVisible(false); QVBoxLayout *appLayout = m_centeralLayout; while (QLayoutItem *item = appLayout->takeAt(4)) { delete item->widget(); delete item; } m_applicationTitle->setVisible(false); for (auto input : m_audioInter->sinkInputs()) { m_applicationTitle->setVisible(true); SinkInputWidget *si = new SinkInputWidget(input.path()); appLayout->addWidget(si); } const int contentHeight = m_centeralWidget->sizeHint().height(); m_centeralWidget->setFixedHeight(contentHeight); m_centeralWidget->setVisible(true); setFixedHeight(std::min(contentHeight, MAX_HEIGHT)); }
void SpatialDomainWidget::refresh() { // -------- prepare classes list -------- QStringList OriginalClassesList = openfluid::tools::toQStringList(m_Domain.getClassNames()); QStringList ClassesList; // get display order for classes from project config file QVariant TmpList = openfluid::base::ProjectManager::instance()->getConfigValue("builder.spatial.unitsclasses","order"); if (!TmpList.isValid()) { openfluid::base::ProjectManager::instance()->setConfigValue("builder.spatial.unitsclasses","order", OriginalClassesList); ClassesList = OriginalClassesList; } else { ClassesList = TmpList.toStringList(); // find classes in project config file that are not in original dataset QStringList ClassesToRemove; for (int i=0; i< ClassesList.size();i++) { if (!OriginalClassesList.contains(ClassesList[i])) ClassesToRemove.append(ClassesList[i]); } // remove them from classes to display for (int i=0; i< ClassesToRemove.size();i++) ClassesList.removeAll(ClassesToRemove[i]); // remove classes from original list if they exists in classes to display for (int i=0; i< ClassesList.size();i++) { if (OriginalClassesList.contains(ClassesList[i])) OriginalClassesList.removeAll(ClassesList[i]); } // add original dataset classes that are not already in the classes to display for (int i=0; i< OriginalClassesList.size();i++) { if (!ClassesList.contains(OriginalClassesList[i])) ClassesList.append(OriginalClassesList[i]); } openfluid::base::ProjectManager::instance()->setConfigValue("builder.spatial.unitsclasses","order",ClassesList); } // -------- display classes widgets --------- // remove classes from display that does not exist anymore QVBoxLayout* Layout = dynamic_cast<QVBoxLayout*>(ui->UnitsClassAreaContents->layout()); // search for classes to remove from layout QList<int> ItemsToRemove; for (int j=0;j<Layout->count();j++) { if (Layout->itemAt(j)->widget() != NULL) { UnitsClassWidget* ClassW = dynamic_cast<UnitsClassWidget*>(Layout->itemAt(j)->widget()); if (!ClassesList.contains(ClassW->getClassName())) { if (ClassW->getClassName() == m_ActiveClass) m_ActiveClass = ""; ItemsToRemove.append(j); } } } // effectively remove classes from layout QListIterator<int> itTR(ItemsToRemove); itTR.toBack(); while (itTR.hasPrevious()) Layout->takeAt(itTR.previous())->widget()->deleteLater(); // Add of new classes to layout for (int i = 0; i<ClassesList.size(); i++) { bool AlreadyExist = false; // searching for already existing unit class in class list for (int j=0;j<Layout->count();j++) { if (j!=Layout->count()-1) { UnitsClassWidget* ClassW = dynamic_cast<UnitsClassWidget*>(Layout->itemAt(j)->widget()); if (ClassW->getClassName() == ClassesList[i]) AlreadyExist = true; } } // Add if it does not already exist if (!AlreadyExist) { UnitsClassWidget* ClassW = new UnitsClassWidget(ClassesList[i], m_Datastore.getItems(ClassesList[i].toStdString(), openfluid::core::UnstructuredValue::GeoVectorValue), ui->UnitsClassAreaContents); dynamic_cast<QVBoxLayout*>(ui->UnitsClassAreaContents->layout())->insertWidget(Layout->count()-1,ClassW); connect(ClassW,SIGNAL(selectionRequested(QString)),this,SLOT(setSelectedClass(QString))); connect(ClassW,SIGNAL(styleChanged(QString)),this,SLOT(refreshMap())); connect(ClassW,SIGNAL(upClicked(QString)),this,SLOT(moveUnitsClassUp(QString))); connect(ClassW,SIGNAL(downClicked(QString)),this,SLOT(moveUnitsClassDown(QString))); connect(ClassW,SIGNAL(removeClicked(QString)),this,SLOT(removeUnitsClass(QString))); } } if (m_ActiveClass.isEmpty()) { // active class is not defined, pick the first units class if any if (Layout->count()>1) setSelectedClass(dynamic_cast<UnitsClassWidget*>(Layout->itemAt(0)->widget())->getClassName()); else setActiveClass(""); } else { setSelectedClass(m_ActiveClass); } refreshMap(); }
void GNURadioGui::displaySettings() { int oldIndex = 0; oldIndex = ui->cboDevices->currentIndex(); ui->cboDevices->clear(); QString oldArgs = ui->txtDeviceArgs->text(); osmosdr::devices_t devices = osmosdr::device::find(); for ( uint i = 0; i < devices.size(); i++ ) { osmosdr::device_t dev = devices[i]; QString label; if ( dev.count( "label" ) ) { label = QString(dev[ "label" ].c_str()); dev.erase("label"); } QPair< QString, QString > pair(label, dev.to_string().c_str()); m_devs.append(pair); ui->cboDevices->addItem(label); } if ( ui->cboDevices->count() && oldIndex >= 0 ) { if ( oldIndex > ui->cboDevices->count() - 1 ) oldIndex = 0; ui->cboDevices->setCurrentIndex(oldIndex); if ( oldArgs.length() == 0 ) ui->txtDeviceArgs->setText( m_devs[oldIndex].second ); } if ( oldArgs.length() ) ui->txtDeviceArgs->setText( oldArgs ); ui->centerFrequency->setValueRange(7, unsigned(m_freqMin / 1000.0), unsigned(m_freqMax / 1000.0)); ui->centerFrequency->setValue(m_generalSettings.m_centerFrequency / 1000); ui->sldFreqCorr->setRange(-100, +100); ui->sldFreqCorr->setValue( m_freqCorr ); ui->lblFreqCorr->setText(tr("%1").arg(ui->sldFreqCorr->value())); m_gainControls.clear(); QVBoxLayout *layoutGains = ui->verticalLayoutGains; QLayoutItem *layoutItem; while ( ( layoutItem = layoutGains->takeAt( 0 ) ) != NULL ) { QLayout *layout = layoutItem->layout(); if ( !layout ) continue; while ( ( layoutItem = layout->takeAt( 0 ) ) != NULL ) { delete layoutItem->widget(); delete layoutItem; } delete layout; } for ( uint i = 0; i < m_namedGains.size(); i++ ) { std::pair< QString, std::vector<double> > pair = m_namedGains[i]; QHBoxLayout *layout = new QHBoxLayout(); QLabel *gainName = new QLabel( pair.first + " Gain" ); QSlider *gainSlider = new QSlider(Qt::Horizontal); QLabel *gainLabel = new QLabel("0"); gainLabel->setMinimumWidth(30); gainLabel->setAlignment(Qt::AlignHCenter | Qt::AlignHCenter); QPair< QSlider*, QLabel* > pair2( gainSlider, gainLabel ); m_gainControls.push_back( pair2 ); connect(gainSlider, SIGNAL(valueChanged(int)), this, SLOT(on_sldGain_valueChanged(int))); layout->addWidget(gainName); layout->addWidget(gainSlider); layout->addWidget(gainLabel); layoutGains->addLayout(layout); std::vector<double> gain_values = pair.second; if ( gain_values.size() ) { gainSlider->setRange(0, gain_values.size() - 1); gainSlider->setValue(gain_values.size() / 4); gainSlider->setEnabled(true); } else { gainSlider->setEnabled(false); } } oldIndex = ui->cboSampleRate->currentIndex(); ui->cboSampleRate->clear(); for ( uint i = 0; i < m_sampRates.size(); i++ ) ui->cboSampleRate->addItem( QString::number(m_sampRates[i] / 1e6) ); if ( oldIndex > ui->cboSampleRate->count() - 1 ) oldIndex = 0; if ( ui->cboSampleRate->count() && oldIndex >= 0 ) ui->cboSampleRate->setCurrentIndex(oldIndex); if ( ui->cboSampleRate->count() ) { ui->cboSampleRate->setEnabled(true); } else { ui->cboSampleRate->setEnabled(false); } oldIndex = ui->cboAntennas->currentIndex(); ui->cboAntennas->clear(); if ( m_antennas.size() ) { for ( uint i = 0; i < m_antennas.size(); i++ ) ui->cboAntennas->addItem( m_antennas[i] ); if ( oldIndex > ui->cboAntennas->count() - 1 ) oldIndex = 0; if ( ui->cboAntennas->count() && oldIndex >= 0 ) ui->cboAntennas->setCurrentIndex(oldIndex); ui->cboAntennas->setEnabled(true); } else { ui->cboAntennas->setEnabled(false); } oldIndex = ui->cboDCOffset->currentIndex(); ui->cboDCOffset->clear(); if ( m_dcoffs.size() ) { for ( uint i = 0; i < m_dcoffs.size(); i++ ) ui->cboDCOffset->addItem( m_dcoffs[i] ); if ( ui->cboDCOffset->count() && oldIndex >= 0 ) ui->cboDCOffset->setCurrentIndex(oldIndex); ui->cboDCOffset->setEnabled(true); } else { ui->cboDCOffset->setEnabled(false); } oldIndex = ui->cboIQBalance->currentIndex(); ui->cboIQBalance->clear(); if ( m_iqbals.size() ) { for ( uint i = 0; i < m_iqbals.size(); i++ ) ui->cboIQBalance->addItem( m_iqbals[i] ); if ( ui->cboIQBalance->count() && oldIndex >= 0 ) ui->cboIQBalance->setCurrentIndex(oldIndex); ui->cboIQBalance->setEnabled(true); } else { ui->cboIQBalance->setEnabled(false); } oldIndex = ui->cboBandwidth->currentIndex(); ui->cboBandwidth->clear(); for ( uint i = 0; i < m_bandwidths.size(); i++ ) if ( 0.0 == m_bandwidths[i] ) ui->cboBandwidth->addItem( "Auto" ); else ui->cboBandwidth->addItem( QString::number(m_bandwidths[i] / 1e6) ); if ( oldIndex > ui->cboBandwidth->count() - 1 ) oldIndex = 0; if ( ui->cboBandwidth->count() && oldIndex >= 0 ) ui->cboBandwidth->setCurrentIndex(oldIndex); if ( ui->cboBandwidth->count() ) { ui->cboBandwidth->setEnabled(true); } else { ui->cboBandwidth->setEnabled(false); } }