Add filesystem widget
This commit is contained in:
+38
-8
@@ -48,20 +48,29 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent)
|
||||
connect(stretchPanel, SIGNAL(stretchChanged(int)), m_imageGL->imageWidget(), SLOT(setStrech(int)));
|
||||
connect(stretchPanel, SIGNAL(paramChanged(float)), m_imageGL->imageWidget(), SLOT(setStretchParam(float)));
|
||||
|
||||
m_ringList = new ImageRingList(this);
|
||||
m_filesystem = new FilesystemWidget(m_ringList, this);
|
||||
connect(m_filesystem, SIGNAL(fileSelected(int)), this, SLOT(loadFile(int)));
|
||||
|
||||
QDockWidget *stretchDock = new QDockWidget(tr("Stretch"), this);
|
||||
stretchDock->setWidget(stretchPanel);
|
||||
stretchDock->setObjectName("strechDock");
|
||||
addDockWidget(Qt::LeftDockWidgetArea, stretchDock);
|
||||
addDockWidget(Qt::TopDockWidgetArea, stretchDock);
|
||||
|
||||
QDockWidget *filesystemDock = new QDockWidget(tr("Filesystem"), this);
|
||||
filesystemDock->setWidget(m_filesystem);
|
||||
filesystemDock->setObjectName("filesystemDock");
|
||||
addDockWidget(Qt::LeftDockWidgetArea, filesystemDock);
|
||||
|
||||
setWindowTitle(tr("Tenmon"));
|
||||
|
||||
m_ringList = new ImageRingList(this);
|
||||
connect(m_ringList, SIGNAL(pixmapLoaded(Image*)), this, SLOT(pixmapLoaded(Image*)));
|
||||
connect(m_ringList, SIGNAL(currentImageChanged()), this, SLOT(updateWindowTitle()));
|
||||
connect(m_ringList, SIGNAL(currentImageChanged(int)), this, SLOT(updateWindowTitle()));
|
||||
connect(m_ringList, SIGNAL(infoLoaded(ImageInfoData)), m_info, SLOT(setInfo(ImageInfoData)));
|
||||
connect(m_ringList, SIGNAL(currentImageChanged(int)), m_filesystem, SLOT(selectFile(int)));
|
||||
|
||||
QMenu *fileMenu = new QMenu(tr("File"), this);
|
||||
fileMenu->addAction(tr("Open"), this, SLOT(openFile()), QKeySequence("Ctrl+O"));
|
||||
fileMenu->addAction(tr("Open"), this, SLOT(loadFile()), QKeySequence("Ctrl+O"));
|
||||
fileMenu->addAction(tr("Copy marked files"), this, SLOT(copyMarked()));
|
||||
fileMenu->addAction(tr("Save as"), this, SLOT(saveAs()), QKeySequence("Ctrl+S"));
|
||||
QAction *liveModeAction = fileMenu->addAction(tr("Live mode"), this, SLOT(liveMode(bool)));
|
||||
@@ -117,6 +126,7 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent)
|
||||
QMenu *dockMenu = new QMenu(tr("Docks"), this);
|
||||
dockMenu->addAction(infoDock->toggleViewAction());
|
||||
dockMenu->addAction(stretchDock->toggleViewAction());
|
||||
dockMenu->addAction(filesystemDock->toggleViewAction());
|
||||
menuBar()->addMenu(dockMenu);
|
||||
|
||||
setupSigterm();
|
||||
@@ -128,6 +138,9 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent)
|
||||
if(standardLocations.size())
|
||||
_lastDir = standardLocations.first();
|
||||
|
||||
_lastDir = settings.value("mainwindow/lastdir", _lastDir).toString();
|
||||
m_filesystem->setDir(_lastDir);
|
||||
|
||||
QStringList args = QCoreApplication::arguments();
|
||||
args.removeFirst();
|
||||
for(auto &arg : args)
|
||||
@@ -138,6 +151,7 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent)
|
||||
m_ringList->setFile(info.canonicalFilePath());
|
||||
updateWindowTitle();
|
||||
_lastDir = info.absoluteDir().absolutePath();
|
||||
settings.setValue("mainwindow/lastdir", _lastDir);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -229,18 +243,34 @@ void MainWindow::pixmapLoaded(Image *image)
|
||||
}
|
||||
}
|
||||
|
||||
void MainWindow::openFile()
|
||||
void MainWindow::loadFile()
|
||||
{
|
||||
QString file = QFileDialog::getOpenFileName(this, tr("Open file"), _lastDir, tr("Images (*.jpg *.jpeg *.png *.cr2 *.fit *.fits *.JPG *.JPEG *.PNG *.CR2 *.FIT *.FITS)"));
|
||||
if(!file.isEmpty())
|
||||
loadFile(file);
|
||||
}
|
||||
|
||||
void MainWindow::loadFile(const QString path)
|
||||
{
|
||||
if(!path.isEmpty())
|
||||
{
|
||||
QFileInfo info(file);
|
||||
QFileInfo info(path);
|
||||
m_ringList->setFile(info.canonicalFilePath());
|
||||
updateWindowTitle();
|
||||
_lastDir = QFileInfo(file).absoluteDir().absolutePath();
|
||||
if(info.isDir())
|
||||
_lastDir = info.absolutePath();
|
||||
else
|
||||
_lastDir = info.canonicalPath();
|
||||
QSettings settings;
|
||||
settings.setValue("mainwindow/lastdir", _lastDir);
|
||||
m_filesystem->setDir(_lastDir);
|
||||
}
|
||||
}
|
||||
|
||||
void MainWindow::loadFile(int row)
|
||||
{
|
||||
m_ringList->loadFile(row);
|
||||
}
|
||||
|
||||
void MainWindow::saveAs()
|
||||
{
|
||||
QString file = QFileDialog::getSaveFileName(this, tr("Save as"), _lastDir, tr("Images (*.jpg *.png *.JPG *.PNG)"));
|
||||
|
||||
Reference in New Issue
Block a user