mirror of
https://github.com/JakubMelka/PDF4QT.git
synced 2025-06-05 21:59:17 +02:00
Editor plugin: Disable editation when signature plugin is active and vice versa
This commit is contained in:
@ -23,6 +23,7 @@
|
||||
#include "pdfwidgetannotation.h"
|
||||
#include "pdfwidgetformmanager.h"
|
||||
#include "pdfblpainter.h"
|
||||
#include "pdfpagecontentelements.h"
|
||||
|
||||
#include <QPainter>
|
||||
#include <QGridLayout>
|
||||
@ -145,6 +146,11 @@ void PDFWidget::onPageImageChanged(bool all, const std::vector<PDFInteger>& page
|
||||
}
|
||||
}
|
||||
|
||||
void PDFWidget::onSceneActiveStateChanged(bool)
|
||||
{
|
||||
Q_EMIT sceneActivityChanged();
|
||||
}
|
||||
|
||||
void PDFWidget::removeInputInterface(IDrawWidgetInputInterface* inputInterface)
|
||||
{
|
||||
auto it = std::find(m_inputInterfaces.begin(), m_inputInterfaces.end(), inputInterface);
|
||||
@ -152,6 +158,17 @@ void PDFWidget::removeInputInterface(IDrawWidgetInputInterface* inputInterface)
|
||||
{
|
||||
m_inputInterfaces.erase(it);
|
||||
}
|
||||
|
||||
PDFPageContentScene* scene = dynamic_cast<PDFPageContentScene*>(inputInterface);
|
||||
if (scene)
|
||||
{
|
||||
auto itScene = std::find(m_scenes.begin(), m_scenes.end(), inputInterface);
|
||||
if (itScene != m_scenes.end())
|
||||
{
|
||||
m_scenes.erase(itScene);
|
||||
disconnect(scene, &PDFPageContentScene::sceneActiveStateChanged, this, &PDFWidget::onSceneActiveStateChanged);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void PDFWidget::addInputInterface(IDrawWidgetInputInterface* inputInterface)
|
||||
@ -160,9 +177,29 @@ void PDFWidget::addInputInterface(IDrawWidgetInputInterface* inputInterface)
|
||||
{
|
||||
m_inputInterfaces.push_back(inputInterface);
|
||||
std::sort(m_inputInterfaces.begin(), m_inputInterfaces.end(), IDrawWidgetInputInterface::Comparator());
|
||||
|
||||
PDFPageContentScene* scene = dynamic_cast<PDFPageContentScene*>(inputInterface);
|
||||
if (scene)
|
||||
{
|
||||
m_scenes.push_back(scene);
|
||||
connect(scene, &PDFPageContentScene::sceneActiveStateChanged, this, &PDFWidget::onSceneActiveStateChanged);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
bool PDFWidget::isAnySceneActive(PDFPageContentScene* sceneToSkip) const
|
||||
{
|
||||
for (PDFPageContentScene* scene : m_scenes)
|
||||
{
|
||||
if (scene->isActive() && scene != sceneToSkip)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
PDFWidgetFormManager* PDFWidget::getFormManager() const
|
||||
{
|
||||
return m_formManager;
|
||||
|
Reference in New Issue
Block a user