Passage en version 0.4.5
[bilio:bilio.git] / src / main.rb
1 # coding: utf-8
2
3 class MainWindow < Gtk::Window
4         
5                 attr_reader :type_doc, :login, :tableau_bord, :document, :article, :tiers       
6                 attr_reader :liste_documents, :liste_users, :liste_articles, :liste_tiers
7                 attr_reader :version, :utilisateur, :liste_lots, :scan 
8                 attr_reader :paiement, :liste_compte, :compte, :configuration, :liste_interventions
9                 attr_reader :intervention, :stat_articles
10                 attr_accessor :config_db
11         
12         def initialize level
13         
14                 super
15                 
16                 signal_connect( "destroy" ) { Gtk.main_quit }
17                 
18                 @version = "0.4.5"
19                 set_title GLib.application_name + " v" + @version
20                 
21                 set_window_position Gtk::Window::POS_CENTER
22                 set_default_size 800, 300
23                 set_icon( "./resources/icons/icon.png" )                
24                 
25                 @config_db = ConfigDb.new self
26                 #@config_db.connexion
27                 lancement
28         
29         end
30         
31         def lancement
32                 
33                 @vbox = Gtk::VBox.new false, 2
34                 @login = Login_box.new self
35                 @vbox.pack_start @login, false, false, 2
36                 
37                 self.add @vbox
38                 
39                 show_all
40                 
41                 @login.refresh
42                 #@login.login_automatique
43                 
44         end
45         
46         def demarre_appli
47         
48                 @type_doc = TypeDocument.new self
49                 
50                 @toolbargen = ToolBarGen_box.new self
51         
52                 @toolbargen.each { |child|
53                         child.sensitive = true
54                 }
55                 
56                 # If not a admin, config menu is hidden
57                 @toolbargen.children[11].sensitive = false unless @login.user.admin
58                 
59                 @tableau_bord = TableauBord_box.new self
60                 @document = Document_box.new self
61                 @article = Article_box.new self
62                 @tiers = Tiers_box.new self
63                 @liste_articles = ListeArticles_box.new self
64                 @liste_documents = ListeDocuments_box.new self
65                 @liste_users = ListeUsers_box.new self
66                 @liste_tiers = ListeTiers_box.new self
67                 @utilisateur = Utilisateur_box.new self
68                 @liste_lots = ListeLots_box.new self
69                 @scan = Scan.new @config_db
70                 @paiement = ListePaiements_box.new self
71                 @liste_compte = ListeComptes_box.new self
72                 @compte = Compte_box.new self
73                 @configuration = Configuration_box.new self
74                 @liste_interventions = ListeInterventions_box.new self
75                 @intervention = Intervention_box.new self
76                 @stat_articles = Stat_articles_box.new self
77                 
78                 set_title "#{GLib.application_name} v #{@version} - #{@config_db.conf['nom']}"
79                 
80                 @vbox.remove @login
81                 @vbox.pack_start @toolbargen, false, false, 0
82                 @vbox.pack_start @tableau_bord, true
83     self.show_all
84                 @tableau_bord.refresh
85         
86         end
87         
88         def deconnecter
89         
90                 dialog = Gtk::MessageDialog.new(self, 
91                                 Gtk::Dialog::DESTROY_WITH_PARENT,
92                                 Gtk::MessageDialog::QUESTION,
93                                 Gtk::MessageDialog::BUTTONS_YES_NO,
94                                 "Voulez-vous réellement vous déconnecter ?")
95                 response = dialog.run
96                 case response
97                   when Gtk::Dialog::RESPONSE_YES
98                                 @vbox.children.each do |c|
99                                         @vbox.remove c
100                                 end
101                 
102                                 @vbox.pack_start @login, false, false, 2
103                                 @login.refresh
104                 
105                                 set_title "#{GLib.application_name} v #{@version}"
106                 
107                                 self.unmaximize
108                 end 
109                 dialog.destroy
110         
111         end
112         
113         def efface_vbox_actuelle
114         
115                 @vbox.remove @vbox.children[@vbox.children.count-1] if @vbox.children.count.eql?(2)
116         
117         end
118         
119         def affiche vbox
120         
121                 efface_vbox_actuelle
122                 @vbox.pack_start vbox, true
123     self.show_all
124         
125         end     
126         
127         def quit
128                 
129                 dialog = Gtk::MessageDialog.new(self, 
130                                 Gtk::Dialog::DESTROY_WITH_PARENT,
131                                 Gtk::MessageDialog::QUESTION,
132                                 Gtk::MessageDialog::BUTTONS_YES_NO,
133                                 "Voulez-vous réellement quitter #{GLib.application_name.capitalize} ?")
134                 response = dialog.run
135                 case response
136                   when Gtk::Dialog::RESPONSE_YES
137                                 Gtk.main_quit
138                 end 
139                 dialog.destroy
140                 
141         end
142         
143         def message_erreur message
144                 p message
145                 m = "Impossible d'exécuter la requête demandée...\nVoici le message d'erreur affiché :\n" + message
146                 dialog = Gtk::MessageDialog.new(self, 
147                                 Gtk::Dialog::DESTROY_WITH_PARENT,
148                                 Gtk::MessageDialog::ERROR,
149                                 Gtk::MessageDialog::BUTTONS_OK,
150                                 m)
151                 response = dialog.run
152                 dialog.destroy
153         end
154         
155         def message_attention message
156                 p message
157                 dialog = Gtk::MessageDialog.new(self, 
158                                 Gtk::Dialog::DESTROY_WITH_PARENT,
159                                 Gtk::MessageDialog::WARNING,
160                                 Gtk::MessageDialog::BUTTONS_OK,
161                                 message)
162                 response = dialog.run
163                 dialog.destroy
164         end
165
166 end