From 8bbbff7fead203237afdbf7568d8fb42f297bdb5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aur=C3=A9lie=20Delhaie?= Date: Mon, 12 Dec 2022 20:57:18 +0100 Subject: [PATCH] First commit --- .DS_Store | Bin 0 -> 8196 bytes .gitignore | 1 + Info.plist | 24 +++ TaskBoard.pro | 108 +++++++++++++ icon.icns | Bin 0 -> 112549 bytes icon.ico | Bin 0 -> 111992 bytes resources.qrc | 5 + resources/.DS_Store | Bin 0 -> 6148 bytes resources/logo.png | Bin 0 -> 12997 bytes src/.DS_Store | Bin 0 -> 6148 bytes src/frames/aboutdialog.cpp | 16 ++ src/frames/aboutdialog.h | 22 +++ src/frames/aboutdialog.ui | 116 +++++++++++++ src/frames/mainwindow.cpp | 283 ++++++++++++++++++++++++++++++++ src/frames/mainwindow.h | 52 ++++++ src/frames/mainwindow.ui | 154 ++++++++++++++++++ src/frames/namedialog.cpp | 25 +++ src/frames/namedialog.h | 25 +++ src/frames/namedialog.ui | 109 +++++++++++++ src/frames/prefdialog.cpp | 209 ++++++++++++++++++++++++ src/frames/prefdialog.h | 44 +++++ src/frames/prefdialog.ui | 323 +++++++++++++++++++++++++++++++++++++ src/frames/taskdialog.cpp | 111 +++++++++++++ src/frames/taskdialog.h | 33 ++++ src/frames/taskdialog.ui | 159 ++++++++++++++++++ src/main.cpp | 11 ++ src/models/.DS_Store | Bin 0 -> 6148 bytes src/models/board.cpp | 40 +++++ src/models/board.h | 26 +++ src/models/priority.cpp | 23 +++ src/models/priority.h | 23 +++ src/models/status.cpp | 23 +++ src/models/status.h | 22 +++ src/models/task.cpp | 44 +++++ src/models/task.h | 28 ++++ src/tools.cpp | 48 ++++++ src/tools.h | 16 ++ 37 files changed, 2123 insertions(+) create mode 100644 .DS_Store create mode 100644 .gitignore create mode 100644 Info.plist create mode 100644 TaskBoard.pro create mode 100644 icon.icns create mode 100644 icon.ico create mode 100644 resources.qrc create mode 100644 resources/.DS_Store create mode 100644 resources/logo.png create mode 100644 src/.DS_Store create mode 100644 src/frames/aboutdialog.cpp create mode 100644 src/frames/aboutdialog.h create mode 100644 src/frames/aboutdialog.ui create mode 100644 src/frames/mainwindow.cpp create mode 100644 src/frames/mainwindow.h create mode 100644 src/frames/mainwindow.ui create mode 100644 src/frames/namedialog.cpp create mode 100644 src/frames/namedialog.h create mode 100644 src/frames/namedialog.ui create mode 100644 src/frames/prefdialog.cpp create mode 100644 src/frames/prefdialog.h create mode 100644 src/frames/prefdialog.ui create mode 100644 src/frames/taskdialog.cpp create mode 100644 src/frames/taskdialog.h create mode 100644 src/frames/taskdialog.ui create mode 100644 src/main.cpp create mode 100644 src/models/.DS_Store create mode 100644 src/models/board.cpp create mode 100644 src/models/board.h create mode 100644 src/models/priority.cpp create mode 100644 src/models/priority.h create mode 100644 src/models/status.cpp create mode 100644 src/models/status.h create mode 100644 src/models/task.cpp create mode 100644 src/models/task.h create mode 100644 src/tools.cpp create mode 100644 src/tools.h diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..c0b426fd3ed6f471ccaedd91d4ca917319563a41 GIT binary patch literal 8196 zcmeHMJ#W)M7=AAa)S;>rp(2F=$x_#b(eEL4Go zWi%;8jEkBm8GU3G$iOGspboVtps?mAqRj!LfKk9GU=%P47zO?X1@O)m#ai&*SEHsi z3K#|cO9jO9!A2EW);LutA02393INREuq@~!50D&NV_D-=p`>C?l|3*`Wje)RijHwx zgagYOrwSFFn4%NYXJ$G>Ve;(Y*)p71S)pl-0!D$P0wQ@{%XL>4)P6=U$4KNtTa7Jr3mnEe@XoS{cP*dYz(IhlhPCr^E9BaYJ$y_V?DGwAl8 z8O>4H)A#YQ+4DQ$z;V8^Og4Av@{+Y=En83ALq2i`jlnRiH2ROkr+v=-=4rptyx(b$ z>V?%iJQy@OLAx&r9j}d$#}7Jz$43=D47^ZsT{U3kt$e*u9FO;Qx7O{Q()MKC9`9{B z=x=UKCVA`H+Ra<{>PLPz;IE{j#PoxWR@CQNE3{A1!apdvE#B?T;!>l!yjs=wZ=HN! zd;9JEXQ5ikd|mFHF|v1fmNUO_`+?5`;i|Z^m86?k3(tkKF;_nz`dwtLWw8d*qoONP zM@9Vpbm4wqACF6pvkjA-o!=NP3`JRJ_!|uB+etB5k3@}q_~rQJu`+fx`peAZXo`WF zmoROg8j$~pD%ge%*x<Gv+ErS}#0*2s*{1%y@$3ffduFM5|BE$Zic#SF z6v(Qniz5HOyZHD2^Sb~uvr)h(@YfY!xvE>O;4)6Xg2t~%QZ1V|Z7V-&bh1%3hwg*?ju literal 0 HcmV?d00001 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..45aa0c0 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +*.pro.* \ No newline at end of file diff --git a/Info.plist b/Info.plist new file mode 100644 index 0000000..c56a7de --- /dev/null +++ b/Info.plist @@ -0,0 +1,24 @@ + + + + + CFBundleExecutable + TaskBoard + CFBundleIconFile + + CFBundleIdentifier + com.aureliedelhaie.TaskBoard + CFBundlePackageType + APPL + CFBundleSignature + ???? + LSMinimumSystemVersion + 10.14 + NSPrincipalClass + NSApplication + NSSupportsAutomaticGraphicsSwitching + + CFBundleIconFile + icon.icns + + diff --git a/TaskBoard.pro b/TaskBoard.pro new file mode 100644 index 0000000..65e0306 --- /dev/null +++ b/TaskBoard.pro @@ -0,0 +1,108 @@ +QT += core gui + +greaterThan(QT_MAJOR_VERSION, 4): QT += widgets + +CONFIG += c++17 + +win32:VERSION = 0.1.0.0 # major.minor.patch.build +else:VERSION = 0.1.0 # major.minor.patch + +DEFINES += APP_VERSION=\"\\\"$${VERSION}\\\"\" +DEFINES += APP_NAME=\"\\\"TaskBoard\\\"\" + +win32 { + message("Build for Windows") + QMAKE_CXXFLAGS_RELEASE -= -O + QMAKE_CXXFLAGS_RELEASE -= -O1 + QMAKE_CXXFLAGS_RELEASE *= -O2 + DEFINES += APP_OS=\"\\\"Windows\\\"\" + DEFINES += APP_OS_VERSION=\"\\\"$$system(ver)\\\"\" + equals(QMAKE_TARGET.arch, arm64) { + message("CPU Architecture : aarch64") + DEFINES += APP_ARCH=\"\\\"arm64\\\"\" + } + equals(QMAKE_TARGET.arch, x86_64) { + message("CPU Architecture : x64") + QMAKE_CXXFLAGS_RELEASE += -favor:INTEL64 + DEFINES += APP_ARCH=\"\\\"x64\\\"\" + } + RC_ICONS = icon.ico + QMAKE_TARGET_COMPANY = "Aurelie Delhaie" + QMAKE_TARGET_PRODUCT = "TaskBoard" + QMAKE_TARGET_DESCRIPTION = "TaskBoard" +} + +macx { + message("Build for macOS") + ICON = icon.icns + QMAKE_INFO_PLIST = Info.plist + QMAKE_CXXFLAGS_RELEASE -= -O + QMAKE_CXXFLAGS_RELEASE -= -O1 + QMAKE_CXXFLAGS_RELEASE -= -O2 + QMAKE_CXXFLAGS_RELEASE *= -O3 + QMAKE_APPLE_DEVICE_ARCHS = x86_64 arm64 + DEFINES += APP_OS=\"\\\"macOS\\\"\" + DEFINES += APP_OS_VERSION=\"\\\"$$system(uname -r)\\\"\" + DEFINES += APP_ARCH=\"\\\"universal\\\"\" +} + +linux-* { + message("Build for Linux") + DEFINES += APP_OS=\"\\\"$$system(cat /etc/issue | cut -d\' \' -f1)\\\"\" + DEFINES += APP_OS_VERSION=\"\\\"$$system(uname -r)\\\"\" + DEFINES += APP_ARCH=\"\\\"$$system(uname -m)\\\"\" + ARCH = $$system(uname -m) + equals(ARCH, aarch64) { + message("CPU Architecture : aarch64") + QMAKE_CXXFLAGS_RELEASE += -mtune=cortex-a72 + } + equals(ARCH, amd64) { + message("CPU Architecture : amd64") + QMAKE_CXXFLAGS_RELEASE += -march=skylake + } + QMAKE_CXXFLAGS_RELEASE *= -O3 +} + +# You can make your code fail to compile if it uses deprecated APIs. +# In order to do so, uncomment the following line. +#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 + +SOURCES += \ + src/frames/aboutdialog.cpp \ + src/models/board.cpp \ + src/main.cpp \ + src/frames/mainwindow.cpp \ + src/frames/namedialog.cpp \ + src/frames/prefdialog.cpp \ + src/models/priority.cpp \ + src/models/status.cpp \ + src/models/task.cpp \ + src/frames/taskdialog.cpp \ + src/tools.cpp + +HEADERS += \ + src/frames/aboutdialog.h \ + src/models/board.h \ + src/frames/mainwindow.h \ + src/frames/namedialog.h \ + src/frames/prefdialog.h \ + src/models/priority.h \ + src/models/status.h \ + src/models/task.h \ + src/frames/taskdialog.h \ + src/tools.h + +FORMS += \ + src/frames/aboutdialog.ui \ + src/frames/mainwindow.ui \ + src/frames/namedialog.ui \ + src/frames/prefdialog.ui \ + src/frames/taskdialog.ui + +# Default rules for deployment. +qnx: target.path = /tmp/$${TARGET}/bin +else: unix:!android: target.path = /opt/$${TARGET}/bin +!isEmpty(target.path): INSTALLS += target + +RESOURCES += \ + resources.qrc diff --git a/icon.icns b/icon.icns new file mode 100644 index 0000000000000000000000000000000000000000..b9957b281184ddafdad6273362856e4573711027 GIT binary patch literal 112549 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

(%Grt>ufrJj& z&i{%D$-99eTYEDCW+4F@lt>X?smjwjG(k1J26r)SYe#}`>K|jLqR>aRtTa>w@suD# zHE-(->r|~^``(iE6Lr2B#y2D{8lRR0-~j>Ab+ZJ9)M7%e&)IT<>CLLInRCTWL3)Bv6OEv<(dAlm=92gURIz z+q1b?I|8kmB+rAQ+EGL31)di=(|jA)94o|H{HfuOy%+}TDV+=Rn_w<2Otz&t)VZT7 zu;F|iO}4PPM;^Nsh~R^$nVl~uLj!QTBDsQr36LA!S@;Z=M~!}U7s|bih*}t<1;U(w zJ|YS~xiPGZf3F*t+R9g9xtVb)j@C+6pBnW|RaGSnpgxkHy|fm=__)_5;@!$tX0k(~ z2L7KB7)I9P4tnp2oBpOTh@9g*&zJ*GV?jq*$XdcD6n};<_Ye$Tza|zj@agvvvZybw zY<=p2Y!E87l1lQRIap!kj_J8_pUP!xWA^blWI4G_Z?D3G6CWyhe- z7{u(=T%ouZBg^}lNmpC5?h%NjVt)$- z2HDf_r(zugHqu`If%Fso@Bk{p)SEC0f*69;=~D>(g2c%d@rxz+swR$j#SO)isr? z7vHqPWy@;P5>;=g)}tP0vzm1}1Gw9vK&IU3bOe4xtr<_?G~VZgU=92&9jclV*<`p$HEceiuzl)RE?i_r_C|s#b)qp@k#E z+Lc0c$3Z+s%6smex<0tb#mjlwB;7=1?4E61RTB3Ht`@L`EHKC zghp%G3tInDn|7xEmKn5FSh4Jm5M_hUq#^ga-wxwkA&pp`h6j{ls zryA<<|3CLuE=j9?@wl8~!|OZ!t++y#lf7BD&z$ia`^!iywNX|-pgSR5qT7dWpuQ1( zLcql%_5@?GT0IUx0OZPCz^eDd`KO%q-3AsA_ztEAr?v-h72BC;J+Rp0A3E0B@vy?1 z^VG_H$3FRyk1kQ-++h>+a!s(-0w9rl^e9BL6&*yqq#}K!8I&0Lx|%LaLfq#AK%4mg zpHK<~C8CWfma<{1T`YbWk_C=AWdggT%}=-5bFP6#+8U~YFI&rDVw=Eh0hhRtOj030 zu^f818ra#AVp!A7<&s|#xd6DErU*}MCS}S*-9+AtjF64$r+tPcCLBe_YCpQzOQgn|piC&>mYeg#y3|8@b>X>2HRa zARo0A<~vW^T{AZ9^zU^U3RAvW`T^S_yb%f0f{htN5B|d+I)+qaO{PM`yPP5d@D45n zT)WS7rS;^-0OyUPT0#j(bD*JnG(*BE-qPt=dz559K=ezVX)s-Zn8ZGf7nreM>}cCj zC`aT-grpu$m3Oh~X5tR^A_nN#ptnzhr*FZDgU=yu#PXknKJWO|T#(ie!H4v4{>p}O zMSuA@Ay|GR@DP-d6oO5Z|HY+$i`wW6c*OjMxIi+Hgp<mu9fs_?pvYJ1G?3c2WYJuWL zo%H8jRN_-RV?UtGo`)A#-ai*z6B*6ndv8%2X49#?-C%5?ERQNosx`WfA%obqh278%~KMBo&|WS9DrTe4FIqAB z#~OEV5nnw0SKNC`4ls$SZ|?lB*VSM~ATWH6y2^5YBf%uWQE>KERm|FpfB@=;Jjr;4 zlr6Ay1{=C0_7Xjt2<9zZgQ=auXLDo9!c+_`wOi)k=vXg9ow_xJv%5hC>sE$e{>`c! z&!vnr&ru^>aI~}WUo(_H4l?o5CqK<-vO7@%cx>fp?k1TW)v&L@$`IBy;?0Kf2 z8sM3)kXDo7^t%aF9BHORw>9~Mif(l+hLg!a2DZ=13%T0JJaKQaZ{Go{S7Q5KhhO?! zB^~Ex)Ohc;g?}h=3{cOlCc>^C0wD-R*4DAS-P@u)2j~qsQ9F273CD|`?SBo+JZ1O0 zA%_VXA0jl$p5f&QzR)j({i)}aLw*YWbD#u-oS+yc-KUmqS7qV&W;3X8L%Oklc#|g3 zJt17>(jrJz!NVYyU4(&au`OuF^ML8%0~@@D_*4BRyBN+8L*MjxngZQgCS{p!q^uVJ z?guA60ZPa4h%ge8)MNe*tH#d8{ZGkd(Ru$^)c)0g?MCU#4_cnXJDGRfN*f%(jq5sn zrfr8Fo6ZPi)v9H;UJ--Yq~DlZF$bRnh-0IJlBL*M_asaEGd8sJ+p~T)bxH`F%wPvp zQ&ZK&p)bvbHPUJ7Lk4l6ByO1N3Gc8+B;dC=0#{roRIFc&y!0RzB9Y@nu%~RgE1&LS z3*)DR%qk$j(Vb}W5V}zjx2(c-;U2`Bw7)u;@m1S?Q?&m3@Th_f-t#0@OJCXjPHjD! zxny-OwrDcP$~GaZBUnkdXzd1Fy4opR-x{{L+z>AJ(5eEhFW5+HlV7sqzkoUJT=IFS3G zix>kAiHIf`nngf&ZgCGoAs}+uJ2}z}{98!Y+tEWpT#mKoJ=;bqR)#aL=X?`2;Uy8S zQjzP)l2lW6%n3^?elqIVb3m8}OLN%z<aDHHfv)Z zl*v&AxqpXkDThT#F*ey;mz(}RIo^ZdN@4;HR(R~qC?>^Ix(F+)Hgy~vOKq#0SF|oI z{0y(ow?r!*8>(Ib;nXy|gx*D0=5o|*u2Cm88E4jEtCJ0ogi{^O$So@Q=z6+QEdFn5 z?z1K!=A?+~0n?|xgtCCCEmNmk=a68ti7Xq*GpnDglT2mjl_v#5$3AA+gfM0U|6~e& zg#knR3Bu{$iZg&o{sp+FYrl+G&RA37^Cg$j)?}QYQhT(rn?uAAimf8>jjdkySf_kYgS4BuHf*crGt0?LNHW|JOcr#c zXyGa2JN_&zA~Y+#m1NJ4S_hK;1)VHq>UOQ^|F_fF|AoQW40;j`K}DofbEB*fhcYfp zjcA#K2fqCiY>-vcpNLW{zeneUm3(or6u&N-nL}_9ihV3nu7?gM26lsLa*=N0_COnUpBtj*#}jC2 zKNz%LtOYTfGAS0V`}F^xxR~zq8ZS?%D8@F8g;_DBE1q4y+bKZWzvkgSvwhZbYFaIr z@HRGuez3{1_hNCQIwl$S$5~;CSYi$yc^Ut8yT~>$>>2PpO7A6eif6MVO&_GD>@==^9s#5KB(a?R|Kvh0*t@%k z00{R<%ug>Q%H3XEDB`n7qFVo8$cQ@R~+5hkQsj8@~{SV|B zKS>ZHy6E)U8MrSBJm#Q%*`Ce@!)_a)bY^PI`Js+i4kE39e*6a9H$j(giRSYnVG$oT zR)^^gxw2tnhob{r%!v=8asSH#?Wv>;Dok84ZcUgBt3vpYBrCb2cFUcaI11P=$53wt z%+AeT+PUT{=Ca41(5-nrtlWPTrL7iPf>N__h%|;@iC%S(f?nb=Z6tK{Es~A`(24sF zbw+cOk@tmT%Q8gBci%`p;eKv30c&iw<1Iq0zhxLDqOn|Qtg{+#>e$ZNoV{06(T&jR z1Tc?ok=ZOjdUAmi&NAOFunYgQjCzX^=INyMmfgS#duQ?rVjk|(n4^|;qZt?t?H*n0 z@YvEtM^ao1PtrtYot=X;vx-u=J~T}}Cfaztyu~gnCcc@@&n1O3AxmE(;w@`}p=cf1 zTFS6OfIP^4*$JqxdKmH*f3{{dvFPfh>; literal 0 HcmV?d00001 diff --git a/icon.ico b/icon.ico new file mode 100644 index 0000000000000000000000000000000000000000..900e1113c8bd685726fa2a8a11036c7091e58a2d GIT binary patch literal 111992 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 + + resources/logo.png + + diff --git a/resources/.DS_Store b/resources/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..c7779435a4c64828ce3bb197310added916abaad GIT binary patch literal 6148 zcmeHKF-`+P474G|Ni-=b_XUyo!4f3}H6K6$Db0zap}&fE@iQ`GTZrhOLNsVBjc3?C%4t9c;A8j=-1t z!#Evq#vgVIY(B!Ul1Tw6AO)m=6p#YHQGmS{He4mkO93e$1wIwv_n`sgUOXqqrvolV z0PqUoFsx&i05=A}y?9PW1m;-^&Qh-t!?PUmR(ZX6PR?@kxEar>o4qC!kJ}M%k#63T z<)wfWI9K2@w`=zQJ@CW)e_o`W6p#Y{N&#Q(?sr?fQuWrw%dyus-~nLHJ3zxaO5ma$ kgQFc|!*+ZfNtxHU#(6KElcOB*CHYS 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 literal 0 HcmV?d00001 diff --git a/src/.DS_Store b/src/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..efa3619b10760db89b0de16534e0bdf0edd73bbd GIT binary patch literal 6148 zcmeHKzmL-}6n?%d*MtM9NFc$06p8h8qz5;gSaPKdtOUUTs3c9fMkI06q;#mN%MSm= ziJ6&+g};H3e*-bWd$tR4f3YES_(}HXAMZKw_r-P$0IV~P+5jy8urLueE@HOAsGri3 zZK;+kh)j$zfZ}1o`(eVvC2!MU7%&X{YYfoZ-GNsyf&fy`*Dq}f$C&ni2otZa`G%7s zS8M%am?v>jy6zXYwcWU|)3ln_uJytn@`+yt<+$hsqi0lm%y|;d%R%@g9!z?ztM_?U z25~kRiGVm7pv&{8aTf7OhmW(U5V5}Oux!ijwQfwOZP&fK=N!6+vpr{ebl_t7;LdDj zTi0&gzW1p2I!QDBR=hSa+@OSARyc=uSkNYwoV5KuPxHCMVt>lJT{UUz+b8?|*R#(= zk~T)lqd)rO!_Cim<^kEeUIPgOBMl3>XIfPX=gza4->i3M+|X>%dH00T3J5EDXzZ!cdH(&{J4R z#2z#zLlI>tQ&$Wo!?E2_exAZgq6`P7E+0%inW-BJ6HmwS9pMhllW20ofMGyqU|UvO zbpAhBfB)BmOwBN07&uo9utwMKc5q7SY+afhowW|8mzc=NuaYQ2FjL2|D9}-S9g{HZ ZbEtsmDXb)73!3>65Hy&~Fz{Cy_zCuS2tfb< literal 0 HcmV?d00001 diff --git a/src/frames/aboutdialog.cpp b/src/frames/aboutdialog.cpp new file mode 100644 index 0000000..8e2e0b7 --- /dev/null +++ b/src/frames/aboutdialog.cpp @@ -0,0 +1,16 @@ +#include "aboutdialog.h" +#include "ui_aboutdialog.h" + +AboutDialog::AboutDialog(QWidget *parent) : + QDialog(parent), + ui(new Ui::AboutDialog) +{ + ui->setupUi(this); + ui->appName->setText(QString("%1 (%2)").arg(APP_NAME, APP_ARCH)); + ui->version->setText(QString("v%1").arg(APP_VERSION)); +} + +AboutDialog::~AboutDialog() +{ + delete ui; +} diff --git a/src/frames/aboutdialog.h b/src/frames/aboutdialog.h new file mode 100644 index 0000000..4474ece --- /dev/null +++ b/src/frames/aboutdialog.h @@ -0,0 +1,22 @@ +#ifndef ABOUTDIALOG_H +#define ABOUTDIALOG_H + +#include + +namespace Ui { +class AboutDialog; +} + +class AboutDialog : public QDialog +{ + Q_OBJECT + +public: + explicit AboutDialog(QWidget *parent = nullptr); + ~AboutDialog(); + +private: + Ui::AboutDialog *ui; +}; + +#endif // ABOUTDIALOG_H diff --git a/src/frames/aboutdialog.ui b/src/frames/aboutdialog.ui new file mode 100644 index 0000000..b493c31 --- /dev/null +++ b/src/frames/aboutdialog.ui @@ -0,0 +1,116 @@ + + + AboutDialog + + + Qt::ApplicationModal + + + + 0 + 0 + 419 + 323 + + + + + 419 + 323 + + + + + 419 + 323 + + + + About TaskBoard + + + true + + + + + + + + + 64 + 64 + + + + + 16777215 + 64 + + + + image: url(:/images/resources/logo.png); + + + + + + Qt::AlignHCenter|Qt::AlignTop + + + + + + + font-size: 20px; + + + TextLabel + + + Qt::AlignCenter + + + + + + + TextLabel + + + Qt::AlignCenter + + + + + + + Made with ♥ by Aurélie + + + Qt::AlignCenter + + + + + + + true + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><meta charset="utf-8" /><style type="text/css"> +p, li { white-space: pre-wrap; } +hr { height: 1px; border-width: 0; } +</style></head><body style=" font-family:'.AppleSystemUIFont'; font-size:13pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:700;">TODO: </span>Third parties</p></body></html> + + + + + + + + + + diff --git a/src/frames/mainwindow.cpp b/src/frames/mainwindow.cpp new file mode 100644 index 0000000..12300c9 --- /dev/null +++ b/src/frames/mainwindow.cpp @@ -0,0 +1,283 @@ +#include "mainwindow.h" +#include "ui_mainwindow.h" + +#include +#include + +#include "prefdialog.h" +#include "aboutdialog.h" +#include "namedialog.h" +#include "taskdialog.h" +#include "../tools.h" + +MainWindow::MainWindow(QWidget *parent) + : QMainWindow(parent) + , ui(new Ui::MainWindow) +{ + ui->setupUi(this); + connect(ui->actionPreferences, &QAction::triggered, this, &MainWindow::openPreferences); + connect(ui->actionAbout, &QAction::triggered, this, &MainWindow::openAbout); + connect(ui->actionNew, &QAction::triggered, this, &MainWindow::onNewBoardClick); + connect(ui->listWidget, &QListWidget::currentRowChanged, this, &MainWindow::onBoardSelected); + connect(ui->actionNew_task, &QAction::triggered, this, &MainWindow::onNewTaskClick); + connect(ui->treeWidget, &QTreeWidget::itemDoubleClicked, this, &MainWindow::onEditTask); + this->priorities = defaultPriorities(); + this->status = defaultStatus(); +} + +MainWindow::~MainWindow() +{ + for (int i = 0; i < boards.count(); i++) + { + Board *b = boards.takeAt(i); + delete b; + } + delete ui; +} + +void MainWindow::openPreferences() +{ + PrefDialog dialog(this); + if (dialog.exec() == QDialog::DialogCode::Accepted) + { + this->priorities = dialog.getPriorities(); + this->status = dialog.getStatus(); + } +} + +void MainWindow::openAbout() +{ + AboutDialog dialog(this); + dialog.exec(); +} + +void MainWindow::onNewBoardClick() +{ + NameDialog dialog("Create a board", "New empty board", this); + if (dialog.exec() == QDialog::DialogCode::Accepted) + { + QString name = dialog.getChoosenName(); + Board *b = new Board(name); + boards.append(b); + QListWidgetItem *item = new QListWidgetItem(name); + ui->listWidget->addItem(item); + } +} + +void MainWindow::onNewTaskClick() +{ + if (selectedBoardIndex > -1) + { + TaskDialog dialog(status, priorities, this); + if (dialog.exec() == QDialog::DialogCode::Accepted) + { + Task t = dialog.getTask(); + Board *b = boards[selectedBoardIndex]; + b->add(t); + QTreeWidgetItem *item = new QTreeWidgetItem(); + item->setText(0, t.getTitle()); + item->setText(1, getStatusLabel(t.getStatusUUID())); + item->setText(2, getPriorityLabel(t.getPriorityUUID())); + item->setText(3, t.getExpectedFor().toString()); + + QBrush bgColor = item->background(1); + QBrush fgColor = item->foreground(1); + bgColor.setColor(getStatusColor(t.getStatusUUID(), bgColor.color())); + bgColor.setStyle(Qt::BrushStyle::SolidPattern); + fgColor.setColor(Tools::getForegroundColor(bgColor.color())); + item->setBackground(1, bgColor); + item->setForeground(1, fgColor); + + bgColor = item->background(2); + fgColor = item->foreground(2); + bgColor.setColor(getPriorityColor(t.getPriorityUUID(), bgColor.color())); + bgColor.setStyle(Qt::BrushStyle::SolidPattern); + fgColor.setColor(Tools::getForegroundColor(bgColor.color())); + item->setBackground(2, bgColor); + item->setForeground(2, fgColor); + + ui->treeWidget->addTopLevelItem(item); + } + } +} + +void MainWindow::onBoardSelected(int i) +{ + selectedBoardIndex = i; + if (selectedBoardIndex > -1) + { + Board *b = boards[selectedBoardIndex]; + ui->label->setText(b->getName()); + ui->actionNew_task->setDisabled(false); + } + else + { + ui->label->setText("<- Select a board"); + ui->actionNew_task->setDisabled(true); + } + redrawTaskTree(); +} + +void MainWindow::onEditTask(QTreeWidgetItem *item) +{ + if (item != nullptr && selectedBoardIndex > -1) + { + Board *b = boards[selectedBoardIndex]; + int row = ui->treeWidget->indexOfTopLevelItem(item); + Task *t = b->taskAt(row); + if (t != nullptr) + { + TaskDialog dialog(t, status, priorities, this); + if (dialog.exec() == QDialog::DialogCode::Accepted) + { + Task editedTask = dialog.getTask(); + t->update(editedTask); + item->setText(0, editedTask.getTitle()); + item->setText(1, getStatusLabel(editedTask.getStatusUUID())); + item->setText(2, getPriorityLabel(editedTask.getPriorityUUID())); + item->setText(3, editedTask.getExpectedFor().toString()); + + QBrush bgColor = item->background(1); + QBrush fgColor = item->foreground(1); + bgColor.setColor(getStatusColor(editedTask.getStatusUUID(), bgColor.color())); + bgColor.setStyle(Qt::BrushStyle::SolidPattern); + fgColor.setColor(Tools::getForegroundColor(bgColor.color())); + item->setBackground(1, bgColor); + item->setForeground(1, fgColor); + + bgColor = item->background(2); + fgColor = item->foreground(2); + bgColor.setColor(getPriorityColor(editedTask.getPriorityUUID(), bgColor.color())); + bgColor.setStyle(Qt::BrushStyle::SolidPattern); + fgColor.setColor(Tools::getForegroundColor(bgColor.color())); + item->setBackground(2, bgColor); + item->setForeground(2, fgColor); + } + } + } +} + +QVector MainWindow::defaultPriorities() +{ + QVector res; + res.append(Priority(QUuid::createUuid().toString(QUuid::WithoutBraces), "Low", QColor::fromString("#309db0"))); + res.append(Priority(QUuid::createUuid().toString(QUuid::WithoutBraces), "Medium", QColor::fromString("#b08e30"))); + res.append(Priority(QUuid::createUuid().toString(QUuid::WithoutBraces), "High", QColor::fromString("#b04330"))); + return res; +} + +QVector MainWindow::defaultStatus() +{ + QVector res; + res.append(Status(QUuid::createUuid().toString(QUuid::WithoutBraces), "To Do", QColor::fromString("#8f8f8f"))); + res.append(Status(QUuid::createUuid().toString(QUuid::WithoutBraces), "Working on", QColor::fromString("#5f30b0"))); + res.append(Status(QUuid::createUuid().toString(QUuid::WithoutBraces), "Completed", QColor::fromString("#30b049"))); + return res; +} + +const QString MainWindow::getPriorityLabel(QString uuid) +{ + QString res = ""; + foreach (Priority p, priorities) + { + if (p.getUUID() == uuid) + { + res = p.getName(); + } + } + return res; +} + +const QString MainWindow::getStatusLabel(QString uuid) +{ + QString res = ""; + foreach (Status s, status) + { + if (s.getUUID() == uuid) + { + res = s.getName(); + } + } + return res; +} + +const QColor MainWindow::getPriorityColor(QString uuid, QColor defaultColor) +{ + QColor color = defaultColor; + foreach (Priority p, priorities) + { + if (p.getUUID() == uuid) + { + color = p.getColor(); + } + } + return color; +} + +const QColor MainWindow::getStatusColor(QString uuid, QColor defaultColor) +{ + QColor color = defaultColor; + foreach (Status s, status) + { + if (s.getUUID() == uuid) + { + color = s.getColor(); + } + } + return color; +} + +void MainWindow::redrawBoardList() +{ + QListWidget *l = ui->listWidget; + for (int i = 0; i < l->count(); i++) + { + delete l->takeItem(i); + } + foreach (Board *b, boards) + { + QListWidgetItem *item = new QListWidgetItem(b->getName()); + l->addItem(item); + } +} + +void MainWindow::redrawTaskTree() +{ + QTreeWidget *l = ui->treeWidget; + for (int i = 0; i < l->topLevelItemCount(); i++) + { + delete l->takeTopLevelItem(i); + } + if (selectedBoardIndex > -1) + { + Board *b = boards[selectedBoardIndex]; + foreach (Task *t, b->getTasks()) + { + QTreeWidgetItem *item = new QTreeWidgetItem(); + item->setText(0, t->getTitle()); + item->setText(1, getStatusLabel(t->getStatusUUID())); + item->setText(2, getPriorityLabel(t->getPriorityUUID())); + item->setText(3, t->getExpectedFor().toString()); + + QBrush bgColor = item->background(1); + QBrush fgColor = item->foreground(1); + bgColor.setColor(getStatusColor(t->getStatusUUID(), bgColor.color())); + bgColor.setStyle(Qt::BrushStyle::SolidPattern); + fgColor.setColor(Tools::getForegroundColor(bgColor.color())); + item->setBackground(1, bgColor); + item->setForeground(1, fgColor); + + bgColor = item->background(2); + fgColor = item->foreground(2); + bgColor.setColor(getPriorityColor(t->getPriorityUUID(), bgColor.color())); + bgColor.setStyle(Qt::BrushStyle::SolidPattern); + fgColor.setColor(Tools::getForegroundColor(bgColor.color())); + item->setBackground(2, bgColor); + item->setForeground(2, fgColor); + + ui->treeWidget->addTopLevelItem(item); + } + } + +} + diff --git a/src/frames/mainwindow.h b/src/frames/mainwindow.h new file mode 100644 index 0000000..448c984 --- /dev/null +++ b/src/frames/mainwindow.h @@ -0,0 +1,52 @@ +#ifndef MAINWINDOW_H +#define MAINWINDOW_H + +#include +#include +#include + +#include "../models/priority.h" +#include "../models/status.h" +#include "../models/board.h" + +QT_BEGIN_NAMESPACE +namespace Ui { class MainWindow; } +QT_END_NAMESPACE + +class MainWindow : public QMainWindow +{ + Q_OBJECT + +public: + MainWindow(QWidget *parent = nullptr); + ~MainWindow(); + +private slots: + void openPreferences(); + void openAbout(); + void onNewBoardClick(); + void onNewTaskClick(); + void onBoardSelected(int i); + void onEditTask(QTreeWidgetItem*); + +private: + Ui::MainWindow *ui; + + int selectedBoardIndex = -1; + QVector priorities; + QVector status; + QVector boards; + + QVector defaultPriorities(); + QVector defaultStatus(); + + const QString getPriorityLabel(QString uuid); + const QString getStatusLabel(QString uuid); + + const QColor getPriorityColor(QString uuid, QColor defaultColor); + const QColor getStatusColor(QString uuid, QColor defaultColor); + + void redrawBoardList(); + void redrawTaskTree(); +}; +#endif // MAINWINDOW_H diff --git a/src/frames/mainwindow.ui b/src/frames/mainwindow.ui new file mode 100644 index 0000000..4ab4c3f --- /dev/null +++ b/src/frames/mainwindow.ui @@ -0,0 +1,154 @@ + + + MainWindow + + + + 0 + 0 + 1159 + 702 + + + + + 1159 + 702 + + + + TaskBoard + + + QTabWidget::Rounded + + + + + + + + + + 250 + 0 + + + + + 250 + 16777215 + + + + + + + + + + + 26 + + + + <- Select a board + + + + + + + true + + + 4 + + + + Name + + + + + Status + + + + + Priority + + + + + Expected for + + + + + + + + + + + + + + 0 + 0 + 1159 + 24 + + + + + About + + + + + + + + Board + + + + + + Task + + + + + + + + + + Preferences + + + + + New Board + + + + + About TaskBoard + + + + + false + + + New task + + + + + + diff --git a/src/frames/namedialog.cpp b/src/frames/namedialog.cpp new file mode 100644 index 0000000..0687bce --- /dev/null +++ b/src/frames/namedialog.cpp @@ -0,0 +1,25 @@ +#include "namedialog.h" +#include "ui_namedialog.h" + +NameDialog::NameDialog(QString label, QString defaultName, QWidget *parent) : + QDialog(parent), + ui(new Ui::NameDialog) +{ + ui->setupUi(this); + this->setWindowTitle(label); + this->defaultName = defaultName; +} + +NameDialog::~NameDialog() +{ + delete ui; +} + +const QString NameDialog::getChoosenName() +{ + if (ui->lineEdit->text().length() > 0) + { + return ui->lineEdit->text(); + } + return defaultName; +} diff --git a/src/frames/namedialog.h b/src/frames/namedialog.h new file mode 100644 index 0000000..0982c39 --- /dev/null +++ b/src/frames/namedialog.h @@ -0,0 +1,25 @@ +#ifndef NAMEDIALOG_H +#define NAMEDIALOG_H + +#include + +namespace Ui { +class NameDialog; +} + +class NameDialog : public QDialog +{ + Q_OBJECT + +public: + explicit NameDialog(QString label, QString defaultName, QWidget *parent = nullptr); + ~NameDialog(); + const QString getChoosenName(); + +private: + Ui::NameDialog *ui; + + QString defaultName; +}; + +#endif // NAMEDIALOG_H diff --git a/src/frames/namedialog.ui b/src/frames/namedialog.ui new file mode 100644 index 0000000..41a3dff --- /dev/null +++ b/src/frames/namedialog.ui @@ -0,0 +1,109 @@ + + + NameDialog + + + Qt::WindowModal + + + + 0 + 0 + 400 + 133 + + + + + 400 + 133 + + + + + 400 + 133 + + + + Dialog + + + true + + + + + 40 + 90 + 341 + 32 + + + + Qt::Horizontal + + + QDialogButtonBox::Cancel|QDialogButtonBox::Ok + + + + + + 10 + 50 + 381 + 21 + + + + + + + 10 + 30 + 58 + 16 + + + + Name + + + + + + + buttonBox + accepted() + NameDialog + accept() + + + 248 + 254 + + + 157 + 274 + + + + + buttonBox + rejected() + NameDialog + reject() + + + 316 + 260 + + + 286 + 274 + + + + + diff --git a/src/frames/prefdialog.cpp b/src/frames/prefdialog.cpp new file mode 100644 index 0000000..fedd8f9 --- /dev/null +++ b/src/frames/prefdialog.cpp @@ -0,0 +1,209 @@ +#include "prefdialog.h" +#include "ui_prefdialog.h" + +#include +#include + +#include "../tools.h" + +PrefDialog::PrefDialog(QWidget *parent) : + QDialog(parent), + ui(new Ui::PrefDialog) +{ + ui->setupUi(this); + connect(ui->addStatusButton, &QPushButton::clicked, this, &PrefDialog::onAddStatusButtonClick); + connect(ui->addPriorityButton, &QPushButton::clicked, this, &PrefDialog::onAddPriorityButtonClick); + connect(ui->statusListWidget, &QListWidget::currentRowChanged, this, &PrefDialog::onItemSelectionChange); + connect(ui->priorityListWidget, &QListWidget::currentRowChanged, this, &PrefDialog::onItemSelectionChange); + connect(ui->colorStatusButton, &QToolButton::clicked, this, &PrefDialog::onButtonColorButtonClick); + connect(ui->colorPriorityButton, &QToolButton::clicked, this, &PrefDialog::onButtonColorButtonClick); + connect(ui->nameStatusEdit, &QLineEdit::textEdited, this, &PrefDialog::onNameChange); + connect(ui->namePriorityEdit, &QLineEdit::textEdited, this, &PrefDialog::onNameChange); + connect(ui->removeStatusButton, &QPushButton::clicked, this, &PrefDialog::onRemoveStatusButtonClick); + connect(ui->removePriorityButton, &QPushButton::clicked, this, &PrefDialog::onRemovePriorityButtonClick); +} + +PrefDialog::~PrefDialog() +{ + delete ui; +} + +QVector PrefDialog::getPriorities() +{ + int count = ui->priorityListWidget->count(); + QVector res; + + for (int i = 0; i < count; i++) + { + QListWidgetItem *item = ui->priorityListWidget->item(i); + Priority p(priorityUUIDRef[i], item->text(), item->background().color()); + res.append(p); + } + + return res; +} + +QVector PrefDialog::getStatus() +{ + int count = ui->statusListWidget->count(); + QVector res; + + for (int i = 0; i < count; i++) + { + QListWidgetItem *item = ui->statusListWidget->item(i); + Status s(statusUUIDRef[i], item->text(), item->background().color()); + res.append(s); + } + + return res; +} + +void PrefDialog::onAddStatusButtonClick() +{ + QColor bgColor = Tools::getRandomColor(); + QListWidgetItem *item = new QListWidgetItem("New status"); + QUuid uuid = QUuid::createUuid(); + statusUUIDRef.append(uuid.toString(QUuid::WithoutBraces)); + + setItemColor(item, bgColor); + + ui->statusListWidget->addItem(item); +} + +void PrefDialog::onAddPriorityButtonClick() +{ + QColor bgColor = Tools::getRandomColor(); + QListWidgetItem *item = new QListWidgetItem("Low"); + QUuid uuid = QUuid::createUuid(); + priorityUUIDRef.append(uuid.toString(QUuid::WithoutBraces)); + + setItemColor(item, bgColor); + + ui->priorityListWidget->addItem(item); +} + +void PrefDialog::onItemSelectionChange(int index) +{ + QListWidget *listWidget = static_cast(QObject::sender()); + QPushButton *removeBtn; + QToolButton *colorBtn; + QLineEdit *nameEdit; + QLineEdit *colorEdit; + + if (listWidget == ui->statusListWidget) + { + removeBtn = ui->removeStatusButton; + colorBtn = ui->colorStatusButton; + nameEdit = ui->nameStatusEdit; + colorEdit = ui->colorStatusEdit; + } + else + { + removeBtn = ui->removePriorityButton; + colorBtn = ui->colorPriorityButton; + nameEdit = ui->namePriorityEdit; + colorEdit = ui->colorPriorityEdit; + } + bool d = (index == -1); + removeBtn->setDisabled(d); + colorBtn->setDisabled(d); + nameEdit->setDisabled(d); + colorEdit->setDisabled(d); + if (!d) + { + QListWidgetItem *current = listWidget->item(index); + nameEdit->setText(current->text()); + colorEdit->setText(current->background().color().name()); + } + else + { + nameEdit->clear(); + colorEdit->clear(); + } +} + +void PrefDialog::onButtonColorButtonClick() +{ + QColorDialog dialog(this); + if (dialog.exec() == DialogCode::Accepted) + { + QToolButton *sender = static_cast(QObject::sender()); + QLineEdit *colorEdit; + QListWidgetItem *item; + if (sender == ui->colorStatusButton) + { + colorEdit = ui->colorStatusEdit; + item = ui->statusListWidget->currentItem(); + } + else + { + colorEdit = ui->colorPriorityEdit; + item = ui->priorityListWidget->currentItem(); + } + QColor selectedColor = dialog.selectedColor(); + colorEdit->setText(selectedColor.name()); + setItemColor(item, selectedColor); + } +} + +void PrefDialog::onNameChange() +{ + QLineEdit *sender = static_cast(QObject::sender()); + QListWidgetItem *item; + if (sender == ui->nameStatusEdit) + { + if (ui->statusListWidget->selectedItems().size() != 1) + { + return; + } + item = ui->statusListWidget->currentItem(); + } + else + { + if (ui->priorityListWidget->selectedItems().size() != 1) + { + return; + } + item = ui->priorityListWidget->currentItem(); + } + item->setText(sender->text()); +} + +void PrefDialog::onRemoveStatusButtonClick() +{ + if (ui->statusListWidget->selectedItems().size() != 1) + { + return; + } + int index = ui->statusListWidget->currentRow(); + delete ui->statusListWidget->takeItem(index); + statusUUIDRef.removeAt(index); +} + +void PrefDialog::onRemovePriorityButtonClick() +{ + if (ui->priorityListWidget->selectedItems().size() != 1) + { + return; + } + int index = ui->priorityListWidget->currentRow(); + delete ui->priorityListWidget->takeItem(index); + priorityUUIDRef.removeAt(index); +} + +void PrefDialog::setItemColor(QListWidgetItem *item, QColor bgColor) +{ + QColor fgColor = Tools::getForegroundColor(bgColor); + + // Set background + QBrush bg = item->background(); + bg.setStyle(Qt::BrushStyle::SolidPattern); + bg.setColor(bgColor); + item->setBackground(bg); + + // Set foreground + QBrush fg = item->foreground(); + fg.setStyle(Qt::BrushStyle::SolidPattern); + fg.setColor(fgColor); + item->setForeground(fg); +} diff --git a/src/frames/prefdialog.h b/src/frames/prefdialog.h new file mode 100644 index 0000000..9e2c622 --- /dev/null +++ b/src/frames/prefdialog.h @@ -0,0 +1,44 @@ +#ifndef PREFDIALOG_H +#define PREFDIALOG_H + +#include +#include +#include + +#include "../models/priority.h" +#include "../models/status.h" + +namespace Ui { +class PrefDialog; +} + +class PrefDialog : public QDialog +{ + Q_OBJECT + +public: + explicit PrefDialog(QWidget *parent = nullptr); + ~PrefDialog(); + + QVector getPriorities(); + QVector getStatus(); + +private slots: + void onAddStatusButtonClick(); + void onAddPriorityButtonClick(); + void onItemSelectionChange(int); + void onButtonColorButtonClick(); + void onNameChange(); + void onRemoveStatusButtonClick(); + void onRemovePriorityButtonClick(); + +private: + Ui::PrefDialog *ui; + + QVector statusUUIDRef; + QVector priorityUUIDRef; + + void setItemColor(QListWidgetItem*, QColor); +}; + +#endif // PREFDIALOG_H diff --git a/src/frames/prefdialog.ui b/src/frames/prefdialog.ui new file mode 100644 index 0000000..94dbc82 --- /dev/null +++ b/src/frames/prefdialog.ui @@ -0,0 +1,323 @@ + + + PrefDialog + + + Qt::ApplicationModal + + + + 0 + 0 + 655 + 535 + + + + + 655 + 535 + + + + + 655 + 535 + + + + Preferences + + + true + + + + + 300 + 490 + 341 + 32 + + + + Qt::Horizontal + + + QDialogButtonBox::Cancel|QDialogButtonBox::Ok + + + + + + 10 + 10 + 631 + 471 + + + + 0 + + + + Status + + + + + 10 + 10 + 601 + 291 + + + + + + false + + + + 90 + 350 + 521 + 21 + + + + + + + 10 + 352 + 58 + 16 + + + + Name + + + + + + 10 + 390 + 58 + 16 + + + + Color + + + + + false + + + + 90 + 390 + 113 + 21 + + + + + + false + + + + 210 + 390 + 26 + 22 + + + + ... + + + + + + 570 + 300 + 41 + 32 + + + + + + + + + + false + + + + 520 + 300 + 41 + 32 + + + + - + + + + + + Priorities + + + + false + + + + 90 + 350 + 521 + 21 + + + + + + + 10 + 352 + 58 + 16 + + + + Name + + + + + false + + + + 90 + 390 + 113 + 21 + + + + + + + 10 + 10 + 601 + 291 + + + + + + + 10 + 390 + 58 + 16 + + + + Color + + + + + false + + + + 210 + 390 + 26 + 22 + + + + ... + + + + + + 570 + 300 + 41 + 32 + + + + + + + + + + false + + + + 520 + 300 + 41 + 32 + + + + - + + + + + + + + + buttonBox + accepted() + PrefDialog + accept() + + + 248 + 254 + + + 157 + 274 + + + + + buttonBox + rejected() + PrefDialog + reject() + + + 316 + 260 + + + 286 + 274 + + + + + diff --git a/src/frames/taskdialog.cpp b/src/frames/taskdialog.cpp new file mode 100644 index 0000000..4b8df8f --- /dev/null +++ b/src/frames/taskdialog.cpp @@ -0,0 +1,111 @@ +#include "taskdialog.h" +#include "ui_taskdialog.h" + +#include + +TaskDialog::TaskDialog(QVector status, QVector priorities, QWidget *parent) : + QDialog(parent), + ui(new Ui::TaskDialog) +{ + ui->setupUi(this); + this->setWindowTitle("New task"); + this->status = status; + this->priorities = priorities; + + foreach (Status s, this->status) + { + ui->statusCombo->addItem(s.getName()); + } + + foreach (Priority p, this->priorities) + { + ui->priorityCombo->addItem(p.getName()); + } + + QDate expectedFor = QDate::currentDate(); + expectedFor = expectedFor.addDays(10); + ui->expectedForEdit->setDate(expectedFor); +} + +TaskDialog::TaskDialog(Task *t, QVector status, QVector priorities, QWidget *parent) : + QDialog(parent), + ui(new Ui::TaskDialog) +{ + ui->setupUi(this); + this->setWindowTitle("Edit task"); + this->status = status; + this->priorities = priorities; + + foreach (Status s, this->status) + { + ui->statusCombo->addItem(s.getName()); + } + + foreach (Priority p, this->priorities) + { + ui->priorityCombo->addItem(p.getName()); + } + + // set fields + ui->nameEdit->setText(t->getTitle()); + ui->descriptionEdit->setMarkdown(t->getDescription()); + ui->expectedForEdit->setDate(t->getExpectedFor()); + + if (t->getPriorityUUID().length() > 0) + { + int refindex = -1; + for (int i = 0; i < this->priorities.count(); i++) + { + if (this->priorities[i].getUUID() == t->getPriorityUUID()) + { + refindex = i; + } + } + if (refindex > -1) + { + ui->priorityCombo->setCurrentIndex(refindex); + } + } + + if (t->getStatusUUID().length() > 0) + { + int refindex = -1; + for (int i = 0; i < this->status.count(); i++) + { + if (this->status[i].getUUID() == t->getStatusUUID()) + { + refindex = i; + } + } + if (refindex > -1) + { + ui->statusCombo->setCurrentIndex(refindex); + } + } + +} + +TaskDialog::~TaskDialog() +{ + delete ui; +} + +Task TaskDialog::getTask() +{ + QString title = ui->nameEdit->text(); + QString description = ui->descriptionEdit->toMarkdown(QTextDocument::MarkdownFeature::MarkdownDialectCommonMark); + QDate expectedFor = ui->expectedForEdit->date(); + QString priorityUUID = ""; + if (ui->priorityCombo->currentIndex() > -1) + { + Priority priority = priorities[ui->priorityCombo->currentIndex()]; + priorityUUID = priority.getUUID(); + } + QString statusUUID = ""; + if (ui->statusCombo->currentIndex() > -1) + { + Status s = status[ui->statusCombo->currentIndex()]; + statusUUID = s.getUUID(); + } + return Task(title, description, expectedFor, priorityUUID, statusUUID); +} diff --git a/src/frames/taskdialog.h b/src/frames/taskdialog.h new file mode 100644 index 0000000..f1fcb71 --- /dev/null +++ b/src/frames/taskdialog.h @@ -0,0 +1,33 @@ +#ifndef TASKDIALOG_H +#define TASKDIALOG_H + +#include +#include + +#include "../models/status.h" +#include "../models/priority.h" +#include "../models/task.h" + +namespace Ui { +class TaskDialog; +} + +class TaskDialog : public QDialog +{ + Q_OBJECT + +public: + explicit TaskDialog(QVector, QVector, QWidget *parent = nullptr); + TaskDialog(Task*, QVector, QVector, QWidget *parent = nullptr); + ~TaskDialog(); + + Task getTask(); + +private: + Ui::TaskDialog *ui; + + QVector status; + QVector priorities; +}; + +#endif // TASKDIALOG_H diff --git a/src/frames/taskdialog.ui b/src/frames/taskdialog.ui new file mode 100644 index 0000000..f155240 --- /dev/null +++ b/src/frames/taskdialog.ui @@ -0,0 +1,159 @@ + + + TaskDialog + + + Qt::WindowModal + + + + 0 + 0 + 481 + 557 + + + + + 481 + 557 + + + + Dialog + + + true + + + + + + + + Name + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop + + + + + + + + + + Description + + + + + + + + + + Qt::Horizontal + + + + + + + + + Expected for + + + + + + + + + + + + + + Status + + + + + + + + + + + + + + Priority + + + + + + + + + + + + Qt::Horizontal + + + + + + + + + Qt::Horizontal + + + QDialogButtonBox::Cancel|QDialogButtonBox::Ok + + + + + + + + + buttonBox + accepted() + TaskDialog + accept() + + + 248 + 254 + + + 157 + 274 + + + + + buttonBox + rejected() + TaskDialog + reject() + + + 316 + 260 + + + 286 + 274 + + + + + diff --git a/src/main.cpp b/src/main.cpp new file mode 100644 index 0000000..8131678 --- /dev/null +++ b/src/main.cpp @@ -0,0 +1,11 @@ +#include "frames/mainwindow.h" + +#include + +int main(int argc, char *argv[]) +{ + QApplication a(argc, argv); + MainWindow w; + w.show(); + return a.exec(); +} diff --git a/src/models/.DS_Store b/src/models/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..f876b0d816087e24b6c74a7df99cb81a67f4b660 GIT binary patch literal 6148 zcmeHKJ5Iwu5PcIOaDXBu4bq+<5;rhWC{l9);zR;Oq(m_(=-hJ$uE6=I;LXk|_>+_% zgl44Kx1V`C^7G2$1t8Lh>*^irr5Rn6xW@t`%(2FLy6i;z#9vfE z-`xNOR+wRf+WTA0i{+}|sveDN`sgznd%#J9@i1LBqTgH5=R6S`JTiy2&v^MhC3T)$ zws@y|c&%LW+ToPUFr#l#9?0|2;$)1hb6Poi_nml+F7dQ~|EShmO|9d&yT!NmhH6!h z<L|Ayv literal 0 HcmV?d00001 diff --git a/src/models/board.cpp b/src/models/board.cpp new file mode 100644 index 0000000..9f99e34 --- /dev/null +++ b/src/models/board.cpp @@ -0,0 +1,40 @@ +#include "board.h" + +Board::Board(QString name) +{ + this->name = name; +} + +Board::~Board() +{ + for (int i = 0; i < tasks.count(); i++) + { + Task *t = tasks.takeAt(i); + delete t; + } +} + +const QString Board::getName() +{ + return name; +} + +void Board::add(Task t) +{ + tasks.append(new Task(t)); +} + +Task *Board::taskAt(int i) +{ + if (i >= 0 && i < tasks.count()) + { + return tasks[i]; + } + return nullptr; +} + +const QVector Board::getTasks() +{ + return tasks; +} + diff --git a/src/models/board.h b/src/models/board.h new file mode 100644 index 0000000..919c41d --- /dev/null +++ b/src/models/board.h @@ -0,0 +1,26 @@ +#ifndef BOARD_H +#define BOARD_H + +#include +#include + +#include "task.h" + +class Board +{ +public: + Board(QString name); + ~Board(); + + const QString getName(); + void add(Task); + Task *taskAt(int); + const QVector getTasks(); + +private: + QVector tasks; + QString name; + +}; + +#endif // BOARD_H diff --git a/src/models/priority.cpp b/src/models/priority.cpp new file mode 100644 index 0000000..2507636 --- /dev/null +++ b/src/models/priority.cpp @@ -0,0 +1,23 @@ +#include "priority.h" + +Priority::Priority(QString uuid, QString name, QColor color) +{ + this->uuid = uuid; + this->name = name; + this->color = color; +} + +const QString Priority::getName() +{ + return this->name; +} + +const QString Priority::getUUID() +{ + return this->uuid; +} + +const QColor Priority::getColor() +{ + return this->color; +} diff --git a/src/models/priority.h b/src/models/priority.h new file mode 100644 index 0000000..63a1e5b --- /dev/null +++ b/src/models/priority.h @@ -0,0 +1,23 @@ +#ifndef PRIORITY_H +#define PRIORITY_H + +#include +#include + +class Priority +{ +public: + Priority(QString uuid, QString name, QColor color); + + const QString getName(); + const QString getUUID(); + const QColor getColor(); + +private: + QString uuid; + QString name; + QColor color; + +}; + +#endif // PRIORITY_H diff --git a/src/models/status.cpp b/src/models/status.cpp new file mode 100644 index 0000000..0bce06b --- /dev/null +++ b/src/models/status.cpp @@ -0,0 +1,23 @@ +#include "status.h" + +Status::Status(QString uuid, QString name, QColor color) +{ + this->uuid = uuid; + this->name = name; + this->color = color; +} + +const QString Status::getName() +{ + return this->name; +} + +const QString Status::getUUID() +{ + return this->uuid; +} + +const QColor Status::getColor() +{ + return this->color; +} diff --git a/src/models/status.h b/src/models/status.h new file mode 100644 index 0000000..e4d7fc1 --- /dev/null +++ b/src/models/status.h @@ -0,0 +1,22 @@ +#ifndef STATUS_H +#define STATUS_H + +#include +#include + +class Status +{ +public: + Status(QString uuid, QString name, QColor color); + + const QString getName(); + const QString getUUID(); + const QColor getColor(); + +private: + QString uuid; + QString name; + QColor color; +}; + +#endif // STATUS_H diff --git a/src/models/task.cpp b/src/models/task.cpp new file mode 100644 index 0000000..7d56906 --- /dev/null +++ b/src/models/task.cpp @@ -0,0 +1,44 @@ +#include "task.h" + +Task::Task(QString title, QString description, QDate expectedFor, QString priorityUUID, QString statusUUID) +{ + this->title = title; + this->description = description; + this->expectedFor = expectedFor; + this->priorityUUID = priorityUUID; + this->statusUUID = statusUUID; +} + +const QString Task::getTitle() +{ + return this->title; +} + +const QString Task::getDescription() +{ + return this->description; +} + +const QDate Task::getExpectedFor() +{ + return this->expectedFor; +} + +const QString Task::getPriorityUUID() +{ + return this->priorityUUID; +} + +const QString Task::getStatusUUID() +{ + return this->statusUUID; +} + +void Task::update(Task t) +{ + this->title = t.title; + this->description = t.description; + this->expectedFor = t.expectedFor; + this->priorityUUID = t.priorityUUID; + this->statusUUID = t.statusUUID; +} diff --git a/src/models/task.h b/src/models/task.h new file mode 100644 index 0000000..75606e3 --- /dev/null +++ b/src/models/task.h @@ -0,0 +1,28 @@ +#ifndef TASK_H +#define TASK_H + +#include +#include + +class Task +{ +public: + Task(QString title, QString description, QDate expectedFor, QString priorityUUID, QString statusUUID); + + const QString getTitle(); + const QString getDescription(); + const QDate getExpectedFor(); + const QString getPriorityUUID(); + const QString getStatusUUID(); + + void update(Task); + +private: + QString title; + QString description; + QDate expectedFor; + QString priorityUUID; + QString statusUUID; +}; + +#endif // TASK_H diff --git a/src/tools.cpp b/src/tools.cpp new file mode 100644 index 0000000..30135be --- /dev/null +++ b/src/tools.cpp @@ -0,0 +1,48 @@ +#include "tools.h" + +#define BRIGHTNESS_THRESHOLD 170 +#define WHITECOLOR 240 +#define BLACKCOLOR 15 + +Tools::Tools() +{ + +} + +QColor Tools::getRandomColor() +{ + srand(time(0)); + int r = arc4random() % 255; + int g = arc4random() % 255; + int b = arc4random() % 255; + return QColor(r, g, b); +} + +QColor Tools::getForegroundColor(QColor background) +{ + int avg = background.red(); + avg += background.green(); + avg += background.blue(); + avg = avg / 3; + + int avg2 = background.red(); + avg2 += background.green(); + avg2 = avg2 / 2; + + int avg3 = background.red(); + avg3 += background.blue(); + avg3 = avg3 / 2; + + int avg4 = background.green(); + avg4 += background.blue(); + avg4 = avg4 / 2; + + if (avg < BRIGHTNESS_THRESHOLD && avg2 < BRIGHTNESS_THRESHOLD && avg3 < BRIGHTNESS_THRESHOLD && avg4 < BRIGHTNESS_THRESHOLD) + { + return QColor(WHITECOLOR, WHITECOLOR, WHITECOLOR); + } + else + { + return QColor(BLACKCOLOR, BLACKCOLOR, BLACKCOLOR); + } +} diff --git a/src/tools.h b/src/tools.h new file mode 100644 index 0000000..97e0e22 --- /dev/null +++ b/src/tools.h @@ -0,0 +1,16 @@ +#ifndef TOOLS_H +#define TOOLS_H + +#include + +class Tools +{ +public: + Tools(); + + static QColor getRandomColor(); + static QColor getForegroundColor(QColor background); + +}; + +#endif // TOOLS_H