From ee425a93c361321ad0e77c2f9c4a24d83546e41b Mon Sep 17 00:00:00 2001 From: Tuomas Alanen Date: Tue, 27 Apr 2021 20:12:59 +0300 Subject: [PATCH] last checks before week 5 return --- dokumentaatio/tyoaikakirjanpito.md | 53 +++++++++++++++--------------- src/ui/gui/memo_view.py | 33 ++++++++++++++++--- 2 files changed, 55 insertions(+), 31 deletions(-) diff --git a/dokumentaatio/tyoaikakirjanpito.md b/dokumentaatio/tyoaikakirjanpito.md index 727ae3f..8372f10 100644 --- a/dokumentaatio/tyoaikakirjanpito.md +++ b/dokumentaatio/tyoaikakirjanpito.md @@ -1,31 +1,32 @@ # Työaikakirjanpito -| Milloin? | Kauan? | Mitä? | -| -------- | ------ | ------------------------------------------------------------------------------------- | -| 20.3 | 2h | Vaatimusmäärittely & suunnittelu | -| 27.3 | 0,5h | Tietokantayhteyden määrittely | -| 27.3 | 2h | Memon määritteleminen | -| 27.3 | 2h | Vaihto pymongo -> mongoengine, refaktorointi vastaamaan vaihtoa | -| 28.3 | 5,5h | MemoRepositoryn tunkkaaminen, testikannan määrittely | -| 2.4 | 0,5h | Invoken asetuksien määrittäminen | -| 2.4 | 3h | Userin määritteleminen | -| 5.4 | 0,5h | UserRepositoryn viimeistely | -| 5.4 | 2h | MemoService versio 1 | -| 8.4-11.4 | 8h | Refaktorointi ja ongelmien korjaamista | -| 13.4 | 2h | Viikon 3 palautuksen valmistelu, alkeellinen tekstikäyttöliittymä demoa varten | -| 17.4 | 2h | MemoRepositoryn testien viimeistely ja kokonaisuuden saattaminen valmiiksi v1 | -| 17.4 | 1h | UserRepositoryn testien viimeistely ja kokonaisuuden saattaminen valmiiksi v1 | -| 17.4 | 0,5h | Aiemman tekstikäyttöliittymän eristäminen tulevan GUI:n tieltä omaksi luokaksi | -| 17.4 | 2h | MemoServicen testit kuntoon ja sovelluslogiikan v1 | -| 17.4 | 3h | UserServicen versio 1 ja testit | -| 18.4 | 1h | Tietokannan yhdistämisen testien räpeltäminen, pytest-socket ei saanut estettyä - WIP | -| 18.4 | 5,5h | Graafisen käyttöliittymän rakentamisen aloittaminen, | -| | | PyQt5 toteaminen sopivammaksi GUI-kirjastoksi ajatellen tulevia kehityskohteita | -| 20.4 | 4h | Muistioiden toiminnallisuudet alkeellisesti valmiiksi graafiseen käyttöliittymään | -| 24.4 | 4h | Kirjautuminen graafiseen käyttöliittymään, yleinen GUI:n hiominen | -| 24.4 | 1,5h | Markdown-tuki muistioille | -| 25.4 | 7h | Kuvatuki memoihin ja sen tarvitsemat sovelluslogiikat | -| Yhteensä | 59,5h | | +| Milloin? | Kauan? | Mitä? | +| --------- | ------ | ------------------------------------------------------------------------------------- | +| 20.3 | 2h | Vaatimusmäärittely & suunnittelu | +| 27.3 | 0,5h | Tietokantayhteyden määrittely | +| 27.3 | 2h | Memon määritteleminen | +| 27.3 | 2h | Vaihto pymongo -> mongoengine, refaktorointi vastaamaan vaihtoa | +| 28.3 | 5,5h | MemoRepositoryn tunkkaaminen, testikannan määrittely | +| 2.4 | 0,5h | Invoken asetuksien määrittäminen | +| 2.4 | 3h | Userin määritteleminen | +| 5.4 | 0,5h | UserRepositoryn viimeistely | +| 5.4 | 2h | MemoService versio 1 | +| 8.4-11.4 | 8h | Refaktorointi ja ongelmien korjaamista | +| 13.4 | 2h | Viikon 3 palautuksen valmistelu, alkeellinen tekstikäyttöliittymä demoa varten | +| 17.4 | 2h | MemoRepositoryn testien viimeistely ja kokonaisuuden saattaminen valmiiksi v1 | +| 17.4 | 1h | UserRepositoryn testien viimeistely ja kokonaisuuden saattaminen valmiiksi v1 | +| 17.4 | 0,5h | Aiemman tekstikäyttöliittymän eristäminen tulevan GUI:n tieltä omaksi luokaksi | +| 17.4 | 2h | MemoServicen testit kuntoon ja sovelluslogiikan v1 | +| 17.4 | 3h | UserServicen versio 1 ja testit | +| 18.4 | 1h | Tietokannan yhdistämisen testien räpeltäminen, pytest-socket ei saanut estettyä - WIP | +| 18.4 | 5,5h | Graafisen käyttöliittymän rakentamisen aloittaminen, | +| | | PyQt5 toteaminen sopivammaksi GUI-kirjastoksi ajatellen tulevia kehityskohteita | +| 20.4 | 4h | Muistioiden toiminnallisuudet alkeellisesti valmiiksi graafiseen käyttöliittymään | +| 24.4 | 4h | Kirjautuminen graafiseen käyttöliittymään, yleinen GUI:n hiominen | +| 24.4 | 1,5h | Markdown-tuki muistioille | +| 25.4 | 7h | Kuvatuki memoihin ja sen tarvitsemat sovelluslogiikat | +| 26.4-27.4 | 2h | Uusien kuvien lisäämisen mahdollistaminen | +| Yhteensä | 61,5h | | ## Todo-lista diff --git a/src/ui/gui/memo_view.py b/src/ui/gui/memo_view.py index 4cec8c1..65e396b 100644 --- a/src/ui/gui/memo_view.py +++ b/src/ui/gui/memo_view.py @@ -289,24 +289,28 @@ def __handle_image(self): columns = (self.__active_width-800) // 250 - self.layouts[0]["image_selector_select"] = QGridLayout() + self.layouts[0]["image_selector_select"] = QVBoxLayout() self.objects[0]["image_selector"]["title_label"] = QLabel( '

All images

') self.layouts[0]["image_selector_select"].addWidget( - self.objects[0]["image_selector"]["title_label"], 0, 0) + self.objects[0]["image_selector"]["title_label"]) images = self.image_service.get("author", self.user[0]) imgs_in_row = 0 current_row = 1 self.objects[0]["image_selector"]["img_grid"] = {} self.layouts[0]["image_selector_grid"] = {} + self.frames[0]["image_selector_grid"] = QFrame() + self.layouts[0]["image_selector_select_grid"] = QGridLayout() + self.frames[0]["image_selector_grid"].setLayout( + self.layouts[0]["image_selector_select_grid"]) for image in images: self.layouts[0]["image_selector_grid"][image.id] = QVBoxLayout() self.objects[0]["image_selector"]["img_grid"][image.id] = {} self.objects[0]["image_selector"]["img_grid"][image.id]["image_label"] = QLabel( ) self.objects[0]["image_selector"]["img_grid"][image.id]["name_label"] = QLabel( - image.name+'
Width:'+str(image.width)) + image.name+'
Width: '+str(image.width)) self.objects[0]["image_selector"]["img_grid"][image.id]["select_button"] = QPushButton( 'Select') @@ -317,13 +321,14 @@ def __handle_image(self): self.objects[0]["image_selector"]["img_grid"][image.id]["select_button"].clicked.connect( partial(self.__add_image, image.id)) + self.layouts[0]["image_selector_grid"][image.id].addStretch() self.layouts[0]["image_selector_grid"][image.id].addWidget( self.objects[0]["image_selector"]["img_grid"][image.id]["image_label"]) self.layouts[0]["image_selector_grid"][image.id].addWidget( self.objects[0]["image_selector"]["img_grid"][image.id]["name_label"]) self.layouts[0]["image_selector_grid"][image.id].addWidget( self.objects[0]["image_selector"]["img_grid"][image.id]["select_button"]) - self.layouts[0]["image_selector_select"].addLayout( + self.layouts[0]["image_selector_select_grid"].addLayout( self.layouts[0]["image_selector_grid"][image.id], current_row, imgs_in_row) imgs_in_row += 1 if imgs_in_row == columns: @@ -340,8 +345,26 @@ def __handle_image(self): self.layouts[0]["image_selector_toolbar"].addWidget( self.objects[0]["image_selector"]["close_button"]) + self.objects[0]["image_selector"]["content_scroll"] = QScrollArea() + self.objects[0]["image_selector"]["content_scroll"].setWidget( + self.frames[0]["image_selector_grid"]) + self.objects[0]["image_selector"]["content_scroll"].ensureWidgetVisible( + self.frames[0]["image_selector_grid"]) + self.objects[0]["image_selector"]["content_scroll"].ensureVisible( + 0, 0, 0, 0) + self.objects[0]["image_selector"]["content_scroll"].setWidgetResizable( + True) + self.objects[0]["image_selector"]["content_scroll"].setAlignment( + Qt.AlignTop) + self.objects[0]["image_selector"]["content_scroll"].setFixedSize( + self.__active_width-500, self.__active_height-400) + self.objects[0]["image_selector"]["content_scroll"].setStyleSheet( + 'QScrollArea { border: 0px;}') + + self.layouts[0]["image_selector_select"].addWidget( + self.objects[0]["image_selector"]["content_scroll"]) self.layouts[0]["image_selector_select"].addLayout( - self.layouts[0]["image_selector_toolbar"], current_row+1, 0, 1, imgs_in_row if imgs_in_row > 1 else 1) + self.layouts[0]["image_selector_toolbar"]) self.frames[0]["image_selector_select"].setLayout( self.layouts[0]["image_selector_select"])