From 8c71c888a94c9351e88968abf4a408aeee526ef1 Mon Sep 17 00:00:00 2001 From: raik199x Date: Sun, 24 Mar 2024 12:07:12 +0300 Subject: [PATCH] Button upgrades, added storage tab (but did not finished), updated readme --- CloudStorages/__init__.py | 0 CloudStorages/mega.py | 24 +++++++ README.md | 4 +- assets/information.png | Bin 0 -> 639 bytes assets/mark.png | Bin 0 -> 20021 bytes assets/mega-icon-logo.png | Bin 0 -> 91571 bytes assets/warning.png | Bin 0 -> 15127 bytes shared.py | 7 +- .../custom_widgets/abstract_storage_cloud.py | 59 +++++++++++++++++ ui/gui/custom_widgets/dark_style_button.py | 60 ++++++++++++++++++ ui/gui/mainwindow.py | 14 ++-- ui/gui/tabs/learning_tab.py | 20 ++---- ui/gui/tabs/settings_tab.py | 7 +- ui/gui/tabs/storage_tab.py | 35 ++++++++++ 14 files changed, 207 insertions(+), 23 deletions(-) create mode 100644 CloudStorages/__init__.py create mode 100644 CloudStorages/mega.py create mode 100644 assets/information.png create mode 100644 assets/mark.png create mode 100644 assets/mega-icon-logo.png create mode 100644 assets/warning.png create mode 100644 ui/gui/custom_widgets/abstract_storage_cloud.py create mode 100644 ui/gui/custom_widgets/dark_style_button.py create mode 100644 ui/gui/tabs/storage_tab.py diff --git a/CloudStorages/__init__.py b/CloudStorages/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/CloudStorages/mega.py b/CloudStorages/mega.py new file mode 100644 index 0000000..f04eab2 --- /dev/null +++ b/CloudStorages/mega.py @@ -0,0 +1,24 @@ +import mega + +class MegaCloud: + def __init__(self): + self.mega = mega.Mega() + self.account = None + + def LoginToAccount(self, email: str, password: str) -> str: + try: + self.account = self.mega.login(email, password) + except Exception as e: + return e + + return "success" + + def GetAccountInfo(self) -> dict(): + quota = self.account.get_quota() + space = self.account.get_storage_space(giga=True) + return {"quota": quota, "space": space} + + def GetFiles(self): + files = self.account.get_files() + return files + diff --git a/README.md b/README.md index e11bac2..f16abbc 100644 --- a/README.md +++ b/README.md @@ -33,7 +33,8 @@ if ~~crossed~~ means left undone - [x] Camera capture - [ ] Create chat tab - [x] Real time camera - - [ ] Create cloud storage sync tab + - [x] Create cloud storage sync tab + - [ ] Create button to add storages - [ ] Poe.api (chatting with bots) - [x] ~~Camera module (using cv2)~~ (reason: currently camera function are not shared between modules, so they are written directly in gui module) @@ -41,6 +42,7 @@ if ~~crossed~~ means left undone - [x] Downloaded face detection and landmark detection models - [ ] Backup dataset and pre-trained modules on mega.nz - [x] Dlib, set up for using cuda +- [ ] Add config file for app (probably ini or json) ## Requirements diff --git a/assets/information.png b/assets/information.png new file mode 100644 index 0000000000000000000000000000000000000000..5739c77df869d8dfcfba94fa7173fba77837587e GIT binary patch literal 639 zcmV-_0)YLAP)2ZVR51W}6 z-Ee?#eb~4wd^yasZaLdBbuM`SUAp222-WiY-f>d_hA+tt_%=#~Q0eblLx2kP{{|5K z=m7{+{IeZJP5-g4RH`1pgb{xOYzBF1^ReN$Iu{E{18Br9#%mrxeL?!76oXvrmQA;> zbo$C?EBHrKTbJF(x92oXuI;XZ6vA2zk|3qVV*H*v=J`ywT8Sda>d3`KRvN9d_r1^n zO|9+b!~vy`sJ*GS7Me?ARlmj1D>M6CPk;Z}&K;gDSp?_GRJMUSP?<2})%t?;k7(iq Z>lZEXt6kb0hfe?i002ovPDHLkV1nJhAG!bl literal 0 HcmV?d00001 diff --git a/assets/mark.png b/assets/mark.png new file mode 100644 index 0000000000000000000000000000000000000000..7d6320b560786a8a93b6cf3fc60c354c461be4f2 GIT binary patch literal 20021 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 T6QZyx00000NkvXXu0mjfR89=C literal 0 HcmV?d00001 diff --git a/assets/mega-icon-logo.png b/assets/mega-icon-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..21a974f899c22ddafdab6806afc378a78dd434b4 GIT binary patch literal 91571 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

wd_p>ZdUGLnc%51iw#J#X%QqQx>>~? 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 literal 0 HcmV?d00001 diff --git a/assets/warning.png b/assets/warning.png new file mode 100644 index 0000000000000000000000000000000000000000..208e18bdc93203c5aca948ec3ced2a791dfa1591 GIT binary patch literal 15127 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 literal 0 HcmV?d00001 diff --git a/shared.py b/shared.py index 04ecae4..84d195c 100644 --- a/shared.py +++ b/shared.py @@ -1,7 +1,9 @@ from sys import argv from os import path +from PySide6.QtCore import QSize - +# Paths +assets_folder_path = "assets/" data_folder_path = "emotion_recognition_data/" dataset_folder_path = data_folder_path + "dataset/" pretrained_face_landmarks_predictor_model = data_folder_path + "shape_predictor_68_face_landmarks.dat" @@ -20,3 +22,6 @@ def GetRelativePath(var): # Image drawing settings drawing_color = (0, 255, 0) # Default green drawing_thickness = 1 + +# Gui +icon_size = QSize(40, 40) \ No newline at end of file diff --git a/ui/gui/custom_widgets/abstract_storage_cloud.py b/ui/gui/custom_widgets/abstract_storage_cloud.py new file mode 100644 index 0000000..5341174 --- /dev/null +++ b/ui/gui/custom_widgets/abstract_storage_cloud.py @@ -0,0 +1,59 @@ +from PySide6.QtWidgets import QWidget, QLabel, QVBoxLayout, QHBoxLayout, QFrame +from PySide6.QtGui import QPixmap +from PySide6.QtCore import Qt +from ui.gui.custom_widgets.dark_style_button import DarkStyleButton +from shared import icon_size, assets_folder_path + + +class AbstractStorageWidget(QWidget): + def __init__(self, icon_path: str, storage_class): + super().__init__() + main_layout = QVBoxLayout() + self.setLayout(main_layout) + self.setFixedHeight(85) + + container_widget = QFrame() + container_widget.setStyleSheet("background-color: #272727; border-radius: 10px;") + basic_info = QHBoxLayout(container_widget) + + cloud_storage_icon = QLabel() + cloud_storage_icon.setPixmap(QPixmap(icon_path).scaled(icon_size)) + cloud_storage_icon.setAlignment(Qt.AlignCenter) + + overview_layout = QVBoxLayout() + self.label_status = QLabel("Nothing to do now") + self.label_status.setAlignment(Qt.AlignRight) + + buttons_layout = QHBoxLayout() # start buttons layout + + button_push = DarkStyleButton("Push") + button_push.setToolTip("Pushes folder to the cloud") + button_push.clicked.connect(self.pushPressed) + + button_pull = DarkStyleButton("Pull") + button_pull.setToolTip("Pulls folder from the cloud") + button_pull.clicked.connect(self.pullPressed) + + buttons_layout.addWidget(button_push) + buttons_layout.addWidget(button_pull) # end buttons layout + + overview_layout.addWidget(self.label_status) + overview_layout.addLayout(buttons_layout) + + self.current_status_icon = QLabel() + self.current_status_icon.setPixmap(QPixmap(assets_folder_path + "information.png").scaled(icon_size)) #! IMPLEMENT + self.current_status_icon.setAlignment(Qt.AlignCenter) + + basic_info.addWidget(cloud_storage_icon) + basic_info.addLayout(overview_layout) + basic_info.addWidget(self.current_status_icon) + + main_layout.addWidget(container_widget) + + self.cloud_storage = storage_class + + def pullPressed(self): + print("Button pull pressed") + + def pushPressed(self): + print("Button push pressed") diff --git a/ui/gui/custom_widgets/dark_style_button.py b/ui/gui/custom_widgets/dark_style_button.py new file mode 100644 index 0000000..d5ba674 --- /dev/null +++ b/ui/gui/custom_widgets/dark_style_button.py @@ -0,0 +1,60 @@ +from PySide6.QtWidgets import QPushButton +from PySide6.QtGui import QPainter, QColor, QPen +from PySide6.QtCore import Qt + + +class DarkStyleButton(QPushButton): + def __init__(self, text, parent=None): + super().__init__(text, parent) + self.setStyleSheet("border: none; padding: 5px;") + # Background color of button + self.active_button_color = QColor("#303030") + self.disabled_button_color = QColor("#464646") + self.hovered_button_color = QColor("#000") + self.clicked_button_color = QColor("#464646") + # Flags + self.isButtonClicked = False + + def redrawBackgroundColor(self, painter, bg_color): + # Draw the rounded background + rounded_rect = self.rect().adjusted(1, 1, -1, -1) + painter.setBrush(bg_color) + painter.setPen(QPen(QColor("#FFF"), 1)) + painter.drawRoundedRect(rounded_rect, 10, 10) + + def redrawText(self, painter, align=Qt.AlignCenter, text="None"): + # Draw the text + painter.setPen(QColor("#FFF")) + painter.drawText(self.rect(), align, text) + + def paintEvent(self, event): + painter = QPainter(self) + painter.setRenderHint(QPainter.Antialiasing) + painter.setRenderHint(QPainter.TextAntialiasing) + + # Determine the background color based on the hover state + if self.isButtonClicked: + bg_color = self.disabled_button_color + elif self.underMouse() and self.isEnabled(): + bg_color = self.hovered_button_color + elif not self.isEnabled(): + bg_color = self.disabled_button_color + else: + bg_color = self.active_button_color + + # Draw the rounded background + self.redrawBackgroundColor(painter, bg_color) + # Draw the text + self.redrawText(painter, Qt.AlignCenter, self.text()) + + def mousePressEvent(self, event): + if event.button() == Qt.LeftButton: + self.isButtonClicked = True + self.repaint() + super().mousePressEvent(event) + + def mouseReleaseEvent(self, event): + if event.button() == Qt.LeftButton: + self.isButtonClicked = False + self.repaint() + super().mouseReleaseEvent(event) diff --git a/ui/gui/mainwindow.py b/ui/gui/mainwindow.py index 054e235..9c017fe 100644 --- a/ui/gui/mainwindow.py +++ b/ui/gui/mainwindow.py @@ -2,6 +2,7 @@ from ui.gui.tabs.learning_tab import LearningTab from ui.gui.tabs.settings_tab import SettingsTab from ui.gui.tabs.camera_tab import CameraTab +from ui.gui.tabs.storage_tab import StorageTab from DeepLearning.model import EmotionClassificationModel from DeepLearning.settings import pytorch_device @@ -27,15 +28,20 @@ def __init__(self): self.is_model_learning = False # Forbids changing model settings # Tabs - self.list_of_tabs = [SettingsTab(self, "Settings"), LearningTab(self, "Learning"), CameraTab(self, "Camera")] - for tab in self.list_of_tabs: + self.list_of_tabs = [ + SettingsTab(self, "Settings"), + StorageTab(self, "Storages"), + LearningTab(self, "Learning"), + CameraTab(self, "Camera"), + ] + for index, tab in enumerate(self.list_of_tabs): self.mainTabWidget.addTab(tab, tab.tab_name) def TabChanged(self, index): # TODO: remove hardcode if self.list_of_tabs[index].tab_name != "Camera": - if self.list_of_tabs[2].capture.isOpened(): - self.list_of_tabs[2].capture.release() + if self.list_of_tabs[3].capture.isOpened(): + self.list_of_tabs[3].capture.release() self.list_of_tabs[index].UserSelectedTab() diff --git a/ui/gui/tabs/learning_tab.py b/ui/gui/tabs/learning_tab.py index 7953540..5ec869c 100644 --- a/ui/gui/tabs/learning_tab.py +++ b/ui/gui/tabs/learning_tab.py @@ -1,19 +1,11 @@ -from PySide6.QtWidgets import ( - QLabel, - QVBoxLayout, - QHBoxLayout, - QPushButton, - QFormLayout, - QSizePolicy, - QHeaderView, - QAbstractItemView, -) +from PySide6.QtWidgets import QLabel, QVBoxLayout, QHBoxLayout, QFormLayout, QSizePolicy, QHeaderView, QAbstractItemView from PySide6.QtCore import QThreadPool, Slot, Qt from ui.gui.tabs.abstract_tab import AbstractTabWidget from ui.gui.workers.learning_worker import LearningWorker from ui.gui.custom_widgets.learning_statistics_table import LearningStatisticsTable +from ui.gui.custom_widgets.dark_style_button import DarkStyleButton from DeepLearning.dataset_parser import DatasetParser -from shared import dataset_folder +from shared import dataset_folder_path import pyqtgraph as pg @@ -32,11 +24,11 @@ def __init__(self, ParentClass, tab_name): self.label_model_train_status.setAlignment(Qt.AlignCenter) self.label_model_train_status.setStyleSheet("font-weight: bold; font-size: 16px") - self.button_start_model_train = QPushButton("Start training") + self.button_start_model_train = DarkStyleButton("Start training") self.button_start_model_train.setEnabled(False) self.button_start_model_train.clicked.connect(self.UserPressedStartButton) - self.button_stop_model_train = QPushButton("Stop training") + self.button_stop_model_train = DarkStyleButton("Stop training") self.button_stop_model_train.setEnabled(False) self.button_stop_model_train.clicked.connect(self.UserPressedStopButton) @@ -48,7 +40,7 @@ def __init__(self, ParentClass, tab_name): self.main_vertical_layout.addLayout(buttons_start_stop_layout) # Statistics epoch - self.parser = DatasetParser(dataset_folder) + self.parser = DatasetParser(dataset_folder_path) if not self.parser.LoadDatasetIntoRam() == 0: print("UNHANDLED ERROR") # TODO exit(1) diff --git a/ui/gui/tabs/settings_tab.py b/ui/gui/tabs/settings_tab.py index 9349ac2..69c2002 100644 --- a/ui/gui/tabs/settings_tab.py +++ b/ui/gui/tabs/settings_tab.py @@ -1,6 +1,7 @@ -from PySide6.QtWidgets import QFileDialog, QMessageBox, QPushButton, QVBoxLayout, QHBoxLayout, QLabel, QTextBrowser +from PySide6.QtWidgets import QFileDialog, QMessageBox, QVBoxLayout, QHBoxLayout, QLabel, QTextBrowser from PySide6.QtCore import QThreadPool from ui.gui.tabs.abstract_tab import AbstractTabWidget +from ui.gui.custom_widgets.dark_style_button import DarkStyleButton from torch import __version__ as pytorch_version from DeepLearning.settings import pytorch_device from shared import pretrained_emotion_recognition_model, GetRelativePath @@ -24,9 +25,9 @@ def __init__(self, ParentClass, tab_name): self.ParentClass.emotion_classification_model.LoadModel(PretrainedModelRelativePath) self.SetLoadModelStatus(True) - self.button_set_model_path = QPushButton("Load pretrained model") + self.button_set_model_path = DarkStyleButton("Load pretrained model") self.button_set_model_path.clicked.connect(self.OnLoadModelButtonClicked) - self.button_create_new_model = QPushButton("Create new model") + self.button_create_new_model = DarkStyleButton("Create new model") self.button_create_new_model.clicked.connect(self.OnCreateModelButtonClicked) layout_model_statue = QHBoxLayout() diff --git a/ui/gui/tabs/storage_tab.py b/ui/gui/tabs/storage_tab.py new file mode 100644 index 0000000..7ce53a8 --- /dev/null +++ b/ui/gui/tabs/storage_tab.py @@ -0,0 +1,35 @@ +from ui.gui.tabs.abstract_tab import AbstractTabWidget +from ui.gui.custom_widgets.abstract_storage_cloud import AbstractStorageWidget +from PySide6.QtWidgets import QVBoxLayout, QLabel, QScrollArea, QWidget, QSpacerItem, QSizePolicy +from PySide6.QtCore import Qt +from shared import assets_folder_path +from CloudStorages.mega import MegaCloud + + +class StorageTab(AbstractTabWidget): + def __init__(self, ParentClass, tab_name): + super().__init__(ParentClass, tab_name) + main_layout = QVBoxLayout() + self.setLayout(main_layout) + + scroll_area = QScrollArea() + main_layout.addWidget(scroll_area) + scroll_area.setWidgetResizable(True) + + content_widget = QWidget() + scroll_area.setWidget(content_widget) + + self.content_layout = QVBoxLayout(content_widget) + + self.status_label = QLabel() + self.status_label.setText("Nothing to do now") + self.status_label.setAlignment(Qt.AlignCenter) + self.status_label.setStyleSheet("font-size: 16px; font-weight: bold") + + self.content_layout.addWidget(self.status_label) + self.content_layout.addWidget(AbstractStorageWidget(assets_folder_path + "mega-icon-logo.png", MegaCloud())) + verticalSpacer = QSpacerItem(1, self.height(), QSizePolicy.Minimum, QSizePolicy.Expanding) + self.content_layout.addSpacerItem(verticalSpacer) + + def UserSelectedTab(self) -> None: + pass