support bookmark-file; refs #116

This commit is contained in:
Marc Wäckerlin
2012-04-17 14:50:35 +00:00
parent ac8fa676c0
commit 4c1a396547
13 changed files with 401 additions and 217 deletions

View File

@@ -0,0 +1,72 @@
/*! @file
@id $Id$
*/
// 1 2 3 4 5 6 7 8
// 45678901234567890123456789012345678901234567890123456789012345678901234567890
#include <QtCore/QFile>
#include <QtCore/QFileInfo>
#include <QtCore/QFileSystemWatcher>
#include <QtCore/QString>
#include <QtCore/QStringList>
#include <cassert>
class Storage: public QObject {
Q_OBJECT;
Q_SIGNALS:
void changed();
public:
Storage() {}
bool valid() {
return readable() || writeable();
}
operator bool() {
return valid();
}
virtual bool readable() = 0;
virtual bool writeable() = 0;
virtual QStringList read() = 0;
virtual bool write(const QStringList& out) = 0;
};
class FileStorage: public Storage {
Q_OBJECT;
public:
FileStorage(QString file): _file(file) {
if (valid()) {
assert(connect(new QFileSystemWatcher(QStringList()<<_file.fileName(),
this),
SIGNAL(fileChanged(const QString&)),
SLOT(changed())));
}
}
bool readable() {
return QFileInfo(_file).exists();
}
bool writeable() {
return readable() || !_file.fileName().isEmpty();
}
QStringList read() {
QStringList res;
if (readable()) {
if (_file.open(QIODevice::ReadOnly))
res=QString::fromUtf8(_file.readAll()).split("\n");
_file.close();
}
return res;
}
bool write(const QStringList& out) {
bool res(false);
if (writeable()) {
if (_file.open(QIODevice::WriteOnly))
if (_file.write(out.join("\n").toUtf8())>=0) res=true;
_file.close();
}
return res;
}
private:
QFile _file;
};

View File

@@ -5,10 +5,75 @@
<context>
<name>SaveOrRun</name>
<message>
<location filename="saveorrun.ui" line="14"/>
<source>Download</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="saveorrun.ui" line="34"/>
<source>File:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="saveorrun.ui" line="47"/>
<location filename="saveorrun.ui" line="82"/>
<location filename="saveorrun.ui" line="117"/>
<source>...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="saveorrun.ui" line="69"/>
<source>Type:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="saveorrun.ui" line="104"/>
<source>Source</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="saveorrun.ui" line="129"/>
<source>Save File</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="saveorrun.ui" line="135"/>
<source>Save File As:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="saveorrun.ui" line="151"/>
<location filename="saveorrun.ui" line="200"/>
<source>browse ...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="saveorrun.ui" line="158"/>
<source>remember save path</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="saveorrun.ui" line="171"/>
<source>Open in External Application</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="saveorrun.ui" line="177"/>
<source>Open File in:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="saveorrun.ui" line="207"/>
<source>remember tool for this type</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="saveorrun.hxx" line="71"/>
<source>File Exists</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="saveorrun.hxx" line="72"/>
<source>File already exists:
%1
@@ -17,70 +82,26 @@ Overwrite?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="saveorrun.hxx" line="95"/>
<source>Save File As ...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="saveorrun.hxx" line="108"/>
<source>Open File With ...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="saveorrun.hxx" line="122"/>
<source>Dokumente</source>
<comment>Documents folder in local language</comment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="saveorrun.hxx" line="124"/>
<source>Arbeitsfläche</source>
<comment>Desktop folder in local language</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>Download</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>File:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Type:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Source</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Save File</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Save File As:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>browse ...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>remember save path</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Open in External Application</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Open File in:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>remember tool for this type</source>
<translation type="unfinished"></translation>
</message>
</context>
</TS>

View File

@@ -5,10 +5,75 @@
<context>
<name>SaveOrRun</name>
<message>
<location filename="saveorrun.ui" line="14"/>
<source>Download</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="saveorrun.ui" line="34"/>
<source>File:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="saveorrun.ui" line="47"/>
<location filename="saveorrun.ui" line="82"/>
<location filename="saveorrun.ui" line="117"/>
<source>...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="saveorrun.ui" line="69"/>
<source>Type:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="saveorrun.ui" line="104"/>
<source>Source</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="saveorrun.ui" line="129"/>
<source>Save File</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="saveorrun.ui" line="135"/>
<source>Save File As:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="saveorrun.ui" line="151"/>
<location filename="saveorrun.ui" line="200"/>
<source>browse ...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="saveorrun.ui" line="158"/>
<source>remember save path</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="saveorrun.ui" line="171"/>
<source>Open in External Application</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="saveorrun.ui" line="177"/>
<source>Open File in:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="saveorrun.ui" line="207"/>
<source>remember tool for this type</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="saveorrun.hxx" line="71"/>
<source>File Exists</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="saveorrun.hxx" line="72"/>
<source>File already exists:
%1
@@ -17,70 +82,26 @@ Overwrite?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="saveorrun.hxx" line="95"/>
<source>Save File As ...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="saveorrun.hxx" line="108"/>
<source>Open File With ...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="saveorrun.hxx" line="122"/>
<source>Dokumente</source>
<comment>Documents folder in local language</comment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="saveorrun.hxx" line="124"/>
<source>Arbeitsfläche</source>
<comment>Desktop folder in local language</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>Download</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>File:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Type:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Source</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Save File</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Save File As:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>browse ...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>remember save path</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Open in External Application</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Open File in:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>remember tool for this type</source>
<translation type="unfinished"></translation>
</message>
</context>
</TS>

View File

@@ -5,10 +5,75 @@
<context>
<name>SaveOrRun</name>
<message>
<location filename="saveorrun.ui" line="14"/>
<source>Download</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="saveorrun.ui" line="34"/>
<source>File:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="saveorrun.ui" line="47"/>
<location filename="saveorrun.ui" line="82"/>
<location filename="saveorrun.ui" line="117"/>
<source>...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="saveorrun.ui" line="69"/>
<source>Type:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="saveorrun.ui" line="104"/>
<source>Source</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="saveorrun.ui" line="129"/>
<source>Save File</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="saveorrun.ui" line="135"/>
<source>Save File As:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="saveorrun.ui" line="151"/>
<location filename="saveorrun.ui" line="200"/>
<source>browse ...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="saveorrun.ui" line="158"/>
<source>remember save path</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="saveorrun.ui" line="171"/>
<source>Open in External Application</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="saveorrun.ui" line="177"/>
<source>Open File in:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="saveorrun.ui" line="207"/>
<source>remember tool for this type</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="saveorrun.hxx" line="71"/>
<source>File Exists</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="saveorrun.hxx" line="72"/>
<source>File already exists:
%1
@@ -17,70 +82,26 @@ Overwrite?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="saveorrun.hxx" line="95"/>
<source>Save File As ...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="saveorrun.hxx" line="108"/>
<source>Open File With ...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="saveorrun.hxx" line="122"/>
<source>Dokumente</source>
<comment>Documents folder in local language</comment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="saveorrun.hxx" line="124"/>
<source>Arbeitsfläche</source>
<comment>Desktop folder in local language</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>Download</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>File:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Type:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Source</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Save File</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Save File As:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>browse ...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>remember save path</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Open in External Application</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Open File in:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>remember tool for this type</source>
<translation type="unfinished"></translation>
</message>
</context>
</TS>

View File

@@ -5,10 +5,75 @@
<context>
<name>SaveOrRun</name>
<message>
<location filename="saveorrun.ui" line="14"/>
<source>Download</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="saveorrun.ui" line="34"/>
<source>File:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="saveorrun.ui" line="47"/>
<location filename="saveorrun.ui" line="82"/>
<location filename="saveorrun.ui" line="117"/>
<source>...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="saveorrun.ui" line="69"/>
<source>Type:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="saveorrun.ui" line="104"/>
<source>Source</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="saveorrun.ui" line="129"/>
<source>Save File</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="saveorrun.ui" line="135"/>
<source>Save File As:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="saveorrun.ui" line="151"/>
<location filename="saveorrun.ui" line="200"/>
<source>browse ...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="saveorrun.ui" line="158"/>
<source>remember save path</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="saveorrun.ui" line="171"/>
<source>Open in External Application</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="saveorrun.ui" line="177"/>
<source>Open File in:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="saveorrun.ui" line="207"/>
<source>remember tool for this type</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="saveorrun.hxx" line="71"/>
<source>File Exists</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="saveorrun.hxx" line="72"/>
<source>File already exists:
%1
@@ -17,70 +82,26 @@ Overwrite?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="saveorrun.hxx" line="95"/>
<source>Save File As ...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="saveorrun.hxx" line="108"/>
<source>Open File With ...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="saveorrun.hxx" line="122"/>
<source>Dokumente</source>
<comment>Documents folder in local language</comment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="saveorrun.hxx" line="124"/>
<source>Arbeitsfläche</source>
<comment>Desktop folder in local language</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>Download</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>File:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Type:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Source</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Save File</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Save File As:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>browse ...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>remember save path</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Open in External Application</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Open File in:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>remember tool for this type</source>
<translation type="unfinished"></translation>
</message>
</context>
</TS>

View File

@@ -38,7 +38,8 @@ SOURCES =
HEADERS = @srcdir@/swisswebview.hxx @srcdir@/swisswebpage.hxx \
@srcdir@/pluginfactory.hxx @srcdir@/saveorrun.hxx \
@srcdir@/buttonlineedit.hxx
@srcdir@/buttonlineedit.hxx \
@srcdir@/filestorage.hxx
FORMS = @srcdir@/saveorrun.ui