change text property in time

This commit is contained in:
peijiankang 2022-06-29 09:33:41 +08:00
parent 00e79ebb63
commit d472d8d511
2 changed files with 228 additions and 1 deletions

View File

@ -0,0 +1,222 @@
From 97df00beb618898b290ca2a633d5043c3d58e3db Mon Sep 17 00:00:00 2001
From: peijiankang <peijiankang@kylinos.cn>
Date: Wed, 29 Jun 2022 09:31:14 +0800
Subject: [PATCH] change text property in time
---
src/tools/AbstractActionToolWithWidget.cpp | 4 ++++
src/tools/AbstractActionToolWithWidget.h | 1 +
src/tools/abstractactiontool.cpp | 4 ++++
src/tools/abstractactiontool.h | 1 +
src/tools/abstractpathtool.cpp | 4 ++++
src/tools/abstractpathtool.h | 2 +-
src/tools/abstracttwopointtool.cpp | 4 ++++
src/tools/abstracttwopointtool.h | 1 +
src/tools/capturetool.h | 2 +-
src/tools/text/texttool.cpp | 11 +++++++++++
src/tools/text/texttool.h | 1 +
src/widgets/capture/capturewidget.cpp | 9 +++++++--
src/widgets/capture/capturewidget.h | 1 +
13 files changed, 41 insertions(+), 4 deletions(-)
diff --git a/src/tools/AbstractActionToolWithWidget.cpp b/src/tools/AbstractActionToolWithWidget.cpp
index bd07d86..9289683 100644
--- a/src/tools/AbstractActionToolWithWidget.cpp
+++ b/src/tools/AbstractActionToolWithWidget.cpp
@@ -86,3 +86,7 @@ void AbstractActionToolWithWidget::colorChanged(const QColor &c) {
void AbstractActionToolWithWidget::thicknessChanged(const int th) {
Q_UNUSED(th);
}
+
+void AbstractActionToolWithWidget::textChanged(const CaptureContext &context) {
+ Q_UNUSED(context);
+}
diff --git a/src/tools/AbstractActionToolWithWidget.h b/src/tools/AbstractActionToolWithWidget.h
index d92e7cd..feb2fbe 100644
--- a/src/tools/AbstractActionToolWithWidget.h
+++ b/src/tools/AbstractActionToolWithWidget.h
@@ -44,4 +44,5 @@ public slots:
void drawStart(const CaptureContext &context) override;
void colorChanged(const QColor &c) override;
void thicknessChanged(const int th) override;
+ void textChanged(const CaptureContext &context) override;
};
diff --git a/src/tools/abstractactiontool.cpp b/src/tools/abstractactiontool.cpp
index 2d0c886..df19020 100755
--- a/src/tools/abstractactiontool.cpp
+++ b/src/tools/abstractactiontool.cpp
@@ -84,3 +84,7 @@ void AbstractActionTool::colorChanged(const QColor &c) {
void AbstractActionTool::thicknessChanged(const int th) {
Q_UNUSED(th);
}
+
+void AbstractActionTool::textChanged(const CaptureContext &context) {
+ Q_UNUSED(context);
+}
diff --git a/src/tools/abstractactiontool.h b/src/tools/abstractactiontool.h
index 8b8b9c3..3cf57ac 100755
--- a/src/tools/abstractactiontool.h
+++ b/src/tools/abstractactiontool.h
@@ -42,4 +42,5 @@ public slots:
void drawStart(const CaptureContext &context) override;
void colorChanged(const QColor &c) override;
void thicknessChanged(const int th) override;
+ void textChanged(const CaptureContext &context) override;
};
diff --git a/src/tools/abstractpathtool.cpp b/src/tools/abstractpathtool.cpp
index 89ab28f..e678c4f 100755
--- a/src/tools/abstractpathtool.cpp
+++ b/src/tools/abstractpathtool.cpp
@@ -82,3 +82,7 @@ void AbstractPathTool::addPoint(const QPoint &point) {
}
m_points.append(point);
}
+
+void AbstractPathTool::textChanged(const CaptureContext &context) {
+ Q_UNUSED(context);
+}
diff --git a/src/tools/abstractpathtool.h b/src/tools/abstractpathtool.h
index 172dab8..842fcb1 100755
--- a/src/tools/abstractpathtool.h
+++ b/src/tools/abstractpathtool.h
@@ -35,7 +35,7 @@ public slots:
void drawMove(const QPoint &p) override;
void colorChanged(const QColor &c) override;
void thicknessChanged(const int th) override;
-
+ void textChanged(const CaptureContext &context) override;
protected:
void updateBackup(const QPixmap &pixmap);
void addPoint(const QPoint &point);
diff --git a/src/tools/abstracttwopointtool.cpp b/src/tools/abstracttwopointtool.cpp
index d968dea..6403190 100755
--- a/src/tools/abstracttwopointtool.cpp
+++ b/src/tools/abstracttwopointtool.cpp
@@ -133,3 +133,7 @@ QPoint AbstractTwoPointTool::adjustedVector(QPoint v) const {
}
return v;
}
+
+void AbstractTwoPointTool::textChanged(const CaptureContext &context) {
+ Q_UNUSED(context);
+}
diff --git a/src/tools/abstracttwopointtool.h b/src/tools/abstracttwopointtool.h
index 65ee630..4c684d2 100755
--- a/src/tools/abstracttwopointtool.h
+++ b/src/tools/abstracttwopointtool.h
@@ -39,6 +39,7 @@ public slots:
void drawMoveWithAdjustment(const QPoint &p) override;
void colorChanged(const QColor &c) override;
void thicknessChanged(const int th) override;
+ void textChanged(const CaptureContext &context) override;
protected:
void updateBackup(const QPixmap &pixmap);
diff --git a/src/tools/capturetool.h b/src/tools/capturetool.h
index f1eff27..8531aeb 100755
--- a/src/tools/capturetool.h
+++ b/src/tools/capturetool.h
@@ -191,7 +191,7 @@ public slots:
virtual void colorChanged(const QColor &c) = 0;
// Called when the thickness of the tool is updated in the editor.
virtual void thicknessChanged(const int th) = 0;
-
+ virtual void textChanged(const CaptureContext &context) = 0;
#ifdef ENABLE_RECORD
virtual void pressCalled() {
m_isPressed = !m_isPressed;
diff --git a/src/tools/text/texttool.cpp b/src/tools/text/texttool.cpp
index 43ac557..b70889e 100755
--- a/src/tools/text/texttool.cpp
+++ b/src/tools/text/texttool.cpp
@@ -201,6 +201,17 @@ void TextTool::thicknessChanged(const int th) {
}
}
+void TextTool::textChanged(const CaptureContext &context)
+{
+ m_font.setUnderline(context.underline);
+ m_font.setStrikeOut(context.deleteline);
+ m_font.setItalic(context.italic);
+ m_font.setBold(context.bold);
+ if (m_widget) {
+ m_widget->setFont(m_font);
+ }
+}
+
void TextTool::updateText(const QString &s) {
m_text = s;
}
diff --git a/src/tools/text/texttool.h b/src/tools/text/texttool.h
index 8981bff..c97a87e 100755
--- a/src/tools/text/texttool.h
+++ b/src/tools/text/texttool.h
@@ -58,6 +58,7 @@ public slots:
void pressed(const CaptureContext &context) override;
void colorChanged(const QColor &c) override;
void thicknessChanged(const int th) override;
+ void textChanged(const CaptureContext &context) override;
private slots:
void updateText(const QString &s);
diff --git a/src/widgets/capture/capturewidget.cpp b/src/widgets/capture/capturewidget.cpp
index 178d7da..b93e08c 100755
--- a/src/widgets/capture/capturewidget.cpp
+++ b/src/widgets/capture/capturewidget.cpp
@@ -631,6 +631,8 @@ void CaptureWidget::mousePressEvent(QMouseEvent *e) {
m_activeTool, &CaptureTool::thicknessChanged);
connect(m_activeTool, &CaptureTool::requestAction,
this, &CaptureWidget::handleButtonSignal);
+ connect(this,&CaptureWidget::textchanged,
+ m_activeTool, &CaptureTool::textChanged);
m_activeTool->drawStart(m_context);
return;
}
@@ -1266,7 +1268,7 @@ void CaptureWidget::setState(CaptureButton *b) {
new QShortcut(QKeySequence(Qt::SHIFT + Qt::Key_Left), this, SLOT(leftResize()));
new QShortcut(QKeySequence(Qt::SHIFT + Qt::Key_Up), this, SLOT(upResize()));
new QShortcut(QKeySequence(Qt::SHIFT + Qt::Key_Down), this, SLOT(downResize()));
- // new QShortcut(Qt::Key_Space, this, SLOT(togglePanel()));
+ new QShortcut(Qt::Key_Space, this, SLOT(togglePanel()));
new QShortcut(Qt::Key_Escape, this, SLOT(deleteToolwidgetOrClose()));
new QShortcut(Qt::Key_Return, this, SLOT(copyScreenshot()));
new QShortcut(Qt::Key_Enter, this, SLOT(copyScreenshot()));
@@ -1480,19 +1482,22 @@ void CaptureWidget::setState(CaptureButton *b) {
void CaptureWidget::font_bold_clicked(bool b)
{
m_context.bold = b;
+ emit textchanged(m_context);
}
void CaptureWidget::font_delete_clicked(bool b)
{
m_context.deleteline = b;
+ emit textchanged(m_context);
}
void CaptureWidget::font_underline_clicked(bool b)
{
m_context.underline =b;
-
+ emit textchanged(m_context);
}
void CaptureWidget::font_italic_clicked(bool b)
{
m_context.italic =b;
+ emit textchanged(m_context);
}
void CaptureWidget::ClickedSaveType(int i)
{
diff --git a/src/widgets/capture/capturewidget.h b/src/widgets/capture/capturewidget.h
index 1d011d3..ce04f5d 100755
--- a/src/widgets/capture/capturewidget.h
+++ b/src/widgets/capture/capturewidget.h
@@ -88,6 +88,7 @@ signals:
void captureFailed(uint id);
void colorChanged(const QColor &c);
void thicknessChanged(const int thickness);
+ void textchanged(CaptureContext m_context);
private slots:
// TODO replace with tools
--
2.33.0

View File

@ -1,7 +1,7 @@
%define debug_package %{nil}
Name: kylin-screenshot
Version: 1.0.0
Release: 10
Release: 11
Summary: a powerful screenshot and screen recording tool
License: GPL-3.0-or-later and LGPL-3.0-or-later and MIT and Apache-2.0
URL: https://github.com/ubuntukylin
@ -34,6 +34,7 @@ patch3: 0003-change-kylin-screenshot-to-screenshot.patch
patch4: 0004-add-log.patch
patch5: 0005-fixed-wayland-cannot-screenshot-top-widget.patch
patch6: 0006-change-markertool-opacity.patch
patch7: 0007-change-text-property-in-time.patch
%description
Powerful yet simple-to-use screenshot software
@ -52,6 +53,7 @@ patch6: 0006-change-markertool-opacity.patch
%patch4 -p1
%patch5 -p1
%patch6 -p1
%patch7 -p1
%build
%{qmake_qt5} %{_qt5_qmake_flags} CONFIG+=enable-by-default kylin-screenshot.pro
@ -102,6 +104,9 @@ rm -rf $RPM_BUILD_ROOT
%{_datadir}/metainfo/kylinscreenshot.appdata.xml
%changelog
* Wed Jun 29 2022 peijiankang <peijiankang@kylinos.cn> - 1.0.0-11
- change text property in time
* Tue Jun 28 2022 peijiankang <peijiankang@kylinos.cn> - 1.0.0-10
- change markertool opacity