Passage en version 0.4.3
[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.3"
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         
28         end
29         
30         def lancement
31         
32                 @type_doc = TypeDocument.new self
33                 
34                 @toolbargen = ToolBarGen_box.new self
35                 
36                 @vbox = Gtk::VBox.new false, 2
37                 @vbox.pack_start @toolbargen, false, false, 2
38                 @login = Login_box.new self
39                 @vbox.pack_start @login, false, false, 2
40                 
41                 add @vbox
42                 
43                 show_all
44                 
45                 @login.focus
46                 @login.login_automatique
47         end
48         
49         def active_menu
50         
51                 @toolbargen.each { |child|
52                         child.sensitive = true
53                 }
54                 
55                 # If not a admin, config menu is hidden
56                 @toolbargen.children[11].sensitive = false unless @login.user.admin
57                 
58                 @tableau_bord = TableauBord_box.new self
59                 @document = Document_box.new self
60                 @article = Article_box.new self
61                 @tiers = Tiers_box.new self
62                 @liste_articles = ListeArticles_box.new self
63                 @liste_documents = ListeDocuments_box.new self
64                 @liste_users = ListeUsers_box.new self
65                 @liste_tiers = ListeTiers_box.new self
66                 @utilisateur = Utilisateur_box.new self
67                 @liste_lots = ListeLots_box.new self
68                 @scan = Scan.new @config_db
69                 @paiement = ListePaiements_box.new self
70                 @liste_compte = ListeComptes_box.new self
71                 @compte = Compte_box.new self
72                 @configuration = Configuration_box.new self
73                 @liste_interventions = ListeInterventions_box.new self
74                 @intervention = Intervention_box.new self
75                 @stat_articles = Stat_articles_box.new self
76                 
77                 set_title "#{GLib.application_name} v #{@version} - #{@config_db.conf['database']}"
78         
79         end
80         
81         def efface_vbox_actuelle
82         
83                 @vbox.remove @vbox.children[@vbox.children.count-1] if @vbox.children.count.eql?(2)
84         
85         end
86         
87         def affiche vbox
88         
89                 efface_vbox_actuelle
90                 @vbox.pack_start vbox, true
91         self.show_all
92         
93         end     
94         
95         def quit
96                 
97                 dialog = Gtk::MessageDialog.new(self, 
98                                 Gtk::Dialog::DESTROY_WITH_PARENT,
99                                 Gtk::MessageDialog::QUESTION,
100                                 Gtk::MessageDialog::BUTTONS_YES_NO,
101                                 "Voulez-vous réellement quitter #{GLib.application_name.capitalize} ?")
102                 response = dialog.run
103                 case response
104                   when Gtk::Dialog::RESPONSE_YES
105                                 Gtk.main_quit
106                 end 
107                 dialog.destroy
108                 
109         end
110         
111         def message_erreur message
112                 p message
113                 m = "Impossible d'exécuter la requête demandée...\nVoici le message d'erreur affiché :\n" + message
114                 dialog = Gtk::MessageDialog.new(self, 
115                                 Gtk::Dialog::DESTROY_WITH_PARENT,
116                                 Gtk::MessageDialog::ERROR,
117                                 Gtk::MessageDialog::BUTTONS_OK,
118                                 m)
119                 response = dialog.run
120                 dialog.destroy
121         end
122
123 end