summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGregor Mi <[email protected]>2018-02-15 10:04:23 +0100
committerGregor Mi <[email protected]>2018-02-15 10:09:03 +0100
commit45c37a64e1cc9f683ee51bdf6398db89fc241b23 (patch)
tree7279608409e821329d40bd7010477619920619f6
parent7034b50c5c9ef9c97ec0b7741f3667a93d9a567a (diff)
Add new button "Record screen" that allows to select a Screen Recording tool
Summary: Adds a new button "Record screen" that allows to select a screen recording tool, currently Peek and SimpleScreenRecorder (and soon vokoscreen: https://phabricator.kde.org/D10390) {F5698788} Moved from Reviewboard: https://git.reviewboard.kde.org/r/130215/ Reviewers: ngraham, #spectacle, rkflx Reviewed By: ngraham, #spectacle, rkflx Subscribers: rkflx Maniphest Tasks: T7841 Differential Revision: https://phabricator.kde.org/D10295
-rw-r--r--CMakeLists.txt1
-rw-r--r--doc/index.docbook22
-rw-r--r--src/CMakeLists.txt1
-rw-r--r--src/Gui/KSMainWindow.cpp9
-rw-r--r--src/Gui/KSMainWindow.h4
5 files changed, 30 insertions, 7 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 3a640df..5cae6ee 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -56,6 +56,7 @@ find_package(
WindowSystem
DocTools
Declarative
+ NewStuff
)
add_definitions(-DQT_NO_URL_CAST_FROM_STRING)
diff --git a/doc/index.docbook b/doc/index.docbook
index b0af19f..e3d87a5 100644
--- a/doc/index.docbook
+++ b/doc/index.docbook
@@ -189,31 +189,39 @@
<sect1>
<title>Buttons</title>
- <para>There are six buttons located at the bottom of the &spectacle; window. Their functions are described below:</para>
+ <para>There are some buttons located at the bottom of the &spectacle; window. Their functions are described below:</para>
<variablelist>
<varlistentry>
<term><guibutton>Help</guibutton></term>
<listitem>
- <para>This button gives you the common menu items described in the <ulink url="help:/fundamentals/ui.html#menus-help">Help Menu</ulink> of the &kde; Fundamentals.</para>
+ <para>Gives you the common menu items described in the <ulink url="help:/fundamentals/ui.html#menus-help">Help Menu</ulink> of the &kde; Fundamentals.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><guibutton>Configure...</guibutton></term>
<listitem>
- <para>This button gives you access to Spectacle's Configure window where you can change the capture settings and default save location and filename.</para>
+ <para>Gives you access to Spectacle's Configure window where you can change the capture settings and default save location and filename.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><guibutton>Tools</guibutton></term>
<listitem>
- <para>Clicking on this button shows a drop-down menu, offering access to various functions. You can open the <guimenuitem>Print</guimenuitem> dialog, and <guimenuitem>Open Screenshots Folder</guimenuitem> is a shortcut to highlight the last saved screenshot in the default file manager.</para>
+ <para>Opens a drop-down menu which offers various tools:</para>
+ <itemizedlist>
+ <listitem>
+ <para>the print dialog</para>
+ </listitem>
+ <listitem>
+ <para>a range of external programs for Screen Recording</para>
+ </listitem>
+ </itemizedlist>
</listitem>
</varlistentry>
<varlistentry>
<term><guibutton>Export</guibutton></term>
<listitem>
- <para>This drop-down menu will allow you to directly open the screenshot with all programs that are associated with the PNG (Portable Network Graphics) &MIME; type. Depending on what programs are installed, you will be able to open and edit the snapshot in your graphics applications or viewers.</para>
+ <para>Opens a drop-down menu that will allow you to directly open the screenshot with all programs that are associated with the PNG (Portable Network Graphics) &MIME; type. Depending on what programs are installed, you will be able to open and edit the snapshot in your graphics applications or viewers.</para>
<para>Furthermore, if you have the <application>KIPI Plugins</application> installed, you will be able to email your screenshots and export them directly to some social networks and websites.</para>
</listitem>
@@ -221,13 +229,13 @@
<varlistentry>
<term><guibutton>Copy To Clipboard</guibutton></term>
<listitem>
- <para>This button copies the current screenshot to the clipboard. You can also use the <keycombo action="simul">&Ctrl;<keycap>C</keycap></keycombo> keyboard shortcut for this.</para>
+ <para>Copies the current screenshot to the clipboard. You can also use the <keycombo action="simul">&Ctrl;<keycap>C</keycap></keycombo> keyboard shortcut for this.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><guibutton>Save As</guibutton></term>
<listitem>
- <para>Clicking this button saves the screenshot as a PNG image to a location of your choosing. Clicking on the arrow on the side will expose the other save mode, <guimenuitem>Save</guimenuitem>, which will save the screenshot as a PNG image to the standard location (which defaults to your Pictures folder). By default, the last-used save mode is remembered for next time.</para>
+ <para>Saves the screenshot as a PNG image in your default Pictures folder and immediately exits the application.</para>
</listitem>
</varlistentry>
</variablelist>
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 057da34..71d22ed 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -75,6 +75,7 @@ target_link_libraries(
KF5::WindowSystem
KF5::XmlGui
KF5::Declarative
+ KF5::NewStuff
)
if(XCB_FOUND)
diff --git a/src/Gui/KSMainWindow.cpp b/src/Gui/KSMainWindow.cpp
index 8c6aa5b..02f8a8a 100644
--- a/src/Gui/KSMainWindow.cpp
+++ b/src/Gui/KSMainWindow.cpp
@@ -41,6 +41,7 @@
#include <KAboutData>
#include <KWindowSystem>
#include <KIO/OpenFileManagerWindowJob>
+#include <KNS3/KMoreToolsMenuFactory>
#include "SettingsDialog/SettingsDialog.h"
#include "ExportMenu.h"
@@ -66,6 +67,7 @@ KSMainWindow::KSMainWindow(bool onClickAvailable, QWidget *parent) :
mSaveAction(new QAction),
mMessageWidget(new KMessageWidget),
mToolsMenu(new QMenu),
+ mScreenRecorderToolsMenu(new QMenu),
mExportMenu(new ExportMenu(this)),
mOnClickAvailable(onClickAvailable)
{
@@ -150,6 +152,13 @@ void KSMainWindow::init()
KGuiItem::assign(mToolsButton, KGuiItem(i18n("Tools")));
mToolsButton->setIcon(QIcon::fromTheme(QStringLiteral("application-menu")));
mDialogButtonBox->addButton(mToolsButton, QDialogButtonBox::ActionRole);
+ mScreenRecorderToolsMenu = mToolsMenu->addMenu(i18n("Record Screen"));
+ connect(mScreenRecorderToolsMenu, &QMenu::aboutToShow, [this]()
+ {
+ mScreenrecorderToolsMenuFactory.reset(new KMoreToolsMenuFactory(QStringLiteral("spectacle/screenrecorder-tools")));
+ mScreenRecorderToolsMenu->clear();
+ mScreenrecorderToolsMenuFactory->fillMenuFromGroupingNames(mScreenRecorderToolsMenu, { QStringLiteral("screenrecorder") });
+ } );
mToolsButton->setMenu(mToolsMenu);
KGuiItem::assign(mSendToButton, KGuiItem(i18n("Export")));
diff --git a/src/Gui/KSMainWindow.h b/src/Gui/KSMainWindow.h
index 1fb0e1d..0b8086c 100644
--- a/src/Gui/KSMainWindow.h
+++ b/src/Gui/KSMainWindow.h
@@ -33,6 +33,8 @@
#include "KSWidget.h"
#include "SpectacleConfig.h"
+class KMoreToolsMenuFactory;
+
class KSMainWindow : public QDialog
{
Q_OBJECT
@@ -89,6 +91,8 @@ class KSMainWindow : public QDialog
QAction *mSaveAction;
KMessageWidget *mMessageWidget;
QMenu *mToolsMenu;
+ QMenu *mScreenRecorderToolsMenu;
+ QScopedPointer<KMoreToolsMenuFactory> mScreenrecorderToolsMenuFactory;
ExportMenu *mExportMenu;
bool mOnClickAvailable;
};