#include #include #include #include QPixmap createPixmap(int size, const QBrush& window, const QBrush& button, const QBrush& view, const QBrush& selection); extern "C" QIcon* createPreview(const QString& path) { KSharedConfigPtr schemeConfig = KSharedConfig::openConfig(path); QIcon* result = new QIcon(); KColorScheme activeWindow(QPalette::Active, KColorScheme::Window, schemeConfig); KColorScheme activeButton(QPalette::Active, KColorScheme::Button, schemeConfig); KColorScheme activeView(QPalette::Active, KColorScheme::View, schemeConfig); KColorScheme activeSelection(QPalette::Active, KColorScheme::Selection, schemeConfig); result->addPixmap(createPixmap(16, activeWindow.background(), activeButton.background(), activeView.background(), activeSelection.background())); result->addPixmap(createPixmap(24, activeWindow.background(), activeButton.background(), activeView.background(), activeSelection.background())); return result; } extern "C" void deletePreview(QIcon* icon) { delete icon; } QPixmap createPixmap(int size, const QBrush& window, const QBrush& button, const QBrush& view, const QBrush& selection) { QPixmap pix(size, size); pix.fill(Qt::black); QPainter p; p.begin(&pix); const int itemSize = size / 2 - 1; p.fillRect(1, 1, itemSize, itemSize, window); p.fillRect(1 + itemSize, 1, itemSize, itemSize, button); p.fillRect(1, 1 + itemSize, itemSize, itemSize, view); p.fillRect(1 + itemSize, 1 + itemSize, itemSize, itemSize, selection); p.end(); return pix; }