Enable raw/binary fake-printers

This commit is contained in:
Anton Thomasson 2022-06-04 14:43:53 +02:00
parent 9ff8775fab
commit 8c6344eef8

View file

@ -4,6 +4,7 @@
#include "papersizes.h" #include "papersizes.h"
#include "overrider.h" #include "overrider.h"
#include "settings.h" #include "settings.h"
#include <fstream>
Q_DECLARE_METATYPE(QMargins) Q_DECLARE_METATYPE(QMargins)
@ -96,18 +97,35 @@ void IppPrinter::refresh() {
if(_url.scheme() == "file") if(_url.scheme() == "file")
{ {
_attrs = QJsonObject(); _attrs = QJsonObject();
QString localFile = _url.toLocalFile();
QFile file(_url.toLocalFile()); if(localFile.endsWith(".raw") || localFile.endsWith(".bin"))
{
try
{
std::ifstream ifs = std::ifstream(localFile.toStdString(), std::ios::in | std::ios::binary);
Bytestream InBts(ifs);
IppMsg resp(InBts);
qDebug() << resp.getStatus() << resp.getOpAttrs() << resp.getPrinterAttrs();
_attrs = resp.getPrinterAttrs();
}
catch(const std::exception& e)
{
qDebug() << e.what();
}
}
else
{
QFile file(localFile);
if(file.open(QIODevice::ReadOnly)) if(file.open(QIODevice::ReadOnly))
{ {
QJsonDocument JsonDocument = QJsonDocument::fromJson(file.readAll()); QJsonDocument JsonDocument = QJsonDocument::fromJson(file.readAll());
_attrs = JsonDocument.object(); _attrs = JsonDocument.object();
// These won't load anyway...r
_attrs.remove("printer-icons");
file.close(); file.close();
Overrider::instance()->apply(_attrs);
} }
}
_attrs.remove("printer-icons");
Overrider::instance()->apply(_attrs);
emit attrsChanged(); emit attrsChanged();
// MaybeGetStrings(); - for testing fake file-prinetrs with a strings file hosted elsewhere // MaybeGetStrings(); - for testing fake file-prinetrs with a strings file hosted elsewhere