diff --git a/example/example.qrc b/example/example.qrc
index fff92ff6..fb334397 100644
--- a/example/example.qrc
+++ b/example/example.qrc
@@ -154,7 +154,6 @@
qml/page/T_RatingControl.qml
qml/page/T_Rectangle.qml
qml/page/T_RemoteLoader.qml
- qml/page/T_Screenshot.qml
qml/page/T_Settings.qml
qml/page/T_Slider.qml
qml/page/T_StatusLayout.qml
diff --git a/example/qml-Qt6/global/ItemsOriginal.qml b/example/qml-Qt6/global/ItemsOriginal.qml
index 43a007dc..90aef8f7 100644
--- a/example/qml-Qt6/global/ItemsOriginal.qml
+++ b/example/qml-Qt6/global/ItemsOriginal.qml
@@ -432,12 +432,6 @@ FluObject{
url:"qrc:/example/qml/page/T_Timeline.qml"
onTap:{ navigationView.push(url) }
}
- FluPaneItem{
- title:"Screenshot(Todo)"
- menuDelegate: paneItemMenu
- url:"qrc:/example/qml/page/T_Screenshot.qml"
- onTap:{ navigationView.push(url) }
- }
FluPaneItem{
title:"Captcha"
menuDelegate: paneItemMenu
diff --git a/example/qml-Qt6/page/T_Screenshot.qml b/example/qml-Qt6/page/T_Screenshot.qml
deleted file mode 100644
index a3d71d8c..00000000
--- a/example/qml-Qt6/page/T_Screenshot.qml
+++ /dev/null
@@ -1,57 +0,0 @@
-import QtQuick
-import QtQuick.Layouts
-import QtQuick.Window
-import QtQuick.Controls
-import FluentUI
-import Qt.labs.platform
-import "../component"
-
-FluScrollablePage{
-
- title:"Screenshot"
-
- FluArea{
- Layout.fillWidth: true
- height: 100
- paddings: 10
- Layout.topMargin: 20
-
- FluFilledButton{
- anchors.verticalCenter: parent.verticalCenter
- text:"Open Screenshot"
- onClicked: {
- screenshot.open()
- }
- }
- }
-
- Rectangle{
- Layout.preferredHeight: 400
- Layout.preferredWidth: 400
- Layout.topMargin: 10
- Layout.leftMargin: 4
- Layout.bottomMargin: 4
- radius: 4
- color: FluTheme.dark ? FluColors.Black : FluColors.White
- FluShadow{
- radius: 4
- color: FluTheme.primaryColor
- }
- Image{
- id:image
- anchors.fill: parent
- fillMode: Image.PreserveAspectFit
- asynchronous: true
- }
- }
-
- FluScreenshot{
- id:screenshot
- captrueMode: FluScreenshotType.File
- saveFolder: StandardPaths.writableLocation(StandardPaths.AppLocalDataLocation)+"/screenshot"
- onCaptrueCompleted:
- (captrue)=>{
- image.source = captrue
- }
- }
-}
diff --git a/example/qml/global/ItemsOriginal.qml b/example/qml/global/ItemsOriginal.qml
index 0705aa66..2dc61230 100644
--- a/example/qml/global/ItemsOriginal.qml
+++ b/example/qml/global/ItemsOriginal.qml
@@ -432,12 +432,6 @@ FluObject{
url:"qrc:/example/qml/page/T_Timeline.qml"
onTap:{ navigationView.push(url) }
}
- FluPaneItem{
- title:"Screenshot(Todo)"
- menuDelegate: paneItemMenu
- url:"qrc:/example/qml/page/T_Screenshot.qml"
- onTap:{ navigationView.push(url) }
- }
FluPaneItem{
title:"Captcha"
menuDelegate: paneItemMenu
diff --git a/example/qml/page/T_Screenshot.qml b/example/qml/page/T_Screenshot.qml
deleted file mode 100644
index 0ac58d93..00000000
--- a/example/qml/page/T_Screenshot.qml
+++ /dev/null
@@ -1,57 +0,0 @@
-import QtQuick 2.15
-import QtQuick.Layouts 1.15
-import QtQuick.Window 2.15
-import QtQuick.Controls 2.15
-import FluentUI 1.0
-import Qt.labs.platform 1.0
-import "../component"
-
-FluScrollablePage{
-
- title:"Screenshot"
-
- FluArea{
- Layout.fillWidth: true
- height: 100
- paddings: 10
- Layout.topMargin: 20
-
- FluFilledButton{
- anchors.verticalCenter: parent.verticalCenter
- text:"Open Screenshot"
- onClicked: {
- screenshot.open()
- }
- }
- }
-
- Rectangle{
- Layout.preferredHeight: 400
- Layout.preferredWidth: 400
- Layout.topMargin: 10
- Layout.leftMargin: 4
- Layout.bottomMargin: 4
- radius: 4
- color: FluTheme.dark ? FluColors.Black : FluColors.White
- FluShadow{
- radius: 4
- color: FluTheme.primaryColor
- }
- Image{
- id:image
- anchors.fill: parent
- fillMode: Image.PreserveAspectFit
- asynchronous: true
- }
- }
-
- FluScreenshot{
- id:screenshot
- captrueMode: FluScreenshotType.File
- saveFolder: StandardPaths.writableLocation(StandardPaths.AppLocalDataLocation)+"/screenshot"
- onCaptrueCompleted:
- (captrue)=>{
- image.source = captrue
- }
- }
-}
diff --git a/src/Def.h b/src/Def.h
index dd7e0797..1ede0054 100644
--- a/src/Def.h
+++ b/src/Def.h
@@ -26,16 +26,6 @@ Q_ENUM_NS(CacheMode)
QML_NAMED_ELEMENT(FluNetworkType)
}
-namespace FluScreenshotType {
-Q_NAMESPACE
-enum CaptrueMode {
- Pixmap = 0x0000,
- File = 0x0001,
-};
-Q_ENUM_NS(CaptrueMode)
-QML_NAMED_ELEMENT(FluScreenshotType)
-}
-
namespace FluThemeType {
Q_NAMESPACE
enum DarkMode {
diff --git a/src/FluFramelessHelper.cpp b/src/FluFramelessHelper.cpp
index 71b19a76..3d9ba182 100644
--- a/src/FluFramelessHelper.cpp
+++ b/src/FluFramelessHelper.cpp
@@ -257,7 +257,7 @@ void FluFramelessHelper::componentComplete(){
_realWidth = QQmlProperty(window,"_realWidth");
_appBarHeight = QQmlProperty(window,"_appBarHeight");
#ifdef Q_OS_WIN
- window->setFlag(Qt::CustomizeWindowHint,true);
+ window->setFlags((window->flags()) | Qt::CustomizeWindowHint | Qt::WindowMinimizeButtonHint);
_nativeEvent =new FramelessEventFilter(this);
qApp->installNativeEventFilter(_nativeEvent);
HWND hwnd = reinterpret_cast(window->winId());
@@ -272,6 +272,15 @@ void FluFramelessHelper::componentComplete(){
SetWindowLongPtr(hwnd, GWL_EXSTYLE, exstyle);
SetLayeredWindowAttributes(hwnd, RGB(251, 255, 242), 0, LWA_COLORKEY);
SetWindowPos(hwnd,nullptr,0,0,0,0,SWP_NOZORDER | SWP_NOOWNERZORDER | SWP_NOMOVE | SWP_NOSIZE | SWP_FRAMECHANGED);
+ connect(window,&QQuickWindow::activeChanged,this,[this,hwnd]{
+ if(this->window->isActive()){
+ LONG exstyle = ::GetWindowLong(hwnd, GWL_EXSTYLE);
+ if(exstyle & WS_EX_LAYERED){
+ exstyle = exstyle &~ WS_EX_LAYERED;
+ SetWindowLongPtr(hwnd, GWL_EXSTYLE, exstyle);
+ }
+ }
+ });
#else
window->setFlags((window->flags() & (~Qt::WindowMinMaxButtonsHint) & (~Qt::Dialog)) | Qt::FramelessWindowHint | Qt::Window);
#endif
diff --git a/src/FluentUI.cpp b/src/FluentUI.cpp
index 17baf13b..da76f39d 100644
--- a/src/FluentUI.cpp
+++ b/src/FluentUI.cpp
@@ -13,7 +13,6 @@
#include "FluEventBus.h"
#include "FluTreeModel.h"
#include "FluViewModel.h"
-#include "Screenshot.h"
#include "FluRectangle.h"
#include "FluNetwork.h"
#include "FluFramelessHelper.h"
@@ -32,8 +31,6 @@ void FluentUI::registerTypes(const char *uri){
qmlRegisterType(uri,major,minor,"QRCode");
qmlRegisterType(uri,major,minor,"FluCaptcha");
qmlRegisterType(uri,major,minor,"FluWatermark");
- qmlRegisterType(uri,major,minor,"ScreenshotBackground");
- qmlRegisterType(uri,major,minor,"Screenshot");
qmlRegisterType(uri,major,minor,"FluColorSet");
qmlRegisterType(uri,major,minor,"FluEvent");
qmlRegisterType(uri,major,minor,"FluViewModel");
@@ -107,7 +104,6 @@ void FluentUI::registerTypes(const char *uri){
qmlRegisterType(QUrl("qrc:/qt/qml/FluentUI/Controls/FluRadioButtons.qml"),uri,major,minor,"FluRadioButtons");
qmlRegisterType(QUrl("qrc:/qt/qml/FluentUI/Controls/FluRatingControl.qml"),uri,major,minor,"FluRatingControl");
qmlRegisterType(QUrl("qrc:/qt/qml/FluentUI/Controls/FluRemoteLoader.qml"),uri,major,minor,"FluRemoteLoader");
- qmlRegisterType(QUrl("qrc:/qt/qml/FluentUI/Controls/FluScreenshot.qml"),uri,major,minor,"FluScreenshot");
qmlRegisterType(QUrl("qrc:/qt/qml/FluentUI/Controls/FluScrollBar.qml"),uri,major,minor,"FluScrollBar");
qmlRegisterType(QUrl("qrc:/qt/qml/FluentUI/Controls/FluScrollIndicator.qml"),uri,major,minor,"FluScrollIndicator");
qmlRegisterType(QUrl("qrc:/qt/qml/FluentUI/Controls/FluScrollablePage.qml"),uri,major,minor,"FluScrollablePage");
@@ -151,7 +147,6 @@ void FluentUI::registerTypes(const char *uri){
qmlRegisterUncreatableMetaObject(FluTabViewType::staticMetaObject, uri,major,minor,"FluTabViewType", "Access to enums & flags only");
qmlRegisterUncreatableMetaObject(FluNavigationViewType::staticMetaObject, uri,major,minor,"FluNavigationViewType", "Access to enums & flags only");
qmlRegisterUncreatableMetaObject(FluTimelineType::staticMetaObject, uri,major,minor,"FluTimelineType", "Access to enums & flags only");
- qmlRegisterUncreatableMetaObject(FluScreenshotType::staticMetaObject, uri,major,minor,"FluScreenshotType", "Access to enums & flags only");
qmlRegisterUncreatableMetaObject(FluViewModelType::staticMetaObject, uri,major,minor,"FluViewModelType", "Access to enums & flags only");
qmlRegisterUncreatableMetaObject(FluNetworkType::staticMetaObject, uri,major,minor,"FluNetworkType", "Access to enums & flags only");
diff --git a/src/Qt5/imports/FluentUI/Controls/FluScreenshot.qml b/src/Qt5/imports/FluentUI/Controls/FluScreenshot.qml
deleted file mode 100644
index 47bd2751..00000000
--- a/src/Qt5/imports/FluentUI/Controls/FluScreenshot.qml
+++ /dev/null
@@ -1,523 +0,0 @@
-import QtQuick 2.15
-import QtQuick.Window 2.15
-import QtQuick.Controls 2.15
-import QtQuick.Layouts 1.15
-import Qt.labs.platform 1.1
-import FluentUI 1.0
-
-Item{
- id:control
- property int captrueMode: FluScreenshotType.Pixmap
- property int dotSize: 5
- property int borderSize: 1
- property var saveFolder: StandardPaths.standardLocations(StandardPaths.PicturesLocation)[0]
- property color borderColor: FluTheme.primaryColor
- signal captrueCompleted(var captrue)
- QtObject{
- id:d
- property int dotMouseSize: control.dotSize+10
- property int dotMargins: -(control.dotSize-control.borderSize)/2
- property bool enablePosition: false
- property int menuMargins: 6
- }
- Loader {
- id:loader
- }
- Component{
- id:com_screen
- Window{
- property bool isZeroPos: screenshot.start.x === 0 && screenshot.start.y === 0 && screenshot.end.x === 0 && screenshot.end.y === 0
- id:window_screen
- flags: Qt.FramelessWindowHint | Qt.WindowStaysOnTopHint
- x:-1
- y:-1
- width: 1
- height: 1
- visible: true
- color: "#00000000"
- onVisibleChanged: {
- if(!window_screen.visible){
- loader.sourceComponent = undefined
- }
- }
- Component.onCompleted: {
- setGeometry(0,0,screenshot_background.width,screenshot_background.height+1)
- }
- ScreenshotBackground{
- id:screenshot_background
- captureMode:control.captrueMode
- saveFolder: {
- if(typeof control.saveFolder === 'string'){
- return FluTools.toLocalPath(Qt.resolvedUrl(control.saveFolder))
- }else{
- return FluTools.toLocalPath(control.saveFolder)
- }
- }
- onCaptrueToPixmapCompleted:
- (captrue)=>{
- control.captrueCompleted(captrue)
- loader.sourceComponent = undefined
- }
- onCaptrueToFileCompleted:
- (captrue)=>{
- control.captrueCompleted(captrue)
- loader.sourceComponent = undefined
- }
- }
- Screenshot{
- id:screenshot
- anchors.fill: parent
- }
- MouseArea{
- anchors.fill: parent
- acceptedButtons: Qt.RightButton | Qt.LeftButton
- onPressed:
- (mouse)=>{
- if(mouse.button === Qt.LeftButton){
- d.enablePosition = true
- screenshot.start = Qt.point(mouse.x,mouse.y)
- screenshot.end = Qt.point(mouse.x,mouse.y)
- }
- }
- onPositionChanged:
- (mouse)=>{
- if(d.enablePosition){
- screenshot.end = Qt.point(mouse.x,mouse.y)
- }
- }
- onReleased:
- (mouse)=>{
- if(mouse.button === Qt.LeftButton){
- d.enablePosition = false
- screenshot.end = Qt.point(mouse.x,mouse.y)
- }
- }
- onCanceled:
- (mouse)=>{
- if(mouse.button === Qt.LeftButton){
- d.enablePosition = false
- screenshot.end = Qt.point(mouse.x,mouse.y)
- }
- }
- onClicked:
- (mouse)=>{
- if (mouse.button === Qt.RightButton){
- if(isZeroPos){
- loader.sourceComponent = undefined
- return
- }
- screenshot.start = Qt.point(0,0)
- screenshot.end = Qt.point(0,0)
- }
- }
- }
- Rectangle{
- id:rect_capture
- x:Math.min(screenshot.start.x,screenshot.end.x)
- y:Math.min(screenshot.start.y,screenshot.end.y)
- width: Math.abs(screenshot.end.x - screenshot.start.x)
- height: Math.abs(screenshot.end.y - screenshot.start.y)
- color:"#00000000"
- border.width: control.borderSize
- border.color: control.borderColor
- MouseArea{
- property point clickPos: Qt.point(0,0)
- anchors.fill: parent
- cursorShape: d.isEdit ? Qt.ArrowCursor : Qt.SizeAllCursor
- onPressed:
- (mouse)=>{
- clickPos = Qt.point(mouse.x, mouse.y)
- }
- onPositionChanged:
- (mouse)=>{
- var delta = Qt.point(mouse.x - clickPos.x,mouse.y - clickPos.y)
- var w = Math.abs(screenshot.end.x - screenshot.start.x)
- var h = Math.abs(screenshot.end.y - screenshot.start.y)
- var x = Math.min(Math.max(rect_capture.x + delta.x,0),window_screen.width-w)
- var y = Math.min(Math.max(rect_capture.y + delta.y,0),window_screen.height-h)
- screenshot.start = Qt.point(x,y)
- screenshot.end = Qt.point(x+w,y+h)
- }
- }
- }
- Rectangle{
- id:rect_top_left
- width: control.dotSize
- height: control.dotSize
- color: control.borderColor
- visible: !isZeroPos
- anchors{
- left: rect_capture.left
- leftMargin: d.dotMargins
- topMargin: d.dotMargins
- top: rect_capture.top
- }
- }
- MouseArea{
- cursorShape: Qt.SizeFDiagCursor
- anchors.centerIn: rect_top_left
- width: d.dotMouseSize
- height: d.dotMouseSize
- visible: !isZeroPos
- onPressed:
- (mouse)=> {
- FluTools.setOverrideCursor(cursorShape)
- var x = rect_capture.x
- var y = rect_capture.y
- var w = rect_capture.width
- var h = rect_capture.height
- screenshot.start = Qt.point(x+w,y+h)
- screenshot.end = Qt.point(x,y)
- }
- onReleased:
- (mouse)=> {
- FluTools.restoreOverrideCursor()
- }
- onPositionChanged:
- (mouse)=> {
- screenshot.end = mapToItem(screenshot,Qt.point(mouse.x,mouse.y))
- }
- onCanceled:
- (mouse)=> {
- FluTools.restoreOverrideCursor()
- }
- }
- Rectangle{
- id:rect_top_center
- width: control.dotSize
- height: control.dotSize
- color: control.borderColor
- visible: !isZeroPos
- anchors{
- horizontalCenter: rect_capture.horizontalCenter
- topMargin: d.dotMargins
- top: rect_capture.top
- }
- }
- MouseArea{
- cursorShape: Qt.SizeVerCursor
- anchors.centerIn: rect_top_center
- width: d.dotMouseSize
- height: d.dotMouseSize
- visible: !isZeroPos
- onPressed:
- (mouse)=> {
- FluTools.setOverrideCursor(cursorShape)
- var x = rect_capture.x
- var y = rect_capture.y
- var w = rect_capture.width
- var h = rect_capture.height
- screenshot.start = Qt.point(x+w,y+h)
- screenshot.end = Qt.point(x,y)
- }
- onReleased:
- (mouse)=> {
- FluTools.restoreOverrideCursor()
- }
- onPositionChanged:
- (mouse)=> {
- var x = rect_capture.x
- screenshot.end = Qt.point(x,mapToItem(screenshot,Qt.point(mouse.x,mouse.y)).y)
- }
- onCanceled:
- (mouse)=> {
- FluTools.restoreOverrideCursor()
- }
- }
- Rectangle{
- id:rect_top_right
- width: control.dotSize
- height: control.dotSize
- color: control.borderColor
- visible: !isZeroPos
- anchors{
- right: rect_capture.right
- rightMargin: d.dotMargins
- topMargin: d.dotMargins
- top: rect_capture.top
- }
- }
- MouseArea{
- cursorShape: Qt.SizeBDiagCursor
- anchors.centerIn: rect_top_right
- width: d.dotMouseSize
- height: d.dotMouseSize
- visible: !isZeroPos
- onPressed:
- (mouse)=> {
- var x = rect_capture.x
- var y = rect_capture.y
- var w = rect_capture.width
- var h = rect_capture.height
- screenshot.start = Qt.point(x,y+h)
- screenshot.end = Qt.point(x+w,y)
- }
- onReleased:
- (mouse)=> {
- FluTools.restoreOverrideCursor()
- }
- onPositionChanged:
- (mouse)=> {
- screenshot.end = mapToItem(screenshot,Qt.point(mouse.x,mouse.y))
- }
- onCanceled:
- (mouse)=> {
- FluTools.restoreOverrideCursor()
- }
- }
- Rectangle{
- id:rect_right_center
- width: control.dotSize
- height: control.dotSize
- color: control.borderColor
- visible: !isZeroPos
- anchors{
- right: rect_capture.right
- rightMargin: d.dotMargins
- verticalCenter: rect_capture.verticalCenter
- }
- }
- MouseArea{
- cursorShape: Qt.SizeHorCursor
- anchors.centerIn: rect_right_center
- width: d.dotMouseSize
- height: d.dotMouseSize
- visible: !isZeroPos
- onPressed:
- (mouse)=> {
- var x = rect_capture.x
- var y = rect_capture.y
- var w = rect_capture.width
- var h = rect_capture.height
- screenshot.start = Qt.point(x,y)
- screenshot.end = Qt.point(x+w,y+h)
- }
- onReleased:
- (mouse)=> {
- FluTools.restoreOverrideCursor()
- }
- onPositionChanged:
- (mouse)=> {
- var y = rect_capture.y
- var h = rect_capture.height
- screenshot.end = Qt.point(mapToItem(screenshot,Qt.point(mouse.x,mouse.y)).x,y+h)
- }
- onCanceled:
- (mouse)=> {
- FluTools.restoreOverrideCursor()
- }
- }
- Rectangle{
- id:rect_right_bottom
- width: control.dotSize
- height: control.dotSize
- color: control.borderColor
- visible: !isZeroPos
- anchors{
- right: rect_capture.right
- rightMargin: d.dotMargins
- bottom: rect_capture.bottom
- bottomMargin: d.dotMargins
- }
- }
- MouseArea{
- cursorShape: Qt.SizeFDiagCursor
- anchors.centerIn: rect_right_bottom
- width: d.dotMouseSize
- height: d.dotMouseSize
- visible: !isZeroPos
- onPressed:
- (mouse)=> {
- var x = rect_capture.x
- var y = rect_capture.y
- var w = rect_capture.width
- var h = rect_capture.height
- screenshot.start = Qt.point(x,y)
- screenshot.end = Qt.point(x+w,y+h)
- }
- onReleased:
- (mouse)=> {
- FluTools.restoreOverrideCursor()
- }
- onPositionChanged:
- (mouse)=> {
- screenshot.end = mapToItem(screenshot,Qt.point(mouse.x,mouse.y))
- }
- onCanceled:
- (mouse)=> {
- FluTools.restoreOverrideCursor()
- }
- }
- Rectangle{
- id:rect_bottom_center
- width: control.dotSize
- height: control.dotSize
- color: control.borderColor
- visible: !isZeroPos
- anchors{
- horizontalCenter: rect_capture.horizontalCenter
- bottom: rect_capture.bottom
- bottomMargin: d.dotMargins
- }
- }
- MouseArea{
- cursorShape: Qt.SizeVerCursor
- anchors.centerIn: rect_bottom_center
- width: d.dotMouseSize
- height: d.dotMouseSize
- visible: !isZeroPos
- onPressed:
- (mouse)=> {
- var x = rect_capture.x
- var y = rect_capture.y
- var w = rect_capture.width
- var h = rect_capture.height
- screenshot.start = Qt.point(x,y)
- screenshot.end = Qt.point(x+w,y+h)
- }
- onReleased:
- (mouse)=> {
- FluTools.restoreOverrideCursor()
- }
- onPositionChanged:
- (mouse)=> {
- var x = rect_capture.x
- var w = rect_capture.width
- screenshot.end = Qt.point(x+w,mapToItem(screenshot,Qt.point(mouse.x,mouse.y)).y)
- }
- onCanceled:
- (mouse)=> {
- FluTools.restoreOverrideCursor()
- }
- }
- Rectangle{
- id:rect_bottom_left
- width: control.dotSize
- height: control.dotSize
- color: control.borderColor
- visible: !isZeroPos
- anchors{
- left: rect_capture.left
- leftMargin: d.dotMargins
- bottom: rect_capture.bottom
- bottomMargin: d.dotMargins
- }
- }
- MouseArea{
- cursorShape: Qt.SizeBDiagCursor
- anchors.centerIn: rect_bottom_left
- width: d.dotMouseSize
- height: d.dotMouseSize
- visible: !isZeroPos
- onPressed:
- (mouse)=> {
- var x = rect_capture.x
- var y = rect_capture.y
- var w = rect_capture.width
- var h = rect_capture.height
- screenshot.start = Qt.point(x+w,y)
- screenshot.end = Qt.point(x,y+h)
- }
- onReleased:
- (mouse)=> {
- FluTools.restoreOverrideCursor()
- }
- onPositionChanged:
- (mouse)=> {
- screenshot.end = mapToItem(screenshot,Qt.point(mouse.x,mouse.y))
- }
- onCanceled:
- (mouse)=> {
- FluTools.restoreOverrideCursor()
- }
- }
- Rectangle{
- id:rect_left_center
- width: control.dotSize
- height: control.dotSize
- color: control.borderColor
- visible: !isZeroPos
- anchors{
- left: rect_capture.left
- leftMargin: d.dotMargins
- verticalCenter: rect_capture.verticalCenter
- }
- }
- MouseArea{
- cursorShape: Qt.SizeHorCursor
- anchors.centerIn: rect_left_center
- width: d.dotMouseSize
- height: d.dotMouseSize
- visible: !isZeroPos
- onPressed:
- (mouse)=> {
- var x = rect_capture.x
- var y = rect_capture.y
- var w = rect_capture.width
- var h = rect_capture.height
- screenshot.start = Qt.point(x+w,y)
- screenshot.end = Qt.point(x,y+h)
- }
- onReleased:
- (mouse)=> {
- FluTools.restoreOverrideCursor()
- }
- onPositionChanged:
- (mouse)=> {
- var y = rect_capture.y
- var h = rect_capture.height
- screenshot.end = Qt.point(mapToItem(screenshot,Qt.point(mouse.x,mouse.y)).x,y+h)
- }
- onCanceled:
- (mouse)=> {
- FluTools.restoreOverrideCursor()
- }
- }
- Pane{
- width: 100
- height: 40
- visible: {
- if(isZeroPos){
- return false
- }
- if(d.enablePosition){
- return false
- }
- return true
- }
- x:rect_capture.x + rect_capture.width - width
- y:{
- if(rect_capture.y + rect_capture.height + d.menuMargins < screenshot.height-height){
- return rect_capture.y + rect_capture.height + d.menuMargins
- }else if(rect_capture.y - height - d.menuMargins > 0){
- return rect_capture.y - height - d.menuMargins
- }else{
- screenshot.height - height - d.menuMargins
- }
- }
- RowLayout{
- anchors.verticalCenter: parent.verticalCenter
- anchors.right: parent.right
- FluIconButton{
- iconSource: FluentIcons.Cancel
- iconSize: 18
- iconColor: Qt.rgba(247/255,75/255,77/255,1)
- onClicked: {
- loader.sourceComponent = undefined
- }
- }
- FluIconButton{
- iconSource: FluentIcons.AcceptMedium
- iconColor: FluTheme.primaryColor
- onClicked: {
- screenshot_background.capture(screenshot.start,screenshot.end)
- }
- }
- }
- }
- }
- }
- function open(){
- loader.sourceComponent = com_screen
- }
-}
diff --git a/src/Qt5/imports/FluentUI/plugins.qmltypes b/src/Qt5/imports/FluentUI/plugins.qmltypes
index 09c5455f..8635b3e2 100644
--- a/src/Qt5/imports/FluentUI/plugins.qmltypes
+++ b/src/Qt5/imports/FluentUI/plugins.qmltypes
@@ -144,19 +144,6 @@ Module {
Property { name: "color"; type: "QColor" }
Property { name: "radius"; type: "QList" }
}
- Component {
- name: "FluScreenshotType"
- exports: ["FluentUI/FluScreenshotType 1.0"]
- isCreatable: false
- exportMetaObjectRevisions: [0]
- Enum {
- name: "CaptrueMode"
- values: {
- "Pixmap": 0,
- "File": 1
- }
- }
- }
Component {
name: "FluStatusLayoutType"
exports: ["FluentUI/FluStatusLayoutType 1.0"]
@@ -2168,38 +2155,6 @@ Module {
Property { name: "bgColor"; type: "QColor" }
Property { name: "size"; type: "int" }
}
- Component {
- name: "Screenshot"
- defaultProperty: "data"
- prototype: "QQuickPaintedItem"
- exports: ["FluentUI/Screenshot 1.0"]
- exportMetaObjectRevisions: [0]
- Property { name: "start"; type: "QPoint" }
- Property { name: "end"; type: "QPoint" }
- Property { name: "maskColor"; type: "QColor" }
- }
- Component {
- name: "ScreenshotBackground"
- defaultProperty: "data"
- prototype: "QQuickPaintedItem"
- exports: ["FluentUI/ScreenshotBackground 1.0"]
- exportMetaObjectRevisions: [0]
- Property { name: "saveFolder"; type: "string" }
- Property { name: "captureMode"; type: "int" }
- Signal {
- name: "captrueToPixmapCompleted"
- Parameter { name: "captrue"; type: "QPixmap" }
- }
- Signal {
- name: "captrueToFileCompleted"
- Parameter { name: "captrue"; type: "QUrl" }
- }
- Method {
- name: "capture"
- Parameter { name: "start"; type: "QPoint" }
- Parameter { name: "end"; type: "QPoint" }
- }
- }
Component {
name: "WindowLifecycle"
prototype: "QObject"
@@ -3017,15 +2972,15 @@ Module {
defaultProperty: "data"
Property { name: "logo"; type: "QUrl" }
Property { name: "title"; type: "string" }
- Property { name: "items"; type: "FluObject_QMLTYPE_159"; isPointer: true }
- Property { name: "footerItems"; type: "FluObject_QMLTYPE_159"; isPointer: true }
+ Property { name: "items"; type: "FluObject_QMLTYPE_156"; isPointer: true }
+ Property { name: "footerItems"; type: "FluObject_QMLTYPE_156"; isPointer: true }
Property { name: "displayMode"; type: "int" }
Property { name: "autoSuggestBox"; type: "QQmlComponent"; isPointer: true }
Property { name: "actionItem"; type: "QQmlComponent"; isPointer: true }
Property { name: "topPadding"; type: "int" }
Property { name: "pageMode"; type: "int" }
- Property { name: "navItemRightMenu"; type: "FluMenu_QMLTYPE_47"; isPointer: true }
- Property { name: "navItemExpanderRightMenu"; type: "FluMenu_QMLTYPE_47"; isPointer: true }
+ Property { name: "navItemRightMenu"; type: "FluMenu_QMLTYPE_49"; isPointer: true }
+ Property { name: "navItemExpanderRightMenu"; type: "FluMenu_QMLTYPE_49"; isPointer: true }
Property { name: "navCompactWidth"; type: "int" }
Property { name: "navTopMargin"; type: "int" }
Property { name: "cellHeight"; type: "int" }
@@ -3274,6 +3229,7 @@ Module {
exportMetaObjectRevisions: [0]
isComposite: true
defaultProperty: "data"
+ Property { name: "duration"; type: "int" }
Property { name: "strokeWidth"; type: "double" }
Property { name: "progressVisible"; type: "bool" }
Property { name: "color"; type: "QColor" }
@@ -3371,24 +3327,6 @@ Module {
Method { name: "showEmptyView"; type: "QVariant" }
Method { name: "showErrorView"; type: "QVariant" }
}
- Component {
- prototype: "QQuickItem"
- name: "FluentUI/FluScreenshot 1.0"
- exports: ["FluentUI/FluScreenshot 1.0"]
- exportMetaObjectRevisions: [0]
- isComposite: true
- defaultProperty: "data"
- Property { name: "captrueMode"; type: "int" }
- Property { name: "dotSize"; type: "int" }
- Property { name: "borderSize"; type: "int" }
- Property { name: "saveFolder"; type: "QVariant" }
- Property { name: "borderColor"; type: "QColor" }
- Signal {
- name: "captrueCompleted"
- Parameter { name: "captrue"; type: "QVariant" }
- }
- Method { name: "open"; type: "QVariant" }
- }
Component {
prototype: "QQuickScrollBar"
name: "FluentUI/FluScrollBar 1.0"
diff --git a/src/Qt5/imports/fluentui.qrc b/src/Qt5/imports/fluentui.qrc
index 5e9de1f4..a47cbca3 100644
--- a/src/Qt5/imports/fluentui.qrc
+++ b/src/Qt5/imports/fluentui.qrc
@@ -62,7 +62,6 @@
FluentUI/Controls/FluRangeSlider.qml
FluentUI/Controls/FluRatingControl.qml
FluentUI/Controls/FluRemoteLoader.qml
- FluentUI/Controls/FluScreenshot.qml
FluentUI/Controls/FluScrollablePage.qml
FluentUI/Controls/FluScrollBar.qml
FluentUI/Controls/FluScrollIndicator.qml
diff --git a/src/Qt6/imports/FluentUI/Controls/FluScreenshot.qml b/src/Qt6/imports/FluentUI/Controls/FluScreenshot.qml
deleted file mode 100644
index 7407e04d..00000000
--- a/src/Qt6/imports/FluentUI/Controls/FluScreenshot.qml
+++ /dev/null
@@ -1,523 +0,0 @@
-import QtQuick
-import QtQuick.Controls
-import QtQuick.Controls.Basic
-import QtQuick.Layouts
-import Qt.labs.platform
-import FluentUI
-
-Item{
- id:control
- property int captrueMode: FluScreenshotType.Pixmap
- property int dotSize: 5
- property int borderSize: 1
- property var saveFolder: StandardPaths.standardLocations(StandardPaths.PicturesLocation)[0]
- property color borderColor: FluTheme.primaryColor
- signal captrueCompleted(var captrue)
- QtObject{
- id:d
- property int dotMouseSize: control.dotSize+10
- property int dotMargins: -(control.dotSize-control.borderSize)/2
- property bool enablePosition: false
- property int menuMargins: 6
- }
- Loader {
- id:loader
- }
- Component{
- id:com_screen
- Window{
- property bool isZeroPos: screenshot.start.x === 0 && screenshot.start.y === 0 && screenshot.end.x === 0 && screenshot.end.y === 0
- id:window_screen
- flags: Qt.FramelessWindowHint | Qt.WindowStaysOnTopHint
- x:-1
- y:-1
- width: 1
- height: 1
- visible: true
- color: "#00000000"
- onVisibleChanged: {
- if(!window_screen.visible){
- loader.sourceComponent = undefined
- }
- }
- Component.onCompleted: {
- setGeometry(0,0,screenshot_background.width,screenshot_background.height+1)
- }
- ScreenshotBackground{
- id:screenshot_background
- captureMode:control.captrueMode
- saveFolder: {
- if(typeof control.saveFolder === 'string'){
- return FluTools.toLocalPath(Qt.resolvedUrl(control.saveFolder))
- }else{
- return FluTools.toLocalPath(control.saveFolder)
- }
- }
- onCaptrueToPixmapCompleted:
- (captrue)=>{
- control.captrueCompleted(captrue)
- loader.sourceComponent = undefined
- }
- onCaptrueToFileCompleted:
- (captrue)=>{
- control.captrueCompleted(captrue)
- loader.sourceComponent = undefined
- }
- }
- Screenshot{
- id:screenshot
- anchors.fill: parent
- }
- MouseArea{
- anchors.fill: parent
- acceptedButtons: Qt.RightButton | Qt.LeftButton
- onPressed:
- (mouse)=>{
- if(mouse.button === Qt.LeftButton){
- d.enablePosition = true
- screenshot.start = Qt.point(mouse.x,mouse.y)
- screenshot.end = Qt.point(mouse.x,mouse.y)
- }
- }
- onPositionChanged:
- (mouse)=>{
- if(d.enablePosition){
- screenshot.end = Qt.point(mouse.x,mouse.y)
- }
- }
- onReleased:
- (mouse)=>{
- if(mouse.button === Qt.LeftButton){
- d.enablePosition = false
- screenshot.end = Qt.point(mouse.x,mouse.y)
- }
- }
- onCanceled:
- (mouse)=>{
- if(mouse.button === Qt.LeftButton){
- d.enablePosition = false
- screenshot.end = Qt.point(mouse.x,mouse.y)
- }
- }
- onClicked:
- (mouse)=>{
- if (mouse.button === Qt.RightButton){
- if(isZeroPos){
- loader.sourceComponent = undefined
- return
- }
- screenshot.start = Qt.point(0,0)
- screenshot.end = Qt.point(0,0)
- }
- }
- }
- Rectangle{
- id:rect_capture
- x:Math.min(screenshot.start.x,screenshot.end.x)
- y:Math.min(screenshot.start.y,screenshot.end.y)
- width: Math.abs(screenshot.end.x - screenshot.start.x)
- height: Math.abs(screenshot.end.y - screenshot.start.y)
- color:"#00000000"
- border.width: control.borderSize
- border.color: control.borderColor
- MouseArea{
- property point clickPos: Qt.point(0,0)
- anchors.fill: parent
- cursorShape: d.isEdit ? Qt.ArrowCursor : Qt.SizeAllCursor
- onPressed:
- (mouse)=>{
- clickPos = Qt.point(mouse.x, mouse.y)
- }
- onPositionChanged:
- (mouse)=>{
- var delta = Qt.point(mouse.x - clickPos.x,mouse.y - clickPos.y)
- var w = Math.abs(screenshot.end.x - screenshot.start.x)
- var h = Math.abs(screenshot.end.y - screenshot.start.y)
- var x = Math.min(Math.max(rect_capture.x + delta.x,0),window_screen.width-w)
- var y = Math.min(Math.max(rect_capture.y + delta.y,0),window_screen.height-h)
- screenshot.start = Qt.point(x,y)
- screenshot.end = Qt.point(x+w,y+h)
- }
- }
- }
- Rectangle{
- id:rect_top_left
- width: control.dotSize
- height: control.dotSize
- color: control.borderColor
- visible: !isZeroPos
- anchors{
- left: rect_capture.left
- leftMargin: d.dotMargins
- topMargin: d.dotMargins
- top: rect_capture.top
- }
- }
- MouseArea{
- cursorShape: Qt.SizeFDiagCursor
- anchors.centerIn: rect_top_left
- width: d.dotMouseSize
- height: d.dotMouseSize
- visible: !isZeroPos
- onPressed:
- (mouse)=> {
- FluTools.setOverrideCursor(cursorShape)
- var x = rect_capture.x
- var y = rect_capture.y
- var w = rect_capture.width
- var h = rect_capture.height
- screenshot.start = Qt.point(x+w,y+h)
- screenshot.end = Qt.point(x,y)
- }
- onReleased:
- (mouse)=> {
- FluTools.restoreOverrideCursor()
- }
- onPositionChanged:
- (mouse)=> {
- screenshot.end = mapToItem(screenshot,Qt.point(mouse.x,mouse.y))
- }
- onCanceled:
- (mouse)=> {
- FluTools.restoreOverrideCursor()
- }
- }
- Rectangle{
- id:rect_top_center
- width: control.dotSize
- height: control.dotSize
- color: control.borderColor
- visible: !isZeroPos
- anchors{
- horizontalCenter: rect_capture.horizontalCenter
- topMargin: d.dotMargins
- top: rect_capture.top
- }
- }
- MouseArea{
- cursorShape: Qt.SizeVerCursor
- anchors.centerIn: rect_top_center
- width: d.dotMouseSize
- height: d.dotMouseSize
- visible: !isZeroPos
- onPressed:
- (mouse)=> {
- FluTools.setOverrideCursor(cursorShape)
- var x = rect_capture.x
- var y = rect_capture.y
- var w = rect_capture.width
- var h = rect_capture.height
- screenshot.start = Qt.point(x+w,y+h)
- screenshot.end = Qt.point(x,y)
- }
- onReleased:
- (mouse)=> {
- FluTools.restoreOverrideCursor()
- }
- onPositionChanged:
- (mouse)=> {
- var x = rect_capture.x
- screenshot.end = Qt.point(x,mapToItem(screenshot,Qt.point(mouse.x,mouse.y)).y)
- }
- onCanceled:
- (mouse)=> {
- FluTools.restoreOverrideCursor()
- }
- }
- Rectangle{
- id:rect_top_right
- width: control.dotSize
- height: control.dotSize
- color: control.borderColor
- visible: !isZeroPos
- anchors{
- right: rect_capture.right
- rightMargin: d.dotMargins
- topMargin: d.dotMargins
- top: rect_capture.top
- }
- }
- MouseArea{
- cursorShape: Qt.SizeBDiagCursor
- anchors.centerIn: rect_top_right
- width: d.dotMouseSize
- height: d.dotMouseSize
- visible: !isZeroPos
- onPressed:
- (mouse)=> {
- var x = rect_capture.x
- var y = rect_capture.y
- var w = rect_capture.width
- var h = rect_capture.height
- screenshot.start = Qt.point(x,y+h)
- screenshot.end = Qt.point(x+w,y)
- }
- onReleased:
- (mouse)=> {
- FluTools.restoreOverrideCursor()
- }
- onPositionChanged:
- (mouse)=> {
- screenshot.end = mapToItem(screenshot,Qt.point(mouse.x,mouse.y))
- }
- onCanceled:
- (mouse)=> {
- FluTools.restoreOverrideCursor()
- }
- }
- Rectangle{
- id:rect_right_center
- width: control.dotSize
- height: control.dotSize
- color: control.borderColor
- visible: !isZeroPos
- anchors{
- right: rect_capture.right
- rightMargin: d.dotMargins
- verticalCenter: rect_capture.verticalCenter
- }
- }
- MouseArea{
- cursorShape: Qt.SizeHorCursor
- anchors.centerIn: rect_right_center
- width: d.dotMouseSize
- height: d.dotMouseSize
- visible: !isZeroPos
- onPressed:
- (mouse)=> {
- var x = rect_capture.x
- var y = rect_capture.y
- var w = rect_capture.width
- var h = rect_capture.height
- screenshot.start = Qt.point(x,y)
- screenshot.end = Qt.point(x+w,y+h)
- }
- onReleased:
- (mouse)=> {
- FluTools.restoreOverrideCursor()
- }
- onPositionChanged:
- (mouse)=> {
- var y = rect_capture.y
- var h = rect_capture.height
- screenshot.end = Qt.point(mapToItem(screenshot,Qt.point(mouse.x,mouse.y)).x,y+h)
- }
- onCanceled:
- (mouse)=> {
- FluTools.restoreOverrideCursor()
- }
- }
- Rectangle{
- id:rect_right_bottom
- width: control.dotSize
- height: control.dotSize
- color: control.borderColor
- visible: !isZeroPos
- anchors{
- right: rect_capture.right
- rightMargin: d.dotMargins
- bottom: rect_capture.bottom
- bottomMargin: d.dotMargins
- }
- }
- MouseArea{
- cursorShape: Qt.SizeFDiagCursor
- anchors.centerIn: rect_right_bottom
- width: d.dotMouseSize
- height: d.dotMouseSize
- visible: !isZeroPos
- onPressed:
- (mouse)=> {
- var x = rect_capture.x
- var y = rect_capture.y
- var w = rect_capture.width
- var h = rect_capture.height
- screenshot.start = Qt.point(x,y)
- screenshot.end = Qt.point(x+w,y+h)
- }
- onReleased:
- (mouse)=> {
- FluTools.restoreOverrideCursor()
- }
- onPositionChanged:
- (mouse)=> {
- screenshot.end = mapToItem(screenshot,Qt.point(mouse.x,mouse.y))
- }
- onCanceled:
- (mouse)=> {
- FluTools.restoreOverrideCursor()
- }
- }
- Rectangle{
- id:rect_bottom_center
- width: control.dotSize
- height: control.dotSize
- color: control.borderColor
- visible: !isZeroPos
- anchors{
- horizontalCenter: rect_capture.horizontalCenter
- bottom: rect_capture.bottom
- bottomMargin: d.dotMargins
- }
- }
- MouseArea{
- cursorShape: Qt.SizeVerCursor
- anchors.centerIn: rect_bottom_center
- width: d.dotMouseSize
- height: d.dotMouseSize
- visible: !isZeroPos
- onPressed:
- (mouse)=> {
- var x = rect_capture.x
- var y = rect_capture.y
- var w = rect_capture.width
- var h = rect_capture.height
- screenshot.start = Qt.point(x,y)
- screenshot.end = Qt.point(x+w,y+h)
- }
- onReleased:
- (mouse)=> {
- FluTools.restoreOverrideCursor()
- }
- onPositionChanged:
- (mouse)=> {
- var x = rect_capture.x
- var w = rect_capture.width
- screenshot.end = Qt.point(x+w,mapToItem(screenshot,Qt.point(mouse.x,mouse.y)).y)
- }
- onCanceled:
- (mouse)=> {
- FluTools.restoreOverrideCursor()
- }
- }
- Rectangle{
- id:rect_bottom_left
- width: control.dotSize
- height: control.dotSize
- color: control.borderColor
- visible: !isZeroPos
- anchors{
- left: rect_capture.left
- leftMargin: d.dotMargins
- bottom: rect_capture.bottom
- bottomMargin: d.dotMargins
- }
- }
- MouseArea{
- cursorShape: Qt.SizeBDiagCursor
- anchors.centerIn: rect_bottom_left
- width: d.dotMouseSize
- height: d.dotMouseSize
- visible: !isZeroPos
- onPressed:
- (mouse)=> {
- var x = rect_capture.x
- var y = rect_capture.y
- var w = rect_capture.width
- var h = rect_capture.height
- screenshot.start = Qt.point(x+w,y)
- screenshot.end = Qt.point(x,y+h)
- }
- onReleased:
- (mouse)=> {
- FluTools.restoreOverrideCursor()
- }
- onPositionChanged:
- (mouse)=> {
- screenshot.end = mapToItem(screenshot,Qt.point(mouse.x,mouse.y))
- }
- onCanceled:
- (mouse)=> {
- FluTools.restoreOverrideCursor()
- }
- }
- Rectangle{
- id:rect_left_center
- width: control.dotSize
- height: control.dotSize
- color: control.borderColor
- visible: !isZeroPos
- anchors{
- left: rect_capture.left
- leftMargin: d.dotMargins
- verticalCenter: rect_capture.verticalCenter
- }
- }
- MouseArea{
- cursorShape: Qt.SizeHorCursor
- anchors.centerIn: rect_left_center
- width: d.dotMouseSize
- height: d.dotMouseSize
- visible: !isZeroPos
- onPressed:
- (mouse)=> {
- var x = rect_capture.x
- var y = rect_capture.y
- var w = rect_capture.width
- var h = rect_capture.height
- screenshot.start = Qt.point(x+w,y)
- screenshot.end = Qt.point(x,y+h)
- }
- onReleased:
- (mouse)=> {
- FluTools.restoreOverrideCursor()
- }
- onPositionChanged:
- (mouse)=> {
- var y = rect_capture.y
- var h = rect_capture.height
- screenshot.end = Qt.point(mapToItem(screenshot,Qt.point(mouse.x,mouse.y)).x,y+h)
- }
- onCanceled:
- (mouse)=> {
- FluTools.restoreOverrideCursor()
- }
- }
- Pane{
- width: 100
- height: 40
- visible: {
- if(isZeroPos){
- return false
- }
- if(d.enablePosition){
- return false
- }
- return true
- }
- x:rect_capture.x + rect_capture.width - width
- y:{
- if(rect_capture.y + rect_capture.height + d.menuMargins < screenshot.height-height){
- return rect_capture.y + rect_capture.height + d.menuMargins
- }else if(rect_capture.y - height - d.menuMargins > 0){
- return rect_capture.y - height - d.menuMargins
- }else{
- screenshot.height - height - d.menuMargins
- }
- }
- RowLayout{
- anchors.verticalCenter: parent.verticalCenter
- anchors.right: parent.right
- FluIconButton{
- iconSource: FluentIcons.Cancel
- iconSize: 18
- iconColor: Qt.rgba(247/255,75/255,77/255,1)
- onClicked: {
- loader.sourceComponent = undefined
- }
- }
- FluIconButton{
- iconSource: FluentIcons.AcceptMedium
- iconColor: FluTheme.primaryColor
- onClicked: {
- screenshot_background.capture(screenshot.start,screenshot.end)
- }
- }
- }
- }
- }
- }
- function open(){
- loader.sourceComponent = com_screen
- }
-}
diff --git a/src/Screenshot.cpp b/src/Screenshot.cpp
deleted file mode 100644
index 1343e7da..00000000
--- a/src/Screenshot.cpp
+++ /dev/null
@@ -1,70 +0,0 @@
-#include "Screenshot.h"
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include "Def.h"
-
-Screenshot::Screenshot(QQuickItem* parent):QQuickPaintedItem(parent){
- _desktopGeometry = qApp->primaryScreen()->virtualGeometry();
- maskColor(QColor(0,0,0,150));
- start(QPoint(0,0));
- end(QPoint(0,0));
- connect(this,&Screenshot::startChanged,this,[=]{update();});
- connect(this,&Screenshot::endChanged,this,[=]{update();});
-}
-
-void Screenshot::paint(QPainter* painter){
- painter->save();
- painter->fillRect(_desktopGeometry,_maskColor);
- painter->setCompositionMode(QPainter::CompositionMode_Clear);
- painter->fillRect(QRect(_start.x(),_start.y(),_end.x()-_start.x(),_end.y()-_start.y()), Qt::black);
- painter->restore();
-}
-
-ScreenshotBackground::ScreenshotBackground(QQuickItem* parent) : QQuickPaintedItem(parent){
- _devicePixelRatio = qApp->primaryScreen()->devicePixelRatio();
- _desktopGeometry = qApp->primaryScreen()->virtualGeometry();
- _desktopPixmap = qApp->primaryScreen()->grabWindow(0, _desktopGeometry.x(), _desktopGeometry.y(), _desktopGeometry.width(), _desktopGeometry.height());
- int w = qApp->primaryScreen()->geometry().width();
- int h = qApp->primaryScreen()->geometry().height();
- foreach (auto item, qApp->screens()) {
- if(item != qApp->primaryScreen()){
- w = w + item->geometry().width()/qApp->primaryScreen()->devicePixelRatio();
- }
- }
- setWidth(w);
- setHeight(h);
-}
-
-void ScreenshotBackground::paint(QPainter* painter){
- painter->save();
- _sourcePixmap = _desktopPixmap.copy();
- painter->drawPixmap(_desktopGeometry,_sourcePixmap);
- painter->restore();
-}
-
-void ScreenshotBackground::capture(const QPoint& start,const QPoint& end){
- update();
- auto pixelRatio = qApp->primaryScreen()->devicePixelRatio();
- auto x = qMin(start.x(),end.x()) * pixelRatio;
- auto y = qMin(start.y(),end.y()) * pixelRatio;
- auto w = qAbs(end.x()-start.x()) * pixelRatio;
- auto h = qAbs(end.y()-start.y()) * pixelRatio;
- _captureRect = QRect(x,y,w,h);
- if(_captureMode == FluScreenshotType::CaptrueMode::Pixmap){
- Q_EMIT captrueToPixmapCompleted(_sourcePixmap.copy(_captureRect));
- }
- if(_captureMode == FluScreenshotType::CaptrueMode::File){
- QDir dir = _saveFolder;
- if (!dir.exists(_saveFolder)){
- dir.mkpath(_saveFolder);
- }
- auto filePath = _saveFolder.append("/").append(QString::number(QDateTime::currentDateTime().toMSecsSinceEpoch())).append(".png");
- _sourcePixmap.copy(_captureRect).save(filePath);
- Q_EMIT captrueToFileCompleted(QUrl::fromLocalFile(filePath));
- }
-}
diff --git a/src/Screenshot.h b/src/Screenshot.h
deleted file mode 100644
index f9cfb77e..00000000
--- a/src/Screenshot.h
+++ /dev/null
@@ -1,46 +0,0 @@
-#ifndef SCREENSHOT_H
-#define SCREENSHOT_H
-
-#include
-#include
-#include
-#include
-#include "stdafx.h"
-#include
-
-class ScreenshotBackground : public QQuickPaintedItem
-{
- Q_OBJECT;
- QML_NAMED_ELEMENT(ScreenshotBackground)
- Q_PROPERTY_AUTO(QString,saveFolder);
- Q_PROPERTY_AUTO(int,captureMode);
-public:
- ScreenshotBackground(QQuickItem* parent = nullptr);
- void paint(QPainter* painter) override;
- Q_INVOKABLE void capture(const QPoint& start,const QPoint& end);
- Q_SIGNAL void captrueToPixmapCompleted(QPixmap captrue);
- Q_SIGNAL void captrueToFileCompleted(QUrl captrue);
-private:
- QRect _desktopGeometry;
- QPixmap _desktopPixmap;
- QPixmap _sourcePixmap;
- qreal _devicePixelRatio;
- QSharedPointer _grabResult;
- QRect _captureRect;
-};
-
-class Screenshot : public QQuickPaintedItem
-{
- Q_OBJECT
- QML_NAMED_ELEMENT(Screenshot)
- Q_PROPERTY_AUTO(QPoint,start);
- Q_PROPERTY_AUTO(QPoint,end);
- Q_PROPERTY_AUTO(QColor,maskColor);
-public:
- Screenshot(QQuickItem* parent = nullptr);
- void paint(QPainter* painter) override;
-private:
- QRect _desktopGeometry;
-};
-
-#endif // SCREENSHOT_H