From 0c20652c4b352e0498583c9fdb98f7e289087433 Mon Sep 17 00:00:00 2001 From: Arno Date: Sat, 21 Jul 2018 01:39:55 +0200 Subject: Prepare FSWidget for show/hide headers Don't clear the model when gathering data. Delete all rows instead to keep the headers consistent. Also add a visible column for the full path. --- fswidget.cpp | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) (limited to 'fswidget.cpp') diff --git a/fswidget.cpp b/fswidget.cpp index 1ff94ed..72cae8c 100644 --- a/fswidget.cpp +++ b/fswidget.cpp @@ -158,8 +158,14 @@ void FSWidget::setupWidget(){ mFileView->setUniformRowHeights(true); mFileView->setSelectionBehavior(QAbstractItemView::SelectRows); mFileView->setSelectionMode(QAbstractItemView::ExtendedSelection); + mFileView->setRootIsDecorated(false); connect(mFileView, &QTreeView::doubleClicked, this, &FSWidget::doubleClicked); mModel = new QStandardItemModel; + QStringList headers = QStringList() << tr("Name") << tr("MIME") << tr("Size") << tr("Duration") << tr("MD5") << tr("Presence") << tr("Full path"); + for(int i = 0; i < headers.count(); ++i){ + mHeaderData.insert(headers.at(i), i); + } + mModel->setHorizontalHeaderLabels(headers); mProxy = new FSProxy; mProxy->setSourceModel(mModel); mFileView->setModel(mProxy); @@ -263,11 +269,9 @@ void FSWidget::gatherData(const QString &curDir){ timer.start(); emit message(tr("Gathering data...")); mFileView->setSortingEnabled(false); - mFileView->setRootIsDecorated(false); - mModel->clear(); QStandardItem *root = mModel->invisibleRootItem(); + mModel->removeRows(0, mModel->rowCount()); QMimeDatabase mimedb; - mModel->setHorizontalHeaderLabels(QStringList() << tr("Name") << tr("MIME") << tr("Size") << tr("Duration") << tr("MD5") << tr("Presence")); QIcon videoIcon = Helper::icon(QColor(255,85,255), Qt::white, 'M', true, true); QIcon imageIcon = Helper::icon(QColor(255,85,255), Qt::white, 'P', true, true); QIcon otherIcon = Helper::icon(QColor(255,85,255), Qt::white, 'O', true, true); @@ -357,7 +361,7 @@ void FSWidget::gatherData(const QString &curDir){ } ci: - for(int i = 0; i < 6; ++i){ + for(int i = 0; i < 7; ++i){ QStandardItem *item = new QStandardItem; item->setFont(f); item->setEditable(false); @@ -383,6 +387,7 @@ void FSWidget::gatherData(const QString &curDir){ items[3]->setText(durStr); items[4]->setText(md5); items[5]->setText(presenceStr); + items[6]->setText(fi.absoluteFilePath()); root->appendRow(items); for(int i = 0; i < 6; ++i){ mFileView->resizeColumnToContents(i); -- cgit v1.2.3-70-g09d2