Page Menu
Home
Phorge
Search
Configure Global Search
Log In
Files
F2578003
kazv-io.cpp
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Award Token
Flag For Later
Size
1 KB
Referenced Files
None
Subscribers
None
kazv-io.cpp
View Options
#include
<QUrl>
#include
<KIO/TransferJob>
#include
<QObject>
#include
<QString>
#include
<QSaveFile>
#include
<QIODevice>
#include
<QFileDialog>
#include
<QDebug>
#include
<KIO/TransferJob>
#include
"kazv-io.hpp"
struct
KazvIOPrivate
{
QPointer
<
KIO
::
TransferJob
>
job
;
float
progress
=
0
;
QUrl
fileUrl
;
QSaveFile
file
;
};
KazvIO
::
KazvIO
(
QObject
*
parent
)
:
QObject
(
parent
)
,
m_d
(
new
KazvIOPrivate
)
{
}
KazvIO
::~
KazvIO
()
=
default
;
void
KazvIO::download
(
QUrl
url
)
{
if
(
m_d
->
job
)
{
return
;
}
m_d
->
job
=
KIO
::
get
(
url
);
m_d
->
file
.
setFileName
(
m_d
->
fileUrl
.
path
());
m_d
->
file
.
open
(
QIODevice
::
WriteOnly
);
connect
(
m_d
->
job
,
&
KIO
::
TransferJob
::
data
,
this
,
&
KazvIO
::
write
);
connect
(
m_d
->
job
,
&
KJob
::
percentChanged
,
this
,
&
KazvIO
::
updatePercent
);
connect
(
m_d
->
job
,
&
KJob
::
result
,
this
,
&
KazvIO
::
emitResult
);
m_d
->
job
->
start
();
}
void
KazvIO::suspend
()
{
if
(
!
m_d
->
job
->
suspend
())
{
qDebug
()
<<
"Suspend job failed"
;
}
}
void
KazvIO::resume
()
{
if
(
!
m_d
->
job
->
resume
())
{
qDebug
()
<<
"Resume job failed"
;
}
}
void
KazvIO::cancel
()
{
if
(
!
m_d
->
job
->
kill
())
{
qDebug
()
<<
"Cancel job failed"
;
}
}
float
KazvIO::progress
()
{
return
m_d
->
progress
;
}
QUrl
KazvIO::fileUrl
()
{
return
m_d
->
fileUrl
;
}
void
KazvIO::setFileUrl
(
QUrl
fileUrl
)
{
m_d
->
fileUrl
=
fileUrl
;
Q_EMIT
fileUrlChanged
();
}
void
KazvIO::updatePercent
(
KJob
*
job
,
unsigned
long
percent
)
{
m_d
->
progress
=
1.0
*
percent
/
100
;
Q_EMIT
progressChanged
();
}
void
KazvIO::write
(
KJob
*
job
,
const
QByteArray
&
data
)
{
m_d
->
file
.
write
(
data
);
}
void
KazvIO::emitResult
(
KJob
*
job
)
{
if
(
m_d
->
job
->
error
())
qDebug
()
<<
job
->
errorString
();
m_d
->
file
.
commit
();
Q_EMIT
result
();
}
File Metadata
Details
Attached
Mime Type
text/x-c
Expires
Tue, Jun 24, 6:48 PM (1 d, 2 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
234976
Default Alt Text
kazv-io.cpp (1 KB)
Attached To
Mode
rK kazv
Attached
Detach File
Event Timeline
Log In to Comment