Beispiel #1
0
void CSVSettings::View::buildUpdatableValueModel (const QStringList &values)
{
    //updateable models are standard item models because they support
    //replacing entire columns
    QList <QStandardItem *> itemList;

    foreach (const QString &value, values)
        itemList.append (new QStandardItem(value));

    QStandardItemModel *model = new QStandardItemModel (this);
    model->appendColumn (itemList);

    mDataModel = model;
}
Beispiel #2
0
void CSVSettings::View::setSelectedValues (const QStringList &list,
                                           bool doViewUpdate, bool signalUpdate) const
{
    QItemSelection selection;

    if (stringListsMatch (list, selectedValues()))
        return;

    if (!mHasFixedValues)
    {
        QStandardItemModel *model  =
                                static_cast <QStandardItemModel *>(mDataModel);

        model->clear();
        model->appendColumn (toStandardItemList (list));

        for (int i = 0; i < model->rowCount(); i++)
        {
            QModelIndex idx = model->index(i, 0);
            selection.append (QItemSelectionRange (idx, idx));
        }
    }
    else
    {
        for (int i = 0; i < mDataModel->rowCount(); i++)
        {
            if (list.contains(value(i)))
            {
                QModelIndex idx = mDataModel->index(i, 0);
                selection.append(QItemSelectionRange (idx, idx));
            }
        }
    }
    select (selection);

    //update the view if the selection was set from the model side, not by the
    //user
    if (doViewUpdate)
         updateView (signalUpdate);
}
Beispiel #3
0
int main(int argc, char *argv[])
{
QApplication a(argc, argv);

QStandardItemModel model;

for ( int col = 0; col < 3; col++ )
{
    QList<QStandardItem*> list;
    for ( int row = 0; row < 5; row++ )
    {
        list.append(new QStandardItem);
    }
    model.appendColumn(list);
}

TableView view;

view.setModel(&model);
view.show();

return a.exec&#40;&#41;;
}