##// END OF EJS Templates
added quick fileName generation for data export, and fixed wrong date reading...
added quick fileName generation for data export, and fixed wrong date reading on cassini data files.

File last commit:

r6:665de41c4c74 default
r10:63067c6877ba default
Show More
filebrowser.cpp
153 lines | 4.4 KiB | text/x-c | CppLexer
#include "filebrowser.h"
#include "ui_filebrowser.h"
#include <QListView>
#include <QTreeView>
FileBrowser::FileBrowser(QWidget *parent) :
QDockWidget(parent),
ui(new Ui::FileBrowser)
{
ui->setupUi(this);
this->model = new FileSystemModel(this);
this->model->setRootPath(QDir::currentPath());
this->view = new QTreeView();
this->ui->gridLayout->addWidget(this->view,1,0,1,-1);
this->view->setModel(this->model);
this->cd(model->rootPath());
connect(this->view,SIGNAL(clicked(QModelIndex)),this,SLOT(clicked(QModelIndex)));
connect(this->view,SIGNAL(doubleClicked(QModelIndex)),this,SLOT(doubleClicked(QModelIndex)));
connect(this->ui->ListViewQpb,SIGNAL(clicked()),this,SLOT(changeToListView()));
connect(this->ui->TreeViewQpb,SIGNAL(clicked()),this,SLOT(changeToTreeView()));
connect(this->ui->parentDirQpb,SIGNAL(clicked()),this,SLOT(parentDir()));
view->setSelectionMode(QAbstractItemView::ExtendedSelection);
view->setDragEnabled(true);
view->setAcceptDrops(true);
view->setDropIndicatorShown(true);
view->setDragDropMode(QAbstractItemView::DragDrop);
this->pathCompleter = new QCompleter(this->model,this);
this->ui->pathLineEdit->setCompleter(pathCompleter);
this->pathLineEditEnterEditMode(false);
}
FileBrowser::~FileBrowser()
{
delete ui;
}
void FileBrowser::setNameFilters(const QStringList &filters,bool disables)
{
this->model->setNameFilters(filters);
this->model->setNameFilterDisables(disables);
}
void FileBrowser::changeToTreeView()
{
this->ui->gridLayout->removeWidget(this->view);
delete this->view;
this->view = new QTreeView();
this->ui->gridLayout->addWidget(this->view,1,0,1,-1);
this->view->setModel(this->model);
connect(this->view,SIGNAL(clicked(QModelIndex)),this,SLOT(clicked(QModelIndex)));
connect(this->view,SIGNAL(doubleClicked(QModelIndex)),this,SLOT(doubleClicked(QModelIndex)));
this->cd(model->rootPath());
view->setSelectionMode(QAbstractItemView::ExtendedSelection);
view->setDragEnabled(true);
view->setAcceptDrops(true);
view->setDropIndicatorShown(true);
}
void FileBrowser::changeToListView()
{
this->ui->gridLayout->removeWidget(this->view);
delete this->view;
this->view = new QListView();
this->ui->gridLayout->addWidget(this->view,1,0,1,-1);
this->view->setModel(this->model);
connect(this->view,SIGNAL(clicked(QModelIndex)),this,SLOT(clicked(QModelIndex)));
connect(this->view,SIGNAL(doubleClicked(QModelIndex)),this,SLOT(doubleClicked(QModelIndex)));
this->cd(model->rootPath());
view->setSelectionMode(QAbstractItemView::ExtendedSelection);
view->setDragEnabled(true);
view->setAcceptDrops(true);
view->setDropIndicatorShown(true);
}
void FileBrowser::clicked(QModelIndex index)
{
QString file=model->filePath(index);
if(QFile::exists(file))
emit fileClicked(file);
}
void FileBrowser::doubleClicked(QModelIndex index)
{
if(model->isDir(index))
{
this->cd(model->filePath(index));
}
else
{
QString file=model->filePath(index);
if(QFile::exists(file))
emit fileDoubleClicked(file);
}
}
void FileBrowser::parentDir()
{
this->cd(model->rootPath()+"/..");
}
void FileBrowser::cd(const QString &newPath)
{
model->setRootPath(newPath);
this->view->setRootIndex(model->index(model->rootPath()));
this->ui->pathLineEdit->setText(model->rootPath());
}
void FileBrowser::changeEvent(QEvent *e)
{
QDockWidget::changeEvent(e);
switch (e->type()) {
case QEvent::LanguageChange:
ui->retranslateUi(this);
break;
default:
break;
}
}
void FileBrowser::keyPressEvent(QKeyEvent *e)
{
switch (e->key())
{
case Qt::Key_L:
if(e->modifiers()==Qt::ControlModifier)
{
pathLineEditEnterEditMode(true);
e->accept();
}
break;
case Qt::Key_Return:
pathLineEditEnterEditMode(false);
if(QFile::exists(this->ui->pathLineEdit->text()))
{
this->cd(this->ui->pathLineEdit->text());
e->accept();
}
break;
default:
break;
}
if(!e->isAccepted())
QDockWidget::keyPressEvent(e);
}
void FileBrowser::pathLineEditEnterEditMode(bool enter)
{
this->ui->pathLineEdit->setReadOnly(!enter);
this->ui->pathLineEdit->setDisabled(!enter);
if(enter)
this->ui->pathLineEdit->setFocus();
}