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  }