~ubuntu-branches/ubuntu/utopic/kde4libs/utopic

« back to all changes in this revision

Viewing changes to kio/kfile/kfilemetadatareaderprocess.cpp

  • Committer: Package Import Robot
  • Author(s): Jonathan Riddell
  • Date: 2011-12-16 13:53:22 UTC
  • mfrom: (1.14.11)
  • Revision ID: package-import@ubuntu.com-20111216135322-joct6gdco90t3koc
Tags: 4:4.7.90-0ubuntu1
* New upstream beta release
* Remove kubuntu_mobile patches, kactivities is split out now and they 
  will be out of date, keep 
  kubuntu-mobile-07-serviceAvailabilityChanged-bool-signal.diff
  for binary compatibility reasons

Show diffs side-by-side

added added

removed removed

Lines of Context:
22
22
#include <kaboutdata.h>
23
23
#include <kcmdlineargs.h>
24
24
#include <kfilemetainfo.h>
 
25
#include <kcomponentdata.h>
25
26
#include <klocale.h>
26
27
 
27
28
#include <QtCore/QByteArray>
 
29
#include <QtCore/QCoreApplication>
28
30
#include <QtCore/QDataStream>
29
31
#include <QtCore/QHash>
30
32
#include <QtCore/QString>
 
33
#include <QtCore/QTimer>
31
34
 
32
35
#define DISABLE_NEPOMUK_LEGACY
33
36
#include "config-nepomuk.h"
46
49
 
47
50
using namespace std;
48
51
 
49
 
static void sendMetaData(const QHash<KUrl, Nepomuk::Variant>& data)
 
52
class KFileMetaDataReaderApplication : public QCoreApplication
 
53
{
 
54
    Q_OBJECT
 
55
 
 
56
public:
 
57
    KFileMetaDataReaderApplication(int& argc, char** argv);
 
58
 
 
59
private Q_SLOTS:
 
60
    void readAndSendMetaData();
 
61
 
 
62
private:
 
63
    void sendMetaData(const QHash<KUrl, Nepomuk::Variant>& data);
 
64
    QHash<KUrl, Nepomuk::Variant> readFileMetaData(const QList<KUrl>& urls) const;
 
65
    QHash<KUrl, Nepomuk::Variant> readFileAndContextMetaData(const QList<KUrl>& urls) const;
 
66
};
 
67
 
 
68
 
 
69
 
 
70
KFileMetaDataReaderApplication::KFileMetaDataReaderApplication(int& argc, char** argv) :
 
71
    QCoreApplication(argc, argv)
 
72
{
 
73
    QTimer::singleShot(0, this, SLOT(readAndSendMetaData()));
 
74
}
 
75
 
 
76
void KFileMetaDataReaderApplication::readAndSendMetaData()
 
77
{
 
78
    const KCmdLineArgs *args = KCmdLineArgs::parsedArgs();
 
79
 
 
80
    KUrl::List urls;
 
81
    for (int i = 0; i < args->count(); ++i) {
 
82
        urls.append(KUrl(args->arg(i)));
 
83
    }
 
84
 
 
85
    QHash<KUrl, Nepomuk::Variant> metaData;
 
86
    if (args->isSet("file")) {
 
87
        metaData = readFileMetaData(urls);
 
88
    } else {
 
89
        metaData = readFileAndContextMetaData(urls);
 
90
    }
 
91
 
 
92
    sendMetaData(metaData);
 
93
 
 
94
    quit();
 
95
}
 
96
 
 
97
void KFileMetaDataReaderApplication::sendMetaData(const QHash<KUrl, Nepomuk::Variant>& data)
50
98
{
51
99
    QByteArray byteArray;
52
100
    QDataStream out(&byteArray, QIODevice::WriteOnly);
73
121
    cout << byteArray.toBase64().constData();
74
122
}
75
123
 
76
 
static QHash<KUrl, Nepomuk::Variant> readFileMetaData(const QList<KUrl>& urls)
 
124
QHash<KUrl, Nepomuk::Variant> KFileMetaDataReaderApplication::readFileMetaData(const QList<KUrl>& urls) const
77
125
{
78
126
    QHash<KUrl, Nepomuk::Variant> data;
79
127
 
95
143
    return data;
96
144
}
97
145
 
98
 
static QHash<KUrl, Nepomuk::Variant> readFileAndContextMetaData(const QList<KUrl>& urls)
 
146
QHash<KUrl, Nepomuk::Variant> KFileMetaDataReaderApplication::readFileAndContextMetaData(const QList<KUrl>& urls) const
99
147
{
100
148
    QHash<KUrl, Nepomuk::Variant> metaData;
101
149
 
166
214
 
167
215
int main(int argc, char *argv[])
168
216
{
169
 
    KAboutData aboutData("kfilemetadatareader", 0, ki18n("KFileMetaDataReader"),
 
217
    KAboutData aboutData("kfilemetadatareader", "kio4", ki18n("KFileMetaDataReader"),
170
218
                         "1.0",
171
219
                         ki18n("KFileMetaDataReader can be used to read metadata from a file"),
172
220
                         KAboutData::License_GPL,
173
221
                         ki18n("(C) 2011, Peter Penz"));
174
222
    aboutData.addAuthor(ki18n("Peter Penz"), ki18n("Current maintainer"), "peter.penz19@gmail.com");
175
 
    
 
223
    KComponentData compData(&aboutData);
 
224
 
176
225
    KCmdLineArgs::init(argc, argv, &aboutData);
177
 
    
 
226
 
178
227
    KCmdLineOptions options;
179
228
    options.add("file", ki18n("Only the meta data that is part of the file is read"));
180
229
    options.add("+[arg]", ki18n("List of URLs where the meta-data should be read from"));
181
230
 
182
231
    KCmdLineArgs::addCmdLineOptions(options);
183
 
    const KCmdLineArgs *args = KCmdLineArgs::parsedArgs();
184
 
 
185
 
    KUrl::List urls;
186
 
    const int argsCount = args->count();
187
 
    for (int i = 0; i < argsCount; ++i) {
188
 
        urls.append(KUrl(args->arg(i)));
189
 
    }
190
 
 
191
 
    QHash<KUrl, Nepomuk::Variant> metaData;
192
 
    if (args->isSet("file")) {
193
 
        metaData = readFileMetaData(urls);
194
 
    } else {
195
 
        metaData = readFileAndContextMetaData(urls);
196
 
    }
197
 
 
198
 
    sendMetaData(metaData);
 
232
 
 
233
    KFileMetaDataReaderApplication app(argc, argv);
 
234
    return app.exec();
199
235
}
 
236
 
 
237
#include "kfilemetadatareaderprocess.moc"