mirror of
				https://github.com/JakubMelka/PDF4QT.git
				synced 2025-06-05 21:59:17 +02:00 
			
		
		
		
	Renderer engine selection
This commit is contained in:
		@@ -86,7 +86,9 @@ PDFViewerMainWindow::PDFViewerMainWindow(QWidget *parent) :
 | 
			
		||||
    createGoToAction(ui->menuGoTo, tr("Go to next line"), QKeySequence::MoveToNextLine, pdf::PDFDrawWidgetProxy::NavigateNextStep);
 | 
			
		||||
    createGoToAction(ui->menuGoTo, tr("Go to previous line"), QKeySequence::MoveToPreviousLine, pdf::PDFDrawWidgetProxy::NavigatePreviousStep);
 | 
			
		||||
 | 
			
		||||
    m_pdfWidget = new pdf::PDFWidget(this);
 | 
			
		||||
    readSettings();
 | 
			
		||||
 | 
			
		||||
    m_pdfWidget = new pdf::PDFWidget(m_settings->getRendererEngine(), m_settings->isMultisampleAntialiasingEnabled() ? m_settings->getRendererSamples() : -1, this);
 | 
			
		||||
    setCentralWidget(m_pdfWidget);
 | 
			
		||||
    setFocusProxy(m_pdfWidget);
 | 
			
		||||
 | 
			
		||||
@@ -118,7 +120,6 @@ PDFViewerMainWindow::PDFViewerMainWindow(QWidget *parent) :
 | 
			
		||||
    connect(m_pdfWidget, &pdf::PDFWidget::pageRenderingErrorsChanged, this, &PDFViewerMainWindow::onPageRenderingErrorsChanged, Qt::QueuedConnection);
 | 
			
		||||
    connect(m_settings, &PDFViewerSettings::settingsChanged, this, &PDFViewerMainWindow::onViewerSettingsChanged);
 | 
			
		||||
 | 
			
		||||
    readSettings();
 | 
			
		||||
    updatePageLayoutActions();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -252,6 +253,7 @@ void PDFViewerMainWindow::updateRenderingOptionActions()
 | 
			
		||||
 | 
			
		||||
void PDFViewerMainWindow::onViewerSettingsChanged()
 | 
			
		||||
{
 | 
			
		||||
    m_pdfWidget->updateRenderer(m_settings->getRendererEngine(), m_settings->isMultisampleAntialiasingEnabled() ? m_settings->getRendererSamples() : -1);
 | 
			
		||||
    m_pdfWidget->getDrawWidgetProxy()->setFeatures(m_settings->getFeatures());
 | 
			
		||||
    updateRenderingOptionActions();
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -15,6 +15,7 @@ void PDFViewerSettings::readSettings(QSettings& settings)
 | 
			
		||||
    m_settings.m_directory = settings.value("defaultDirectory", QStandardPaths::writableLocation(QStandardPaths::DocumentsLocation)).toString();
 | 
			
		||||
    m_settings.m_features = static_cast<pdf::PDFRenderer::Features>(settings.value("rendererFeatures", static_cast<int>(pdf::PDFRenderer::getDefaultFeatures())).toInt());
 | 
			
		||||
    m_settings.m_rendererEngine = static_cast<pdf::RendererEngine>(settings.value("renderingEngine", static_cast<int>(pdf::RendererEngine::OpenGL)).toInt());
 | 
			
		||||
    m_settings.m_multisampleAntialiasing = settings.value("msaa", true).toBool();
 | 
			
		||||
    m_settings.m_rendererSamples = settings.value("rendererSamples", 16).toInt();
 | 
			
		||||
    settings.endGroup();
 | 
			
		||||
 | 
			
		||||
@@ -27,6 +28,7 @@ void PDFViewerSettings::writeSettings(QSettings& settings)
 | 
			
		||||
    settings.setValue("defaultDirectory", m_settings.m_directory);
 | 
			
		||||
    settings.setValue("rendererFeatures", static_cast<int>(m_settings.m_features));
 | 
			
		||||
    settings.setValue("renderingEngine", static_cast<int>(m_settings.m_rendererEngine));
 | 
			
		||||
    settings.setValue("msaa", m_settings.m_multisampleAntialiasing);
 | 
			
		||||
    settings.setValue("rendererSamples", m_settings.m_rendererSamples);
 | 
			
		||||
    settings.endGroup();
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -55,6 +55,8 @@ public:
 | 
			
		||||
    int getRendererSamples() const;
 | 
			
		||||
    void setRendererSamples(int rendererSamples);
 | 
			
		||||
 | 
			
		||||
    bool isMultisampleAntialiasingEnabled() const { return m_settings.m_multisampleAntialiasing; }
 | 
			
		||||
 | 
			
		||||
signals:
 | 
			
		||||
    void settingsChanged();
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -86,8 +86,17 @@ void PDFViewerSettingsDialog::loadData()
 | 
			
		||||
    {
 | 
			
		||||
        ui->multisampleAntialiasingCheckBox->setEnabled(true);
 | 
			
		||||
        ui->multisampleAntialiasingCheckBox->setChecked(m_settings.m_multisampleAntialiasing);
 | 
			
		||||
        ui->multisampleAntialiasingSamplesCountComboBox->setEnabled(true);
 | 
			
		||||
        ui->multisampleAntialiasingSamplesCountComboBox->setCurrentIndex(ui->multisampleAntialiasingSamplesCountComboBox->findData(m_settings.m_rendererSamples));
 | 
			
		||||
 | 
			
		||||
        if (m_settings.m_multisampleAntialiasing)
 | 
			
		||||
        {
 | 
			
		||||
            ui->multisampleAntialiasingSamplesCountComboBox->setEnabled(true);
 | 
			
		||||
            ui->multisampleAntialiasingSamplesCountComboBox->setCurrentIndex(ui->multisampleAntialiasingSamplesCountComboBox->findData(m_settings.m_rendererSamples));
 | 
			
		||||
        }
 | 
			
		||||
        else
 | 
			
		||||
        {
 | 
			
		||||
            ui->multisampleAntialiasingSamplesCountComboBox->setEnabled(false);
 | 
			
		||||
            ui->multisampleAntialiasingSamplesCountComboBox->setCurrentIndex(-1);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    else
 | 
			
		||||
    {
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user