main
yang.yongquan 2023-07-06 21:22:37 +08:00
commit 691012903a
5 changed files with 98 additions and 26 deletions

View File

@ -103,6 +103,8 @@ AppFluWindow {
function (result, data) {
console.log(result)
console.log(data)
UserData.username = param.username
FluApp.navigate("/")
window.close()
}, function (p1, p2) {

View File

@ -18,6 +18,7 @@ FluWindow {
CustomAppBar {
id: title_bar
title: window.title
username: UserData.username
anchors {
left: parent.left
@ -62,8 +63,38 @@ FluWindow {
Layout.topMargin: 45
Layout.bottomMargin: 4
Layout.rightMargin: 4
replaceEnter: null
replaceExit: null
pushEnter: Transition {
PropertyAnimation {
property: "opacity"
from: 0
to: 1
duration: 200
}
}
pushExit: Transition {
PropertyAnimation {
property: "opacity"
from: 1
to: 0
duration: 200
}
}
popEnter: Transition {
PropertyAnimation {
property: "opacity"
from: 0
to: 1
duration: 200
}
}
popExit: Transition {
PropertyAnimation {
property: "opacity"
from: 1
to: 0
duration: 200
}
}
initialItem: create_note_view
}
@ -74,26 +105,24 @@ FluWindow {
stack_view.push(file_view, {knowledgeFileId: file})
}
function onOpenNote(note) {
stack_view.push(note_view, {noteFileId: note})
stack_view.push(note_view, {
"noteFileId": note
})
}
function onBack() {
if(stack_view.depth > 0)
if (stack_view.depth > 0)
stack_view.pop()
}
}
Component {
id: file_view
ContentPage {
}
ContentPage {}
}
Component {
id: note_view
NotePage {
}
NotePage {}
}
Component {
@ -104,14 +133,14 @@ FluWindow {
}
// ContentPage {
// Layout.fillHeight: true
// Layout.fillWidth: true
// Layout.topMargin: 45
// Layout.bottomMargin: 4
// Layout.rightMargin: 4
// type: "md"
// }
// ContentPage {
// Layout.fillHeight: true
// Layout.fillWidth: true
// Layout.topMargin: 45
// Layout.bottomMargin: 4
// Layout.rightMargin: 4
// type: "md"
// }
/*

View File

@ -143,7 +143,7 @@ FluArea {
FluText {
id: text_title
padding: 10
text: content_page.title
text: content_page.title.split(".")[0]
font {
pointSize: 15
bold: true
@ -221,9 +221,16 @@ FluArea {
}
onClicked: {
emit: content_area.download(content_area.knowledgeFileId)
//FileTransferManager.getMarkdown(content_page.fileId)
FileTransferManager.download(content_page.fileId,
content_page.title)
}
// Connections {
// target: FileTransferManager
// onMarkdownData: data => {
// console.log(data)
// }
// }
}
}

View File

@ -397,3 +397,30 @@ QString FileTransferManager::getFileName(const QUrl &fileUrl)
return fileUrl.fileName();
}
void FileTransferManager::getMarkdown(const QString &fileId)
{
QtConcurrent::run([fileId, this] {
qDebug() << "Start Get";
std::string resData;
if (CURLE_OK != httpGet("File/" + fileId.toStdString() + "/status", resData))
return;
qDebug() << resData.c_str();
auto resJson = QJsonDocument::fromJson(resData.c_str());
if (!resJson["isCompleted"].toBool()) {
qDebug() << "File Not Completed";
return;
}
auto size = resJson["size"].toInteger();
auto fileUrl = std::format("File/{}?rangeStart={}&rangeEnd={}", fileId.toStdString(), 0, size);
std::string fileData;
auto res = httpGet(fileUrl, fileData);
//qDebug() << fileData.c_str();
emit markdownData(QString::fromStdString(fileData));
//qDebug() << "End Get" << res;
});
}

View File

@ -12,21 +12,28 @@
#include "FileTransferListModel.h"
class FileTransferManager : public QObject
{
Q_OBJECT
public:
explicit FileTransferManager(QObject *parent = nullptr);
Q_INVOKABLE QString getFileName(const QUrl& fileUrl);
Q_INVOKABLE int64_t getFileSize(const QUrl& fileUrl);
Q_INVOKABLE QString getFileMd5(const QUrl& fileUrl);
Q_INVOKABLE void upload(const QUrl& fileUrl, const QString& fileId, const QString& ticket, const QString &fileName);
Q_INVOKABLE QString getFileName(const QUrl &fileUrl);
Q_INVOKABLE void download(const QString& fileId, const QString& fileName, bool resume = false);
Q_INVOKABLE void pause(const QString& fileId);
Q_INVOKABLE int64_t getFileSize(const QUrl &fileUrl);
Q_INVOKABLE QString getFileMd5(const QUrl &fileUrl);
Q_INVOKABLE void upload(const QUrl &fileUrl, const QString &fileId, const QString &ticket, const QString &fileName);
Q_INVOKABLE void download(const QString &fileId, const QString &fileName, bool resume = false);
Q_INVOKABLE void pause(const QString &fileId);
Q_INVOKABLE void getMarkdown(const QString &fileId);
signals:
void markdownData(QString data);
private:
};