mirror of
https://github.com/nextcloud/desktop.git
synced 2025-10-26 11:17:43 +00:00
Sharedialog: retrive thumbnail from server for shares
Initial patch for #2726. Request a thumbnail from the server if files are to be shared.
This commit is contained in:
parent
72ec7ccde2
commit
d7f5e89a1d
@ -208,6 +208,13 @@ void ShareDialog::getShares()
|
||||
OcsShareJob *job = new OcsShareJob("GET", url, _account, this);
|
||||
connect(job, SIGNAL(jobFinished(QString)), this, SLOT(slotSharesFetched(QString)));
|
||||
job->start();
|
||||
|
||||
if (QFileInfo(_localPath).isFile()) {
|
||||
QUrl url2 = Account::concatUrlPath(AccountManager::instance()->account()->url(), QString("index.php/apps/files/api/v1/thumbnail/150/150/%1").arg(_sharePath));
|
||||
ThumbnailJob *job2 = new ThumbnailJob(url2, AccountManager::instance()->account(), this);
|
||||
connect(job2, SIGNAL(jobFinished(int, QByteArray)), SLOT(slotThumbnailFetched(int, QByteArray)));
|
||||
job2->start();
|
||||
}
|
||||
}
|
||||
|
||||
void ShareDialog::slotSharesFetched(const QString &reply)
|
||||
@ -504,6 +511,18 @@ void ShareDialog::slotNextSyncFinished( const SyncResult& result )
|
||||
}
|
||||
#endif
|
||||
|
||||
void ShareDialog::slotThumbnailFetched(const int &statusCode, const QByteArray &reply)
|
||||
{
|
||||
if (statusCode != 200) {
|
||||
qDebug() << Q_FUNC_INFO << "Status code: " << statusCode;
|
||||
return;
|
||||
}
|
||||
|
||||
QPixmap p;
|
||||
p.loadFromData(reply, "PNG");
|
||||
_ui->label_icon->setPixmap(p);
|
||||
}
|
||||
|
||||
OcsShareJob::OcsShareJob(const QByteArray &verb, const QUrl &url, AccountPtr account, QObject* parent)
|
||||
: AbstractNetworkJob(account, "", parent),
|
||||
_verb(verb),
|
||||
@ -546,4 +565,25 @@ bool OcsShareJob::finished()
|
||||
return true;
|
||||
}
|
||||
|
||||
ThumbnailJob::ThumbnailJob(const QUrl &url, AccountPtr account, QObject* parent)
|
||||
: AbstractNetworkJob(account, "", parent),
|
||||
_url(url)
|
||||
{
|
||||
setIgnoreCredentialFailure(true);
|
||||
}
|
||||
|
||||
void ThumbnailJob::start()
|
||||
{
|
||||
qDebug() << Q_FUNC_INFO;
|
||||
setReply(getRequest(_url));
|
||||
setupConnections(reply());
|
||||
AbstractNetworkJob::start();
|
||||
}
|
||||
|
||||
bool ThumbnailJob::finished()
|
||||
{
|
||||
emit jobFinished(reply()->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(), reply()->readAll());
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -41,6 +41,23 @@ private:
|
||||
QList<QPair<QString, QString> > _postParams;
|
||||
};
|
||||
|
||||
|
||||
class ThumbnailJob : public AbstractNetworkJob {
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit ThumbnailJob(const QUrl& url, AccountPtr account, QObject* parent = 0);
|
||||
public slots:
|
||||
void start() Q_DECL_OVERRIDE;
|
||||
signals:
|
||||
void jobFinished(int statusCode, QByteArray reply);
|
||||
private slots:
|
||||
virtual bool finished() Q_DECL_OVERRIDE;
|
||||
private:
|
||||
QUrl _url;
|
||||
};
|
||||
|
||||
|
||||
|
||||
namespace Ui {
|
||||
class ShareDialog;
|
||||
}
|
||||
@ -71,6 +88,7 @@ private slots:
|
||||
void slotCheckBoxExpireClicked();
|
||||
void slotPasswordReturnPressed();
|
||||
void slotPushButtonCopyLinkPressed();
|
||||
void slotThumbnailFetched(const int &statusCode, const QByteArray &reply);
|
||||
private:
|
||||
void displayError(int code);
|
||||
void displayInfo( const QString& msg );
|
||||
|
||||
Loading…
Reference in New Issue
Block a user