File indexing completed on 2024-04-28 05:43:53

0001 
0002 #include <KAboutData>
0003 #include <KLocalizedString>
0004 
0005 #include <QApplication>
0006 #include <QMainWindow>
0007 
0008 #include <QGridLayout>
0009 #include <QIcon>
0010 #include <QLabel>
0011 #include <QScrollArea>
0012 #include <QDebug>
0013 #include <QStandardPaths>
0014 
0015 #include <ktechlab_version.h>
0016 
0017 #include "icon-list-generated.h"
0018 
0019     // TODO retun "" if ok, or an error message if it is not ok
0020 static void addIcon(QGridLayout *mainLayout, const char *iconName);
0021 
0022 int main(int argc, char **argv) {
0023     QApplication app(argc, argv);
0024     KAboutData about("ktechlab", i18n("KTechLab Icon Tester"),
0025                 KTECHLAB_VERSION_STRING, i18n("An IDE for microcontrollers and electronics"),
0026                 KAboutLicense::GPL_V2, i18n("(C) 2003-2009, The KTechLab developers"),
0027                 QString(),
0028                 QStringLiteral("https://userbase.kde.org/KTechlab"));
0029 
0030     // Add our custom icons to the search path
0031     const QStringList iconDirs = QStandardPaths::locateAll(QStandardPaths::GenericDataLocation, "ktechlab/icons", QStandardPaths::LocateDirectory);
0032     const QStringList picsDirs = QStandardPaths::locateAll(QStandardPaths::GenericDataLocation, "ktechlab/pics", QStandardPaths::LocateDirectory);
0033     QIcon::setThemeSearchPaths(QIcon::themeSearchPaths() << iconDirs);
0034     QIcon::setFallbackSearchPaths(QIcon::fallbackSearchPaths() << iconDirs << picsDirs);
0035 
0036     QMainWindow *mainWnd = new QMainWindow();
0037     QScrollArea *mainWidget = new QScrollArea();
0038     QWidget *tableWidget = new QWidget();
0039     mainWidget->setWidget(tableWidget);
0040     mainWidget->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOn);
0041     mainWidget->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn);
0042     mainWidget->setWidgetResizable(true);
0043     QGridLayout *mainLayout = new QGridLayout();
0044     tableWidget->setLayout(mainLayout);
0045     mainWnd->setCentralWidget(mainWidget);
0046 
0047     const int iconCount = sizeof(iconNames)/sizeof(iconNames[0]);
0048     for (int iconNr = 0; iconNr < iconCount; ++iconNr) {
0049         addIcon(mainLayout, iconNames[iconNr]);
0050     }
0051 
0052     mainWnd->show();
0053     return app.exec();
0054 }
0055 
0056 static void addIcon(QGridLayout *mainLayout, const char *iconName) {
0057     const int atRow = mainLayout->rowCount() + 1;
0058     {
0059         QIcon testIconConstr = QIcon::fromTheme(iconName);
0060         if (testIconConstr.isNull()) {
0061             qWarning() << "QIcon " << iconName << " is nullptr";
0062         }
0063     }
0064     QIcon testIcon = QIcon::fromTheme(iconName);
0065     QPixmap testPixmap = testIcon.pixmap(64, 64);
0066     QLabel *ql = new QLabel;
0067     ql->setPixmap(testPixmap);
0068     ql->setMinimumSize(70, 70);
0069     mainLayout->addWidget(ql, atRow, 1);
0070 
0071     QLabel *qt = new QLabel;
0072     qt->setText(iconName);
0073     qt->setMinimumSize(300, 70);
0074     mainLayout->addWidget(qt, atRow, 2);
0075     mainLayout->setRowMinimumHeight(atRow, 70);
0076 }