/* -*- c++ -*- */ /*************************************************************************** * viewer.cc * * Sun Apr 24 09:04:57 CEST 2022 * Copyright 2022 Bent Bisballe Nyeng * deva@aasimon.org ****************************************************************************/ /* * This file is part of Qookie. * * Qookie is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * Qookie is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Qookie; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ #include "viewer.h" #include #include #include #include "recipe.h" #include "client.h" Viewer::Viewer() { setLayout(new QHBoxLayout()); textEdit = new QTextEdit(); layout()->addWidget(textEdit); textEdit->setReadOnly(true); //client.connectToHost("127.0.0.1"); client.connectToHost("192.168.0.46"); } void Viewer::show(const Recipe& recipe) { auto instructions = QString::fromUtf8(recipe.instructions.data()); instructions.replace("\n", "
"); QString ingredients; for(const auto& ingredient : recipe.ingredients) { if(ingredient.amount > 0) { ingredients += "
  • " + QString::number(ingredient.amount) + " " + QString::fromUtf8(ingredient.unit.data()) + " " + QString::fromUtf8(ingredient.item.data()) + "
  • "; } else { ingredients += "
  • " + QString::fromUtf8(ingredient.item.data()) + "
  • "; } } QByteArray image(recipe.image.data(), recipe.image.size()); if(recipe.image.substr(0, 4) == "/9j/") // Image is base64 encoded { image = QByteArray::fromBase64(image); } QString html = "
    " + QString::fromUtf8(recipe.title.data()) + "

    " "

    " "" "

    " "

    " + QString::fromUtf8(recipe.description.data()) + "

    " "

    " "Source: " + QString::fromUtf8(recipe.source.data()) + "
    " "Cuisine: " + QString::fromUtf8(recipe.cuisine.data()) + "
    " "Cooktime: " + QString::number(recipe.cooktime / 60) + "min
    " "Preptime: " + QString::number(recipe.preptime / 60) + "min
    " "Yields: " + QString::number(recipe.yields) + " " + QString::fromUtf8(recipe.yield_unit.data()) + "
    " "Tags: " + QString::fromUtf8(recipe.tags[0].data()) + "" "

    " "

    Ingredients

    " "
      " + ingredients + "
    " "

    Instructions

    " "

    " + instructions + "

    " ; textEdit->setHtml(html); client.writeData(QString::fromUtf8(recipe.title.data()), html.toUtf8()); }