예제 #1
0
void OpenGLQtMenu::shaderMenuCallback(QObject* obj) {
    QSize id = qobject_cast<QAction*>(obj)->data().toSize();
    int shaderId = id.width();
    int type = id.height();

    const std::vector<Shader*> shaders{ShaderManager::getPtr()->getShaders()};
    auto it = std::find_if(shaders.begin(), shaders.end(), [shaderId](Shader* shader) -> bool {
        return static_cast<int>(shader->getID()) == shaderId;
    });

    if (it != shaders.end()) {
        ShaderObject* shaderObj;
        switch (type) {
            case 1:
                shaderObj = (*it)->getVertexShaderObject();
                break;
            case 2:
                shaderObj = (*it)->getGeometryShaderObject();
                break;
            case 3:
                shaderObj = (*it)->getFragmentShaderObject();
                break;
            default:
                return;
        }

        QMainWindow* win =
            static_cast<InviwoApplicationQt*>(InviwoApplication::getPtr())->getMainWindow();
        
        QTextBrowser* shadercode = new QTextBrowser(nullptr);
        shadercode->setText(shaderObj->print(true).c_str());
        shadercode->setStyleSheet("font: 12pt \"Courier\";");

        QDialog* dialog = new QDialog(win);
        QGridLayout* layout = new QGridLayout(dialog);
        layout->setContentsMargins(0, 0, 0, 0);
        layout->setSpacing(0);
        layout->addWidget(shadercode);
        dialog->setLayout(layout);
        dialog->resize(600, 800);
        dialog->exec();

        delete dialog;
    }
}
예제 #2
0
AboutDialog::AboutDialog(QWidget *parent)
    : QDialog(parent)
{
    setWindowTitle(tr("Bluecherry Client - About"));
    setFixedSize(500, 400);
    setModal(true);

    QGridLayout *layout = new QGridLayout(this);

    QLabel *logo = new QLabel;
    logo->setPixmap(QPixmap(QLatin1String(":/images/logo.png"))
                    .scaled(130, 130, Qt::KeepAspectRatio, Qt::SmoothTransformation));
    logo->setAlignment(Qt::AlignLeft | Qt::AlignVCenter);
    layout->addWidget(logo, 0, 0);

    QLabel *text = new QLabel;
    text->setText(tr("Bluecherry DVR Client<br>Version %1").arg(QApplication::applicationVersion()));
    text->setAlignment(Qt::AlignHCenter | Qt::AlignTop);

    QFont font = text->font();
    font.setPixelSize(15);
    text->setFont(font);

    layout->addWidget(text, 0, 1);
    layout->setColumnStretch(1, 1);

    QTextBrowser *license = new QTextBrowser;
    license->setHtml(getLicenseText());
    license->setStyleSheet(QLatin1String("font-size: 12px"));
    license->setReadOnly(true);
    license->setOpenExternalLinks(true);
    license->setTabChangesFocus(true);
    layout->addWidget(license, 1, 0, 1, 2);

    font = QFont();
    font.setStyleHint(QFont::SansSerif);
    font.setPixelSize(13);
    license->setFont(font);
}