summaryrefslogtreecommitdiff
path: root/utils/themeeditor
diff options
context:
space:
mode:
authorRobert Bieber <robby@bieberphoto.com>2010-07-24 08:10:44 +0000
committerRobert Bieber <robby@bieberphoto.com>2010-07-24 08:10:44 +0000
commit8556ad81bd65cfbf431634e4cee7a59d1d9abe1d (patch)
treec7a1975bdd9e5f24dc045581eadaa83e4191358a /utils/themeeditor
parent97b9a4bad8169541d77cb4d5daf69a3290602d42 (diff)
downloadrockbox-8556ad81bd65cfbf431634e4cee7a59d1d9abe1d.tar.gz
rockbox-8556ad81bd65cfbf431634e4cee7a59d1d9abe1d.zip
Theme Editor: Implemented zip file project export
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27537 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'utils/themeeditor')
-rw-r--r--utils/themeeditor/gui/projectexporter.cpp62
-rw-r--r--utils/themeeditor/gui/projectexporter.h2
2 files changed, 58 insertions, 6 deletions
diff --git a/utils/themeeditor/gui/projectexporter.cpp b/utils/themeeditor/gui/projectexporter.cpp
index b9718d11c5..dec1b13d3e 100644
--- a/utils/themeeditor/gui/projectexporter.cpp
+++ b/utils/themeeditor/gui/projectexporter.cpp
@@ -22,6 +22,11 @@
22#include "projectexporter.h" 22#include "projectexporter.h"
23#include "ui_projectexporter.h" 23#include "ui_projectexporter.h"
24 24
25#include "quazipfile.h"
26
27#include <QTextStream>
28#include <QDir>
29
25ProjectExporter::ProjectExporter(QString path, ProjectModel* project, 30ProjectExporter::ProjectExporter(QString path, ProjectModel* project,
26 QWidget *parent) 31 QWidget *parent)
27 :QDialog(parent), 32 :QDialog(parent),
@@ -34,11 +39,20 @@ ProjectExporter::ProjectExporter(QString path, ProjectModel* project,
34 39
35 if(zipFile.open(QuaZip::mdCreate)) 40 if(zipFile.open(QuaZip::mdCreate))
36 { 41 {
37 writeZip(project); 42 html += tr("<span style=\"color:orange\">Resource Check: "
43 "Not implemented yet</span><br>");
44 ui->statusBox->document()->setHtml(html);
45 writeZip(project->getSetting("themebase", ""));
46 zipFile.close();
47
48 html += tr("<span style=\"color:green\">Project exported "
49 "successfully</span><br>");
50 ui->statusBox->document()->setHtml(html);
38 } 51 }
39 else 52 else
40 { 53 {
41 html += tr("<span style = \"color:red\">Error opening zip file</span><br>"); 54 html += tr("<span style = \"color:red\">"
55 "Error opening zip file</span><br>");
42 ui->statusBox->document()->setHtml(html); 56 ui->statusBox->document()->setHtml(html);
43 } 57 }
44} 58}
@@ -72,8 +86,46 @@ void ProjectExporter::close()
72 hide(); 86 hide();
73} 87}
74 88
75void ProjectExporter::writeZip(ProjectModel *project) 89void ProjectExporter::writeZip(QString path, QString base)
76{ 90{
77 (void)project; 91 if(base == "")
78 zipFile.close(); 92 base = path;
93 if(path == "")
94 {
95 html += tr("<span style = \"color:red\">"
96 "Error: Couldn't locate project directory</span><br>");
97 ui->statusBox->document()->setHtml(html);
98 return;
99 }
100
101 QDir dir(path);
102
103 /* First adding any files in the directory */
104 QFileInfoList files = dir.entryInfoList(QDir::Files);
105 for(int i = 0; i < files.count(); i++)
106 {
107 QFileInfo current = files[i];
108
109 QString newPath = current.absoluteFilePath().replace(base, "/.rockbox");
110
111 QuaZipFile fout(&zipFile);
112 QFile fin(current.absoluteFilePath());
113
114 fin.open(QFile::ReadOnly | QFile::Text);
115 fout.open(QIODevice::WriteOnly,
116 QuaZipNewInfo(newPath, current.absoluteFilePath()));
117
118 fout.write(fin.readAll());
119
120 fin.close();
121 fout.close();
122 }
123
124 /* Then recursively adding any directories */
125 QFileInfoList dirs = dir.entryInfoList(QDir::Dirs | QDir::NoDotAndDotDot);
126 for(int i = 0; i < dirs.count(); i++)
127 {
128 QFileInfo current = dirs[i];
129 writeZip(current.absoluteFilePath(), base);
130 }
79} 131}
diff --git a/utils/themeeditor/gui/projectexporter.h b/utils/themeeditor/gui/projectexporter.h
index 4012d384ac..d743172dd9 100644
--- a/utils/themeeditor/gui/projectexporter.h
+++ b/utils/themeeditor/gui/projectexporter.h
@@ -48,7 +48,7 @@ private slots:
48 void close(); 48 void close();
49 49
50private: 50private:
51 void writeZip(ProjectModel* project); 51 void writeZip(QString path, QString base = "");
52 52
53 Ui::ProjectExporter *ui; 53 Ui::ProjectExporter *ui;
54 QuaZip zipFile; 54 QuaZip zipFile;