Skip to content

Commit

Permalink
modified: backend/dropbox/dropbox.cpp
Browse files Browse the repository at this point in the history
	modified:   backend/dropbox/dropbox.h
	modified:   backend/dropbox/dropboxrequest.cpp
	modified:   backend/dropbox/dropboxrequest.h
	modified:   daemon/service.cpp
	modified:   include/entryinfo.h
	modified:   lib/entryinfo.cpp
	modified:   tests/dropbox/dropbox_test.cpp
  • Loading branch information
lynx-cpp committed May 10, 2012
1 parent e4b0ed2 commit 3786cf3
Show file tree
Hide file tree
Showing 8 changed files with 42 additions and 31 deletions.
3 changes: 2 additions & 1 deletion backend/dropbox/dropbox.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -106,8 +106,9 @@ QCloud::Request* Dropbox::deleteFile(const QString& path)
return new DropboxDeleteRequest(this, path);
}

QCloud::Request* Dropbox::pathInfo(const QString& path,EntryInfo* info)
QCloud::Request* Dropbox::pathInfo(const QString& path,QCloud::EntryInfo* info)
{
qDebug() << "Path : " << path;
return new DropboxGetInfoRequest(this,path,info);
}

Expand Down
2 changes: 1 addition & 1 deletion backend/dropbox/dropbox.h
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ class Dropbox : public QCloud::OAuthBackend
virtual QCloud::Request* moveFile (const QString& fromPath,const QString& toPath);
virtual QCloud::Request* createFolder (const QString& path);
virtual QCloud::Request* deleteFile (const QString& path);
virtual QCloud::Request* pathInfo (const QString& path,EntryInfo* info);
virtual QCloud::Request* pathInfo (const QString& path,QCloud::EntryInfo* info);
virtual void startAuth (QCloud::OAuthWidget* widget);
virtual void loadAccountInfo (const QString& key, QSettings& settings, QCloud::ISecureStore* securestore);
virtual void saveAccountInfo (const QString& key, QSettings& settings, QCloud::ISecureStore* securestore);
Expand Down
38 changes: 22 additions & 16 deletions backend/dropbox/dropboxrequest.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -304,20 +304,21 @@ DropboxDeleteRequest::~DropboxDeleteRequest()
m_buffer.close();
}

EntryInfo DropboxGetInfoRequest::getInfoFromMap(const QVariantMap& infoMap)
{
EntryInfo info;
info.setValue(EntryInfo::SizeType,infoMap["bytes"]);
info.setValue(EntryInfo::DirType, infoMap["is_dir"]);
info.setValue(EntryInfo::HashType,infoMap["hash"]);
info.setValue(EntryInfo::IconType,infoMap["icon"]);
info.setValue(EntryInfo::PathType,infoMap["path"]);
info.setValue(EntryInfo::ModifiedTimeType,infoMap["modified"]);
QCloud::EntryInfo DropboxGetInfoRequest::getInfoFromMap(const QVariantMap& infoMap)
{
QCloud::EntryInfo info;
info.setValue(QCloud::EntryInfo::SizeType,infoMap["bytes"]);
info.setValue(QCloud::EntryInfo::DirType, infoMap["is_dir"]);
info.setValue(QCloud::EntryInfo::HashType,infoMap["hash"]);
info.setValue(QCloud::EntryInfo::IconType,infoMap["icon"]);
info.setValue(QCloud::EntryInfo::PathType,infoMap["path"]);
info.setValue(QCloud::EntryInfo::ModifiedTimeType,infoMap["modified"]);
return info;
}

DropboxGetInfoRequest::DropboxGetInfoRequest(Dropbox* dropbox, const QString& path,EntryInfo* info)
DropboxGetInfoRequest::DropboxGetInfoRequest(Dropbox* dropbox, const QString& path,QCloud::EntryInfo* info)
{
qDebug() << "Path : " << path;
m_dropbox = dropbox;
m_info = info;
QString paramSt = "%1";
Expand Down Expand Up @@ -345,13 +346,18 @@ void DropboxGetInfoRequest::replyFinished()
qDebug() << result;
QVariantMap infoMap = result.toMap();
(*m_info) = getInfoFromMap(infoMap);
EntryList infoList;
infoList.clear();
foreach(QVariant i,infoMap["contents"].toMap()){
EntryInfo info = getInfoFromMap(i.toMap());
infoList << info;
if (m_info->isDir()){
QCloud::EntryList infoList;
infoList.clear();
qDebug() << "Is directory!";
QVariantList contentsList = infoMap["contents"].toList();
foreach(QVariant i,contentsList){
QCloud::EntryInfo info = getInfoFromMap(i.toMap());
infoList << info;
qDebug() << info.path();
}
m_info->setContents(infoList);
}
m_info->setContents(infoList);
emit finished();
}

Expand Down
6 changes: 3 additions & 3 deletions backend/dropbox/dropboxrequest.h
Original file line number Diff line number Diff line change
Expand Up @@ -124,17 +124,17 @@ class DropboxGetInfoRequest : public DropboxRequest
{
Q_OBJECT
public:
DropboxGetInfoRequest (Dropbox* dropbox, const QString& path,EntryInfo* info);
DropboxGetInfoRequest (Dropbox* dropbox, const QString& path,QCloud::EntryInfo* info);
virtual ~DropboxGetInfoRequest();
protected slots:
virtual void readyForRead();
virtual void replyFinished();
protected:
QJson::Parser m_parser;
QBuffer m_buffer;
EntryInfo* m_info;
QCloud::EntryInfo* m_info;
private:
EntryInfo getInfoFromMap(const QVariantMap& infoMap);
QCloud::EntryInfo getInfoFromMap(const QVariantMap& infoMap);
};

#endif
11 changes: 8 additions & 3 deletions daemon/service.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
#include "accountmanager.h"
#include "account.h"
#include "entryinfo.h"
#include "request.h"
#include <QFileInfo>

#include <QDebug>
Expand Down Expand Up @@ -102,12 +103,16 @@ QCloud::InfoList Service::listAccounts()
QCloud::InfoList Service::listFiles(const QString& uuid,const QString& directory)
{
QCloud::InfoList infoList;
infoList.clear();
Account *account = m_daemon->accountManager()->findAccount(uuid);
qDebug() << account->backend()->userName();
QCloud::EntryInfo entryInfo(directory,account->backend());
QCloud::EntryInfo entryInfo;
QCloud::Request* request = account->backend()->pathInfo(directory,&entryInfo);
request->waitForFinished();
QCloud::EntryList entryList;
entryInfo.getContents(entryList);
infoList.clear();
if (!entryInfo.getContents(entryList)){
qDebug() << "Error !";
}
QCloud::Info info;

//set ..
Expand Down
5 changes: 0 additions & 5 deletions include/entryinfo.h
Original file line number Diff line number Diff line change
Expand Up @@ -14,11 +14,6 @@ typedef QList<EntryInfo> EntryList;
class QCLOUD_EXPORT EntryInfo
{
public:
enum EntryError{
NoError,
NotDir,
NoBackend
};
enum EntryType{
SizeType,
DirType,
Expand Down
1 change: 1 addition & 0 deletions lib/entryinfo.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@ QString EntryInfo::icon()

bool EntryInfo::getContents(EntryList& list)
{
//qDebug() << m_hash << " " << m_icon << " "<< m_modifiedTime << " " << m_path << " " << m_size;
if (!is_dir){
qDebug() << "Not a dir";
return false;
Expand Down
7 changes: 5 additions & 2 deletions tests/dropbox/dropbox_test.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,9 @@
#include "factory.h"
#include "app.h"
#include "request.h"
#include "entryinfo.h"

using namespace QCloud;

void printUsage(char **argv)
{
Expand Down Expand Up @@ -72,8 +75,8 @@ int main (int argc, char* argv[])
request->waitForFinished();
}
else if (strcmp(argv[2], "get_info") == 0){
QVariantMap value;
QCloud::Request* request = dropbox->pathInfo(QString::fromLocal8Bit(argv[3]),&value);
EntryInfo info;
QCloud::Request* request = dropbox->pathInfo(QString::fromLocal8Bit(argv[3]),&info);
request->waitForFinished();
}
else {
Expand Down

0 comments on commit 3786cf3

Please sign in to comment.