rbutilqt: use the new dirbrowser in the talkfile generation. Also little changes to the dirbrowser to run it statically and without signals.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14234 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Dominik Wenger 2007-08-07 17:49:35 +00:00
parent 3a4e540c3d
commit 2ee205ae0d
3 changed files with 59 additions and 32 deletions

View file

@ -65,6 +65,14 @@ void BrowseDirtree::accept()
this->close(); this->close();
emit itemChanged(path); emit itemChanged(path);
setResult(QDialog::Accepted);
}
QString BrowseDirtree::getSelected()
{
QString path;
path = model.filePath(ui.tree->currentIndex());
return path;
} }

View file

@ -31,7 +31,8 @@ class BrowseDirtree : public QDialog
BrowseDirtree(QWidget *parent = 0); BrowseDirtree(QWidget *parent = 0);
void setFilter(QDir::Filters); void setFilter(QDir::Filters);
void setDir(QDir&); void setDir(QDir&);
QString getSelected();
signals: signals:
void itemChanged(QString); void itemChanged(QString);

View file

@ -20,6 +20,8 @@
#include "installtalkwindow.h" #include "installtalkwindow.h"
#include "ui_installtalkfrm.h" #include "ui_installtalkfrm.h"
#include "browsedirtree.h"
InstallTalkWindow::InstallTalkWindow(QWidget *parent) : QDialog(parent) InstallTalkWindow::InstallTalkWindow(QWidget *parent) : QDialog(parent)
{ {
ui.setupUi(this); ui.setupUi(this);
@ -43,18 +45,23 @@ InstallTalkWindow::InstallTalkWindow(QWidget *parent) : QDialog(parent)
void InstallTalkWindow::browseFolder() void InstallTalkWindow::browseFolder()
{ {
QFileDialog browser(this); BrowseDirtree browser(this);
browser.setFilter(QDir::AllDirs | QDir::NoDotAndDotDot | QDir::NoSymLinks);
if(QFileInfo(ui.lineTalkFolder->text()).isDir()) if(QFileInfo(ui.lineTalkFolder->text()).isDir())
browser.setDirectory(ui.lineTalkFolder->text()); {
QDir d(ui.lineTalkFolder->text());
browser.setDir(d);
}
else else
browser.setDirectory("/media"); {
browser.setReadOnly(true); QDir d("/media");
browser.setFileMode(QFileDialog::DirectoryOnly); browser.setDir(d);
browser.setAcceptMode(QFileDialog::AcceptOpen); }
if(browser.exec()) { if(browser.exec() == QDialog::Accepted)
qDebug() << browser.directory(); {
QStringList files = browser.selectedFiles(); qDebug() << browser.getSelected();
setTalkFolder(files.at(0)); setTalkFolder(browser.getSelected());
} }
} }
@ -66,19 +73,25 @@ void InstallTalkWindow::setTalkFolder(QString folder)
void InstallTalkWindow::browseTTS() void InstallTalkWindow::browseTTS()
{ {
QFileDialog browser(this); BrowseDirtree browser(this);
browser.setFilter(QDir::Dirs | QDir::Files | QDir::NoDotAndDotDot);
if(QFileInfo(ui.TTSpath->text()).isDir()) if(QFileInfo(ui.TTSpath->text()).isDir())
browser.setDirectory(ui.TTSpath->text()); {
else QDir d(ui.TTSpath->text());
browser.setDirectory("/media"); browser.setDir(d);
browser.setReadOnly(true);
browser.setFileMode(QFileDialog::ExistingFile);
browser.setAcceptMode(QFileDialog::AcceptOpen);
if(browser.exec()) {
qDebug() << browser.directory();
QStringList files = browser.selectedFiles();
setTTSExec(files.at(0));
} }
else
{
QDir d("/media");
browser.setDir(d);
}
if(browser.exec() == QDialog::Accepted)
{
qDebug() << browser.getSelected();
setTTSExec(browser.getSelected());
}
} }
void InstallTalkWindow::setTTSExec(QString path) void InstallTalkWindow::setTTSExec(QString path)
@ -89,18 +102,23 @@ void InstallTalkWindow::setTTSExec(QString path)
void InstallTalkWindow::browseEncoder() void InstallTalkWindow::browseEncoder()
{ {
QFileDialog browser(this); BrowseDirtree browser(this);
browser.setFilter(QDir::Dirs | QDir::Files | QDir::NoDotAndDotDot);
if(QFileInfo(ui.Encoderpath->text()).isDir()) if(QFileInfo(ui.Encoderpath->text()).isDir())
browser.setDirectory(ui.Encoderpath->text()); {
QDir d(ui.Encoderpath->text());
browser.setDir(d);
}
else else
browser.setDirectory("/media"); {
browser.setReadOnly(true); QDir d("/media");
browser.setFileMode(QFileDialog::ExistingFile); browser.setDir(d);
browser.setAcceptMode(QFileDialog::AcceptOpen); }
if(browser.exec()) { if(browser.exec() == QDialog::Accepted)
qDebug() << browser.directory(); {
QStringList files = browser.selectedFiles(); qDebug() << browser.getSelected();
setEncoderExec(files.at(0)); setEncoderExec(browser.getSelected());
} }
} }