diff options
-rw-r--r-- | src-qt5/desktop-utils/lumina-screenshot/MainUI.cpp | 26 | ||||
-rw-r--r-- | src-qt5/desktop-utils/lumina-screenshot/MainUI.h | 4 | ||||
-rw-r--r-- | src-qt5/desktop-utils/lumina-screenshot/MainUI.ui | 649 |
3 files changed, 373 insertions, 306 deletions
diff --git a/src-qt5/desktop-utils/lumina-screenshot/MainUI.cpp b/src-qt5/desktop-utils/lumina-screenshot/MainUI.cpp index 96bc40d2..e15c2487 100644 --- a/src-qt5/desktop-utils/lumina-screenshot/MainUI.cpp +++ b/src-qt5/desktop-utils/lumina-screenshot/MainUI.cpp @@ -28,20 +28,29 @@ MainUI::MainUI() : QMainWindow(), ui(new Ui::MainUI){ scaleTimer = new QTimer(this); scaleTimer->setSingleShot(true); scaleTimer->setInterval(200); //~1/5 second - + tabbar = new QTabBar(this); + ui->tabLayout->insertWidget(0,tabbar); + tabbar->addTab(LXDG::findIcon("view-preview",""), tr("View")); + tabbar->addTab(LXDG::findIcon("preferences-other",""), tr("Settings")); + ui->stackedWidget->setCurrentWidget(ui->page_current); + //Add a spacer in the Toolbar + QWidget *spacer = new QWidget(this); + spacer->setSizePolicy(QSizePolicy::Expanding,QSizePolicy::Preferred); + ui->toolBar->insertWidget(ui->actionClose, spacer); //Setup the connections - connect(ui->tool_save, SIGNAL(clicked()), this, SLOT(saveScreenshot()) ); + //connect(ui->tool_save, SIGNAL(clicked()), this, SLOT(saveScreenshot()) ); connect(ui->actionSave_As, SIGNAL(triggered()), this, SLOT(saveScreenshot()) ); connect(ui->tool_quicksave, SIGNAL(clicked()), this, SLOT(quicksave()) ); connect(ui->actionQuick_Save, SIGNAL(triggered()), this, SLOT(quicksave()) ); connect(ui->actionClose, SIGNAL(triggered()), this, SLOT(closeApplication()) ); - connect(ui->push_snap, SIGNAL(clicked()), this, SLOT(startScreenshot()) ); + //connect(ui->push_snap, SIGNAL(clicked()), this, SLOT(startScreenshot()) ); connect(ui->actionTake_Screenshot, SIGNAL(triggered()), this, SLOT(startScreenshot()) ); connect(ui->tool_crop, SIGNAL(clicked()), IMG, SLOT(cropImage()) ); connect(IMG, SIGNAL(selectionChanged(bool)), this, SLOT(imgselchanged(bool)) ); connect(IMG, SIGNAL(scaleFactorChanged(int)), this, SLOT(imgScalingChanged(int)) ); connect(ui->slider_zoom, SIGNAL(valueChanged(int)), this, SLOT(sliderChanged()) ); connect(scaleTimer, SIGNAL(timeout()), this, SLOT(imgScalingChanged()) ); + connect(tabbar, SIGNAL(currentChanged(int)), this, SLOT(tabChanged(int)) ); settings = new QSettings("lumina-desktop", "lumina-screenshot",this); if(settings->value("screenshot-target", "window").toString() == "window") { @@ -63,16 +72,17 @@ MainUI::~MainUI(){} void MainUI::setupIcons(){ //Setup the icons - ui->tool_save->setIcon( LXDG::findIcon("document-save","") ); + //ui->tool_save->setIcon( LXDG::findIcon("document-save","") ); ui->tool_quicksave->setIcon( LXDG::findIcon("document-edit","") ); ui->actionSave_As->setIcon( LXDG::findIcon("document-save-as","") ); ui->actionQuick_Save->setIcon( LXDG::findIcon("document-save","") ); ui->actionClose->setIcon( LXDG::findIcon("application-exit","") ); - ui->push_snap->setIcon( LXDG::findIcon("camera-web","") ); + //ui->push_snap->setIcon( LXDG::findIcon("camera-web","") ); ui->actionTake_Screenshot->setIcon( LXDG::findIcon("camera-web","") ); ui->tool_crop->setIcon( LXDG::findIcon("transform-crop","") ); ui->tool_resize->setIcon( LXDG::findIcon("transform-scale","") ); //ui->actionEdit->setIcon( LXDG::findIcon("applications-graphics","") ); + this->setWindowIcon( LXDG::findIcon("camera-web","") ); } void MainUI::showSaveError(QString path){ @@ -136,6 +146,12 @@ void MainUI::sliderChanged(){ scaleTimer->start(); } +void MainUI::tabChanged(int tab){ + if(tab==0){ ui->stackedWidget->setCurrentWidget(ui->page_current); } + else{ ui->stackedWidget->setCurrentWidget(ui->page_settings); } + ui->frame_modify->setVisible(tab==0); +} + bool MainUI::getWindow(){ //Use this function to set cwin cwin = 0; diff --git a/src-qt5/desktop-utils/lumina-screenshot/MainUI.h b/src-qt5/desktop-utils/lumina-screenshot/MainUI.h index bb1b61df..cb740d33 100644 --- a/src-qt5/desktop-utils/lumina-screenshot/MainUI.h +++ b/src-qt5/desktop-utils/lumina-screenshot/MainUI.h @@ -18,6 +18,7 @@ #include <QSettings> #include <QAction> #include <QScreen> +#include <QTabBar> #include <LuminaXDG.h> #include <LUtils.h> @@ -47,6 +48,7 @@ private: QSettings *settings; LXCB *XCB; //Library access to window subsystems QTimer *scaleTimer; + QTabBar *tabbar; //Image Editor widget ImageEditor *IMG; @@ -68,6 +70,8 @@ private slots: void imgScalingChanged(int percent = -1); void sliderChanged(); + void tabChanged(int); + //Utility functions to perform a screenshot bool getWindow(); //set the "cwin" variable as appropriate void getPixmap(); //set the "cpic" variable to the new screenshot diff --git a/src-qt5/desktop-utils/lumina-screenshot/MainUI.ui b/src-qt5/desktop-utils/lumina-screenshot/MainUI.ui index cf3a2aec..7b088bda 100644 --- a/src-qt5/desktop-utils/lumina-screenshot/MainUI.ui +++ b/src-qt5/desktop-utils/lumina-screenshot/MainUI.ui @@ -21,357 +21,401 @@ </property> <widget class="QWidget" name="centralwidget"> <layout class="QVBoxLayout" name="verticalLayout_3"> + <property name="spacing"> + <number>0</number> + </property> + <property name="leftMargin"> + <number>2</number> + </property> + <property name="topMargin"> + <number>2</number> + </property> + <property name="rightMargin"> + <number>2</number> + </property> + <property name="bottomMargin"> + <number>2</number> + </property> + <item> + <layout class="QHBoxLayout" name="tabLayout"> + <item> + <spacer name="horizontalSpacer"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>40</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + <item> + <widget class="QFrame" name="frame_modify"> + <property name="frameShape"> + <enum>QFrame::NoFrame</enum> + </property> + <property name="frameShadow"> + <enum>QFrame::Raised</enum> + </property> + <layout class="QHBoxLayout" name="horizontalLayout_7"> + <property name="spacing"> + <number>4</number> + </property> + <property name="leftMargin"> + <number>1</number> + </property> + <property name="topMargin"> + <number>1</number> + </property> + <property name="rightMargin"> + <number>1</number> + </property> + <property name="bottomMargin"> + <number>1</number> + </property> + <item> + <widget class="QToolButton" name="tool_quicksave"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Minimum" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="text"> + <string>Edit</string> + </property> + <property name="toolButtonStyle"> + <enum>Qt::ToolButtonTextBesideIcon</enum> + </property> + </widget> + </item> + <item> + <widget class="QToolButton" name="tool_resize"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Minimum" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="text"> + <string>Resize</string> + </property> + <property name="toolButtonStyle"> + <enum>Qt::ToolButtonTextBesideIcon</enum> + </property> + </widget> + </item> + <item> + <widget class="QToolButton" name="tool_crop"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Minimum" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="text"> + <string>&Crop</string> + </property> + <property name="toolButtonStyle"> + <enum>Qt::ToolButtonTextBesideIcon</enum> + </property> + </widget> + </item> + </layout> + </widget> + </item> + </layout> + </item> <item> - <layout class="QHBoxLayout" name="horizontalLayout_5"> - <property name="spacing"> - <number>3</number> + <widget class="QStackedWidget" name="stackedWidget"> + <property name="frameShape"> + <enum>QFrame::StyledPanel</enum> </property> - <property name="sizeConstraint"> - <enum>QLayout::SetMinimumSize</enum> + <property name="currentIndex"> + <number>0</number> </property> - <item> - <layout class="QVBoxLayout" name="verticalLayout_2"> - <property name="spacing"> + <widget class="QWidget" name="page_current"> + <layout class="QVBoxLayout" name="verticalLayout_5"> + <property name="leftMargin"> <number>1</number> </property> - <property name="sizeConstraint"> - <enum>QLayout::SetMinimumSize</enum> + <property name="topMargin"> + <number>1</number> + </property> + <property name="rightMargin"> + <number>1</number> + </property> + <property name="bottomMargin"> + <number>1</number> </property> <item> - <layout class="QHBoxLayout" name="horizontalLayout"> + <layout class="QHBoxLayout" name="horizontalLayout_4"> <property name="spacing"> - <number>0</number> - </property> - <property name="sizeConstraint"> - <enum>QLayout::SetMinimumSize</enum> + <number>3</number> </property> <item> - <widget class="QRadioButton" name="radio_all"> - <property name="sizePolicy"> - <sizepolicy hsizetype="Minimum" vsizetype="Minimum"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="text"> - <string>Entire Session</string> - </property> - </widget> + <layout class="QVBoxLayout" name="verticalLayout_4"> + <item> + <widget class="QLabel" name="label_zoom_percent"> + <property name="minimumSize"> + <size> + <width>0</width> + <height>0</height> + </size> + </property> + <property name="text"> + <string notr="true"/> + </property> + <property name="alignment"> + <set>Qt::AlignCenter</set> + </property> + </widget> + </item> + <item> + <widget class="QSlider" name="slider_zoom"> + <property name="minimum"> + <number>5</number> + </property> + <property name="maximum"> + <number>200</number> + </property> + <property name="singleStep"> + <number>5</number> + </property> + <property name="value"> + <number>100</number> + </property> + <property name="orientation"> + <enum>Qt::Vertical</enum> + </property> + <property name="tickPosition"> + <enum>QSlider::TicksBothSides</enum> + </property> + <property name="tickInterval"> + <number>20</number> + </property> + </widget> + </item> + </layout> </item> <item> - <widget class="QSpinBox" name="spin_delay"> - <property name="sizePolicy"> - <sizepolicy hsizetype="Minimum" vsizetype="Minimum"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="suffix"> - <string> Sec Delay</string> - </property> - <property name="prefix"> - <string/> - </property> - <property name="maximum"> - <number>20</number> + <widget class="QScrollArea" name="scrollArea"> + <property name="widgetResizable"> + <bool>true</bool> </property> + <widget class="QWidget" name="scrollAreaWidgetContents"> + <property name="geometry"> + <rect> + <x>0</x> + <y>0</y> + <width>315</width> + <height>342</height> + </rect> + </property> + </widget> </widget> </item> </layout> </item> + </layout> + </widget> + <widget class="QWidget" name="page_settings"> + <layout class="QVBoxLayout" name="verticalLayout_6"> + <property name="leftMargin"> + <number>1</number> + </property> + <property name="topMargin"> + <number>1</number> + </property> + <property name="rightMargin"> + <number>1</number> + </property> + <property name="bottomMargin"> + <number>1</number> + </property> <item> - <layout class="QHBoxLayout" name="horizontalLayout_2"> + <layout class="QVBoxLayout" name="verticalLayout_2"> <property name="spacing"> - <number>0</number> + <number>1</number> </property> <property name="sizeConstraint"> <enum>QLayout::SetMinimumSize</enum> </property> <item> - <widget class="QRadioButton" name="radio_monitor"> - <property name="sizePolicy"> - <sizepolicy hsizetype="Minimum" vsizetype="Minimum"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> + <layout class="QHBoxLayout" name="horizontalLayout"> + <property name="spacing"> + <number>0</number> </property> - <property name="text"> - <string>Single Screen</string> + <property name="sizeConstraint"> + <enum>QLayout::SetMinimumSize</enum> </property> - </widget> + <item> + <widget class="QRadioButton" name="radio_all"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Minimum" vsizetype="Minimum"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="text"> + <string>Entire Session</string> + </property> + </widget> + </item> + <item> + <widget class="QSpinBox" name="spin_delay"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Minimum" vsizetype="Minimum"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="suffix"> + <string> Sec Delay</string> + </property> + <property name="prefix"> + <string/> + </property> + <property name="maximum"> + <number>20</number> + </property> + </widget> + </item> + </layout> </item> <item> - <widget class="QSpinBox" name="spin_monitor"> - <property name="sizePolicy"> - <sizepolicy hsizetype="Minimum" vsizetype="Minimum"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="prefix"> - <string notr="true"># </string> + <layout class="QHBoxLayout" name="horizontalLayout_2"> + <property name="spacing"> + <number>0</number> </property> - <property name="minimum"> - <number>1</number> + <property name="sizeConstraint"> + <enum>QLayout::SetMinimumSize</enum> </property> - </widget> + <item> + <widget class="QRadioButton" name="radio_monitor"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Minimum" vsizetype="Minimum"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="text"> + <string>Single Screen</string> + </property> + </widget> + </item> + <item> + <widget class="QSpinBox" name="spin_monitor"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Minimum" vsizetype="Minimum"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="prefix"> + <string notr="true"># </string> + </property> + <property name="minimum"> + <number>1</number> + </property> + </widget> + </item> + </layout> </item> - </layout> - </item> - <item> - <layout class="QHBoxLayout" name="horizontalLayout_3"> - <property name="spacing"> - <number>0</number> - </property> - <property name="sizeConstraint"> - <enum>QLayout::SetMinimumSize</enum> - </property> <item> - <widget class="QRadioButton" name="radio_window"> - <property name="sizePolicy"> - <sizepolicy hsizetype="Minimum" vsizetype="Minimum"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> + <layout class="QHBoxLayout" name="horizontalLayout_3"> + <property name="spacing"> + <number>0</number> </property> - <property name="text"> - <string>Single Window</string> + <property name="sizeConstraint"> + <enum>QLayout::SetMinimumSize</enum> </property> - </widget> + <item> + <widget class="QRadioButton" name="radio_window"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Minimum" vsizetype="Minimum"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="text"> + <string>Single Window</string> + </property> + </widget> + </item> + <item> + <widget class="QCheckBox" name="check_frame"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Minimum" vsizetype="Minimum"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="text"> + <string>Include Borders</string> + </property> + </widget> + </item> + </layout> </item> <item> - <widget class="QCheckBox" name="check_frame"> - <property name="sizePolicy"> - <sizepolicy hsizetype="Minimum" vsizetype="Minimum"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> + <spacer name="verticalSpacer"> + <property name="orientation"> + <enum>Qt::Vertical</enum> </property> - <property name="text"> - <string>Include Borders</string> + <property name="sizeHint" stdset="0"> + <size> + <width>20</width> + <height>40</height> + </size> </property> - </widget> + </spacer> </item> </layout> </item> </layout> - </item> - <item> - <widget class="Line" name="line"> - <property name="sizePolicy"> - <sizepolicy hsizetype="Minimum" vsizetype="Minimum"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="orientation"> - <enum>Qt::Vertical</enum> - </property> - </widget> - </item> - <item> - <layout class="QVBoxLayout" name="verticalLayout"> - <property name="spacing"> - <number>3</number> - </property> - <property name="sizeConstraint"> - <enum>QLayout::SetMinimumSize</enum> - </property> - <item> - <widget class="QPushButton" name="push_snap"> - <property name="text"> - <string>Capture</string> - </property> - </widget> - </item> - <item> - <widget class="QToolButton" name="tool_save"> - <property name="sizePolicy"> - <sizepolicy hsizetype="Minimum" vsizetype="Fixed"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="text"> - <string>Save As</string> - </property> - <property name="toolButtonStyle"> - <enum>Qt::ToolButtonTextBesideIcon</enum> - </property> - </widget> - </item> - <item> - <widget class="QToolButton" name="tool_quicksave"> - <property name="sizePolicy"> - <sizepolicy hsizetype="Minimum" vsizetype="Fixed"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="text"> - <string>Edit</string> - </property> - <property name="toolButtonStyle"> - <enum>Qt::ToolButtonTextBesideIcon</enum> - </property> - </widget> - </item> - <item> - <widget class="QToolButton" name="tool_resize"> - <property name="sizePolicy"> - <sizepolicy hsizetype="Minimum" vsizetype="Fixed"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="text"> - <string>Resize</string> - </property> - <property name="toolButtonStyle"> - <enum>Qt::ToolButtonTextBesideIcon</enum> - </property> - </widget> - </item> - <item> - <widget class="QToolButton" name="tool_crop"> - <property name="sizePolicy"> - <sizepolicy hsizetype="Minimum" vsizetype="Fixed"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="text"> - <string>Crop</string> - </property> - <property name="toolButtonStyle"> - <enum>Qt::ToolButtonTextBesideIcon</enum> - </property> - </widget> - </item> - </layout> - </item> - </layout> - </item> - <item> - <widget class="Line" name="line_2"> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> + </widget> </widget> </item> - <item> - <layout class="QHBoxLayout" name="horizontalLayout_4"> - <property name="spacing"> - <number>3</number> - </property> - <item> - <layout class="QVBoxLayout" name="verticalLayout_4"> - <item> - <widget class="QLabel" name="label_zoom_percent"> - <property name="minimumSize"> - <size> - <width>0</width> - <height>0</height> - </size> - </property> - <property name="text"> - <string notr="true"/> - </property> - <property name="alignment"> - <set>Qt::AlignCenter</set> - </property> - </widget> - </item> - <item> - <widget class="QSlider" name="slider_zoom"> - <property name="minimum"> - <number>5</number> - </property> - <property name="maximum"> - <number>200</number> - </property> - <property name="singleStep"> - <number>5</number> - </property> - <property name="value"> - <number>100</number> - </property> - <property name="orientation"> - <enum>Qt::Vertical</enum> - </property> - <property name="tickPosition"> - <enum>QSlider::TicksBothSides</enum> - </property> - <property name="tickInterval"> - <number>20</number> - </property> - </widget> - </item> - </layout> - </item> - <item> - <widget class="QScrollArea" name="scrollArea"> - <property name="widgetResizable"> - <bool>true</bool> - </property> - <widget class="QWidget" name="scrollAreaWidgetContents"> - <property name="geometry"> - <rect> - <x>0</x> - <y>0</y> - <width>305</width> - <height>218</height> - </rect> - </property> - <zorder>tabWidget</zorder> - </widget> - </widget> - </item> - </layout> - </item> </layout> - <zorder></zorder> - <zorder></zorder> - <zorder>group_settings</zorder> - <zorder>scrollArea</zorder> - <zorder>line</zorder> - <zorder>push_snap</zorder> - <zorder></zorder> - <zorder>push_snap</zorder> - <zorder>line</zorder> - <zorder>spin_delay</zorder> - <zorder>radio_all</zorder> - <zorder>radio_monitor</zorder> - <zorder>spin_monitor</zorder> - <zorder>horizontalSpacer</zorder> - <zorder>check_frame</zorder> - <zorder>radio_window</zorder> - <zorder>line_2</zorder> </widget> - <widget class="QMenuBar" name="menuBar"> - <property name="geometry"> - <rect> - <x>0</x> - <y>0</y> - <width>357</width> - <height>22</height> - </rect> + <widget class="QToolBar" name="toolBar"> + <property name="contextMenuPolicy"> + <enum>Qt::CustomContextMenu</enum> </property> - <widget class="QMenu" name="menuFile"> - <property name="title"> - <string>File</string> - </property> - <addaction name="actionTake_Screenshot"/> - <addaction name="separator"/> - <addaction name="actionSave_As"/> - <addaction name="actionQuick_Save"/> - <addaction name="separator"/> - <addaction name="actionClose"/> - </widget> - <addaction name="menuFile"/> + <property name="windowTitle"> + <string>toolBar</string> + </property> + <property name="movable"> + <bool>false</bool> + </property> + <property name="allowedAreas"> + <set>Qt::TopToolBarArea</set> + </property> + <property name="toolButtonStyle"> + <enum>Qt::ToolButtonTextUnderIcon</enum> + </property> + <property name="floatable"> + <bool>false</bool> + </property> + <attribute name="toolBarArea"> + <enum>TopToolBarArea</enum> + </attribute> + <attribute name="toolBarBreak"> + <bool>false</bool> + </attribute> + <addaction name="actionTake_Screenshot"/> + <addaction name="actionSave_As"/> + <addaction name="actionQuick_Save"/> + <addaction name="actionClose"/> </widget> <action name="actionTake_Screenshot"> <property name="text"> + <string>Capture</string> + </property> + <property name="toolTip"> <string>Take Screenshot</string> </property> <property name="shortcut"> @@ -401,6 +445,9 @@ <property name="text"> <string>Close</string> </property> + <property name="toolTip"> + <string>Close Application</string> + </property> <property name="shortcut"> <string>Esc</string> </property> |