mirror of
https://github.com/JakubMelka/PDF4QT.git
synced 2025-03-12 09:20:14 +01:00
Editor plugin: Edit element via double click
This commit is contained in:
parent
b43b4c1874
commit
05cf65b381
File diff suppressed because one or more lines are too long
Before Width: | Height: | Size: 3.0 KiB After Width: | Height: | Size: 7.2 KiB |
@ -463,6 +463,11 @@ void EditorPlugin::onSceneEditElement(const std::set<pdf::PDFInteger>& elements)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void EditorPlugin::onSceneEditSingleElement(pdf::PDFInteger elementId)
|
||||||
|
{
|
||||||
|
onSceneEditElement({ elementId });
|
||||||
|
}
|
||||||
|
|
||||||
void EditorPlugin::onPenChanged(const QPen& pen)
|
void EditorPlugin::onPenChanged(const QPen& pen)
|
||||||
{
|
{
|
||||||
if (pdf::PDFCreatePCElementTool* activeTool = qobject_cast<pdf::PDFCreatePCElementTool*>(getActiveTool()))
|
if (pdf::PDFCreatePCElementTool* activeTool = qobject_cast<pdf::PDFCreatePCElementTool*>(getActiveTool()))
|
||||||
@ -606,6 +611,7 @@ void EditorPlugin::updateDockWidget()
|
|||||||
m_editorWidget->setScene(&m_scene);
|
m_editorWidget->setScene(&m_scene);
|
||||||
connect(m_editorWidget, &pdf::PDFPageContentEditorWidget::operationTriggered, &m_scene, &pdf::PDFPageContentScene::performOperation);
|
connect(m_editorWidget, &pdf::PDFPageContentEditorWidget::operationTriggered, &m_scene, &pdf::PDFPageContentScene::performOperation);
|
||||||
connect(m_editorWidget, &pdf::PDFPageContentEditorWidget::itemSelectionChangedByUser, this, &EditorPlugin::onWidgetSelectionChanged);
|
connect(m_editorWidget, &pdf::PDFPageContentEditorWidget::itemSelectionChangedByUser, this, &EditorPlugin::onWidgetSelectionChanged);
|
||||||
|
connect(m_editorWidget, &pdf::PDFPageContentEditorWidget::editElementRequest, this, &EditorPlugin::onSceneEditSingleElement);
|
||||||
|
|
||||||
m_editorWidget->getToolButtonForOperation(static_cast<int>(pdf::PDFPageContentElementManipulator::Operation::AlignTop))->setIcon(QIcon(":/resources/pce-align-top.svg"));
|
m_editorWidget->getToolButtonForOperation(static_cast<int>(pdf::PDFPageContentElementManipulator::Operation::AlignTop))->setIcon(QIcon(":/resources/pce-align-top.svg"));
|
||||||
m_editorWidget->getToolButtonForOperation(static_cast<int>(pdf::PDFPageContentElementManipulator::Operation::AlignCenterVertically))->setIcon(QIcon(":/resources/pce-align-v-center.svg"));
|
m_editorWidget->getToolButtonForOperation(static_cast<int>(pdf::PDFPageContentElementManipulator::Operation::AlignCenterVertically))->setIcon(QIcon(":/resources/pce-align-v-center.svg"));
|
||||||
|
@ -57,6 +57,7 @@ private:
|
|||||||
void onWidgetSelectionChanged();
|
void onWidgetSelectionChanged();
|
||||||
void onToolActivityChanged();
|
void onToolActivityChanged();
|
||||||
void onSceneEditElement(const std::set<pdf::PDFInteger>& elements);
|
void onSceneEditElement(const std::set<pdf::PDFInteger>& elements);
|
||||||
|
void onSceneEditSingleElement(pdf::PDFInteger elementId);
|
||||||
|
|
||||||
void onPenChanged(const QPen& pen);
|
void onPenChanged(const QPen& pen);
|
||||||
void onBrushChanged(const QBrush& brush);
|
void onBrushChanged(const QBrush& brush);
|
||||||
|
@ -642,6 +642,7 @@ void SignaturePlugin::updateDockWidget()
|
|||||||
m_editorWidget->setScene(&m_scene);
|
m_editorWidget->setScene(&m_scene);
|
||||||
connect(m_editorWidget, &pdf::PDFPageContentEditorWidget::operationTriggered, &m_scene, &pdf::PDFPageContentScene::performOperation);
|
connect(m_editorWidget, &pdf::PDFPageContentEditorWidget::operationTriggered, &m_scene, &pdf::PDFPageContentScene::performOperation);
|
||||||
connect(m_editorWidget, &pdf::PDFPageContentEditorWidget::itemSelectionChangedByUser, this, &SignaturePlugin::onWidgetSelectionChanged);
|
connect(m_editorWidget, &pdf::PDFPageContentEditorWidget::itemSelectionChangedByUser, this, &SignaturePlugin::onWidgetSelectionChanged);
|
||||||
|
connect(m_editorWidget, &pdf::PDFPageContentEditorWidget::editElementRequest, this, &SignaturePlugin::onSceneEditSingleElement);
|
||||||
|
|
||||||
m_editorWidget->getToolButtonForOperation(static_cast<int>(pdf::PDFPageContentElementManipulator::Operation::AlignTop))->setIcon(QIcon(":/resources/pce-align-top.svg"));
|
m_editorWidget->getToolButtonForOperation(static_cast<int>(pdf::PDFPageContentElementManipulator::Operation::AlignTop))->setIcon(QIcon(":/resources/pce-align-top.svg"));
|
||||||
m_editorWidget->getToolButtonForOperation(static_cast<int>(pdf::PDFPageContentElementManipulator::Operation::AlignCenterVertically))->setIcon(QIcon(":/resources/pce-align-v-center.svg"));
|
m_editorWidget->getToolButtonForOperation(static_cast<int>(pdf::PDFPageContentElementManipulator::Operation::AlignCenterVertically))->setIcon(QIcon(":/resources/pce-align-v-center.svg"));
|
||||||
@ -672,4 +673,9 @@ void SignaturePlugin::updateDockWidget()
|
|||||||
connect(m_editorWidget, &pdf::PDFPageContentEditorWidget::textAngleChanged, this, &SignaturePlugin::onTextAngleChanged);
|
connect(m_editorWidget, &pdf::PDFPageContentEditorWidget::textAngleChanged, this, &SignaturePlugin::onTextAngleChanged);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void SignaturePlugin::onSceneEditSingleElement(pdf::PDFInteger elementId)
|
||||||
|
{
|
||||||
|
onSceneEditElement({ elementId });
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -63,6 +63,7 @@ private:
|
|||||||
void onFontChanged(const QFont& font);
|
void onFontChanged(const QFont& font);
|
||||||
void onAlignmentChanged(Qt::Alignment alignment);
|
void onAlignmentChanged(Qt::Alignment alignment);
|
||||||
void onTextAngleChanged(pdf::PDFReal angle);
|
void onTextAngleChanged(pdf::PDFReal angle);
|
||||||
|
void onSceneEditSingleElement(pdf::PDFInteger elementId);
|
||||||
|
|
||||||
enum Action
|
enum Action
|
||||||
{
|
{
|
||||||
|
@ -530,7 +530,7 @@ PDFEditedPageContentElementPath* PDFEditedPageContentElementPath::clone() const
|
|||||||
|
|
||||||
QRectF PDFEditedPageContentElementPath::getBoundingBox() const
|
QRectF PDFEditedPageContentElementPath::getBoundingBox() const
|
||||||
{
|
{
|
||||||
QPainterPath mappedPath = getState().getCurrentTransformationMatrix().map(m_path);
|
QPainterPath mappedPath = getTransform().map(m_path);
|
||||||
return mappedPath.boundingRect();
|
return mappedPath.boundingRect();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -85,6 +85,7 @@ PDFPageContentEditorWidget::PDFPageContentEditorWidget(QWidget* parent) :
|
|||||||
connect(&m_actionMapper, &QSignalMapper::mappedObject, this, &PDFPageContentEditorWidget::onActionTriggerRequest);
|
connect(&m_actionMapper, &QSignalMapper::mappedObject, this, &PDFPageContentEditorWidget::onActionTriggerRequest);
|
||||||
connect(&m_operationMapper, &QSignalMapper::mappedInt, this, &PDFPageContentEditorWidget::operationTriggered);
|
connect(&m_operationMapper, &QSignalMapper::mappedInt, this, &PDFPageContentEditorWidget::operationTriggered);
|
||||||
connect(ui->itemsListWidget->selectionModel(), &QItemSelectionModel::selectionChanged, this, &PDFPageContentEditorWidget::onItemSelectionChanged);
|
connect(ui->itemsListWidget->selectionModel(), &QItemSelectionModel::selectionChanged, this, &PDFPageContentEditorWidget::onItemSelectionChanged);
|
||||||
|
connect(ui->itemsListWidget, &QListWidget::itemDoubleClicked, this, &PDFPageContentEditorWidget::onItemDoubleClicked);
|
||||||
|
|
||||||
connect(m_settingsWidget, &PDFPageContentEditorStyleSettings::penChanged, this, &PDFPageContentEditorWidget::penChanged);
|
connect(m_settingsWidget, &PDFPageContentEditorStyleSettings::penChanged, this, &PDFPageContentEditorWidget::penChanged);
|
||||||
connect(m_settingsWidget, &PDFPageContentEditorStyleSettings::brushChanged, this, &PDFPageContentEditorWidget::brushChanged);
|
connect(m_settingsWidget, &PDFPageContentEditorStyleSettings::brushChanged, this, &PDFPageContentEditorWidget::brushChanged);
|
||||||
@ -225,6 +226,12 @@ void PDFPageContentEditorWidget::onItemSelectionChanged()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void PDFPageContentEditorWidget::onItemDoubleClicked(QListWidgetItem* item)
|
||||||
|
{
|
||||||
|
const PDFInteger elementId = item->data(Qt::UserRole).toLongLong();
|
||||||
|
Q_EMIT editElementRequest(elementId);
|
||||||
|
}
|
||||||
|
|
||||||
PDFPageContentScene* PDFPageContentEditorWidget::scene() const
|
PDFPageContentScene* PDFPageContentEditorWidget::scene() const
|
||||||
{
|
{
|
||||||
return m_scene;
|
return m_scene;
|
||||||
|
@ -27,6 +27,7 @@
|
|||||||
#include <set>
|
#include <set>
|
||||||
|
|
||||||
class QToolButton;
|
class QToolButton;
|
||||||
|
class QListWidgetItem;
|
||||||
|
|
||||||
namespace Ui
|
namespace Ui
|
||||||
{
|
{
|
||||||
@ -74,11 +75,13 @@ signals:
|
|||||||
void fontChanged(const QFont& font);
|
void fontChanged(const QFont& font);
|
||||||
void alignmentChanged(Qt::Alignment alignment);
|
void alignmentChanged(Qt::Alignment alignment);
|
||||||
void textAngleChanged(pdf::PDFReal angle);
|
void textAngleChanged(pdf::PDFReal angle);
|
||||||
|
void editElementRequest(pdf::PDFInteger elementId);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void onActionTriggerRequest(QObject* actionObject);
|
void onActionTriggerRequest(QObject* actionObject);
|
||||||
void onActionChanged();
|
void onActionChanged();
|
||||||
void onItemSelectionChanged();
|
void onItemSelectionChanged();
|
||||||
|
void onItemDoubleClicked(QListWidgetItem* item);
|
||||||
|
|
||||||
Ui::PDFPageContentEditorWidget* ui;
|
Ui::PDFPageContentEditorWidget* ui;
|
||||||
PDFPageContentEditorStyleSettings* m_settingsWidget;
|
PDFPageContentEditorStyleSettings* m_settingsWidget;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user