Files
qTier/main.cpp

142 lines
4.4 KiB
C++

#include "mainwindow.h"
#include "tiercard.hpp"
#include "tierrow.hpp"
#include "tiercardlayout.hpp"
#include "utils.hpp"
#include "rowholder.hpp"
#include <QApplication>
#include <QNetworkAccessManager>
#include <QNetworkReply>
#include <QImageReader>
#include <QTimer>
#include <QDockWidget>
#include <QScrollArea>
// int main(int argc, char *argv[])
// {
// QApplication a(argc, argv);
// // MainWindow w;
// // w.show();
// TierCard card;
// // card.setGeometry(0, 0, 200, 200);
// card.setFixedSize(200, 200);
// card.set_text("SOME TEXT");
// card.set_bg_color(QColor(255, 255, 255));
// card.show();
// QNetworkAccessManager qnam;
// QNetworkRequest req(QUrl("https://upload.wikimedia.org/wikipedia/en/4/4d/Shrek_%28character%29.png"));
// auto resp = qnam.get(req);
// QObject::connect(resp, &QNetworkReply::finished, [&card, resp]()
// {
// QImageReader reader(resp);
// reader.setAutoDetectImageFormat(true);
// QPixmap image = QPixmap::fromImageReader(&reader);
// card.set_image(image);
// });
// int fontSize = 10;
// QColor bg_switcher(255, 128, 128);
// QTimer bg_changer;
// bg_changer.setTimerType(Qt::PreciseTimer);
// bg_changer.setSingleShot(false);
// bg_changer.setInterval(1000);
// QObject::connect(&bg_changer, &QTimer::timeout, [&card, &bg_switcher, &fontSize, &a]()
// {
// card.set_bg_color(bg_switcher);
// a.setStyleSheet(QString("*[cssClass=\"tierCardText\"]{font-size: %1pt}").arg(fontSize));
// bg_switcher = QColor(bg_switcher.green(), bg_switcher.blue(), bg_switcher.red());
// fontSize+=3;
// });
// bg_changer.start();
// return a.exec();
// }
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
// QDockWidget dock;
QScrollArea scroll;
TierRow* row = TierRow::create();
row->setColor(QColor(255, 128, 64));
row->setText("Row Title");
TierCard* card1 = TierCard::create();
row->setStyleSheet(makeBgColorString(QColor(35,35,35)));
card1->setText("CARD1");
card1->setBgColor(QColor(64,255,64));
card1->setFixedSize(150,150);
TierCard* card2 = TierCard::create();
card2->setText("CARD2");
card2->setBgColor(QColor(64,64,255));
card2->setFixedSize(150,150);
row->addCard(card1);
row->addCard(card2);
TierRow* row2 = TierRow::create();
row2->setColor(QColor(128, 128, 255));
row2->setText("Row Title");
TierCard* card3 = TierCard::create();
card3->setText("CARD1");
card3->setBgColor(QColor(64,12,164));
card3->setFixedSize(150,150);
TierCard* card4 = TierCard::create();
card4->setText("CARD2");
card4->setBgColor(QColor(164,64,155));
card4->setFixedSize(150,150);
auto card5 = TierCard::clone(card4);
card5->setFixedSize(150,150);
row->addCard(card5);
row2->addCard(card3);
row2->addCard(card4);
// row.show();
RowHolder holder;
holder.setSizePolicy(QSizePolicy::Ignored, QSizePolicy::Fixed);
// auto holderLayout = new QVBoxLayout();
holder.addRow(row);
holder.addRow(row2);
scroll.setWidget(&holder);
scroll.setWidgetResizable(true);
// dock.setWidget(&scroll);
// w.dockWidgetArea(&dock);
w.setCentralWidget(&scroll);
w.show();
w.setStyleSheet(a.styleSheet()
.append("#tierCardText {"
" font-style: bold;"
" font-size: 52; }")
.append("#tierCardId {"
" font-size: 24; }"));
// a.setFont()
// QTimer bg_changer;
// bg_changer.setTimerType(Qt::PreciseTimer);
// bg_changer.setSingleShot(false);
// bg_changer.setInterval(1000);
// QObject::connect(&bg_changer, &QTimer::timeout, [&row]()
// {
// row.updateGeometry();
// });
// bg_changer.start();
// w.show();
// callOnMeAndChildren<TierRow>(&row, [](TierRow* obj)
// {
// auto wid = dynamic_cast<QWidget*>(obj);
// if (wid)
// {
// auto size = wid->minimumSize();
// if (std::max(size.height(), size.width()) >= 200)
// {
// qDebug() << wid->objectName() << ": " << size;
// }
// }
// });
// qDebug() << row.minimumSize() << row.layout()->minimumSize();
return a.exec();
}