1
0
Fork 0
forked from len0rd/rockbox

Theme Editor: Implemented document load functionality

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26639 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Robert Bieber 2010-06-07 01:08:25 +00:00
parent 2a90375c12
commit fbfdaf5c79
3 changed files with 50 additions and 4 deletions

View file

@ -117,6 +117,11 @@ void EditorWindow::setupMenus()
QObject::connect(ui->actionToolbarSave, SIGNAL(triggered()), QObject::connect(ui->actionToolbarSave, SIGNAL(triggered()),
this, SLOT(saveCurrent())); this, SLOT(saveCurrent()));
QObject::connect(ui->actionOpen_Document, SIGNAL(triggered()),
this, SLOT(openFile()));
QObject::connect(ui->actionToolbarOpen, SIGNAL(triggered()),
this, SLOT(openFile()));
} }
@ -193,6 +198,28 @@ void EditorWindow::openFile()
QString directory = settings.value("defaultDirectory", "").toString(); QString directory = settings.value("defaultDirectory", "").toString();
fileNames = QFileDialog::getOpenFileNames(this, tr("Open Files"), directory, fileNames = QFileDialog::getOpenFileNames(this, tr("Open Files"), directory,
SkinDocument::fileFilter()); SkinDocument::fileFilter());
for(int i = 0; i < fileNames.count(); i++)
{
if(!QFile::exists(fileNames[i]))
continue;
QString current = fileNames[i];
/* Adding a new document for each file name */
SkinDocument* doc = new SkinDocument(current);
ui->editorTabs->addTab(doc, doc->getTitle());
QObject::connect(doc, SIGNAL(titleChanged(QString)),
this, SLOT(tabTitleChanged(QString)));
/* And setting the new default directory */
current.chop(current.length() - current.lastIndexOf('/') - 1);
settings.setValue("defaultDirectory", current);
}
settings.endGroup();
} }

View file

@ -22,13 +22,11 @@
#include "skindocument.h" #include "skindocument.h"
#include <QFile> #include <QFile>
#include <QTimer>
#include <QSettings> #include <QSettings>
#include <QMessageBox> #include <QMessageBox>
#include <QFileDialog> #include <QFileDialog>
SkinDocument::SkinDocument(QWidget *parent) : SkinDocument::SkinDocument(QWidget *parent) : QWidget(parent)
QWidget(parent)
{ {
setupUI(); setupUI();
@ -37,6 +35,26 @@ SkinDocument::SkinDocument(QWidget *parent) :
saved = ""; saved = "";
} }
SkinDocument::SkinDocument(QString file, QWidget *parent):
QWidget(parent), fileName(file)
{
setupUI();
/* Loading the file */
if(QFile::exists(fileName))
{
QFile fin(fileName);
fin.open(QFile::ReadOnly);
editor->document()->setPlainText(QString(fin.readAll()));
saved = editor->document()->toPlainText();
fin.close();
}
/* Setting the title */
QStringList decomposed = fileName.split('/');
title = decomposed.last();
}
SkinDocument::~SkinDocument() SkinDocument::~SkinDocument()
{ {
delete highlighter; delete highlighter;
@ -126,7 +144,7 @@ void SkinDocument::save()
saved = editor->document()->toPlainText(); saved = editor->document()->toPlainText();
QStringList decompose = fileName.split('/'); QStringList decompose = fileName.split('/');
title = decompose[decompose.count() - 1]; title = decompose.last();
emit titleChanged(title); emit titleChanged(title);
} }

View file

@ -44,6 +44,7 @@ public:
} }
SkinDocument(QWidget *parent = 0); SkinDocument(QWidget *parent = 0);
SkinDocument(QString file, QWidget* parent = 0);
virtual ~SkinDocument(); virtual ~SkinDocument();
ParseTreeModel* getModel(){ return model; } ParseTreeModel* getModel(){ return model; }