Skip to content

Commit

Permalink
Expose method for adding custom context menu items via interface #96
Browse files Browse the repository at this point in the history
  • Loading branch information
DamirPorobic committed Oct 4, 2020
1 parent 265e372 commit a2bc2c9
Show file tree
Hide file tree
Showing 9 changed files with 34 additions and 8 deletions.
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
## Release 0.4.0
* New: Add Pixelate image area tool. ([#140](https://github.com/ksnip/kImageAnnotator/issues/140))
* New: Zoom in and out. ([#123](https://github.com/ksnip/kImageAnnotator/issues/123))
* New: Add interface for adding custom tab context menu actions. ([#96](https://github.com/ksnip/kImageAnnotator/issues/96))
* Changed: Draw point when clicking and releasing without moving cursor. ([#136](https://github.com/ksnip/kImageAnnotator/issues/136))
* Fixed: Blur radius not updated when changing current items settings. ([#142](https://github.com/ksnip/kImageAnnotator/issues/142))
* Fixed: Text tool opens many unix sockets. ([#144](https://github.com/ksnip/kImageAnnotator/issues/144))
Expand Down
1 change: 1 addition & 0 deletions include/kImageAnnotator/KImageAnnotator.h
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,7 @@ public Q_SLOTS:
void setTabBarAutoHide(bool enabled);
void removeTab(int index);
void setStickers(const QStringList &stickerPaths, bool keepDefault);
void addTabContextMenuActions(const QList<QAction*> & actions);

Q_SIGNALS:
void imageChanged() const;
Expand Down
5 changes: 5 additions & 0 deletions src/gui/CoreView.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -133,4 +133,9 @@ void CoreView::setStickers(const QStringList &stickerPaths, bool keepDefault)
mAnnotationWidget->setStickers(stickerPaths, keepDefault);
}

void CoreView::addTabContextMenuActions(const QList<QAction *> &actions)
{
mAnnotationWidget->addTabContextMenuActions(actions);
}

} // namespace kImageAnnotator
1 change: 1 addition & 0 deletions src/gui/CoreView.h
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@ public slots:
void showScaler();
void setTabBarAutoHide(bool enabled);
void setStickers(const QStringList &stickerPaths, bool keepDefault);
void addTabContextMenuActions(const QList<QAction*> & actions);

private:
Config *mConfig;
Expand Down
6 changes: 6 additions & 0 deletions src/gui/KImageAnnotator.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -192,6 +192,12 @@ void KImageAnnotator::setStickers(const QStringList &stickerPaths, bool keepDefa
d->mCoreView.setStickers(stickerPaths, keepDefault);
}

void KImageAnnotator::addTabContextMenuActions(const QList<QAction *> &actions)
{
Q_D(KImageAnnotator);
d->mCoreView.addTabContextMenuActions(actions);
}

// KImageAnnotatorPrivate

KImageAnnotatorPrivate::KImageAnnotatorPrivate(KImageAnnotator *kImageAnnotator) : q_ptr(kImageAnnotator), mCoreView(&mConfig)
Expand Down
9 changes: 7 additions & 2 deletions src/gui/annotator/AnnotationWidget.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@ void AnnotationWidget::updateTabInfo(int index, const QString &title, const QStr
mAnnotationTabWidget->updateTabInfo(index, title, toolTip);
}

void AnnotationWidget::insertImageItem(const QPointF &position, const QPixmap &pixmap)
void AnnotationWidget::insertImageItem(const QPointF &position, const QPixmap &pixmap) const
{
auto currentAnnotationArea = annotationArea();
if(currentAnnotationArea != nullptr) {
Expand Down Expand Up @@ -120,7 +120,7 @@ QAction *AnnotationWidget::redoAction() const
return mAnnotationTabWidget->redoAction();
}

void AnnotationWidget::clearSelection()
void AnnotationWidget::clearSelection() const
{
auto currentAnnotationArea = annotationArea();
if(currentAnnotationArea != nullptr) {
Expand Down Expand Up @@ -153,4 +153,9 @@ void AnnotationWidget::setStickers(const QStringList &stickerPaths, bool keepDef
mSettings->setStickers(stickerPaths, keepDefault);
}

void AnnotationWidget::addTabContextMenuActions(const QList<QAction *> &actions)
{
mAnnotationTabWidget->addContextMenuActions(actions);
}

} // namespace kImageAnnotator
5 changes: 3 additions & 2 deletions src/gui/annotator/AnnotationWidget.h
Original file line number Diff line number Diff line change
Expand Up @@ -39,17 +39,18 @@ Q_OBJECT
void loadImage(const QPixmap &pixmap);
int addTab(const QPixmap &pixmap, const QString &title, const QString &toolTip);
void updateTabInfo(int index, const QString &title, const QString &toolTip);
void insertImageItem(const QPointF &position, const QPixmap &pixmap);
void insertImageItem(const QPointF &position, const QPixmap &pixmap) const;
void removeTab(int index);
void setUndoEnabled(bool enabled);
QAction* undoAction() const;
QAction* redoAction() const;
void clearSelection();
void clearSelection() const;
AnnotationArea* annotationArea() const;
AnnotationArea *annotationAreaAt(int index) const;
void reloadConfig();
void setTabBarAutoHide(bool enabled);
void setStickers(const QStringList &stickerPaths, bool keepDefault);
void addTabContextMenuActions(const QList<QAction*> & actions);

signals:
void imageChanged() const;
Expand Down
9 changes: 7 additions & 2 deletions src/gui/annotator/tabs/AnnotationTabWidget.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -99,15 +99,15 @@ void AnnotationTabWidget::tabRemoved(int index)
QTabWidget::tabRemoved(index);
}

void AnnotationTabWidget::undoTriggered()
void AnnotationTabWidget::undoTriggered() const
{
auto annotationArea = currentAnnotationArea();
if(annotationArea != nullptr) {
annotationArea->undoAction()->trigger();
}
}

void AnnotationTabWidget::redoTriggered()
void AnnotationTabWidget::redoTriggered() const
{
auto annotationArea = currentAnnotationArea();
if(annotationArea != nullptr) {
Expand All @@ -133,4 +133,9 @@ void AnnotationTabWidget::updateSettingsListener()
mSettingsProvider->setActiveListener(currentAnnotationArea());
}

void AnnotationTabWidget::addContextMenuActions(const QList<QAction *> &actions)
{
mTabContextMenu->addCustomActions(actions);
}

} // namespace kImageAnnotator
5 changes: 3 additions & 2 deletions src/gui/annotator/tabs/AnnotationTabWidget.h
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ class AnnotationTabWidget : public QTabWidget
QAction* redoAction() const;
void updateTabInfo(int index, const QString &title, const QString &toolTip);
void setUndoRedoEnabled(bool enabled);
void addContextMenuActions(const QList<QAction*> & actions);

signals:
void imageChanged() const;
Expand All @@ -61,8 +62,8 @@ class AnnotationTabWidget : public QTabWidget
AnnotationTabCloser *mTabCloser;

private slots:
void undoTriggered();
void redoTriggered();
void undoTriggered() const;
void redoTriggered() const;
void updateCurrentWidget(int index);
void showTabContextMenu(const QPoint &pos);
void updateSettingsListener();
Expand Down

0 comments on commit a2bc2c9

Please sign in to comment.