Skip to content

Commit d075187

Browse files
committed
ff-qtah: Align start/end
1 parent 44a6cc8 commit d075187

File tree

2 files changed

+19
-37
lines changed

2 files changed

+19
-37
lines changed

ff-qtah/FF/Qt/DateComponent.hs

Lines changed: 5 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,41 +1,24 @@
11
{-# LANGUAGE NamedFieldPuns #-}
22
{-# LANGUAGE ViewPatterns #-}
33

4-
module FF.Qt.DateComponent (DateComponent (super), new, setDate) where
4+
module FF.Qt.DateComponent (DateComponent (..), new, setDate) where
55

66
import Data.Time (Day, toGregorian)
77
import Graphics.UI.Qtah.Core.QDate qualified as QDate
88
import Graphics.UI.Qtah.Widgets.QAbstractSpinBox qualified as QAbstractSpinBox
9-
import Graphics.UI.Qtah.Widgets.QBoxLayout qualified as QBoxLayout
109
import Graphics.UI.Qtah.Widgets.QDateEdit (QDateEdit)
1110
import Graphics.UI.Qtah.Widgets.QDateEdit qualified as QDateEdit
1211
import Graphics.UI.Qtah.Widgets.QDateTimeEdit qualified as QDateTimeEdit
13-
import Graphics.UI.Qtah.Widgets.QHBoxLayout (QHBoxLayout)
14-
import Graphics.UI.Qtah.Widgets.QHBoxLayout qualified as QHBoxLayout
15-
import Graphics.UI.Qtah.Widgets.QLabel (QLabel)
16-
import Graphics.UI.Qtah.Widgets.QLabel qualified as QLabel
1712

18-
data DateComponent = DateComponent
19-
{ super :: QHBoxLayout
20-
, label :: QLabel
21-
, dateEdit :: QDateEdit
22-
}
23-
24-
new :: String -> IO DateComponent
25-
new title = do
26-
super <- QHBoxLayout.new
27-
28-
label <- QLabel.newWithText title
29-
QBoxLayout.addWidget super label
13+
newtype DateComponent = DateComponent {dateEdit :: QDateEdit}
3014

15+
new :: IO DateComponent
16+
new = do
3117
dateEdit <- QDateEdit.new
3218
QDateTimeEdit.setCalendarPopup dateEdit True
3319
QDateTimeEdit.setDisplayFormat dateEdit "ddd d MMM yyyy"
34-
QBoxLayout.addWidget super dateEdit
35-
36-
QBoxLayout.addStretch super
3720

38-
let this = DateComponent{super, label, dateEdit}
21+
let this = DateComponent{dateEdit}
3922
setEditable this False
4023
pure this
4124

ff-qtah/FF/Qt/TaskWidget.hs

Lines changed: 14 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ module FF.Qt.TaskWidget (
1010
-- global
1111
import Foreign.Hoppy.Runtime (toGc)
1212
import Graphics.UI.Qtah.Core.Types (QtAlignmentFlag (AlignTop))
13-
import Graphics.UI.Qtah.Widgets.QBoxLayout qualified as QBoxLayout
13+
import Graphics.UI.Qtah.Widgets.QFormLayout qualified as QFormLayout
1414
import Graphics.UI.Qtah.Widgets.QFrame (QFrame)
1515
import Graphics.UI.Qtah.Widgets.QFrame qualified as QFrame
1616
import Graphics.UI.Qtah.Widgets.QLabel (QLabel)
@@ -19,7 +19,6 @@ import Graphics.UI.Qtah.Widgets.QScrollArea (QScrollArea)
1919
import Graphics.UI.Qtah.Widgets.QScrollArea qualified as QScrollArea
2020
import Graphics.UI.Qtah.Widgets.QSizePolicy (QSizePolicy, QSizePolicyPolicy)
2121
import Graphics.UI.Qtah.Widgets.QSizePolicy qualified as QSizePolicy
22-
import Graphics.UI.Qtah.Widgets.QVBoxLayout qualified as QVBoxLayout
2322
import Graphics.UI.Qtah.Widgets.QWidget qualified as QWidget
2423
import RON.Storage.FS (runStorage)
2524
import RON.Storage.FS qualified as Storage
@@ -42,7 +41,7 @@ data TaskWidget = TaskWidget
4241
{ super :: QScrollArea
4342
, frame :: QFrame
4443
-- ^ widget inside the scroll area
45-
, textLabel :: QLabel
44+
, textContent :: QLabel
4645
-- ^ label for the text
4746
, storage :: Storage.Handle
4847
, start :: DateComponent
@@ -56,28 +55,28 @@ new storage = do
5655
frame <- QFrame.new
5756
QScrollArea.setWidget super frame
5857

59-
textLabel <- QLabel.new
60-
QWidget.setSizePolicy textLabel
58+
textContent <- QLabel.new
59+
QWidget.setSizePolicy textContent
6160
=<< makeSimpleSizePolicy QSizePolicy.MinimumExpanding
62-
QLabel.setAlignment textLabel AlignTop
63-
QLabel.setWordWrap textLabel True
61+
QLabel.setAlignment textContent AlignTop
62+
QLabel.setWordWrap textContent True
6463

65-
start <- DateComponent.new "Start:"
66-
end <- DateComponent.new "Deadline:"
64+
start <- DateComponent.new
65+
end <- DateComponent.new
6766

68-
box <- QVBoxLayout.newWithParent frame
69-
QBoxLayout.addWidget box textLabel
70-
QBoxLayout.addLayout box start.super
71-
QBoxLayout.addLayout box end.super
67+
form <- QFormLayout.newWithParent frame
68+
QFormLayout.addRowWidget form textContent
69+
QFormLayout.addRowStringWidget form "Start:" start.dateEdit
70+
QFormLayout.addRowStringWidget form "Deadline:" end.dateEdit
7271

73-
pure TaskWidget{super, frame, textLabel, storage, start, end}
72+
pure TaskWidget{super, frame, textContent, storage, start, end}
7473

7574
update :: TaskWidget -> NoteId -> IO ()
7675
update this noteId = do
7776
Entity{entityVal} <- runStorage this.storage $ loadNote noteId >>= viewNote
7877
let NoteView{note} = entityVal
7978
let Note{note_text, note_start, note_end} = note
80-
QLabel.setText this.textLabel $ fromRgaM note_text
79+
QLabel.setText this.textContent $ fromRgaM note_text
8180
DateComponent.setDate this.start note_start
8281
DateComponent.setDate this.end note_end
8382
QWidget.adjustSize this.frame

0 commit comments

Comments
 (0)