mirror of
https://github.com/JakubMelka/PDF4QT.git
synced 2025-03-11 17:00:20 +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)
|
||||
{
|
||||
if (pdf::PDFCreatePCElementTool* activeTool = qobject_cast<pdf::PDFCreatePCElementTool*>(getActiveTool()))
|
||||
@ -606,6 +611,7 @@ void EditorPlugin::updateDockWidget()
|
||||
m_editorWidget->setScene(&m_scene);
|
||||
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::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::AlignCenterVertically))->setIcon(QIcon(":/resources/pce-align-v-center.svg"));
|
||||
|
@ -57,6 +57,7 @@ private:
|
||||
void onWidgetSelectionChanged();
|
||||
void onToolActivityChanged();
|
||||
void onSceneEditElement(const std::set<pdf::PDFInteger>& elements);
|
||||
void onSceneEditSingleElement(pdf::PDFInteger elementId);
|
||||
|
||||
void onPenChanged(const QPen& pen);
|
||||
void onBrushChanged(const QBrush& brush);
|
||||
|
@ -642,6 +642,7 @@ void SignaturePlugin::updateDockWidget()
|
||||
m_editorWidget->setScene(&m_scene);
|
||||
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::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::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);
|
||||
}
|
||||
|
||||
void SignaturePlugin::onSceneEditSingleElement(pdf::PDFInteger elementId)
|
||||
{
|
||||
onSceneEditElement({ elementId });
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -63,6 +63,7 @@ private:
|
||||
void onFontChanged(const QFont& font);
|
||||
void onAlignmentChanged(Qt::Alignment alignment);
|
||||
void onTextAngleChanged(pdf::PDFReal angle);
|
||||
void onSceneEditSingleElement(pdf::PDFInteger elementId);
|
||||
|
||||
enum Action
|
||||
{
|
||||
|
@ -530,7 +530,7 @@ PDFEditedPageContentElementPath* PDFEditedPageContentElementPath::clone() const
|
||||
|
||||
QRectF PDFEditedPageContentElementPath::getBoundingBox() const
|
||||
{
|
||||
QPainterPath mappedPath = getState().getCurrentTransformationMatrix().map(m_path);
|
||||
QPainterPath mappedPath = getTransform().map(m_path);
|
||||
return mappedPath.boundingRect();
|
||||
}
|
||||
|
||||
|
@ -85,6 +85,7 @@ PDFPageContentEditorWidget::PDFPageContentEditorWidget(QWidget* parent) :
|
||||
connect(&m_actionMapper, &QSignalMapper::mappedObject, this, &PDFPageContentEditorWidget::onActionTriggerRequest);
|
||||
connect(&m_operationMapper, &QSignalMapper::mappedInt, this, &PDFPageContentEditorWidget::operationTriggered);
|
||||
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::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
|
||||
{
|
||||
return m_scene;
|
||||
|
@ -27,6 +27,7 @@
|
||||
#include <set>
|
||||
|
||||
class QToolButton;
|
||||
class QListWidgetItem;
|
||||
|
||||
namespace Ui
|
||||
{
|
||||
@ -74,11 +75,13 @@ signals:
|
||||
void fontChanged(const QFont& font);
|
||||
void alignmentChanged(Qt::Alignment alignment);
|
||||
void textAngleChanged(pdf::PDFReal angle);
|
||||
void editElementRequest(pdf::PDFInteger elementId);
|
||||
|
||||
private:
|
||||
void onActionTriggerRequest(QObject* actionObject);
|
||||
void onActionChanged();
|
||||
void onItemSelectionChanged();
|
||||
void onItemDoubleClicked(QListWidgetItem* item);
|
||||
|
||||
Ui::PDFPageContentEditorWidget* ui;
|
||||
PDFPageContentEditorStyleSettings* m_settingsWidget;
|
||||
|
Loading…
x
Reference in New Issue
Block a user