QStandardItemModel* Importer::ImportData() { QString current_path = QDir::currentPath() + "//" + datafilename(); QFile file(QDir::toNativeSeparators(current_path)); if(!file.open(QIODevice::ReadOnly)) { QMessageBox::information(0, tr("Ошибка"), file.errorString()); qDebug() << "Error in open file: " + file.errorString(); } QTextStream in(&file); in.setCodec(QTextCodec::codecForName("IBM 866")); QString line = in.readLine(); QStringList fields = line.split(separator()); QStandardItemModel *model = new QStandardItemModel(0, fields.count()+1); model->setHorizontalHeaderLabels(fields); // Заменяем заголовки столбцов for (int i = 0; i < model->columnCount() - 1; i++) { QStandardItem *item = model->horizontalHeaderItem(i); QString item_text = item->text(); if (item_text.compare(tr("ФИОТБН")) == 0) { item->setText(tr("Отправитель")); } else if (item_text.compare(tr("Кому")) == 0) { item->setText(tr("Получатель")); } } int last_col_idx = model->columnCount() - 1; model->setHorizontalHeaderItem(last_col_idx, new QStandardItem(tr("Состояние"))); model->horizontalHeaderItem(last_col_idx)->setText(tr("Состояние")); // model->setHorizontalHeaderItem(0, new QStandardItem(tr("ТБН"))); // model->setHorizontalHeaderItem(1, new QStandardItem(tr("Отправитель"))); // model->setHorizontalHeaderItem(4, new QStandardItem(tr("Получатель"))); // model->setHorizontalHeaderItem(12, new QStandardItem(tr("Состояние"))); while(!in.atEnd()) { QString line = in.readLine(); QStringList fields = line.split(separator()); QStringListIterator it(fields); QList<QStandardItem *> data; while (it.hasNext()) { data << new QStandardItem(it.next()); } model->appendRow(data); } file.close(); return model; }
void MainWindow::loadPlaylists() { QTreeView *playlists = (QTreeView*)ui->tvPlaylists; QStandardItemModel *model = new QStandardItemModel(3,1); QStandardItem *item = new QStandardItem(QString(tr("Search"))); item->setData(DATA_SEARCH, DATA_KEY_PLAYLIST); item->setEditable(false); model->setItem(0, 0, item); item = new QStandardItem(QString(tr("History"))); item->setData(DATA_HISTORY, DATA_KEY_PLAYLIST); item->setEditable(false); model->setItem(1, 0, item); item = new QStandardItem(QString(tr("Playlists"))); item->setData(DATA_EMPTY, DATA_KEY_PLAYLIST); item->setEditable(false); QList<Playlist> pls = dp->getPlaylists(); int n = pls.count(); for( int i=0; i<n; i++ ) { QStandardItem *child = new QStandardItem(pls[i].title); child->setData(pls[i].id, DATA_KEY_PLAYLIST); child->setEditable(false); item->appendRow(child); } model->setItem(2, 0, item); model->setHorizontalHeaderItem( 0, new QStandardItem(tr("Library"))); model->horizontalHeaderItem(0)->setEditable(false); model->horizontalHeaderItem(0)->setEnabled(false); playlists->setModel(model); playlists->setContextMenuPolicy(Qt::CustomContextMenu); QModelIndexList indexes = model->match(model->index(2,0), Qt::DisplayRole, "*", -1, Qt::MatchWildcard|Qt::MatchRecursive); playlists->expand(indexes[0]); connect(playlists->selectionModel(), SIGNAL(selectionChanged(const QItemSelection &, const QItemSelection &)), this, SLOT(loadPlaylist())); }