Parcourir la source

Add new feautures and start working on language.

Cixo il y a 1 an
Parent
commit
f8f9f9a78b

+ 4 - 3
core.py

@@ -3,7 +3,8 @@ from cx_newsletter_importer.gtk import Gtk
 from cx_newsletter_importer import logger
 
 if __name__ == "__main__":
-    app = ui.app(logger.stdio_logger())
-    app.show_all()
+    logger.loader.set(logger.stdio_logger())
 
-    Gtk.main()
+    app = ui.app()
+    app.show_all()
+    app.main()

+ 12 - 0
cx_newsletter_importer/language.py

@@ -0,0 +1,12 @@
+import json
+
+class language:
+    def __init__(self, languages, logger):
+        self.logger = logger
+
+        try:
+            with open(languages) as languages_file:
+                self.languages = json.loads(languages_file.read())
+        
+        except:
+

+ 18 - 0
cx_newsletter_importer/logger.py

@@ -67,3 +67,21 @@ class file_logger(logger):
         except:
             print("Can not write to log file!")
             exit(-1)
+
+class loader:
+    _logger = None
+
+    def get():
+        if loader._logger is None:
+            Exception("Logger bust be set in loader first.")
+
+        return loader._logger
+
+    def set(new_logger):
+        if type(new_logger) is not logger:
+            Exception("New loader must be instance of logger.")
+        
+        loader._logger = new_logger
+
+    def __init__(self):
+        Exception("Loader is static class.")

+ 73 - 0
cx_newsletter_importer/ui.old.py

@@ -0,0 +1,73 @@
+from .gtk import Gtk
+
+class app(Gtk.Window):
+    def __init__(self, logger):
+        self.logger = logger
+        super().__init__(title = "CxNewsletter JSON creator")
+        
+        self.connect("destroy", Gtk.main_quit)
+
+        self.content = Gtk.Grid()
+        self.content.set_column_spacing(4)
+        self.content.set_row_spacing(4)
+        self.content.set_column_homogeneous(False)
+        self.add(self.content)
+        
+        self.input = Gtk.FileChooserButton()
+        self.input.set_width_chars(20)
+        self.input.set_title("Select XLSX file")
+        self.content.attach(self.input, 0, 0, 2, 1)
+
+        input_label = Gtk.Label()
+        input_label.set_label("Select XLSX")
+        self.content.attach(input_label, 0, 1, 2, 1)
+
+        self.output = Gtk.FileChooserButton()
+        self.output.set_width_chars(20)
+        self.input.set_title("Select output JSON")
+        self.content.attach(self.output, 2, 0, 2, 1)
+
+        output_label = Gtk.Label()
+        output_label.set_label("Select JSON")
+        self.content.attach(output_label, 2, 1, 2, 1)
+
+        self.convert = Gtk.Button()
+        self.convert.set_label("Convert")
+        self.convert.connect("clicked", self.convert_clicked)
+        self.content.attach(self.convert, 0, 2, 4, 1)    
+
+        name_column = Gtk.Label()
+        name_column.set_width_chars(40)
+        name_column.set_xalign(1)
+        name_column.set_label("Select column with names and surnames")
+        self.content.attach(name_column, 6, 0, 1, 1)
+
+        self.name_column = Gtk.ComboBoxText()
+        self.content.attach(self.name_column, 7, 0, 1, 1)
+
+        email_column = Gtk.Label()
+        email_column.set_width_chars(40)
+        email_column.set_xalign(1)
+        email_column.set_label("Select column with e-mails")
+        self.content.attach(email_column, 6, 1, 1, 1)
+
+        self.email_column = Gtk.ComboBoxText()
+        self.email_column.set_popup_fixed_width(200)
+        self.content.attach(self.email_column, 7, 1, 1, 1)
+
+        phone_column = Gtk.Label()
+        phone_column.set_width_chars(40)
+        phone_column.set_xalign(1)
+        phone_column.set_label("Select column with phone numbers")
+        self.content.attach(phone_column, 6, 2, 1, 1)
+        
+        self.phone_column = Gtk.ComboBoxText()
+        self.content.attach(self.phone_column, 7, 2, 1, 1)
+        
+        self.logger.info("App window created.")
+
+        
+    def convert_clicked(self, trigger):
+        self.logger.info("Convert button clicked.")
+
+

+ 12 - 60
cx_newsletter_importer/ui.py

@@ -1,73 +1,25 @@
+from . import logger
 from .gtk import Gtk
 
 class app(Gtk.Window):
-    def __init__(self, logger):
-        self.logger = logger
-        super().__init__(title = "CxNewsletter JSON creator")
+    def __init__(self):
+        super().__init__(title = "CxNewsletter Importer")
         
-        self.connect("destroy", Gtk.main_quit)
+        self.logger = logger.loader.get()
+
+        self.connect("destroy", self.close)
 
         self.content = Gtk.Grid()
         self.content.set_column_spacing(4)
         self.content.set_row_spacing(4)
         self.content.set_column_homogeneous(False)
         self.add(self.content)
-        
-        self.input = Gtk.FileChooserButton()
-        self.input.set_width_chars(20)
-        self.input.set_title("Select XLSX file")
-        self.content.attach(self.input, 0, 0, 2, 1)
-
-        input_label = Gtk.Label()
-        input_label.set_label("Select XLSX")
-        self.content.attach(input_label, 0, 1, 2, 1)
-
-        self.output = Gtk.FileChooserButton()
-        self.output.set_width_chars(20)
-        self.input.set_title("Select output JSON")
-        self.content.attach(self.output, 2, 0, 2, 1)
-
-        output_label = Gtk.Label()
-        output_label.set_label("Select JSON")
-        self.content.attach(output_label, 2, 1, 2, 1)
-
-        self.convert = Gtk.Button()
-        self.convert.set_label("Convert")
-        self.convert.connect("clicked", self.convert_clicked)
-        self.content.attach(self.convert, 0, 2, 4, 1)    
-
-        name_column = Gtk.Label()
-        name_column.set_width_chars(40)
-        name_column.set_xalign(1)
-        name_column.set_label("Select column with names and surnames")
-        self.content.attach(name_column, 6, 0, 1, 1)
 
-        self.name_column = Gtk.ComboBoxText()
-        self.content.attach(self.name_column, 7, 0, 1, 1)
-
-        email_column = Gtk.Label()
-        email_column.set_width_chars(40)
-        email_column.set_xalign(1)
-        email_column.set_label("Select column with e-mails")
-        self.content.attach(email_column, 6, 1, 1, 1)
-
-        self.email_column = Gtk.ComboBoxText()
-        self.email_column.set_popup_fixed_width(200)
-        self.content.attach(self.email_column, 7, 1, 1, 1)
-
-        phone_column = Gtk.Label()
-        phone_column.set_width_chars(40)
-        phone_column.set_xalign(1)
-        phone_column.set_label("Select column with phone numbers")
-        self.content.attach(phone_column, 6, 2, 1, 1)
-        
-        self.phone_column = Gtk.ComboBoxText()
-        self.content.attach(self.phone_column, 7, 2, 1, 1)
-        
-        self.logger.info("App window created.")
-
-        
-    def convert_clicked(self, trigger):
-        self.logger.info("Convert button clicked.")
+        self.logger.info("Window created.")
 
+    def close(self, destination):
+        self.logger.info("Closing app.")
+        Gtk.main_quit(destination)
 
+    def main(self):
+        Gtk.main()