/** Submit the current editing class/interactor to the model and submit the model to the database */
void InteractorEditorWidget::save()
{
    if (d->m_EditingIndex.isValid()) {
        QAbstractItemModel *model = ddiCore()->drugInteractorTableModel();

        // Manage ATC
        QModelIndex atc = model->index(d->m_EditingIndex.row(), DrugInteractorTableModel::ATCCodeStringList, d->m_EditingIndex.parent());
        model->setData(atc, d->_atcCodesStringListModel->stringList().join(";"));

        // Manage class children
        QModelIndex children = model->index(d->m_EditingIndex.row(), DrugInteractorTableModel::ChildrenUuid, d->m_EditingIndex.parent());
        model->setData(children, d->_childrenInteractorsStringListModel->stringList().join(";"));

        // Manage PMIDs
        QModelIndex pmids = model->index(d->m_EditingIndex.row(), DrugInteractorTableModel::PMIDStringList, d->m_EditingIndex.parent());
        model->setData(pmids, d->_pmidStringListModel->stringList().join(";"));

        // Submit mapper at the end as the model will be resetted on submit
        if (!d->_mapper->submit())
            LOG_ERROR("Unable to submit mapper");
    }

    setEditorsEnabled(false);
    d->aSave->setEnabled(false);
    d->aRevert->setEnabled(false);
    d->_proxyMoleculeModel->invalidate();
    d->_proxyMoleculeModel->setFilterFixedString(d->ui->searchLine->text());
    updateCounts();
}
示例#2
0
void MetaEditor::insertRow(QString code, QString contents)
{
    QModelIndex index = view->selectionModel()->currentIndex();
    QAbstractItemModel *model = view->model();

    // force all row insertions to be children of the root item
    while(index.parent() != QModelIndex()) {
        index = index.parent();
    }

    if (!model->insertRow(index.row()+1, index.parent()))
        return;


    updateActions();

    QModelIndex child = model->index(index.row()+1, 0, index.parent());
    model->setData(child, QVariant(code), Qt::EditRole);
    for (int column = 1; column < model->columnCount(index.parent()); ++column) {
        QModelIndex nchild = model->index(index.row()+1, column, index.parent());
        if (!contents.isEmpty()) {
            model->setData(nchild, QVariant(contents), Qt::EditRole);
        } else {
            model->setData(nchild, QVariant(tr("[Your value here]")), Qt::EditRole);
        }
    }

    // force newly inserted row to be the currently selected item so that any
    // follow-on insertChild calls use this as their parent.
    view->selectionModel()->setCurrentIndex(child, QItemSelectionModel::ClearAndSelect);
    updateActions();
}
示例#3
0
void QgsJoinDialog::setJoinInfo( const QgsVectorJoinInfo& joinInfo )
{
  mJoinLayerComboBox->setLayer( QgsMapLayerRegistry::instance()->mapLayer( joinInfo.joinLayerId ) );
  mJoinFieldComboBox->setField( joinInfo.joinFieldName );
  mTargetFieldComboBox->setField( joinInfo.targetFieldName );
  mCacheInMemoryCheckBox->setChecked( joinInfo.memoryCache );
  if ( joinInfo.prefix.isNull() )
  {
    mUseCustomPrefix->setChecked( false );
  }
  else
  {
    mUseCustomPrefix->setChecked( true );
    mCustomPrefix->setText( joinInfo.prefix );
  }

  QStringList* lst = joinInfo.joinFieldNamesSubset();
  mUseJoinFieldsSubset->setChecked( lst && !lst->isEmpty() );
  QAbstractItemModel* model = mJoinFieldsSubsetView->model();
  if ( model )
  {
    for ( int i = 0; i < model->rowCount(); ++i )
    {
      QModelIndex index = model->index( i, 0 );
      if ( lst && lst->contains( model->data( index, Qt::DisplayRole ).toString() ) )
      {
        model->setData( index, Qt::Checked, Qt::CheckStateRole );
      }
      else
      {
        model->setData( index, Qt::Unchecked, Qt::CheckStateRole );
      }
    }
  }
}
void LogDetailWidget::setupModel()
{
	QAbstractItemModel *model = pieChart->model();

	model->setHeaderData(0, Qt::Horizontal, tr("Label"));
    model->setHeaderData(1, Qt::Horizontal, tr("Quantity"));

	QString colors[] = {"#ff0000", "#00ff00", "#0000ff","#ffff00", "#ff00ff", "#00ffff", "#000000", "#ffffff", "#777777", "#222222", "#aaaaaa"};

	int i=0;
	for(hash_map<string, double>::iterator it = logMan.process_stat.begin() ; it != logMan.process_stat.end(); it++)
	{
		string process = it->first;
		double duration = it->second;

		model->insertRow(i);
		model->setData(model->index(i, 0), QString::fromStdString(process));
		model->setData(model->index(i, 1), duration);

		model->setData(model->index(i, 0, QModelIndex()),
                           QColor(colors[i]), Qt::DecorationRole);
		i++;
	}

}
示例#5
0
/*
void AdjustNames::resizeEvent( QResizeEvent * event )
{
    int w = event->size().width();
    int h = event->size().height();
    BackFrame->resize(event->size());
    if( w > 300 && h > 150 )
    {
        Cancel->setGeometry(w-85,h-36,77,26);
        Next->setGeometry(w-168,h-36,77,26);
        line->setGeometry(14,h-53,w-21,16);
        title->setGeometry(220,21,w-299,18);
        instructions->setGeometry(220,h-79,w-229,18);
        tableWidget->setGeometry(220, 45, w-229, h-130);
    }
}
*/
void AdjustNames::show()
{
    QDialog::show();

    scenarioName->setText(QString(     "Scenario Name:       ") + extractor->setup->scenarioName->text());
    scenarioDirectory->setText(QString("Scenario Directory:  ") + extractor->setup->scenarioDirectory->text());

    tableWidget->clearContents();
    tableWidget->setRowCount(0);

    tableWidget->horizontalHeaderItem(0)->setToolTip("This is the node id used by the EXata/QualNet simulator and GUI");
    tableWidget->horizontalHeaderItem(1)->setToolTip("This is the name used by the HLA federate that published the entity");
    tableWidget->horizontalHeaderItem(2)->setToolTip("Enter text to change the name that will be used by the EXata/QualNet simulator and GUI");
    tableWidget->horizontalHeaderItem(3)->setToolTip("Enter an icon file name or browse to change the icon used by the EXata/QualNet simulator and GUI");

    QAbstractItemModel* model = tableWidget->model();
    SNT_HLA::NodeSet::iterator it = extractor->ns->begin();
    //QFontMetrics fontMetrics = tableWidget->fontMetrics();
    //int iconWidth = 0;
    while( it != extractor->ns->end() )
    {
        QApplication::processEvents();
        if( extractor == 0 )
            break;
        if( (*it)->entity )
        {
            QString name((*it)->getNodeName());
            int id = (*it)->NodeId;
            QString iconName((*it)->getIconName().c_str());
            QIcon icon(iconName);
            QFileInfo iconInfo(iconName);
            int row = tableWidget->rowCount();
            tableWidget->insertRow(row);
            QModelIndex index = model->index(row, 1, QModelIndex());
            model->setData(index, name);
            index = model->index(row, 2, QModelIndex());
            model->setData(index, name);
            index = model->index(row, 0, QModelIndex());
            model->setData(index, id);
            tableWidget->item(row, 0)->setFlags(0);
            tableWidget->item(row, 1)->setFlags(0);
            FileNameWidget* wid = new FileNameWidget("Open Icon File", extractor->exeHome+"/gui/icons", getImageFilter(),tableWidget);
            wid->setText(iconName);
            wid->setToolTip("Enter an icon file name or browse to change the icon used by the EXata/QualNet simulator and GUI");
            tableWidget->setCellWidget(row, 3, wid);
            tableWidget->item(row,0)->setToolTip("This is the node id used by the EXata/QualNet simulator and GUI");
            tableWidget->item(row,1)->setToolTip("This is the name used by the HLA federate that published the entity");
            tableWidget->item(row,2)->setToolTip("Enter text to change the name that will be used by the EXata/QualNet simulator and GUI");
            tableWidget->resizeColumnToContents(0);
            tableWidget->resizeColumnToContents(1);
            tableWidget->resizeColumnToContents(2);
        }
        //tableWidget->setColumnWidth(3, iconWidth);
        it++;
    }
}
示例#6
0
void MainWindow::insertChild()
{
    QModelIndex index = view->selectionModel()->currentIndex();
    QAbstractItemModel *model = view->model();

    if (model->columnCount(index) == 0) {
        if (!model->insertColumn(0, index))
            return;
    }

    if (!model->insertRow(0, index))
        return;

    for (int column = 0; column < model->columnCount(index); ++column) {
        QModelIndex child = model->index(0, column, index);
        model->setData(child, QVariant("[No data]"), Qt::EditRole);
        if (!model->headerData(column, Qt::Horizontal).isValid())
            model->setHeaderData(column, Qt::Horizontal, QVariant("[No header]"),
                                 Qt::EditRole);
    }

    view->selectionModel()->setCurrentIndex(model->index(0, 0, index),
                                            QItemSelectionModel::ClearAndSelect);
    updateActions();
}
//! [0]
int main(int argc, char *argv[])
{
    QApplication app(argc, argv);

// Unindented for quoting purposes:
//! [1]
QStringList numbers;
numbers << "One" << "Two" << "Three" << "Four" << "Five";

QAbstractItemModel *model = new StringListModel(numbers);
//! [0] //! [1] //! [2] //! [3]
QListView *view = new QListView;
//! [2]
view->setWindowTitle("View onto a string list model");
//! [4]
view->setModel(model);
//! [3] //! [4]

    model->insertRows(5, 7, QModelIndex());

    for (int row = 5; row < 12; ++row) {
        QModelIndex index = model->index(row, 0, QModelIndex());
        model->setData(index, QString::number(row+1));
    }

//! [5]
    view->show();
    return app.exec();
}
    void testUpdate()
    {
      const QgsKeyValueWidgetFactory factory( QStringLiteral( "testKeyValue" ) );
      QgsEditorWidgetWrapper* wrapper = factory.create( nullptr, 0, nullptr, nullptr );
      QVERIFY( wrapper );
      QSignalSpy spy( wrapper, SIGNAL( valueChanged( const QVariant& ) ) );

      QgsKeyValueWidget* widget = qobject_cast< QgsKeyValueWidget* >( wrapper->widget() );
      QVERIFY( widget );

      QVariantMap initial;
      initial[QStringLiteral( "1" )] = "one";
      initial[QStringLiteral( "2" )] = "two";
      wrapper->setValue( initial );

      const QVariant value = wrapper->value();
      QCOMPARE( int( value.type() ), int( QVariant::Map ) );
      QCOMPARE( value.toMap(), initial );
      QCOMPARE( spy.count(), 0 );

      QAbstractItemModel* model = widget->tableView->model();
      model->setData( model->index( 0, 1 ), "hello" );
      QCOMPARE( spy.count(), 1 );

      QVariantMap expected = initial;
      expected[QStringLiteral( "1" )] = "hello";
      QVariant eventValue = spy.at( 0 ).at( 0 ).value<QVariant>();
      QCOMPARE( int( eventValue.type() ), int( QVariant::Map ) );
      QCOMPARE( eventValue.toMap(), expected );
      QCOMPARE( wrapper->value().toMap(), expected );
      QCOMPARE( spy.count(), 1 );
    }
void PreferencesDialog::cellChanged(int row, int column) {
  if (row == 3) {
    // force selection color to be the same for nodes & edges
    QAbstractItemModel* model = _ui->graphDefaultsTable->model();
    model->setData(model->index(3, column == 1 ? 2 : 1), model->data(model->index(3,column)));
  }
}
示例#10
0
void Element::setRoleValueByName(QString const &roleName, QString const &value)
{
	int roleIndex = roleIndexByName(roleName);
	if (roleIndex < roles::customPropertiesBeginRole)
		return;
	QAbstractItemModel *itemModel = const_cast<QAbstractItemModel*>(mDataIndex.model());
	itemModel->setData(mDataIndex, value, roleIndex);
}
示例#11
0
void Desktopwidget::pageRight (const QModelIndex &index)
   {
   QAbstractItemModel *model = (QAbstractItemModel *)index.model ();
   int pagenum = model->data (index, Desktopmodel::Role_pagenum).toInt ();
   QVariant v = pagenum + 1;

   model->setData (index, v, Desktopmodel::Role_pagenum);
   }
示例#12
0
void tst_QDataWidgetMapper::comboBox()
{
    QDataWidgetMapper mapper;
    QAbstractItemModel *model = testModel(&mapper);
    mapper.setModel(model);
    mapper.setSubmitPolicy(QDataWidgetMapper::ManualSubmit);

    QComboBox readOnlyBox;
    readOnlyBox.setEditable(false);
    readOnlyBox.addItem("read only item 0");
    readOnlyBox.addItem("read only item 1");
    readOnlyBox.addItem("read only item 2");

    QComboBox readWriteBox;
    readWriteBox.setEditable(true);
    readWriteBox.addItem("read write item 0");
    readWriteBox.addItem("read write item 1");
    readWriteBox.addItem("read write item 2");

    // populat the combo boxes with data
    mapper.addMapping(&readOnlyBox, 0, "currentIndex");
    mapper.addMapping(&readWriteBox, 1, "currentText");
    mapper.toFirst();

    QCOMPARE(readOnlyBox.currentText(), QString("read only item 0"));
    QCOMPARE(readWriteBox.currentText(), QString("read write item 0"));

    // set some new values on the boxes
    readOnlyBox.setCurrentIndex(1);
    readWriteBox.setEditText("read write item y");

    mapper.submit();

    // make sure the new values are in the model
    QCOMPARE(model->data(model->index(0, 0)).toInt(), 1);
    QCOMPARE(model->data(model->index(0, 1)).toString(), QString("read write item y"));

    // now test updating of the widgets
    model->setData(model->index(0, 0), 2, Qt::EditRole);
    model->setData(model->index(0, 1), QString("read write item z"), Qt::EditRole);

    QCOMPARE(readOnlyBox.currentIndex(), 2);
    QEXPECT_FAIL("", "See task 125493 and QTBUG-428", Abort);
    QCOMPARE(readWriteBox.currentText(), QString("read write item z"));
}
bool KConcatenateRowsProxyModel::setData(const QModelIndex &index, const QVariant &value, int role)
{
    const QModelIndex sourceIndex = mapToSource(index);
    if (!sourceIndex.isValid()) {
        return false;
    }
    QAbstractItemModel *sourceModel = const_cast<QAbstractItemModel *>(sourceIndex.model());
    return sourceModel->setData(sourceIndex, value, role);
}
示例#14
0
void DlgFilletEdges::on_selectNoneButton_clicked()
{
    QAbstractItemModel* model = ui->treeView->model();
    for (int i=0; i<model->rowCount(); ++i) {
        Qt::CheckState checkState = Qt::Unchecked;
        QVariant value(static_cast<int>(checkState));
        model->setData(model->index(i,0), value, Qt::CheckStateRole);
    }
}
示例#15
0
void TodoNode::setRowData(const QVariant &value, int role)
{
    if (m_rowSourceIndex.isValid()) {
        QAbstractItemModel *model = const_cast<QAbstractItemModel*>(m_rowSourceIndex.model());
        model->setData(m_rowSourceIndex, value, role);
    } else {
        m_data[QPair<int, int>(-1, role)] = value;
    }
}
void SummaryHandlingProxyModel::Private::insertInCache( const SummaryHandlingProxyModel* model,
                                                        const QModelIndex& sourceIdx ) const
{
    QAbstractItemModel* sourceModel = model->sourceModel();
    const QModelIndex& mainIdx = sourceIdx;
    QDateTime st;
    QDateTime et;

    for ( int r = 0; r < sourceModel->rowCount( mainIdx ); ++r ) {
        QModelIndex pdIdx = model->mapFromSource( sourceModel->index( r, 0, mainIdx ) );
        /* The probably results in recursive calls here */
	QVariant tmpsv = model->data( pdIdx, StartTimeRole );
	QVariant tmpev = model->data( pdIdx, EndTimeRole );
	if( !qVariantCanConvert<QDateTime>(tmpsv) ||
	    !qVariantCanConvert<QDateTime>(tmpev) ) {
            qDebug() << "Skipping item " << sourceIdx << " because it doesn't contain QDateTime";
            continue;
        }

    // check for valid datetimes
    if( tmpsv.type() == QVariant::DateTime && !qVariantValue<QDateTime>(tmpsv).isValid()) continue;
    if( tmpev.type() == QVariant::DateTime && !qVariantValue<QDateTime>(tmpev).isValid()) continue;

	// We need to test for empty strings to
	// avoid a stupid Qt warning
	if( tmpsv.type() == QVariant::String && qVariantValue<QString>(tmpsv).isEmpty()) continue;
	if( tmpev.type() == QVariant::String && qVariantValue<QString>(tmpev).isEmpty()) continue;
        QDateTime tmpst = tmpsv.toDateTime();
        QDateTime tmpet = tmpev.toDateTime();
        if ( st.isNull() || st > tmpst ) st = tmpst;
        if ( et.isNull() || et < tmpet ) et = tmpet;
    }
    QVariant tmpssv = sourceModel->data( mainIdx, StartTimeRole );
    QVariant tmpsev = sourceModel->data( mainIdx, EndTimeRole );
    if ( qVariantCanConvert<QDateTime>( tmpssv )
         && !( qVariantCanConvert<QString>( tmpssv ) && qVariantValue<QString>( tmpssv ).isEmpty() )
         && qVariantValue<QDateTime>( tmpssv ) != st )
        sourceModel->setData( mainIdx, st, StartTimeRole );
    if ( qVariantCanConvert<QDateTime>( tmpsev )
         && !( qVariantCanConvert<QString>( tmpsev ) && qVariantValue<QString>( tmpsev ).isEmpty() )
         && qVariantValue<QDateTime>( tmpsev ) != et )
        sourceModel->setData( mainIdx, et, EndTimeRole );
    cached_summary_items[sourceIdx]=qMakePair( st, et );
}
    void PathPlanningWidget::pointPosUpdated_slot(const tf::Transform& point_pos, const char* marker_name)
    {
        /*! When the user updates the position of the Way-Point or the User Interactive Marker, the information in the TreeView also needs to be updated to correspond to the current pose of the InteractiveMarkers.

        */
        QAbstractItemModel *model = ui_.treeView->model();

        ROS_INFO_STREAM("Updating marker name:"<<marker_name);

        tf::Vector3 p = point_pos.getOrigin();
        tfScalar rx,ry,rz;
        point_pos.getBasis().getRPY(rx,ry,rz,1);

        rx = RAD2DEG(rx);
        ry = RAD2DEG(ry);
        rz = RAD2DEG(rz);

      if((strcmp(marker_name,"add_point_button") == 0) || (atoi(marker_name)==0))
      {
          QString pos_s;
          pos_s = QString::number(p.x()) + "; " + QString::number(p.y()) + "; " + QString::number(p.z()) + ";";
          QString orient_s;
          orient_s = QString::number(rx) + "; " + QString::number(ry) + "; " + QString::number(rz) + ";";

          model->setData(model->index(0,0),QVariant("add_point_button"),Qt::EditRole);
          model->setData(model->index(0,1),QVariant(pos_s),Qt::EditRole);
          model->setData(model->index(0,2),QVariant(orient_s),Qt::EditRole);
      }
      else
      {

          int changed_marker = atoi(marker_name);
    //**********************update the positions and orientations of the children as well***********************************************************************************************
          QModelIndex ind = model->index(changed_marker, 0);
          QModelIndex chldind_pos = model->index(0, 0, ind);
          QModelIndex chldind_orient = model->index(1, 0, ind);

          //set the strings of each axis of the position
          QString pos_x = QString::number(p.x());
          QString pos_y = QString::number(p.y());
          QString pos_z = QString::number(p.z());

          //repeat that with the orientation
          QString orient_x = QString::number(rx);
          QString orient_y = QString::number(ry);
          QString orient_z = QString::number(rz);

          //second we add the current position information, for each position axis separately
          model->setData(model->index(0, 1, chldind_pos), QVariant(pos_x), Qt::EditRole);
          model->setData(model->index(1, 1, chldind_pos), QVariant(pos_y), Qt::EditRole);
          model->setData(model->index(2, 1, chldind_pos), QVariant(pos_z), Qt::EditRole);

          //second we add the current position information, for each position axis separately
          model->setData(model->index(0, 2, chldind_orient), QVariant(orient_x), Qt::EditRole);
          model->setData(model->index(1, 2, chldind_orient), QVariant(orient_y), Qt::EditRole);
          model->setData(model->index(2, 2, chldind_orient), QVariant(orient_z), Qt::EditRole);
//*****************************************************************************************************************************************************************************************
      }
    }
void PreviewsSettingsPage::loadPreviewPlugins()
{
    QAbstractItemModel* model = m_listView->model();

    const KService::List plugins = KServiceTypeTrader::self()->query(QLatin1String("ThumbCreator"));
    foreach (const KSharedPtr<KService>& service, plugins) {
        const bool configurable = service->property("Configurable", QVariant::Bool).toBool();
        const bool show = m_enabledPreviewPlugins.contains(service->desktopEntryName());

        model->insertRow(0);
        const QModelIndex index = model->index(0, 0);
        model->setData(index, show, Qt::CheckStateRole);
        model->setData(index, configurable, ServiceModel::ConfigurableRole);
        model->setData(index, service->name(), Qt::DisplayRole);
        model->setData(index, service->desktopEntryName(), ServiceModel::DesktopEntryNameRole);
    }

    model->sort(Qt::DisplayRole);
}
void CTestAlgorithmSettings::test()
{
  AWorkflow* workflow = CWorkflowManager::Instance()->getWorkflow("4Phase Workflow");
  QVector<IPlugin*> plugins = CPluginManager::Instance()->getPlugins();
  bool pluginFound = false;

  for(IPlugin* p : plugins)
  {
    if(p->Name() == "AlgorithmSettingsTest")
    {
      workflow->trySetStep(0, p);
      pluginFound = true;
      break;
    }
  }
  QCOMPARE(pluginFound, true);

  if(pluginFound)
  {
    CAlgorithmSettingsView* settingsView = new CAlgorithmSettingsView;
    QAbstractItemModel* model = nullptr;
    QModelIndex index;

    settingsView->setWorkflow(*workflow);
    model = static_cast<QTreeView*>(settingsView)->model();

    index = model->index(0, 0, settingsView->rootIndex());
    index = model->index(0, 1, index);

    mSettingsSet = false;
    model->setData(index, QVariant(TEST_VALUE_VALID));
    QVERIFY(mSettingsSet);
    QCOMPARE(mSettings.value("parameter").toInt(), TEST_VALUE_VALID);

    mSettingsSet = false;
    model->setData(index, QVariant(TEST_VALUE_INVALID));
    QVERIFY(!mSettingsSet);

    delete settingsView;
  }

  delete workflow;
}
示例#20
0
QAbstractItemModel * radDataWidget :: initComplexModel (const complex<double> * zVec, int n)
{
    if (!zVec || n==0)
        return 0;

    QAbstractItemModel * cModel = new QStandardItemModel (n, 2);
    cModel->setHeaderData (0, Qt::Horizontal, tr("Real component"), Qt::DisplayRole);
    cModel->setHeaderData (1, Qt::Horizontal, tr("Image component"), Qt::DisplayRole);
    for (int i=0; i<n; i++)
    {
        double r = real(zVec[i]);
        double im = imag(zVec[i]);
        QModelIndex cRInd = cModel->index (i, 0);
        cModel->setData (cRInd, QString::number (r, 'f', 16), Qt::DisplayRole);
        QModelIndex cImInd = cModel->index (i, 1);
        cModel->setData (cImInd, QString::number (im, 'f', 16), Qt::DisplayRole);
    }

    return cModel;
}
示例#21
0
void SequentialFitDialog::addFile()
{
  QFileDialog dlg(this);
  dlg.setFileMode(QFileDialog::ExistingFiles);
  const std::vector<std::string>& searchDirs =
    Mantid::Kernel::ConfigService::Instance().getDataSearchDirs();
  QString dir;
  if ( searchDirs.empty() )
  {
    dir = "";
  }
  else
  {
    dir = QString::fromStdString(searchDirs.front());
  }
  dlg.setDirectory(dir);
  if (dlg.exec())
  {
    QStringList fileNames;
    fileNames = dlg.selectedFiles();
    if (fileNames.isEmpty()) return;
    fileNames.sort();

    int row = ui.tWorkspaces->rowCount();
    ui.tWorkspaces->model()->insertRows(row,fileNames.size());
    //int wi = m_fitBrowser->workspaceIndex();
    QAbstractItemModel* model = ui.tWorkspaces->model();
    foreach(QString name,fileNames)
    {
      model->setData(model->index(row,0,QModelIndex()),name); // file name
      model->setData(model->index(row,1,QModelIndex()),ui.sbPeriod->value());   // period
      model->setData(model->index(row,2,QModelIndex()),ui.sbSpectrum->value());   // spectrum
      model->setData(model->index(row,3,QModelIndex()),"");   // ws index
      QTableWidgetItem* item = ui.tWorkspaces->item(row,3);
      if (item) 
      {
        item->setBackgroundColor(QColor(Qt::lightGray));
        item->setFlags(Qt::NoItemFlags);
      }
      ++row;
    }
示例#22
0
bool ProxyModel::setData( const QModelIndex& proxyIdx, const QVariant& value, int role )
{
    int srole = role;
    int scol  = proxyIdx.column();
    QHash<int, int>::const_iterator it = d->roleMap.constFind( role );
    if ( it != d->roleMap.constEnd() ) srole = *it;
    it = d->columnMap.constFind( role );
    if ( it != d->columnMap.constEnd() ) scol = *it;

    QAbstractItemModel* model = sourceModel();
    return model->setData( model->index( proxyIdx.row(), scol, mapToSource( proxyIdx.parent() ) ), value, srole );
}
/**
 * \brief Update the progress bar
 * @param id as the downloaded file id
 * @param crnt as the current transfered size
 * @param total as the total size of the file
 */
void UBDownloadWidget::onDownloadUpdated(int id, qint64 crnt, qint64 total)
{
    if(NULL != mpTree)
    {
        QAbstractItemModel* model = mpTree->model();
        if(NULL != model)
        {
            for(int i=0; i< model->rowCount(); i++)
            {
                QModelIndex currentIndex = model->index(i, eItemColumn_Desc);
                if(id == currentIndex.data(Qt::UserRole + 2))
                {
                    // We found the right item, now we update the progress bar
                    model->setData(currentIndex, crnt, Qt::UserRole);
                    model->setData(currentIndex, total, Qt::UserRole + 1);
                    break;
                }
            }
        }
    }
}
示例#24
0
bool ModelCellModel::setData(const QModelIndex &index, const QVariant &value, int role)
{
    if (index.isValid() && m_index.isValid()
        && (m_index.flags() & Qt::ItemIsEditable)
        && role == Qt::EditRole && index.column() == 1) {
        const Qt::ItemDataRole sourceRole
            = static_cast<Qt::ItemDataRole>(m_roles.at(index.row()).first);
        QAbstractItemModel *sourceModel = const_cast<QAbstractItemModel *>(m_index.model());
        return sourceModel->setData(m_index, value, sourceRole);
    }
    return QAbstractItemModel::setData(index, value, role);
}
示例#25
0
void ConfigTabAppearance::decoratePreview()
{
    if ( !m_itemFactory || !isVisible() )
        return;

    if (m_preview) {
        delete m_preview;
        m_preview = nullptr;
    }

    m_theme.updateTheme();

    const auto sharedData = std::make_shared<ClipboardBrowserShared>();
    sharedData->itemFactory = m_itemFactory;
    sharedData->theme = m_theme;

    auto c = new ClipboardBrowser(QString(), sharedData, this);
    m_preview = c;
    m_theme.decorateBrowser(c);

    ui->browserParentLayout->addWidget(c);

    const QString searchFor = tr("item", "Search expression in preview in Appearance tab.");

    c->addItems( QStringList()
                 << tr("Search string is %1.").arg( quoteString(searchFor) )
                 << tr("Select an item and\n"
                       "press F2 to edit.") );
    for (int i = 1; i <= 20; ++i)
        c->add( tr("Example item %1").arg(i), -1 );

    QAbstractItemModel *model = c->model();
    QModelIndex index = model->index(0, 0);
    QVariantMap dataMap;
    dataMap.insert( mimeItemNotes, tr("Some random notes (Shift+F2 to edit)").toUtf8() );
    model->setData(index, dataMap, contentType::updateData);

    // Highlight found text but don't filter out any items.
    c->filterItems( QRegExp(QString("|") + searchFor, Qt::CaseInsensitive) );

    QAction *act;

    act = new QAction(c);
    act->setShortcut( QString("Shift+F2") );
    connect(act, &QAction::triggered, c, &ClipboardBrowser::editNotes);
    c->addAction(act);

    act = new QAction(c);
    act->setShortcut( QString("F2") );
    connect(act, &QAction::triggered, c, &ClipboardBrowser::editSelected);
    c->addAction(act);
}
void QtlCheckableHeaderView::updateAllRows()
{
    QAbstractItemModel* model = this->model();
    if (model != 0) {
        const Qt::CheckState state = (_checkState == Qt::Unchecked) ? Qt::Unchecked : Qt::Checked;
        for (int row = 0; row < model->rowCount(); row++) {
            const QModelIndex index = model->index(row, 0);
            if (index.isValid() && (model->flags(index) & Qt::ItemIsUserCheckable) != 0) {
                model->setData(index, state, Qt::CheckStateRole);
            }
        }
    }
}
示例#27
0
void TracingLegend::addNode(NodeFacade* node)
{
    int row = rows_.size();
    rows_.push_back(node);

    QAbstractItemModel* m = model();
    m->insertRow(row);
    m->setData(m->index(row, 0), QString::fromStdString(node->getLabel()));

    resizeToFit();

    Q_EMIT nodeAdded(node);
}
void WindowAnotationManager::on_btnAddBeat_clicked()
{
    VideoDataClip *clip = ui->widgetStrainVideo->getClip();
    if (!clip || clip->size() == 0) return;

    int beat = ui->widgetStrainVideo->getCurrentIndex();

    QAbstractItemModel *model = ui->listViewBeats->model();
    int rowCount = model->rowCount();
    model->insertRow(rowCount);
    QModelIndex index = model->index(rowCount, 0);
    model->setData(index, beat);
}
示例#29
0
void MetaEditor::insertChild(QString code, QString contents)
{
    QModelIndex index = view->selectionModel()->currentIndex();
    QAbstractItemModel *model = view->model();

    // restrict children to be a grandchild of the root item
    // and make sure you are in column 0 when inserting a child
    if (index.parent() != QModelIndex()) {
        index = index.parent();
    }
    int row = index.row();
    index = index.sibling(row,0);

    if (model->columnCount(index) == 0) {
        if (!model->insertColumn(0, index))
            return;
    }

    if (!model->insertRow(0, index))
        return;

    QModelIndex child = model->index(0, 0, index);
    model->setData(child, QVariant(code), Qt::EditRole);
    for (int column = 1; column < model->columnCount(index); ++column) {
        QModelIndex child = model->index(0, column, index);
        if (!contents.isEmpty()) {
            model->setData(child, QVariant(contents), Qt::EditRole);
        } else {
            model->setData(child, QVariant(tr("[Place value here]")), Qt::EditRole);
        }
        if (!model->headerData(column, Qt::Horizontal).isValid())
            model->setHeaderData(column, Qt::Horizontal, QVariant("[No header]"), Qt::EditRole);
    }

    view->selectionModel()->setCurrentIndex(model->index(0, 0, index),
                                            QItemSelectionModel::ClearAndSelect);
    updateActions();
}
示例#30
-1
void ParamItem::setField(int column, double value) {
	QAbstractItemModel* model
		= const_cast<QAbstractItemModel*>(currentIndex.model());

	model->setData(
			model->index(currentIndex.row(), column, QModelIndex()), value);
}