github.com/benoitkugler/goacve@v0.0.0-20201217100549-151ce6e55dc8/client/GUI/onglets/toolbar.go (about) 1 package onglets 2 3 import ( 4 "github.com/benoitkugler/goACVE/client/GUI/basic" 5 "github.com/benoitkugler/goACVE/client/controllers" 6 "github.com/therecipe/qt/gui" 7 "github.com/therecipe/qt/widgets" 8 ) 9 10 func addAction(tb *widgets.QToolBar, enabled bool, icon *gui.QIcon, tooltip string, fn func()) { 11 action := tb.AddAction2(icon, "") 12 action.SetToolTip(tooltip) 13 action.ConnectTriggered(func(_ bool) { 14 fn() 15 }) 16 action.SetEnabled(enabled) 17 } 18 19 func (t *Personnes) UpdateToolbar() { 20 buttons := t.controller.SideButtons() 21 t.toolbar.Clear() 22 if buttons.Creer != 0 { 23 t.addCreePersonne(buttons) 24 } 25 if buttons.AfficherCriteres != 0 { 26 addAction(t.toolbar, buttons.AfficherCriteres == controllers.ButtonActivated, 27 basic.Icons.Search, "Effectuer une recherche avancée...", t.afficherCriteres) 28 } 29 if buttons.AfficherDocuments != 0 { 30 addAction(t.toolbar, buttons.AfficherDocuments == controllers.ButtonActivated, 31 basic.Icons.Documents, "Afficher les documents...", t.afficherDocuments) 32 } 33 if buttons.Supprimer != 0 { 34 addAction(t.toolbar, buttons.Supprimer == controllers.ButtonActivated, 35 basic.Icons.Delete, "Supprimer", t.supprimer) 36 } 37 } 38 39 // cas spécial : option de création d'un organisme 40 func (p *Personnes) addCreePersonne(buttons controllers.ButtonsPersonnes) { 41 tbtn := widgets.NewQToolButton(nil) 42 menu := widgets.NewQMenu(nil) 43 menu.AddAction("Personne...").ConnectTriggered(func(_ bool) { 44 p.creerPersonne() 45 }) 46 menu.AddAction("Organisme...").ConnectTriggered(func(_ bool) { 47 p.creerOrganisme() 48 }) 49 50 tbtn.SetPopupMode(widgets.QToolButton__InstantPopup) 51 tbtn.SetMenu(menu) 52 tbtn.SetIcon(basic.Icons.Add) 53 tbtn.SetEnabled(buttons.Creer == controllers.ButtonActivated) 54 tbtn.SetToolTip("Ajouter un profil...") 55 p.toolbar.AddWidget(tbtn) 56 } 57 58 // cas spécial : choix entre messages / documents 59 func (t *SuiviDossiers) addEnvoiMessages(buttons controllers.ButtonsSuiviDossiers) { 60 tbtn := widgets.NewQToolButton(nil) 61 menu := widgets.NewQMenu(nil) 62 menu.AddAction("Envoyer des messages...").ConnectTriggered(func(_ bool) { 63 t.envoiManyMessages() 64 }) 65 menu.AddAction("Envoyer les documents d'un séjour...").ConnectTriggered(func(_ bool) { 66 t.envoiDocumentsCamp() 67 }) 68 69 tbtn.SetPopupMode(widgets.QToolButton__InstantPopup) 70 tbtn.SetMenu(menu) 71 tbtn.SetIcon(basic.Icons.Mails) 72 tbtn.SetEnabled(buttons.EnvoiDocuments == controllers.ButtonActivated) 73 tbtn.SetToolTip("Envoyer un groupe de messages...") 74 t.toolbar.AddWidget(tbtn) 75 } 76 77 func (t *SuiviDossiers) UpdateToolbar() { 78 buttons := t.controller.SideButtons() 79 t.toolbar.Clear() 80 if buttons.Alertes != 0 { 81 addAction(t.toolbar, buttons.Alertes == controllers.ButtonActivated, 82 basic.Icons.Tasks, "Afficher les notifications...", t.showNotifications) 83 } 84 t.toolbar.AddSeparator() 85 if buttons.Creer != 0 { 86 addAction(t.toolbar, buttons.Creer == controllers.ButtonActivated, 87 basic.Icons.Add, "Créer un dossier...", t.creer) 88 } 89 if buttons.Supprimer != 0 { 90 addAction(t.toolbar, buttons.Supprimer == controllers.ButtonActivated, 91 basic.Icons.Delete, "Supprimer le dossier courant", t.supprimer) 92 } 93 t.toolbar.AddSeparator() 94 t.addEnvoiMessages(buttons) 95 } 96 97 func (s *SuiviCamps) UpdateToolbar() { 98 buttons := s.controller.SideButtons() 99 s.toolbar.Clear() 100 if buttons.Creer != 0 { 101 addAction(s.toolbar, buttons.Creer == controllers.ButtonActivated, 102 basic.Icons.Add, "Créer un séjour", s.creer) 103 } 104 if buttons.Supprimer != 0 { 105 addAction(s.toolbar, buttons.Supprimer == controllers.ButtonActivated, 106 basic.Icons.Delete, "Supprimer le séjour courant...", s.supprimer) 107 } 108 if buttons.AfficherJoomeo != 0 { 109 addAction(s.toolbar, buttons.AfficherJoomeo == controllers.ButtonActivated, 110 basic.Icons.Joomeo, "Afficher l'interface Joomeo...", s.afficherJoomeo) 111 } 112 if buttons.BilanFinancier != 0 { 113 addAction(s.toolbar, buttons.BilanFinancier == controllers.ButtonActivated, 114 basic.Icons.Export, "Exporter un bilan financier...", s.bilanFinancier) 115 } 116 if buttons.LienSondages != 0 { 117 addAction(s.toolbar, buttons.LienSondages == controllers.ButtonActivated, 118 basic.Icons.Tasks, "Ouvrir la page des sondages...", s.openSondages) 119 } 120 } 121 122 func (e *Equipiers) UpdateToolbar() { 123 buttons := e.controller.SideButtons() 124 e.toolbar.Clear() 125 if buttons.Creer != 0 { 126 addAction(e.toolbar, buttons.Creer == controllers.ButtonActivated, 127 basic.Icons.Add, "Ajouter un équipier...", e.creer) 128 } 129 if buttons.Supprimer != 0 { 130 addAction(e.toolbar, buttons.Supprimer == controllers.ButtonActivated, 131 basic.Icons.Delete, "Supprimer l'équipier courant", e.supprimer) 132 } 133 if buttons.Exporter != 0 { 134 addAction(e.toolbar, buttons.Exporter == controllers.ButtonActivated, 135 basic.Icons.Export, "Exporter la liste courante", e.exporter) 136 } 137 138 } 139 140 func (t *Inscriptions) UpdateToolbar() { 141 buttons := t.controller.SideButtons() 142 t.toolbar.Clear() 143 if buttons.Supprimer != 0 { 144 addAction(t.toolbar, buttons.Supprimer == controllers.ButtonActivated, 145 basic.Icons.Delete, "Supprimer l'inscription courante", t.supprimer) 146 } 147 if buttons.Valider != 0 { 148 addAction(t.toolbar, buttons.Valider == controllers.ButtonActivated, 149 basic.Icons.FromTo, "Valider l'inscription courante...", t.valider) 150 } 151 if buttons.LoadLog != 0 { 152 addAction(t.toolbar, buttons.LoadLog == controllers.ButtonActivated, 153 basic.Icons.History, "Afficher les anciennes inscriptions...", t.loadLog) 154 } 155 } 156 157 // cas spécial : option d'ajout depuis un label de virement 158 func (p *Paiements) addCreePaiement(buttons controllers.ButtonsPaiements) { 159 tbtn := widgets.NewQToolButton(nil) 160 menu := widgets.NewQMenu(nil) 161 menu.AddAction("Classique...").ConnectTriggered(func(_ bool) { 162 p.cree() 163 }) 164 menu.AddAction("Depuis un virement...").ConnectTriggered(func(_ bool) { 165 p.creeFromVirement() 166 }) 167 168 tbtn.SetPopupMode(widgets.QToolButton__InstantPopup) 169 tbtn.SetMenu(menu) 170 tbtn.SetIcon(basic.Icons.Add) 171 tbtn.SetEnabled(buttons.Cree == controllers.ButtonActivated) 172 tbtn.SetToolTip("Ajouter un paiement...") 173 p.toolbar.AddWidget(tbtn) 174 } 175 176 func (p *Paiements) UpdateToolbar() { 177 buttons := p.controller.SideButtons() 178 p.toolbar.Clear() 179 if buttons.Cree != 0 { 180 p.addCreePaiement(buttons) 181 } 182 if buttons.Supprimer != 0 { 183 addAction(p.toolbar, buttons.Supprimer == controllers.ButtonActivated, 184 basic.Icons.Delete, "Supprimer le paiement courant...", p.supprimer) 185 } 186 if buttons.ExportBordereau != 0 { 187 addAction(p.toolbar, buttons.ExportBordereau == controllers.ButtonActivated, 188 basic.Icons.Export, "Emettre un bordereau...", p.exportBordereau) 189 } 190 } 191 192 func (t *Aides) UpdateToolbar() { 193 buttons := t.controller.SideButtons() 194 t.toolbar.Clear() 195 if buttons.Creer != 0 { 196 addAction(t.toolbar, buttons.Creer == controllers.ButtonActivated, 197 basic.Icons.Add, "Ajouter une aide...", t.creer) 198 } 199 if buttons.AfficherStructures != 0 { 200 addAction(t.toolbar, buttons.AfficherStructures == controllers.ButtonActivated, 201 basic.Icons.Cafs, "Afficher les structures d'aide...", t.afficherStructures) 202 } 203 if buttons.Documents != 0 { 204 addAction(t.toolbar, buttons.Documents == controllers.ButtonActivated, 205 basic.Icons.Documents, "Pièces justificatives...", t.afficherDocuments) 206 } 207 if buttons.Supprimer != 0 { 208 addAction(t.toolbar, buttons.Supprimer == controllers.ButtonActivated, 209 basic.Icons.Delete, "Supprimer l'aide courante", t.supprimer) 210 } 211 if buttons.Exporter != 0 { 212 addAction(t.toolbar, buttons.Exporter == controllers.ButtonActivated, 213 basic.Icons.Export, "Exporter la liste courante", t.exporter) 214 } 215 216 } 217 218 func (c *Camps) UpdateToolbar() { 219 buttons := c.controller.SideButtons() 220 c.toolbar.Clear() 221 if buttons.CreerParticipant != 0 { 222 addAction(c.toolbar, buttons.CreerParticipant == controllers.ButtonActivated, 223 basic.Icons.Add, "Ajouter un participant...", c.creerParticipant) 224 } 225 if buttons.SupprimerParticipant != 0 { 226 addAction(c.toolbar, buttons.SupprimerParticipant == controllers.ButtonActivated, 227 basic.Icons.Delete, "Supprimer le participant courant", c.supprimerParticipant) 228 } 229 if buttons.ChangerParticipant != 0 { 230 addAction(c.toolbar, buttons.ChangerParticipant == controllers.ButtonActivated, 231 basic.Icons.FromTo, "Changer le participant de camp...", c.changerParticipant) 232 } 233 if buttons.VerifieAttente != 0 { 234 addAction(c.toolbar, buttons.VerifieAttente == controllers.ButtonActivated, 235 basic.Icons.Tasks, "Analyser les listes d'attente", c.notifieAttentes) 236 } 237 if buttons.ExporterParticipants != 0 { 238 addAction(c.toolbar, buttons.ExporterParticipants == controllers.ButtonActivated, 239 basic.Icons.Export, "Exporter la liste des participants", c.exporterParticipants) 240 } 241 } 242 243 func (d *Dons) UpdateToolbar() { 244 buttons := d.controller.SideButtons() 245 d.toolbar.Clear() 246 if buttons.Creer != 0 { 247 addAction(d.toolbar, buttons.Creer == controllers.ButtonActivated, 248 basic.Icons.Add, "Ajouter une série de dons...", d.creer) 249 } 250 if buttons.Supprimer != 0 { 251 addAction(d.toolbar, buttons.Supprimer == controllers.ButtonActivated, 252 basic.Icons.Delete, "Supprimer le don courant", d.supprimer) 253 } 254 if buttons.ExporterListe != 0 { 255 addAction(d.toolbar, buttons.ExporterListe == controllers.ButtonActivated, 256 basic.Icons.Export, "Exporter une liste au format Excel...", d.exporterListe) 257 } 258 if buttons.EditerRecus != 0 { 259 addAction(d.toolbar, buttons.EditerRecus == controllers.ButtonActivated, 260 basic.Icons.Tasks, "Emettre un reçu fiscal...", d.editerRecu) 261 } 262 if buttons.ImportHelloasso != 0 { 263 addAction(d.toolbar, buttons.ImportHelloasso == controllers.ButtonActivated, 264 basic.Icons.Download, "Importer les dons HelloAsso...", d.importHelloasso) 265 } 266 }