diff --git a/CMakeLists.txt b/CMakeLists.txt index e3e0915..3d2c289 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -85,6 +85,7 @@ set(UI_FILES ui/panelToolWidget.ui ui/dateTimeWidget.ui ui/dateTimeSelectionPanel.ui + ui/dpConfigurationDialog.ui ) set(UTIL_FILES @@ -103,6 +104,8 @@ set(UTIL_FILES set(DATAPANEL_FILES dataPanel/dpGlobals.h + dataPanel/dpConfigurationDialog.h + dataPanel/dpConfigurationDialog.cpp dataPanel/dpBaseWidget.h dataPanel/dpBaseWidget.cpp dataPanel/dpLineChart.h diff --git a/dataPanel/dpConfigurationDialog.cpp b/dataPanel/dpConfigurationDialog.cpp new file mode 100644 index 0000000..8e5bd50 --- /dev/null +++ b/dataPanel/dpConfigurationDialog.cpp @@ -0,0 +1,100 @@ +#include "dpConfigurationDialog.h" +#include "ui_dpConfigurationDialog.h" +#include "dataPanel.h" + +dpConfigurationDialog::dpConfigurationDialog(QWidget *parent) + : QDialog(parent) + , ui(new Ui::dpConfigurationDialog) + , m_curActiveTab(nullptr) + , m_pDataPanel(nullptr) +{ + ui->setupUi(this); + setWindowFlags(Qt::FramelessWindowHint | Qt::WindowDoesNotAcceptFocus); + setAttribute(Qt::WA_TranslucentBackground); + + initialize(); +} + +dpConfigurationDialog::~dpConfigurationDialog() +{ + delete ui; +} + +void dpConfigurationDialog::initialize() +{ + ui->tabDataType->setProperty("index", 0); + connect(ui->tabDataType, SIGNAL(clicked()), this, SLOT(onBtnClicked_tabBtn())); + ui->tabDataSource->setProperty("index", 1); + connect(ui->tabDataSource, SIGNAL(clicked()), this, SLOT(onBtnClicked_tabBtn())); + ui->tabDisplaySetting->setProperty("index", 2); + connect(ui->tabDisplaySetting, SIGNAL(clicked()), this, SLOT(onBtnClicked_tabBtn())); + m_curActiveTab = ui->tabDataType; + + ui->stackedWidget->setCurrentIndex(0); + + connect(ui->btnConfirm, SIGNAL(clicked()), this, SLOT(onBtnClicked_confirm())); + connect(ui->btnCancle, SIGNAL(clicked()), this, SLOT(onBtnClicked_cancle())); +} + +void dpConfigurationDialog::setPanel(DataPanel* pPanel) +{ + m_pDataPanel = pPanel; +} + +void dpConfigurationDialog::onBtnClicked_tabBtn() +{ + QPushButton* pTab = qobject_cast(sender()); + if(pTab == m_curActiveTab) + return; + + if(m_curActiveTab) + { + m_curActiveTab->setStyleSheet("QPushButton\n" + "{\n" + "color: rgb(250, 250, 250);\n" + "font: 700 12pt \"黑体\";\n" + "border:0px;\n" + "background-color:transparent;\n" + "}\n" + "QPushButton:hover\n" + "{\n" + "}\n" + "QPushButton:pressed\n" + "{\n" + "}"); + } + if(pTab) + { + pTab->setStyleSheet("QPushButton\n" + "{\n" + "color: rgb(250, 250, 250);\n" + "font: 700 12pt \"黑体\";\n" + "border:1px solid rgb(200,200,200);\n" + "border-bottom:0px;\n" + "background-color:rgba(36,43,50, 250);\n" + "}\n" + "QPushButton:hover\n" + "{\n" + "}\n" + "QPushButton:pressed\n" + "{\n" + "}"); + + int nIndex = pTab->property("index").toInt(); + ui->stackedWidget->setCurrentIndex(nIndex); + } + m_curActiveTab = pTab; + +} + +void dpConfigurationDialog::onBtnClicked_confirm() +{ + hide(); + emit sgl_hide(); +} + +void dpConfigurationDialog::onBtnClicked_cancle() +{ + hide(); + emit sgl_hide(); +} diff --git a/dataPanel/dpConfigurationDialog.h b/dataPanel/dpConfigurationDialog.h new file mode 100644 index 0000000..82121d0 --- /dev/null +++ b/dataPanel/dpConfigurationDialog.h @@ -0,0 +1,42 @@ +#ifndef DPCONFIGURATIONDIALOG_H +#define DPCONFIGURATIONDIALOG_H + +#include + +QT_BEGIN_NAMESPACE +namespace Ui { +class dpConfigurationDialog; +} +QT_END_NAMESPACE + +class DataPanel; + +class dpConfigurationDialog : public QDialog +{ + Q_OBJECT + +public: + dpConfigurationDialog(QWidget *parent = nullptr); + ~dpConfigurationDialog(); + + void setPanel(DataPanel*); + +signals: + void sgl_hide(); + +public slots: + void onBtnClicked_tabBtn(); + void onBtnClicked_confirm(); + void onBtnClicked_cancle(); + +private: + void initialize(); + + Ui::dpConfigurationDialog* ui; + QPushButton* m_curActiveTab; + + DataPanel* m_pDataPanel; +}; + + +#endif diff --git a/include/dashboard.h b/include/dashboard.h index 9f84adb..aee0181 100644 --- a/include/dashboard.h +++ b/include/dashboard.h @@ -10,6 +10,7 @@ class DashboardFrame; class CustomTab; class QMenu; class DataPanel; + class Dashboard : public QObject { Q_OBJECT @@ -39,6 +40,7 @@ public slots: void onAction_remove(); void onSignal_removePanel(const QString&); + void onSignal_openConfigurationDlg(DataPanel*); signals: void sgl_rename(); diff --git a/include/dashboardFrame.h b/include/dashboardFrame.h index 7bc57c7..f294623 100644 --- a/include/dashboardFrame.h +++ b/include/dashboardFrame.h @@ -20,6 +20,8 @@ class DashboardNamingDialog; class PanelSelectionDialog; class DateTimeWidget; class TimeLineWidget; +class DataPanel; +class dpConfigurationDialog; namespace dashboardFrame { enum frameType @@ -46,6 +48,7 @@ public: DashboardFrame* getDashboardFrame(const QString&); void setDashboardAreaHighlight(bool); void moveDashboardToNewDVIEWindow(const QString&, QPoint); + void openPanelConfigurationDialog(DataPanel*); protected: bool eventFilter(QObject*, QEvent*) override; @@ -106,6 +109,8 @@ private: DateTimeWidget* m_pDateTimeWidget; TimeLineWidget* m_pTimeLineWidget; + dpConfigurationDialog* m_pPanelConfigurationDialog; + QTimer* m_pTimer_RealTime; }; diff --git a/include/dataPanel.h b/include/dataPanel.h index ea0529e..ab3af86 100644 --- a/include/dataPanel.h +++ b/include/dataPanel.h @@ -85,8 +85,11 @@ public slots: void onAboutToHide_toolMenu(); + void onSignal_configure(); + signals: void sgl_remove(const QString&); + void sgl_openCofigurationDialog(DataPanel*); private: void setupScrollArea(); diff --git a/include/functionNavigationBar.h b/include/functionNavigationBar.h index d6709c4..7d72c78 100644 --- a/include/functionNavigationBar.h +++ b/include/functionNavigationBar.h @@ -33,7 +33,7 @@ signals: void sgl_funBtnClicke(QString); private: - void initialzie(); + void initialize(); Ui::functionNavigationBar* ui; QPushButton* m_pLastFunButton; diff --git a/source/dashboard.cpp b/source/dashboard.cpp index b221cad..fc56011 100644 --- a/source/dashboard.cpp +++ b/source/dashboard.cpp @@ -139,6 +139,7 @@ void Dashboard::addPanel(DataPanelType type) { DataPanel* panel = new DataPanel(m_pDisplayArea, type); connect(panel, SIGNAL(sgl_remove(const QString&)), this, SLOT(onSignal_removePanel(const QString&))); + connect(panel, SIGNAL(sgl_openCofigurationDialog(DataPanel*)), this, SLOT(onSignal_openConfigurationDlg(DataPanel*))); QString strDefaultName = "dataPanel-" + QString::number(m_nPanenlNameNumber); m_nPanenlNameNumber++; panel->setName(strDefaultName); @@ -210,3 +211,9 @@ void Dashboard::onSignal_removePanel(const QString& strName) { removePanel(strName); } + +void Dashboard::onSignal_openConfigurationDlg(DataPanel* pPanel) +{ + if(m_pFrame) + m_pFrame->openPanelConfigurationDialog(pPanel); +} diff --git a/source/dashboardFrame.cpp b/source/dashboardFrame.cpp index 469e671..3199c34 100644 --- a/source/dashboardFrame.cpp +++ b/source/dashboardFrame.cpp @@ -7,8 +7,10 @@ #include "customTabBar.h" #include "dashboard.h" #include "customTab.h" +#include "dataPanel.h" #include "dashboardNamingDialog.h" #include "panelSelectionDialog.h" +#include "dataPanel/dpConfigurationDialog.h" #include "dateTimeWidget.h" #include "util/TimeLine/timeLineWidget.h" @@ -30,6 +32,7 @@ DashboardFrame::DashboardFrame(const QString& strName, dashboardFrame::frameType , m_curActiveDashboard(nullptr) , m_curOperationDashboard(nullptr) , m_pPanelSelectionDialog(nullptr) + , m_pPanelConfigurationDialog(nullptr) { ui->setupUi(this); setAcceptDrops(true); @@ -451,6 +454,22 @@ void DashboardFrame::moveDashboardToNewDVIEWindow(const QString& strDashboard, Q } } +void DashboardFrame::openPanelConfigurationDialog(DataPanel* pPanel) +{ + if(m_pPanelConfigurationDialog == nullptr) + { + m_pPanelConfigurationDialog = new dpConfigurationDialog(this); + connect(m_pPanelConfigurationDialog, SIGNAL(sgl_hide()), this, SLOT(onSignal_subDialogClose())); + } + + showTransparentMask(); + int nX = (ui->navigationPanel->width() - m_pPanelConfigurationDialog->width()) * 0.5; + int nY = ui->navigationPanel->y() + ui->navigationPanel->height() * 0.5; + m_pPanelConfigurationDialog->move(nX, nY); + m_pPanelConfigurationDialog->show(); + m_pPanelConfigurationDialog->raise(); +} + void DashboardFrame::onSignal_showMask() { showTransparentMask(); diff --git a/source/dataPanel.cpp b/source/dataPanel.cpp index 2f4afaa..8c397ad 100644 --- a/source/dataPanel.cpp +++ b/source/dataPanel.cpp @@ -54,6 +54,7 @@ DataPanel::DataPanel(QWidget *parent, DataPanelType type) centralWidget->setLayout(m_pLayout); m_pConfigurationWidget = new PanelConfigurationWidget(this); + connect(m_pConfigurationWidget, SIGNAL(sgl_configure()), this, SLOT(onSignal_configure())); m_pConfigurationWidget->raise(); //setWiget(m_pConfigurationWidget); //resize(533, 300); @@ -338,12 +339,11 @@ void DataPanel::setTimeRange(TimeUnit unit) void DataPanel::onToolBtnClicked_setting() { - + emit sgl_openCofigurationDialog(this); } void DataPanel::onToolBtnClicked_fullScreen() { - QString strCurState = m_pToolWidget->ui->btnFullScree->property("currentState").toString(); if(strCurState == "enterFullScreen") { @@ -411,3 +411,8 @@ void DataPanel::onAboutToHide_toolMenu() m_pToolWidget->hide(); m_pCustomBorderContainer->hideBorderDraw(); } + +void DataPanel::onSignal_configure() +{ + emit sgl_openCofigurationDialog(this); +} diff --git a/source/functionNavigationBar.cpp b/source/functionNavigationBar.cpp index c44a5f3..452e1ca 100644 --- a/source/functionNavigationBar.cpp +++ b/source/functionNavigationBar.cpp @@ -9,11 +9,12 @@ FunctionNavigationBar::FunctionNavigationBar(QWidget *parent) : QWidget(parent) , ui(new Ui::functionNavigationBar) + , m_pLastFunButton(nullptr) { ui->setupUi(this); setAttribute(Qt::WA_TranslucentBackground); - initialzie(); + initialize(); } FunctionNavigationBar::~FunctionNavigationBar() @@ -22,7 +23,7 @@ FunctionNavigationBar::~FunctionNavigationBar() } -void FunctionNavigationBar::initialzie() +void FunctionNavigationBar::initialize() { ui->funBtn_Dvie->setProperty("skin", "icon_dashboard"); ui->funBtn_Dvie->setProperty("funName", "DVIE"); diff --git a/ui/dpConfigurationDialog.ui b/ui/dpConfigurationDialog.ui new file mode 100644 index 0000000..3c2b927 --- /dev/null +++ b/ui/dpConfigurationDialog.ui @@ -0,0 +1,451 @@ + + + dpConfigurationDialog + + + + 0 + 0 + 569 + 505 + + + + Dialog + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + QWidget #contentWidget +{ +border:1px solid rgb(76,88,105); +background-color:rgba(36,43,50,250); +} + +QLabel +{ +font: 12pt "黑体"; +} + +QLineEdit +{ +font: 12pt "黑体"; +border:1px solid rgb(200,200,200); +background:transparent; +} +QLineEdit:focus +{ +border:1px solid rgb(67,160,249); +} + +QTreeView +{ +padding-top:6px; +font: 12pt "黑体"; +color: rgb(250, 250, 250); +border:0px; +border-top:1px solid rgb(200,200,200); +border-bottom:1px solid rgb(200,200,200); +background-color:rgba(25,25,25,200); +} +QTreeView::branch +{ +image:none; +} +QTreeView::item +{ +height:25px; +} +QTreeView::item:selected { +color: rgb(250, 250, 250); +background-color: transparent; +border:0px; +} +QTreeView::item:hover { +background-color: rgba(67,160,249, 30); +border:0px; +} +QTreeView::branch:has-children:!has-siblings:closed, +QTreeView::branch:closed:has-children:has-siblings { + +} +QTreeView::branch:open:has-children:!has-siblings, +QTreeView::branch:open:has-children:has-siblings { + +} + +QTableView +{ +padding-top:6px; +font: 12pt "黑体"; +color: rgb(250, 250, 250); +border:0px; +border-top:1px solid rgb(200,200,200); +border-bottom:1px solid rgb(200,200,200); +background-color:rgba(25,25,25,200); +} +QTableView::item +{ +height:25px; +} +QTableView::item:selected { +color: rgb(250, 250, 250); +background-color: transparent; +border:0px; +} +QTableView::item:hover { +background-color: rgba(67,160,249, 30); +border:0px; +} + +QListView +{ +padding-top:6px; +font: 12pt "黑体"; +color: rgb(250, 250, 250); +border:0px; +border-top:1px solid rgb(200,200,200); +border-bottom:1px solid rgb(200,200,200); +background-color:rgba(25,25,25,200); +} +QListView::item +{ +height:25px; +} +QListView::item:selected { +color: rgb(250, 250, 250); +background-color: transparent; +border:0px; +} +QListView::item:hover { +background-color: rgba(67,160,249, 30); +border:0px; +} + + + + + + 25 + 25 + 521 + 31 + + + + color: rgb(250, 250, 250); +font: 700 13pt "微软雅黑"; +border:1px solid rgb(250,250,250); +border-left:0px; +border-top:0px; +border-right:0px; + + + 配置面板 + + + + + + 25 + 65 + 521 + 46 + + + + QWidget #tabBar +{ + background-color: rgb(54, 62, 74); + border-bottom:1px solid rgb(200,200,200); +} + + + + + 110 + 16 + 75 + 30 + + + + PointingHandCursor + + + QPushButton +{ +color: rgb(250, 250, 250); +font: 700 12pt "黑体"; +border:0px; +background-color:transparent; +} +QPushButton:hover +{ +} +QPushButton:pressed +{ +} + + + 数据源 + + + + + + 185 + 16 + 100 + 30 + + + + PointingHandCursor + + + QPushButton +{ +color: rgb(250, 250, 250); +font: 700 12pt "黑体"; +border:0px; +background-color:transparent; +} +QPushButton:hover +{ +} +QPushButton:pressed +{ +} + + + 显示设置 + + + + + + 10 + 16 + 100 + 30 + + + + PointingHandCursor + + + QPushButton +{ +color: rgb(250, 250, 250); +font: 700 12pt "黑体"; +border:1px solid rgb(200,200,200); +border-bottom:0px; +background-color:rgba(36,43,50, 250); +} +QPushButton:hover +{ +} +QPushButton:pressed +{ +} + + + 数据类型 + + + + + + + 25 + 120 + 521 + 331 + + + + 0 + + + + QWidget #pageDataType +{ +background-color:transparent; +} + + + + + 0 + 10 + 251 + 31 + + + + + + + + + + 0 + 55 + 251 + 261 + + + + + + + 270 + 55 + 251 + 261 + + + + + + + QWidget #pageDataSource +{ +background-color:transparent; +} + + + + + 0 + 10 + 251 + 31 + + + + + + + + + + 0 + 55 + 251 + 261 + + + + + + + 270 + 55 + 251 + 261 + + + + + + + QWidget #pageDisplaySetting +{ +background-color:transparent; +} + + + + + + + 470 + 460 + 71 + 26 + + + + QPushButton +{ +color: rgb(250, 250, 250); +font: 700 12pt "微软雅黑"; +border:1px solid rgb(200,200,200); +border-radius:2px; +background-color:rgb(24,32,38); +} +QPushButton:hover +{ +background-color:rgb(8,11,13); +} +QPushButton:pressed +{ +background-color:rgb(24,32,38); +} + + + 取消 + + + false + + + + + + 380 + 460 + 71 + 26 + + + + QPushButton +{ +color: rgb(250, 250, 250); +font: 700 12pt "微软雅黑"; +border:0px; +border-radius:2px; +background-color:rgb(67,160,249); +} +QPushButton:hover +{ +background-color:rgb(55,131,204); +} +QPushButton:pressed +{ +background-color:rgb(67,160,249); +} + + + 确认 + + + false + + + + + + + + +