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 }