AudioBook Plugin: Actions, item selection

This commit is contained in:
Jakub Melka
2021-08-20 17:52:42 +02:00
parent 9daaa92e90
commit 1aa60dca40
24 changed files with 1652 additions and 40 deletions

View File

@ -787,6 +787,25 @@ void PDFDocumentTextFlowEditor::setTextFlow(PDFDocumentTextFlow textFlow)
createEditedFromOriginalTextFlow();
}
void PDFDocumentTextFlowEditor::setSelectionActive(bool active)
{
for (auto& item : m_editedTextFlow)
{
if (item.editedItemFlags.testFlag(Selected))
{
item.editedItemFlags.setFlag(Removed, !active);
}
}
}
void PDFDocumentTextFlowEditor::deselect()
{
for (auto& item : m_editedTextFlow)
{
item.editedItemFlags.setFlag(Selected, false);
}
}
void PDFDocumentTextFlowEditor::removeItem(size_t index)
{
getEditedItem(index)->editedItemFlags.setFlag(Removed, true);
@ -810,6 +829,23 @@ void PDFDocumentTextFlowEditor::setText(const QString& text, size_t index)
updateModifiedFlag(index);
}
void PDFDocumentTextFlowEditor::selectByRectangle(QRectF rectangle)
{
for (auto& item : m_editedTextFlow)
{
const QRectF& boundingRectangle = item.boundingRect;
if (boundingRectangle.isEmpty())
{
item.editedItemFlags.setFlag(Selected, false);
continue;
}
const bool isContained = rectangle.contains(boundingRectangle);
item.editedItemFlags.setFlag(Selected, isContained);
}
}
void PDFDocumentTextFlowEditor::createEditedFromOriginalTextFlow()
{
const size_t count = m_originalTextFlow.getSize();