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