summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--filesystemwidget.cpp14
-rw-r--r--filesystemwidget.h1
-rw-r--r--fileview.cpp6
-rw-r--r--fileview.h3
-rw-r--r--smdirmodel.cpp3
-rw-r--r--smdirmodel.h3
6 files changed, 24 insertions, 6 deletions
diff --git a/filesystemwidget.cpp b/filesystemwidget.cpp
index 1e70a49..e2dc9ef 100644
--- a/filesystemwidget.cpp
+++ b/filesystemwidget.cpp
@@ -66,6 +66,7 @@ FilesystemWidget::FilesystemWidget(QWidget *parent) : QWidget(parent), mClipboar
mFileProxy = new FilesystemFileProxy;
QStringList fHeaders = QStringList() << tr("Name") << tr("Size") << tr("Type") << tr("Created") << tr("Md5Sum") << tr("Duration") << tr("Bitrate") << tr("Full Path");
mFileModel = new SmDirModel(fHeaders, this);
+ connect(mFileModel, SIGNAL(needResize()), this, SLOT(resizeFileView()));
mFileProxy->setSourceModel(mFileModel);
mFileView->setModel(mFileProxy);
mFileView->setSortingEnabled(true);
@@ -152,11 +153,7 @@ void FilesystemWidget::directoryChanged(const QModelIndex &selected, const QMode
setWindowTitle(mModel->filePath(real));
mFileView->selectionModel()->clear();
mFileModel->setDir(mModel->filePath(real));
- mFileView->resizeColumnToContents(0);
- mFileView->resizeColumnToContents(1);
- mFileView->resizeColumnToContents(2);
- mFileView->resizeColumnToContents(3);
- mFileView->resizeColumnToContents(4);
+ resizeFileView();
}
void FilesystemWidget::directoryEdited(){
@@ -536,6 +533,13 @@ void FilesystemWidget::fileEditorClosed(const QModelIndex &idx){
}
}
+void FilesystemWidget::resizeFileView(){
+ for(int i = 1; i < 5; ++i){
+ mFileView->resizeColumnToContents(i);
+ }
+ mFileView->resizeColumnToContents(0);
+}
+
QStringList FilesystemWidget::selectedFiles(){
QStringList retval;
QModelIndexList selected = fileView()->selectionModel()->selectedRows();
diff --git a/filesystemwidget.h b/filesystemwidget.h
index b668ae6..d6abc41 100644
--- a/filesystemwidget.h
+++ b/filesystemwidget.h
@@ -71,6 +71,7 @@ class FilesystemWidget : public QWidget {
void dirExpanded(const QModelIndex &idx);
void dirCollapsed(const QModelIndex &idx);
void fileEditorClosed(const QModelIndex &idx);
+ void resizeFileView();
private:
void setWindowTitle(const QString &dir);
diff --git a/fileview.cpp b/fileview.cpp
index f7c65ca..0f0fa28 100644
--- a/fileview.cpp
+++ b/fileview.cpp
@@ -97,6 +97,12 @@ void FileView::readConfig(){
mCursorOffset = s.value("ui/cursoroffset").toInt();
}
+void FileView::resizeColumns(int columns) {
+ for(int i = 0; i < columns; ++i){
+ resizeColumnToContents(i);
+ }
+}
+
void FileView::closeEditor(QWidget *editor, QAbstractItemDelegate::EndEditHint hint){
QTreeView::closeEditor(editor, hint);
QSortFilterProxyModel *proxy = qobject_cast<QSortFilterProxyModel*>(model());
diff --git a/fileview.h b/fileview.h
index 3f35830..548a240 100644
--- a/fileview.h
+++ b/fileview.h
@@ -38,7 +38,8 @@ class FileView : public QTreeView {
void markFiles();
void unmarkFiles();
void createFolder();
- void readConfig();
+ void readConfig();
+ void resizeColumns(int columns);
protected slots:
virtual void closeEditor(QWidget *editor, QAbstractItemDelegate::EndEditHint hint);
diff --git a/smdirmodel.cpp b/smdirmodel.cpp
index a02c47c..cf2197a 100644
--- a/smdirmodel.cpp
+++ b/smdirmodel.cpp
@@ -89,6 +89,7 @@ bool SmDirModel::setData(const QModelIndex &index, const QVariant &value, int ro
QString dir = fileInfo(index).absolutePath();
QString newPath = QString("%1/%2").arg(dir).arg(newName);
QFile::rename(old, newPath);
+ emit needResize();
}
return SmTreeModel::setData(index, value, role);
}
@@ -136,6 +137,7 @@ void SmDirModel::dirEvent(const QString &file, int e){
setData(c, fData.at(i), Qt::EditRole);
}
}
+ emit needResize();
}
void SmDirModel::readSettings(){
@@ -167,6 +169,7 @@ void SmDirModel::populate(){
root->appendChild(n);
}
setRoot(root);
+ emit needResize();
}
const QList<QVariant> SmDirModel::fileData(const QFileInfo &fi) const{
diff --git a/smdirmodel.h b/smdirmodel.h
index 620a632..3712cba 100644
--- a/smdirmodel.h
+++ b/smdirmodel.h
@@ -47,6 +47,9 @@ class SmDirModel : public SmTreeModel {
private slots:
void populate();
+ signals:
+ void needResize();
+
private:
const QList<QVariant> fileData(const QFileInfo &fi) const;
SmDirWatcher *mWatch;