Réorganisation des dossiers
[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, :liste_documents, :liste_users, :liste_articles, :liste_tiers, :version, :utilisateur, :liste_lots, :transformation, :scan
6         attr_accessor :config_db
7         
8         def initialize level
9         
10                 super
11                 
12                 signal_connect( "destroy" ) { Gtk.main_quit }
13                 
14                 @version = "0.4"
15                 set_title GLib.application_name + " v" + @version
16                 
17                 set_window_position Gtk::Window::POS_CENTER
18                 set_default_size 900, 300
19                 set_icon( "./resources/icons/icon.png" )                
20                 
21                 @config_db = ConfigDb.new self
22                 @config_db.connexion
23         
24         end
25         
26         def lancement
27         
28                 @type_doc = TypeDocument_hash.new self
29                 
30                 @toolbargen = ToolBarGen_box.new self
31                 
32                 @vbox = Gtk::VBox.new false, 2
33                 @vbox.pack_start @toolbargen, false, false, 2
34                 @login = Login_box.new self
35                 @vbox.pack_start @login, false, false, 2
36                 
37                 add @vbox
38                 
39                 show_all
40                 
41                 @login.focus
42                 @login.login_automatique
43         end
44         
45         def active_menu
46         
47                 @toolbargen.each { |child|
48                         child.sensitive = true
49                 }
50                 
51                 # If not a admin, config menu is hidden
52                 @toolbargen.children[10].sensitive = false unless @login.user.admin
53                 
54                 @tableau_bord = TableauBord_box.new self
55                 @document = Document_box.new self
56                 @article = Article_box.new self
57                 @tiers = Tiers_box.new self
58                 @liste_articles = ListeArticles_box.new self
59                 @liste_documents = ListeDocuments_box.new self
60                 @liste_users = ListeUsers_box.new self
61                 @liste_tiers = ListeTiers_box.new self
62                 @utilisateur = Utilisateur_box.new self
63                 @liste_lots = ListeLots_box.new self
64                 @transformation = Transformation_box.new self
65                 @scan = Scan.new @config_db
66                 
67                 set_title "#{GLib.application_name} v #{@version} - #{@config_db.conf['database']}"
68         
69         end
70         
71         def efface_vbox_actuelle
72         
73                 @vbox.remove @vbox.children[@vbox.children.count-1] if @vbox.children.count.eql?(2)
74         
75         end
76         
77         def affiche vbox
78         
79                 efface_vbox_actuelle
80                 @vbox.pack_start vbox, true
81         self.show_all
82         
83         end     
84         
85         def quit
86                 
87                 dialog = Gtk::MessageDialog.new(self, 
88                                 Gtk::Dialog::DESTROY_WITH_PARENT,
89                                 Gtk::MessageDialog::QUESTION,
90                                 Gtk::MessageDialog::BUTTONS_YES_NO,
91                                 "Voulez-vous réellement quitter #{GLib.application_name.capitalize} ?")
92                 response = dialog.run
93                 case response
94                   when Gtk::Dialog::RESPONSE_YES
95                         Gtk.main_quit
96                 end 
97                 dialog.destroy
98                 
99         end
100         
101         def message_erreur message
102                 p message
103                 m = "Impossible d'exécuter la requête demandée...\nVoici le message d'erreur affiché :\n" + message
104                 dialog = Gtk::MessageDialog.new(self, 
105                                 Gtk::Dialog::DESTROY_WITH_PARENT,
106                                 Gtk::MessageDialog::ERROR,
107                                 Gtk::MessageDialog::BUTTONS_OK,
108                                 m)
109                 response = dialog.run
110                 dialog.destroy
111         end
112
113 end