From 81b55e046309277e06e7bef9ea6387e30fe0e564 Mon Sep 17 00:00:00 2001
From: byloveletter <byloveletter@falinux.com>
Date: Wed, 10 May 2017 14:15:01 +0900
Subject: [PATCH] =?UTF-8?q?config=20pannel=20button=20,=20config=20window?=
 =?UTF-8?q?=20=EC=88=98=EC=A0=95?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

 -config pannel button : id 추가
 -config window : slot 추가
---
 app/gui/oven_control/configpanelbutton.cpp | 47 ++++++++++++++++++++++---
 app/gui/oven_control/configpanelbutton.h   | 20 ++++++++---
 app/gui/oven_control/configpanelbutton.ui  |  8 ++++-
 app/gui/oven_control/configwindow.cpp      | 28 +++++++++++++++
 app/gui/oven_control/configwindow.h        | 11 ++++++
 app/gui/oven_control/configwindow.ui       | 55 ++++++++++++++++++++++++++++++
 6 files changed, 160 insertions(+), 9 deletions(-)

diff --git a/app/gui/oven_control/configpanelbutton.cpp b/app/gui/oven_control/configpanelbutton.cpp
index 903e787..33240b4 100644
--- a/app/gui/oven_control/configpanelbutton.cpp
+++ b/app/gui/oven_control/configpanelbutton.cpp
@@ -3,21 +3,27 @@
 
 #include <QPixmap>
 #include <QPainter>
+#include <QDebug>
 
-ConfigPanelButton::ConfigPanelButton(QWidget *parent) :
+ConfigPanelButton::ConfigPanelButton(QWidget *parent, uint16_t btn_id) :
     QWidget(parent),
     ui(new Ui::ConfigPanelButton)
 {
     ui->setupUi(this);
 
+    btnid = btn_id;
+
     showingFavoriteButton = false;
     ui->favoriteButton->hide();
 
     textRect = QRect(20, 0, 556, 65);
     valueRect = QRect(556, 0, 265, 65);
-    connect(ui->pushButton, SIGNAL(pressed()), SIGNAL(pressed()));
-    connect(ui->pushButton, SIGNAL(released()), SIGNAL(released()));
-    connect(ui->pushButton, SIGNAL(clicked()), SIGNAL(clicked()));
+//    connect(ui->pushButton, SIGNAL(pressed()), SIGNAL(pressed()));
+//    connect(ui->pushButton, SIGNAL(released()), SIGNAL(released()));
+//    connect(ui->pushButton, SIGNAL(clicked()), SIGNAL(clicked()));
+
+//    connect(ui->favoriteButton,SIGNAL(clicked(bool)),SIGNAL(checkButtonClicked(bool)));
+
 }
 
 ConfigPanelButton::~ConfigPanelButton()
@@ -88,3 +94,36 @@ void ConfigPanelButton::updateIcon()
     ui->pushButton->setIcon(icon);
     ui->pushButton->setIconSize(pixmap.size());
 }
+
+bool ConfigPanelButton::isFavoriteChecked(){
+    return ui->favoriteButton->isChecked();
+}
+
+void ConfigPanelButton::setFavoriteCheck(bool checked){
+    ui->favoriteButton->setChecked(checked);
+}
+
+void ConfigPanelButton::on_favoriteButton_clicked(bool checked)
+{
+    emit checkButtonClicked(btnid,checked);
+}
+
+
+
+void ConfigPanelButton::on_pushButton_clicked()
+{
+    emit clicked(btnid);
+}
+
+
+
+void ConfigPanelButton::on_pushButton_released()
+{
+    emit released(btnid);
+}
+
+
+void ConfigPanelButton::on_pushButton_pressed()
+{
+    emit pressed(btnid);
+}
diff --git a/app/gui/oven_control/configpanelbutton.h b/app/gui/oven_control/configpanelbutton.h
index 0b5f3de..554654a 100644
--- a/app/gui/oven_control/configpanelbutton.h
+++ b/app/gui/oven_control/configpanelbutton.h
@@ -12,7 +12,7 @@ class ConfigPanelButton : public QWidget
     Q_OBJECT
 
 public:
-    explicit ConfigPanelButton(QWidget *parent = 0);
+    explicit ConfigPanelButton(QWidget *parent = 0,uint16_t id = 0);
     ~ConfigPanelButton();
 
     const QString &text() { return text_; }
@@ -23,6 +23,8 @@ public slots:
     void setValue(const QString &value);
     void showFavoriteButton();
     void hideFavoriteButton();
+    bool isFavoriteChecked();
+    void setFavoriteCheck(bool checked);
 
 private:
     Ui::ConfigPanelButton *ui;
@@ -35,14 +37,24 @@ private:
 
     bool showingFavoriteButton;
     bool isFavorited;
+    uint16_t btnid;
 
 private slots:
     void updateIcon();
 
+    void on_favoriteButton_clicked(bool checked);
+
+    void on_pushButton_clicked();
+
+    void on_pushButton_released();
+
+    void on_pushButton_pressed();
+
 signals:
-    void pressed();
-    void released();
-    void clicked();
+    void pressed(uint16_t);
+    void released(uint16_t);
+    void clicked(uint16_t);
+    void checkButtonClicked(uint16_t, bool checked);
 };
 
 #endif // CONFIGPANELBUTTON_H
diff --git a/app/gui/oven_control/configpanelbutton.ui b/app/gui/oven_control/configpanelbutton.ui
index b5a209d..3fa9217 100644
--- a/app/gui/oven_control/configpanelbutton.ui
+++ b/app/gui/oven_control/configpanelbutton.ui
@@ -88,11 +88,17 @@ QPushButton:focus { background-image: url(:/images/config/pannel_ov.png); }</str
    </property>
    <property name="styleSheet">
     <string notr="true">QPushButton { background-image: url(:/images/config/088_fava_02.png); }
-QPushButton:pressed { background-image: url(:/images/config/088_fava_01.png); }</string>
+QPushButton:checked { background-image: url(:/images/config/088_fava_01.png); }</string>
    </property>
    <property name="text">
     <string/>
    </property>
+   <property name="checkable">
+    <bool>true</bool>
+   </property>
+   <property name="checked">
+    <bool>false</bool>
+   </property>
   </widget>
  </widget>
  <resources/>
diff --git a/app/gui/oven_control/configwindow.cpp b/app/gui/oven_control/configwindow.cpp
index e98d499..f33d22c 100644
--- a/app/gui/oven_control/configwindow.cpp
+++ b/app/gui/oven_control/configwindow.cpp
@@ -4,6 +4,8 @@
 #include "functiontestwindow.h"
 #include "engineermenuwindow.h"
 
+#include "configpanelbutton.h"
+
 ConfigWindow::ConfigWindow(QWidget *parent) :
     QMainWindow(parent),
     ui(new Ui::ConfigWindow)
@@ -13,6 +15,18 @@ ConfigWindow::ConfigWindow(QWidget *parent) :
     ui->clockContainer->setParent(ui->upperStack);
     setAttribute(Qt::WA_DeleteOnClose);
 
+    ui->scrollAreaMenuLayout->setAlignment(Qt::AlignTop);
+    ConfigPanelButton *configbtn;
+    for(int i = 0;i <20;i++){
+        configbtn = new ConfigPanelButton(this,i);
+        configbtn->showFavoriteButton();
+        configbtn->setText("TEST");
+        configbtn->setValue("test");
+        ui->scrollAreaMenuLayout->addWidget(configbtn);
+        connect(configbtn,SIGNAL(clicked(uint16_t)),SLOT(onConfigBtnClicked(uint16_t)));
+    }
+
+
 
 }
 
@@ -37,3 +51,17 @@ void ConfigWindow::on_pushButton_3_clicked()
     w->setWindowModality(Qt::WindowModal);
     w->showFullScreen();
 }
+
+void ConfigWindow::on_pushButton_8_clicked()
+{
+
+}
+
+void ConfigWindow::onConfigBtnClicked(uint16_t id){
+    qDebug() << "pressed id " << id;
+}
+
+
+void ConfigWindow::onConfigCheckBtnClicked(uint16_t id, bool checked){
+
+}
diff --git a/app/gui/oven_control/configwindow.h b/app/gui/oven_control/configwindow.h
index a97226c..68d2a01 100644
--- a/app/gui/oven_control/configwindow.h
+++ b/app/gui/oven_control/configwindow.h
@@ -13,6 +13,10 @@ class ConfigWindow : public QMainWindow
 {
     Q_OBJECT
 
+private:
+    const uint16_t m_arrMaxMenuCount[7] ={
+        9,7,
+    };
 public:
     explicit ConfigWindow(QWidget *parent = 0);
     ~ConfigWindow();
@@ -24,6 +28,13 @@ private slots:
 
     void on_pushButton_3_clicked();
 
+    void on_pushButton_8_clicked();
+
+
+public slots:
+    void onConfigBtnClicked(uint16_t id);
+    void onConfigCheckBtnClicked(uint16_t id, bool checked);
+
 private:
     Ui::ConfigWindow *ui;
 };
diff --git a/app/gui/oven_control/configwindow.ui b/app/gui/oven_control/configwindow.ui
index ab8ddf9..e3c873c 100644
--- a/app/gui/oven_control/configwindow.ui
+++ b/app/gui/oven_control/configwindow.ui
@@ -39,6 +39,9 @@ font-size: 30px;
       <height>426</height>
      </rect>
     </property>
+    <property name="currentIndex">
+     <number>0</number>
+    </property>
     <widget class="QWidget" name="clockContainer">
      <property name="styleSheet">
       <string notr="true">#clockContainer { background-image: url(:/images/clock/background.png); }</string>
@@ -397,6 +400,58 @@ QPushButton:pressed { border-image: url(:/images/bottom_bar/help_ov.png); }</str
      </property>
     </widget>
    </widget>
+   <widget class="QScrollArea" name="scrollArea">
+    <property name="geometry">
+     <rect>
+      <x>0</x>
+      <y>850</y>
+      <width>900</width>
+      <height>600</height>
+     </rect>
+    </property>
+    <property name="styleSheet">
+     <string notr="true"/>
+    </property>
+    <property name="frameShape">
+     <enum>QFrame::NoFrame</enum>
+    </property>
+    <property name="verticalScrollBarPolicy">
+     <enum>Qt::ScrollBarAsNeeded</enum>
+    </property>
+    <property name="widgetResizable">
+     <bool>true</bool>
+    </property>
+    <widget class="QWidget" name="scrollAreaMenu">
+     <property name="geometry">
+      <rect>
+       <x>0</x>
+       <y>0</y>
+       <width>900</width>
+       <height>600</height>
+      </rect>
+     </property>
+     <property name="sizePolicy">
+      <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
+       <horstretch>0</horstretch>
+       <verstretch>0</verstretch>
+      </sizepolicy>
+     </property>
+     <property name="styleSheet">
+      <string notr="true"/>
+     </property>
+     <layout class="QVBoxLayout" name="scrollAreaMenuLayout">
+      <property name="spacing">
+       <number>10</number>
+      </property>
+      <property name="sizeConstraint">
+       <enum>QLayout::SetDefaultConstraint</enum>
+      </property>
+      <property name="rightMargin">
+       <number>0</number>
+      </property>
+     </layout>
+    </widget>
+   </widget>
   </widget>
  </widget>
  <customwidgets>
-- 
2.1.4