Example #1
0
 def start_main(self,window,ctx,path_to_extension,win):
     if self.debug: log(inspect.stack)
     
     try:
         ctx = uno.getComponentContext()
         smgr = ctx.ServiceManager
         desktop = smgr.createInstanceWithContext( "com.sun.star.frame.Desktop",ctx)
         frame = desktop.Frames.getByIndex(0)
         
         if desktop.ActiveFrame != None:
             frame = desktop.ActiveFrame
         
         try:
             if settings_orga['organon_farben']['design_office'] and g.geladen == 'neu':
                 
                 g.geladen = 'alt'
                 
                 listener = Listener_To_Restart_Component()
                 
                 if 'OpenOffice' in frame.Title : 
                     listener.win = window
                     window.addWindowListener(listener)    
             
                 if 'LibreOffice' in frame.Title:
                     eventb = ctx.getByName("/singletons/com.sun.star.frame.theGlobalEventBroadcaster")
                     listener.eventb= eventb
                     eventb.addDocumentEventListener(listener)
                     
                 return
                 
         except Exception as e:
             log(inspect.stack,tb()) 
         
         dialog = window
         debug = settings_orga['log_config']['output_console']
 
         import menu_start
         
         args = (pd,
                 dialog,
                 ctx,
                 path_to_extension,
                 win,
                 dict_sb,
                 debug,
                 log,
                 class_Log,
                 KONST,
                 settings_orga)
         
         Menu_Start = menu_start.Menu_Start(args)
         Menu_Start.erzeuge_Startmenu()
 
     except Exception as e:
         log(inspect.stack,tb())
Example #2
0
    def start_main(self, window, ctx, path_to_extension, win):
        if self.debug: log(inspect.stack)

        try:
            ctx = uno.getComponentContext()
            smgr = ctx.ServiceManager
            desktop = smgr.createInstanceWithContext(
                "com.sun.star.frame.Desktop", ctx)
            frame = desktop.Frames.getByIndex(0)

            if desktop.ActiveFrame != None:
                frame = desktop.ActiveFrame

            try:
                if settings_orga['organon_farben'][
                        'design_office'] and g.geladen == 'neu':

                    g.geladen = 'alt'

                    listener = Listener_To_Restart_Component()

                    if 'OpenOffice' in frame.Title:
                        listener.win = window
                        window.addWindowListener(listener)

                    if 'LibreOffice' in frame.Title:
                        eventb = ctx.getByName(
                            "/singletons/com.sun.star.frame.theGlobalEventBroadcaster"
                        )
                        listener.eventb = eventb
                        eventb.addDocumentEventListener(listener)

                    return

            except Exception as e:
                log(inspect.stack, tb())

            dialog = window
            debug = settings_orga['log_config']['output_console']

            import menu_start

            args = (pd, dialog, ctx, path_to_extension, win, dict_sb, debug,
                    log, class_Log, KONST, settings_orga)

            Menu_Start = menu_start.Menu_Start(args)
            Menu_Start.erzeuge_Startmenu()

        except Exception as e:
            log(inspect.stack, tb())
Example #3
0
    def createUIElement(self,url,args):    
        cmd = url.split('/')[-1]
        
        try:
            xParentWindow = None
            xFrame = None
            xUIElement = None

            for arg in args:
                if arg.Name == "Frame":
                    xFrame = arg.Value
                elif arg.Name == "ParentWindow":
                    xParentWindow = arg.Value
                elif arg.Name == "Sidebar":
                    sidebar = arg.Value
                elif arg.Name == "Theme":
                    theme = arg.Value

            xUIElement = XUIPanel(self.ctx, xFrame, xParentWindow, url, theme)
            
            # getting the real panel window 
            # for setting the content       
            xUIElement.getRealInterface()
            panelWin = xUIElement.Window
            
            # panelWin has to be set visible
            panelWin.Visible = True
            
            conts = dict_sb['controls']
            
            if cmd in dict_sb['sichtbare']:

                conts.update({cmd:(xUIElement,sidebar,xParentWindow)})
                dict_sb.update({'controls':conts})

                if dict_sb['erzeuge_sb_layout'] != None:
                    erzeuge_sb_layout = dict_sb['erzeuge_sb_layout']
                    dict_sb['sb_closed'] = False
                    erzeuge_sb_layout(cmd,'factory')
                    

                return xUIElement
            else:
                if cmd in conts:
                    del(conts[cmd])
                return None
            
        except Exception as e:
            #print('createUIElement '+ str(e))
            tb()
Example #4
0
    def lade_Modul_Language(self):
        if debug: log(inspect.stack)
        try:
            enum = self.desktop.Components.createEnumeration()
            comps = []

            while enum.hasMoreElements():
                comps.append(enum.nextElement())

            language = comps[0].CharLocale.Language

            config_provider = self.ctx.ServiceManager.createInstanceWithContext(
                "com.sun.star.configuration.ConfigurationProvider", self.ctx)

            prop = uno.createUnoStruct("com.sun.star.beans.PropertyValue")
            prop.Name = "nodepath"
            prop.Value = "org.openoffice.Setup/L10N"

            try:
                config_access = config_provider.createInstanceWithArguments(
                    "com.sun.star.configuration.ConfigurationUpdateAccess",
                    (prop, ))
                locale = config_access.getByName('ooLocale')

                loc = locale[0:2]
                language = loc
            except:
                log(inspect.stack, tb())
                language = 'en'

            self.language = language

            import lang_en

            try:
                exec('import lang_' + language)
            except Exception as e:
                pass
                #log(inspect.stack,tb())

            if 'lang_' + language in vars():
                lang = vars()['lang_' + language]
            else:
                lang = lang_en

            return lang
        except Exception as e:
            log(inspect.stack, tb())
Example #5
0
    def erzeuge_dialog_index(self):
        if self.mb.debug: log(inspect.stack)

        try:
            listener = Speicherordner_Button_Listener(self.mb, self)

            controls, max_breite = self.erzeuge_dialog_index_elemente(listener)
            ctrls, max_hoehe = self.mb.class_Fenster.erzeuge_fensterinhalt(
                controls)

            # Hauptfenster erzeugen
            posSize = None, None, max_breite, max_hoehe
            fenster, fenster_cont = self.mb.class_Fenster.erzeuge_Dialog_Container(
                posSize)
            #fenster_cont.Model.Text = LANG.EXPORT

            # Controls in Hauptfenster eintragen
            for name, c in sorted(ctrls.items()):
                fenster_cont.addControl(name, c)

            listener.oWindow = fenster
            listener.controls = ctrls

        except:
            log(inspect.stack, tb())
Example #6
0
    def erzeuge_Menu(self):
        if debug: log(inspect.stack)

        try:

            import menu_bar

            args = (
                pd,
                self.dialog,
                self.ctx,
                self.path_to_extension,
                self.win,
                self.dict_sb,
                debug,
                self,
                log,
                class_Log,
                self.settings_orga,
            )
            import time
            class_Log.timer_start = time.clock()
            self.module_mb = menu_bar

            self.Menu_Bar = menu_bar.Menu_Bar(args)
            self.Menu_Bar.erzeuge_Menu(self.Menu_Bar.prj_tab)

        except:
            log(inspect.stack, tb())
Example #7
0
    def get_zuletzt_geladene_Projekte(self):
        if debug: log(inspect.stack)

        try:
            projekte = self.settings_orga['zuletzt_geladene_Projekte']

            # Fuer projekte erstellt vor v0.9.9.8b
            if isinstance(projekte, dict):
                list_proj = list(projekte)
                projekte = [[p, projekte[p]] for p in list_proj]

            inexistent = [p for p in projekte if not os.path.exists(p[1])]

            for i in inexistent:
                index = projekte.index(i)
                del (projekte[index])

            self.settings_orga['zuletzt_geladene_Projekte'] = projekte

            return projekte
        except Exception as e:
            print(e)
            try:
                if debug: log(inspect.stack, tb())
            except:
                pass
        return []
Example #8
0
 def get_zuletzt_geladene_Projekte(self):
     if debug: log(inspect.stack)
     
     try:
         projekte = self.settings_orga['zuletzt_geladene_Projekte']
         
         # Fuer projekte erstellt vor v0.9.9.8b
         if isinstance(projekte, dict):
             list_proj = list(projekte)
             projekte = [[p,projekte[p]] for p in list_proj]
             
         
         inexistent = [p for p in projekte if not os.path.exists(p[1])]
         
         for i in inexistent:
             index = projekte.index(i)
             del(projekte[index])
             
         self.settings_orga['zuletzt_geladene_Projekte'] = projekte
         
         return projekte
     except Exception as e:
         print(e)
         try:
             if debug: log(inspect.stack,tb())
         except:
             pass
     return []
Example #9
0
 def erzeuge_Menu(self):
     if debug: log(inspect.stack)
       
     try:  
                      
         import menu_bar
         
         args = (pd,
                 self.dialog,
                 self.ctx,
                 self.path_to_extension,
                 self.win,
                 self.dict_sb,
                 debug,
                 self,
                 log,
                 class_Log,
                 self.settings_orga,
                 )
         import time
         class_Log.timer_start = time.clock()
         self.module_mb = menu_bar
         
         self.Menu_Bar = menu_bar.Menu_Bar(args)
         self.Menu_Bar.erzeuge_Menu(self.Menu_Bar.prj_tab)
         
     except:
         log(inspect.stack,tb())    
Example #10
0
def set_konst():
    
    try:
        sett = settings_orga
        
        # ORGANON DESIGN
        KONST.FARBE_HF_HINTERGRUND      = sett['organon_farben']['hf_hintergrund']
        KONST.FARBE_MENU_HINTERGRUND    = sett['organon_farben']['menu_hintergrund']
        
        KONST.FARBE_MENU_SCHRIFT        = sett['organon_farben']['menu_schrift']
        KONST.FARBE_SCHRIFT_ORDNER      = sett['organon_farben']['schrift_ordner']
        KONST.FARBE_SCHRIFT_DATEI       = sett['organon_farben']['schrift_datei']
        
        KONST.FARBE_AUSGEWAEHLTE_ZEILE  = sett['organon_farben']['ausgewaehlte_zeile']
        KONST.FARBE_EDITIERTE_ZEILE     = sett['organon_farben']['editierte_zeile']
        KONST.FARBE_GEZOGENE_ZEILE      = sett['organon_farben']['gezogene_zeile']
        
        KONST.FARBE_GLIEDERUNG          = sett['organon_farben']['gliederung']
        
        KONST.FARBE_TRENNER_HINTERGRUND = sett['organon_farben']['trenner_farbe_hintergrund']
        KONST.FARBE_TRENNER_SCHRIFT     = sett['organon_farben']['trenner_farbe_schrift']
        
        KONST.FARBE_TABS_HINTERGRUND    = sett['organon_farben']['tabs_hintergrund']
        KONST.FARBE_TABS_SCHRIFT        = sett['organon_farben']['tabs_schrift']
        KONST.FARBE_TABS_SEL_HINTERGRUND= sett['organon_farben']['tabs_sel_hintergrund']
        KONST.FARBE_TABS_SEL_SCHRIFT    = sett['organon_farben']['tabs_sel_schrift']
        KONST.FARBE_TABS_TRENNER        = sett['organon_farben']['tabs_trenner']
        KONST.FARBE_LINIEN              = sett['organon_farben']['linien']
        KONST.FARBE_DEAKTIVIERT         = sett['organon_farben']['deaktiviert']
        
    except Exception as e:
        log(inspect.stack,tb())
Example #11
0
def set_konst():
    
    try:
        sett = settings_orga
        
        # ORGANON DESIGN
        KONST.FARBE_HF_HINTERGRUND      = sett['organon_farben']['hf_hintergrund']
        KONST.FARBE_MENU_HINTERGRUND    = sett['organon_farben']['menu_hintergrund']
        
        KONST.FARBE_MENU_SCHRIFT        = sett['organon_farben']['menu_schrift']
        KONST.FARBE_SCHRIFT_ORDNER      = sett['organon_farben']['schrift_ordner']
        KONST.FARBE_SCHRIFT_DATEI       = sett['organon_farben']['schrift_datei']
        
        KONST.FARBE_AUSGEWAEHLTE_ZEILE  = sett['organon_farben']['ausgewaehlte_zeile']
        KONST.FARBE_EDITIERTE_ZEILE     = sett['organon_farben']['editierte_zeile']
        KONST.FARBE_GEZOGENE_ZEILE      = sett['organon_farben']['gezogene_zeile']
        
        KONST.FARBE_GLIEDERUNG          = sett['organon_farben']['gliederung']
        
        KONST.FARBE_TRENNER_HINTERGRUND = sett['organon_farben']['trenner_farbe_hintergrund']
        KONST.FARBE_TRENNER_SCHRIFT     = sett['organon_farben']['trenner_farbe_schrift']
        
        # KONST.FARBE_ORGANON_FENSTER
    except Exception as e:
        print(tb())
Example #12
0
    def documentEventOccured(self,ev):

        ctx = uno.getComponentContext()
        smgr = ctx.ServiceManager
        toolkit = smgr.createInstanceWithContext("com.sun.star.awt.Toolkit", ctx)    
        desktop = smgr.createInstanceWithContext( "com.sun.star.frame.Desktop",ctx)
        
        if ev.EventName == 'OnLayoutFinished':
            self.eventb.removeDocumentEventListener(self.listener)

            try:
                # um den Listener nur einmal anzusprechen
                if g.geladen == 'neu':
                    g.geladen = 'alt'    
                if desktop.Name == '':
                    desktop.Name = 'gestartet'
                    
                    from threading import Thread

                    def sleeper(desktop1):   
                        import time
                        #time.sleep(2)  
                        URL="private:factory/swriter"
                        desktop1.ActiveFrame.loadComponentFromURL(URL,'_top','',())  

                    t = Thread(target=sleeper,args=(desktop,))
                    t.start()
                    
            except Exception as e:
                log(inspect.stack,tb())
Example #13
0
 def suche(self):  
     # Fuer eine Fehlersuche, die bei jedem Methodenaufruf gestartet wird
     
     try:
         ctx = uno.getComponentContext()  
         smgr = ctx.ServiceManager
         desktop = smgr.createInstanceWithContext( "com.sun.star.frame.Desktop",ctx)
         doc = desktop.getCurrentComponent()
         
         secs = doc.TextSections
         el_names = secs.ElementNames
         
         for n in el_names:
             if 'Bereich' in n:
                 pd()
         
     except Exception as e:
         print(tb())
         #pd()
         return e
     
     return None
     
     
          
    def print_error(self, err, func_vars, obj, src):
        traceback.tb = ultratb.VerboseTB(tb_offset=1)
        traceback.tb()

        enhancer = Enhancer(err, func_vars, obj, src)
        help_txt = enhancer.get_enhancement()

        if self.helpful and help_txt:
            display(
                Markdown(
                    "<div class='alert alert-block alert-info'><img class='pull-left obligator' src='obligator-64.png' alt='�' /><h2 style='color:blue'>Maybe this can help? </h2></div>"
                ))
            print(self.format_return_text(help_txt))

            return help_txt
        else:
            return None
Example #15
0
    def createInstanceWithArgumentsAndContext(self, args, ctx):
        
        try:
            CWHandler = ContainerWindowHandler(ctx)
            self.CWHandler = CWHandler
            
            win,tabs = create_window(ctx,self)
            window = self.CWHandler.window2

            window.Model.BackgroundColor = KONST.FARBE_HF_HINTERGRUND
            start_main(window,ctx,tabs,path_to_extension,win,self)  
            
            return win
        
        except Exception as e:
            print('Factory '+e)
            tb()
Example #16
0
    def erstelle_fussnote(self,fn):
        if self.mb.debug: log(inspect.stack)
        
        try:
            text = fn.Text
            
            paras = []
            fussnote = []
            
            enum = text.createEnumeration()
            
            while enum.hasMoreElements():
                paras.append(enum.nextElement())
            

            for par in paras:
                
                enum2 = par.createEnumeration()
                portions = []
                
                while enum2.hasMoreElements():
                    portions.append(enum2.nextElement())
                
                # auf leeren Paragraph testen
                if len(portions) == 1:
                    if portions[0].String == '':
                        fussnote.append(u'<br>')
                

                for portion in portions:
                    open = 0
                    
                    # kursiv
                    if portion.CharPosture.value == 'ITALIC':
                        fussnote.append(u'<span style="font-style: italic;">')
                        open += 1
                    
                    # fett
                    if portion.CharWeight == 150:
                        fussnote.append(u'<span style="font-weight: bold;">')
                        open += 1
                    
                    try:
                        
                        if portion.String != '':
                            fussnote.append(portion.String)  
                    except:
                        #print("FEHLER: ",portion.String) 
                        pass                 
                    fussnote.append(u'</span>' * open)
                
                if par != paras[-1]:    
                    fussnote.append(self.leerzeile)
                
            return u''.join(fussnote)
            
        except:
            log(inspect.stack,tb())
Example #17
0
 def lade_Modul_Language(self):
     if debug: log(inspect.stack)
     try:  
         enum = self.desktop.Components.createEnumeration()
         comps = []
         
         while enum.hasMoreElements():
             comps.append(enum.nextElement())
 
         language = comps[0].CharLocale.Language
         
         config_provider = self.ctx.ServiceManager.createInstanceWithContext("com.sun.star.configuration.ConfigurationProvider",self.ctx)
     
         prop = uno.createUnoStruct("com.sun.star.beans.PropertyValue")
         prop.Name = "nodepath"
         prop.Value = "org.openoffice.Setup/L10N"
         
         try:      
             config_access = config_provider.createInstanceWithArguments("com.sun.star.configuration.ConfigurationUpdateAccess", (prop,))
             locale = config_access.getByName('ooLocale')
 
             loc = locale[0:2]
             language = loc
         except:
             log(inspect.stack,tb())
             language = 'en'
         
         self.language = language
         
         import lang_en 
         
         try:
             exec('import lang_' + language)
         except Exception as e:
             pass
             #log(inspect.stack,tb())    
 
         if 'lang_' + language in vars():
             lang = vars()['lang_' + language]
         else:
             lang = lang_en
         
         return lang
     except Exception as e:
         log(inspect.stack,tb())    
Example #18
0
def print_error(err, name):
    from IPython.core.display import display, Markdown
    traceback.tb = ultratb.VerboseTB(tb_offset=1)
    traceback.tb()

    help_txt = get_help(err)
    if helpful and help_txt:
        display(
            Markdown(
                "<div class='alert alert-block alert-info'><img class='pull-left obligator' src='obligator-64.png' alt='�' /><h2 style='color:blue'>Maybe this can help? </h2></div>"
            ))
        print(help_txt)
        b = make_feedback_button(err, name)
        if b != None:
            display(b)
        return help_txt
    else:
        return None
Example #19
0
    def erstelle_fussnote(self, fn):
        if self.mb.debug: log(inspect.stack)

        try:
            text = fn.Text

            paras = []
            fussnote = []

            enum = text.createEnumeration()

            while enum.hasMoreElements():
                paras.append(enum.nextElement())

            for par in paras:

                enum2 = par.createEnumeration()
                portions = []

                while enum2.hasMoreElements():
                    portions.append(enum2.nextElement())

                # auf leeren Paragraph testen
                if len(portions) == 1:
                    if portions[0].String == '':
                        fussnote.append(u'<br>')

                for portion in portions:
                    open = 0

                    # kursiv
                    if portion.CharPosture.value == 'ITALIC':
                        fussnote.append(u'<span style="font-style: italic;">')
                        open += 1

                    # fett
                    if portion.CharWeight == 150:
                        fussnote.append(u'<span style="font-weight: bold;">')
                        open += 1

                    try:

                        if portion.String != '':
                            fussnote.append(portion.String)
                    except:
                        #print("FEHLER: ",portion.String)
                        pass
                    fussnote.append(u'</span>' * open)

                if par != paras[-1]:
                    fussnote.append(self.leerzeile)

            return u''.join(fussnote)

        except:
            log(inspect.stack, tb())
Example #20
0
    def speicher(self, inhalt, mode, pfad):
        if self.mb.debug: log(inspect.stack)

        try:
            if not os.path.exists(os.path.dirname(pfad)):
                os.makedirs(os.path.dirname(pfad))

            with codecs_open(pfad, mode, "utf-8") as file:
                file.write(inhalt)
        except:
            log(inspect.stack, tb())
Example #21
0
 def speicher(self,inhalt,mode,pfad):
     if self.mb.debug: log(inspect.stack)
     
     try:
         if not os.path.exists(os.path.dirname(pfad)):
             os.makedirs(os.path.dirname(pfad))            
             
         with codecs_open( pfad, mode,"utf-8") as file:
             file.write(inhalt)
     except:
         log(inspect.stack,tb())
Example #22
0
 def createControl(self,ctx,type,x,y,width,height,names,values):
     try:
         smgr = ctx.getServiceManager()
         ctrl = smgr.createInstanceWithContext("com.sun.star.awt.UnoControl%s" % type,ctx)
         ctrl_model = smgr.createInstanceWithContext("com.sun.star.awt.UnoControl%sModel" % type,ctx)
         ctrl_model.setPropertyValues(names,values)
         ctrl.setModel(ctrl_model)
         ctrl.setPosSize(x,y,width,height,15)
         return (ctrl, ctrl_model)
     except:
         log(inspect.stack,tb())
Example #23
0
 def helfer(self):
     try:
         pass
     except Exception as e:
         print(tb())
         return e
     
     
     
     
     
          
Example #24
0
 def setze_hoehe_und_scrollbalken(self,y,y_desk,fenster,fenster_cont,control_innen):  
     if self.mb.debug: log(inspect.stack)
     
     if y < y_desk-20:
         fenster.setPosSize(0,0,0,y + 20,8) 
         fenster_cont.setPosSize(0,0,0,y + 20,8) 
     else:
         try:
             PosSize = 0,0,0,y_desk 
             control = self.mb.erzeuge_Scrollbar(fenster_cont,PosSize,control_innen)
         except:
             log(inspect.stack,tb())
Example #25
0
    def erstelle_fussnote(self,fn):
        if self.mb.debug: log(inspect.stack)
        
        try:
            text = fn.Text
            
            paras = []
            fussnote = []
            
            enum = text.createEnumeration()
            
            while enum.hasMoreElements():
                paras.append(enum.nextElement())
            

            for par in paras:
                
                enum2 = par.createEnumeration()
                portions = []
                
                while enum2.hasMoreElements():
                    portions.append(enum2.nextElement())
                
                # auf leeren Paragraph testen
                if len(portions) == 1:
                    if portions[0].String == '':
                        fussnote.append('\\bigskip')
                

                for portion in portions:
                    open = 0
                    
                    # kursiv
                    if portion.CharPosture.value == 'ITALIC':
                        fussnote.append('\\emph{')
                        open += 1
                    
                    # fett
                    if portion.CharWeight == 150:
                        fussnote.append('\\textbf{')
                        open += 1

                    fussnote.append(portion.String)                    
                    fussnote.append('}' * open)
                
                if par != paras[-1]:    
                    fussnote.append(self.leerzeile)
                
            return fussnote
            
        except:
            log(inspect.stack,tb())
Example #26
0
 def createControl(self, ctx, type, x, y, width, height, names, values):
     try:
         smgr = ctx.getServiceManager()
         ctrl = smgr.createInstanceWithContext(
             "com.sun.star.awt.UnoControl%s" % type, ctx)
         ctrl_model = smgr.createInstanceWithContext(
             "com.sun.star.awt.UnoControl%sModel" % type, ctx)
         ctrl_model.setPropertyValues(names, values)
         ctrl.setModel(ctrl_model)
         ctrl.setPosSize(x, y, width, height, 15)
         return (ctrl, ctrl_model)
     except:
         log(inspect.stack, tb())
Example #27
0
 def greek2latex(self,dict_eintraege,path,quelldatei,pfad_translation):
     if self.mb.debug: log(inspect.stack)
     
     self.dir_path = path
     text_translation = self.oeffne_text(pfad_translation)
     
     try:
         self.erstelle_html_uebersetzung(text_translation)
         self.ooo.close(False)
         self.erstelle_quelltext_html(quelldatei)
         self.erstelle_nav(dict_eintraege)
         self.erstelle_index_html()
     except:
         log(inspect.stack,tb())
Example #28
0
    def setze_hoehe_und_scrollbalken(self, y, y_desk, fenster, fenster_cont,
                                     control_innen):
        if self.mb.debug: log(inspect.stack)

        if y < y_desk - 20:
            fenster.setPosSize(0, 0, 0, y + 20, 8)
            fenster_cont.setPosSize(0, 0, 0, y + 20, 8)
        else:
            try:
                PosSize = 0, 0, 0, y_desk
                control = self.mb.erzeuge_Scrollbar(fenster_cont, PosSize,
                                                    control_innen)
            except:
                log(inspect.stack, tb())
Example #29
0
    def greek2latex(self, dict_eintraege, path, quelldatei, pfad_translation):
        if self.mb.debug: log(inspect.stack)

        self.dir_path = path
        text_translation = self.oeffne_text(pfad_translation)

        try:
            self.erstelle_html_uebersetzung(text_translation)
            self.ooo.close(False)
            self.erstelle_quelltext_html(quelldatei)
            self.erstelle_nav(dict_eintraege)
            self.erstelle_index_html()
        except:
            log(inspect.stack, tb())
Example #30
0
 def createInstanceWithArgumentsAndContext(self, args, ctx):
     if self.debug: log(inspect.stack)
     
     try:
         self.pypath_erweitern()
         
         posSize = 0,0,0,0
         win,cont = erzeuge_Dialog_Container(posSize)
         self.start_main(cont,ctx,path_to_extension,win)
         
         return win
     
     except Exception as e:
         print(str(e))
         log(inspect.stack,tb())
Example #31
0
    def createInstanceWithArgumentsAndContext(self, args, ctx):
        if self.debug: log(inspect.stack)

        try:
            self.pypath_erweitern()

            posSize = 0, 0, 0, 0
            win, cont = erzeuge_Dialog_Container(posSize)
            self.start_main(cont, ctx, path_to_extension, win)

            return win

        except Exception as e:
            print(str(e))
            log(inspect.stack, tb())
Example #32
0
    def windowOpened(self,ev):
        ctx = uno.getComponentContext()
        smgr = ctx.ServiceManager
        toolkit = smgr.createInstanceWithContext("com.sun.star.awt.Toolkit", ctx)    
        desktop = smgr.createInstanceWithContext( "com.sun.star.frame.Desktop",ctx)
        try:

            # um den Listener nur einmal anzusprechen
            if g.geladen == 'neu':
                g.geladen = 'alt'    
                    
                URL="private:factory/swriter"
                self.frame.loadComponentFromURL(URL,'_top',0,())   
        
        except Exception as e:
            log(inspect.stack,tb())
Example #33
0
    def schreibe_logfile_kopfzeile(self):
        try:

            path = join(self.location_debug_file,'organon_log.txt')
            
            text = '################\r\n' \
                   '\r\n' \
                    'Organon opened\r\n' \
                    '\r\n'\
                    '################\r\n'
                    
            with open(path , "a") as file:
                file.write(text)
                
        except:
            print(tb())
Example #34
0
    def schreibe_logfile_kopfzeile(self):
        try:

            path = join(self.location_debug_file, 'organon_log.txt')

            text = '################\r\n' \
                   '\r\n' \
                    'Organon opened\r\n' \
                    '\r\n'\
                    '################\r\n'

            with open(path, "a") as file:
                file.write(text)

        except:
            print(tb())
Example #35
0
    def actionPerformed(self,ev):
        if self.mb.debug: log(inspect.stack)

        try:
            if ev.ActionCommand == 'text1':
                self.filepicker('text1')
            elif ev.ActionCommand == 'text2':
                self.filepicker('text2')
                
                    
            elif ev.ActionCommand == 'speicherordner':
                self.folderpicker()
                
            elif ev.ActionCommand == 'search':
                args = self.suchbefehle_erstellen()

                (pfad1,pfad2,
                speicherordner,
                ) = args
                
                
                if self.pruefe_pfad(pfad1,'Source'):           
                    text1,name1 = self.oeffne_text(pfad1)
                else:
                    return
                
                if self.pruefe_pfad(pfad2,'Translation'):           
                    pass
                else:
                    return

                    
                                                            
                if not os.path.exists(speicherordner):
                    ntext = LANG.KEIN_SPEICHERORT
                    self.nachricht(ntext)
                    return
                
                args = text1,pfad1,speicherordner,pfad2
                s = Liste_Erstellen(args,self.mb) 
                s.run()


            
                
        except:
            log(inspect.stack,tb())
Example #36
0
 def format_argues(self,argues):
     try:
         a = []
         
         for arg in argues:
             if arg in ('self','ev'):
                 continue
             inhalt = str(argues[arg])
             if 'pyuno object' in inhalt:
                 inhalt = 'pyuno object'
             a.append((arg,inhalt))
         
         a = str(a)[1:-1]
         return a
     except:
         print(tb())
         return 'Fehler'
Example #37
0
    def format_argues(self, argues):
        try:
            a = []

            for arg in argues:
                if arg in ('self', 'ev'):
                    continue
                inhalt = str(argues[arg])
                if 'pyuno object' in inhalt:
                    inhalt = 'pyuno object'
                a.append((arg, inhalt))

            a = str(a)[1:-1]
            return a
        except:
            print(tb())
            return 'Fehler'
Example #38
0
            def sl_erzeugen():

                def sleeper(fkt,fkt2,dict_sb,orga_sb): 
                    
                    import time
                    
                    while orga_sb == None:
                        time.sleep(.1) 
                        orga_sb,seitenleiste = fkt()
                        
                    fkt2(orga_sb,dict_sb)
            
                def resume(orga_sb,dict_sb): 
                    
                    orga_sb.setState(True)  
                    
                    import time 
                    time.sleep(.2) 
                    dict_sb['setze_sidebar_design']()
                    dict_sb['sb_closed'] = False
                    dict_sb['orga_sb'] = orga_sb
                    
                    
                try:   
                    dict_sb = self.ms.dict_sb
                    orga_sb,seitenleiste = get_seitenleiste()
                    
                    if seitenleiste and not orga_sb:
                        # LO
                        dict_sb['seitenleiste'] = seitenleiste
                        
                        from threading import Thread
                        t = Thread(target=sleeper,args=(get_seitenleiste,resume,dict_sb,orga_sb))
                        t.start() 
                        
                    elif seitenleiste and orga_sb:
                        # OO
                        orga_sb.setState(True)   
                        dict_sb['setze_sidebar_design']()
                        dict_sb['sb_closed'] = False
                        dict_sb['seitenleiste'] = seitenleiste
                        dict_sb['orga_sb'] = orga_sb

                except:
                    log(inspect.stack,tb())
Example #39
0
            def sl_erzeugen():
                def sleeper(fkt, fkt2, dict_sb, orga_sb):

                    import time

                    while orga_sb == None:
                        time.sleep(.1)
                        orga_sb, seitenleiste = fkt()

                    fkt2(orga_sb, dict_sb)

                def resume(orga_sb, dict_sb):

                    orga_sb.setState(True)

                    import time
                    time.sleep(.2)
                    dict_sb['setze_sidebar_design']()
                    dict_sb['sb_closed'] = False
                    dict_sb['orga_sb'] = orga_sb

                try:
                    dict_sb = self.ms.dict_sb
                    orga_sb, seitenleiste = get_seitenleiste()

                    if seitenleiste and not orga_sb:
                        # LO
                        dict_sb['seitenleiste'] = seitenleiste

                        from threading import Thread
                        t = Thread(target=sleeper,
                                   args=(get_seitenleiste, resume, dict_sb,
                                         orga_sb))
                        t.start()

                    elif seitenleiste and orga_sb:
                        # OO
                        orga_sb.setState(True)
                        dict_sb['setze_sidebar_design']()
                        dict_sb['sb_closed'] = False
                        dict_sb['seitenleiste'] = seitenleiste
                        dict_sb['orga_sb'] = orga_sb

                except:
                    log(inspect.stack, tb())
Example #40
0
    def merge(self, a, b, path=None):
        '''
        This method is an adjusted version from:
        http://stackoverflow.com/questions/7204805/python-dictionaries-of-dictionaries-merge
        merges b into a
        '''
        if path is None: path = []

        try:
            for key in b:
                if key in a:
                    if key == 'zuletzt_geladene_Projekte':
                        a[key] = b[key]
                    elif isinstance(a[key], dict) and isinstance(b[key], dict):
                        if key in self.designs:
                            self._treat_design(a, b, key, path)
                        elif key == 'designs':
                            self.designs, self.fehlende = self._update_designs(
                                a, b)
                            self.merge(a[key], b[key], path + [str(key)])
                        else:
                            self.merge(a[key], b[key], path + [str(key)])
                    elif a[key] == b[key]:
                        pass  # same leaf value
                    elif isinstance(a[key], list) and isinstance(b[key], list):
                        for idx, val in enumerate(b[key]):
                            a[key][idx] = self.merge(
                                a[key][idx], b[key][idx],
                                path + [str(key), str(idx)])
                    else:
                        # ueberschreiben der defaults mit alten Werten
                        a[key] = b[key]
                else:
                    # hier werden nur in b vorhandene keys gesetzt
                    # daher werden auch alte designs mit eigenem Namen ignoriert

                    # nur vorhandene shortcuts werden in den dict eingetragen. Daher
                    # existiert in a kein key von b und muss hier gesetzt werden.
                    if 'shortcuts' in path:
                        a[key] = b[key]

            return a
        except Exception as e:
            print(tb())
            return None
Example #41
0
    def pypath_erweitern(self):
        if self.debug: log(inspect.stack)

        try:
            #ctx = uno.getComponentContext()
            #smgr = ctx.ServiceManager
            #desktop = smgr.createInstanceWithContext( "com.sun.star.frame.Desktop",ctx)
            #frame = desktop.Frames.getByIndex(0)

            path_to_current = __file__.decode("utf-8")
            pyPath = path_to_current.split('factory.py')[0]
            sys.path.append(pyPath)

            pyPath_lang = pyPath.replace('py', 'languages')
            sys.path.append(pyPath_lang)

        except Exception as e:
            log(inspect.stack, tb())
Example #42
0
 def pypath_erweitern(self):
     if self.debug: log(inspect.stack)
     
     try:
         #ctx = uno.getComponentContext()
         #smgr = ctx.ServiceManager
         #desktop = smgr.createInstanceWithContext( "com.sun.star.frame.Desktop",ctx)
         #frame = desktop.Frames.getByIndex(0)
         
         path_to_current = __file__.decode("utf-8")
         pyPath = path_to_current.split('factory.py')[0]
         sys.path.append(pyPath)
         
         pyPath_lang = pyPath.replace('py','languages')
         sys.path.append(pyPath_lang)
         
     except Exception as e:
         log(inspect.stack,tb())
Example #43
0
    def mousePressed(self, ev):
        if debug: log(inspect.stack)

        try:
            projekt_pfad = ev.Source.Model.HelpText

            # Das Editfeld ueberdeckt kurzzeitig das Startmenu fuer eine bessere Anzeige
            control, model = self.menu.createControl(self.menu.ctx, "Edit", 0,
                                                     0, 1500, 1500, (), ())
            model.BackgroundColor = KONST.FARBE_HF_HINTERGRUND
            self.menu.cont.addControl('wer', control)

            self.menu.erzeuge_Menu()
            self.menu.Menu_Bar.class_Projekt.lade_Projekt(False, projekt_pfad)

            self.menu.cont.dispose()
        except:
            log(inspect.stack, tb())
Example #44
0
    def mousePressed(self, ev):
        if debug: log(inspect.stack)
        
        try:
            projekt_pfad = ev.Source.Model.HelpText
            
            # Das Editfeld ueberdeckt kurzzeitig das Startmenu fuer eine bessere Anzeige
            control, model = self.menu.createControl(self.menu.ctx,"Edit",0,0,1500,1500,(),() )  
            model.BackgroundColor = KONST.FARBE_HF_HINTERGRUND
            self.menu.cont.addControl('wer',control)
            

            self.menu.erzeuge_Menu()
            self.menu.Menu_Bar.class_Projekt.lade_Projekt(False,projekt_pfad)
            
            self.menu.cont.dispose()
        except:
            log(inspect.stack,tb())
Example #45
0
def start_main(window,ctx,tabs,path_to_extension,win,factory):

    try:
        ctx = uno.getComponentContext()
        smgr = ctx.ServiceManager
        desktop = smgr.createInstanceWithContext( "com.sun.star.frame.Desktop",ctx)
        frame = desktop.Frames.getByIndex(0)
        
        if desktop.ActiveFrame != None:
            frame = desktop.ActiveFrame
        
        if settings_orga['organon_farben']['design_office']:
            if 'OpenOffice' in frame.Title:
                # in OO muss die Componente neu gestartet werden, damit das
                # Lineal eingefaerbt wird.    
                listener = Top_Window_Listener(frame)
                frame.ContainerWindow.addTopWindowListener(listener)    

        
        dialog = window
        debug = settings_orga['log_config']['output_console']

        import menu_start
        
        args = (pd,
                dialog,
                ctx,
                tabs,
                path_to_extension,
                win,
                dict_sb,
                debug,
                factory,
                log,
                class_Log,
                KONST,
                settings_orga)
        
        Menu_Start = menu_start.Menu_Start(args)
        Menu_Start.erzeuge_Startmenu()

    except Exception as e:
        print(e)
        log(inspect.stack,tb())
Example #46
0
    def wurde_als_template_geoeffnet(self):
        if debug: log(inspect.stack)
        try:
            enum = self.desktop.Components.createEnumeration()
            comps = []

            while enum.hasMoreElements():
                comps.append(enum.nextElement())

            # Wenn ein neues Dokument geoeffnet wird, gibt es bei der Initialisierung
            # noch kein Fenster, aber die Komponente wird schon aufgefuehrt.
            doc = comps[0]

            # Pruefen, ob doc von Organon erzeugt wurde
            ok = False
            for a in doc.Args:
                if a.Name == 'DocumentTitle':
                    if a.Value.split(';')[0] == 'opened by Organon':
                        ok = True
                        projekt_pfad = a.Value.split(';')[1]
                        break

            if not ok:
                return False

            self.cont.dispose()
            self.erzeuge_Menu()

            prop2 = uno.createUnoStruct("com.sun.star.beans.PropertyValue")
            prop2.Name = 'Overwrite'
            prop2.Value = True

            doc.storeAsURL(projekt_pfad, (prop2, ))

            sys_pfad = uno.fileUrlToSystemPath(projekt_pfad)
            orga_name = os.path.basename(sys_pfad).split('.')[0] + '.organon'
            sys_pfad1 = sys_pfad.split(orga_name)[0]
            pfad = os.path.join(sys_pfad1, orga_name, orga_name)

            self.Menu_Bar.class_Projekt.lade_Projekt(False, pfad)

        except:
            log(inspect.stack, tb())
Example #47
0
 def speicher(self,inhalt,mode,pfad = None):
     if self.mb.debug: log(inspect.stack)
     
     try:
     
         if pfad == None:
             pfad = os.path.join(self.path,self.dateiname+'.tex')
         
         if not os.path.exists(os.path.dirname(pfad)):
             os.makedirs(os.path.dirname(pfad))
             
         
         content = ''.join(inhalt)
         
             
         with codecs_open( pfad, mode,"utf-8") as file:
             file.write(content)
     except:
         log(inspect.stack,tb())
Example #48
0
 def merge(self,a, b, path=None):
     '''
     This method is an adjusted version from:
     http://stackoverflow.com/questions/7204805/python-dictionaries-of-dictionaries-merge
     merges b into a
     '''
     if path is None: path = []
     
     try:
         for key in b:
             if key in a:
                 if key == 'zuletzt_geladene_Projekte':
                     a[key] = b[key]
                 elif isinstance(a[key], dict) and isinstance(b[key], dict):
                     if key in self.designs:
                         self._treat_design(a, b, key, path)
                     elif key == 'designs':
                         self.designs,self.fehlende = self._update_designs(a,b)
                         self.merge(a[key], b[key], path + [str(key)])
                     else:
                         self.merge(a[key], b[key], path + [str(key)])
                 elif a[key] == b[key]:
                     pass # same leaf value
                 elif isinstance(a[key], list) and isinstance(b[key], list):
                     for idx, val in enumerate(b[key]):
                         a[key][idx] = self.merge(a[key][idx], b[key][idx], path + [str(key), str(idx)])
                 else:
                     # ueberschreiben der defaults mit alten Werten
                     a[key] = b[key]
             else:
                 # hier werden nur in b vorhandene keys gesetzt
                 # daher werden auch alte designs mit eigenem Namen ignoriert
                 
                 # nur vorhandene shortcuts werden in den dict eingetragen. Daher
                 # existiert in a kein key von b und muss hier gesetzt werden.
                 if 'shortcuts' in path:
                     a[key] = b[key]
                 
         
         return a
     except Exception as e:
         print(tb())
         return None
Example #49
0
    def wurde_als_template_geoeffnet(self):
        if debug: log(inspect.stack)
        try:
            enum = self.desktop.Components.createEnumeration()
            comps = []

            while enum.hasMoreElements():
                comps.append(enum.nextElement())
                
            # Wenn ein neues Dokument geoeffnet wird, gibt es bei der Initialisierung
            # noch kein Fenster, aber die Komponente wird schon aufgefuehrt.
            doc = comps[0]
            
            # Pruefen, ob doc von Organon erzeugt wurde
            ok = False
            for a in doc.Args:
                if a.Name == 'DocumentTitle':
                    if a.Value.split(';')[0] == 'opened by Organon':
                        ok = True
                        projekt_pfad = a.Value.split(';')[1]
                        break
            
            if not ok:
                return False        
            
            self.cont.dispose()
            self.erzeuge_Menu()
            
            prop2 = uno.createUnoStruct("com.sun.star.beans.PropertyValue")
            prop2.Name = 'Overwrite'
            prop2.Value = True
            
            doc.storeAsURL(projekt_pfad,(prop2,)) 
            
            sys_pfad = uno.fileUrlToSystemPath(projekt_pfad)
            orga_name = os.path.basename(sys_pfad).split('.')[0] + '.organon'
            sys_pfad1 = sys_pfad.split(orga_name)[0]
            pfad = os.path.join(sys_pfad1,orga_name,orga_name)
            
            self.Menu_Bar.class_Projekt.lade_Projekt(False,pfad)
          
        except:
            log(inspect.stack,tb())
Example #50
0
    def lade_Komponente_neu(self):
        if debug: log(inspect.stack)
        
        ctx = uno.getComponentContext()
        smgr = ctx.ServiceManager
        desktop = smgr.createInstanceWithContext( "com.sun.star.frame.Desktop",ctx)

        try:
            from threading import Thread

            def sleeper(desktop1):   
                URL="private:factory/swriter"
                desktop1.ActiveFrame.loadComponentFromURL(URL,'_top','',())  

            t = Thread(target=sleeper,args=(desktop,))
            t.start()
                
        except Exception as e:
            log(inspect.stack,tb())
Example #51
0
    def verbotene_buchstaben_auswechseln(self,content):    
        if self.mb.debug: log(inspect.stack)
         
        try:
            ausgewechselte = []
            content = ''.join(content)
             
            for b in verbotene_Buchstaben:
                anz = content.count(b)
                 
                if anz > 0:
                     
                      
                    if verbotene_Buchstaben[b] == '':
                        tausch = 'XXX %s XXX'%anz
                    else:
                        tausch = verbotene_Buchstaben[b]
                    content = content.replace(b,tausch)
                     
                    mitteil = b , str(anz) , b.encode("unicode_escape"),tausch
                    ausgewechselte.append(mitteil) 
                 
                 
            pfad_a = os.path.join(self.path,'exchanged_letters.txt')
             
            a2 = 10
            b = 15
            c = 20
             
            with codecs_open( pfad_a, 'w',"utf-8") as file:
                    top = 'Symbol'.ljust(a2) + u'Amount'.ljust(b) + 'Unicode Number'.ljust(c)+ 'exchanged with:' + '\r\n'
                    file.write(top)
                     
            for aus in ausgewechselte:
                                 
                symbol = aus[0].ljust(a2) + aus[1].ljust(b) + aus[2].ljust(c) + aus[3].ljust(c) + '\r\n'
                with codecs_open( pfad_a, 'a',"utf-8") as file:
                    file.write(symbol)

            return content
        except:
            log(inspect.stack,tb())
Example #52
0
    def actionPerformed(self, ev):
        if self.mb.debug: log(inspect.stack)

        try:
            if ev.ActionCommand == 'text1':
                self.filepicker('text1')
            elif ev.ActionCommand == 'text2':
                self.filepicker('text2')

            elif ev.ActionCommand == 'speicherordner':
                self.folderpicker()

            elif ev.ActionCommand == 'search':
                args = self.suchbefehle_erstellen()

                (
                    pfad1,
                    pfad2,
                    speicherordner,
                ) = args

                if self.pruefe_pfad(pfad1, 'Source'):
                    text1, name1 = self.oeffne_text(pfad1)
                else:
                    return

                if self.pruefe_pfad(pfad2, 'Translation'):
                    pass
                else:
                    return

                if not os.path.exists(speicherordner):
                    ntext = LANG.KEIN_SPEICHERORT
                    Popup(self.mb, 'warning').text = ntext
                    return

                args = text1, pfad1, speicherordner, pfad2
                s = Liste_Erstellen(args, self.mb)
                s.run()

        except:
            log(inspect.stack, tb())
Example #53
0
    def lade_Komponente_neu(self):
        if debug: log(inspect.stack)

        ctx = uno.getComponentContext()
        smgr = ctx.ServiceManager
        desktop = smgr.createInstanceWithContext("com.sun.star.frame.Desktop",
                                                 ctx)

        try:
            from threading import Thread

            def sleeper(desktop1):
                URL = "private:factory/swriter"
                desktop1.ActiveFrame.loadComponentFromURL(URL, '_top', '', ())

            t = Thread(target=sleeper, args=(desktop, ))
            t.start()

        except Exception as e:
            log(inspect.stack, tb())
Example #54
0
 def format_argues(self,argues):
     try:
         a = []
         
         for arg in argues:
             if arg in ('self','ev'):
                 continue
             try:
                 inhalt = str(argues[arg])
             except Exception as e:
                 inhalt = 'Fehler: ' + str(e) + '\r\n'
                 
             if 'pyuno object' in inhalt:
                 inhalt = 'pyuno object'
             a.append((arg,inhalt))
         
         a = a[1:-1]
         return a
     except:
         print(tb())
         return 'Fehler'
Example #55
0
 def suche(self):  
     # Fuer eine Fehlersuche, die bei jedem Methodenaufruf gestartet wird
     
     try:
         ctx = uno.getComponentContext()  
         smgr = ctx.ServiceManager
         desktop = smgr.createInstanceWithContext( "com.sun.star.frame.Desktop",ctx)
         doc = desktop.getCurrentComponent()
         
         secs = doc.TextSections
         el_names = secs.ElementNames
         
         for n in el_names:
             if 'Bereich' in n:
                 pd()
         
     except Exception as e:
         print(tb())
         return e
     
     return None
Example #56
0
    def actionPerformed(self, ev):
        if debug: log(inspect.stack)

        try:
            if ev.ActionCommand == 'neues_projekt':
                self.menu.cont.dispose()
                self.menu.erzeuge_Menu()
                self.menu.Menu_Bar.class_Projekt.dialog_neues_projekt_anlegen()

            elif ev.ActionCommand == 'projekt_laden':
                self.menu.cont.dispose()
                self.menu.erzeuge_Menu()
                self.menu.Menu_Bar.class_Projekt.lade_Projekt()

            elif ev.ActionCommand == 'anleitung_laden':
                pfad = self.get_Org_description_path()
                self.menu.cont.dispose()
                self.menu.erzeuge_Menu()
                self.menu.Menu_Bar.class_Projekt.lade_Projekt(False, pfad)
                self.menu.Menu_Bar.anleitung_geladen = True
        except:
            log(inspect.stack, tb())
Example #57
0
def set_konst():

    try:
        sett = settings_orga

        # ORGANON DESIGN
        KONST.FARBE_HF_HINTERGRUND = sett['organon_farben']['hf_hintergrund']
        KONST.FARBE_MENU_HINTERGRUND = sett['organon_farben'][
            'menu_hintergrund']

        KONST.FARBE_MENU_SCHRIFT = sett['organon_farben']['menu_schrift']
        KONST.FARBE_SCHRIFT_ORDNER = sett['organon_farben']['schrift_ordner']
        KONST.FARBE_SCHRIFT_DATEI = sett['organon_farben']['schrift_datei']

        KONST.FARBE_AUSGEWAEHLTE_ZEILE = sett['organon_farben'][
            'ausgewaehlte_zeile']
        KONST.FARBE_EDITIERTE_ZEILE = sett['organon_farben']['editierte_zeile']
        KONST.FARBE_GEZOGENE_ZEILE = sett['organon_farben']['gezogene_zeile']

        KONST.FARBE_GLIEDERUNG = sett['organon_farben']['gliederung']

        KONST.FARBE_TRENNER_HINTERGRUND = sett['organon_farben'][
            'trenner_farbe_hintergrund']
        KONST.FARBE_TRENNER_SCHRIFT = sett['organon_farben'][
            'trenner_farbe_schrift']

        KONST.FARBE_TABS_HINTERGRUND = sett['organon_farben'][
            'tabs_hintergrund']
        KONST.FARBE_TABS_SCHRIFT = sett['organon_farben']['tabs_schrift']
        KONST.FARBE_TABS_SEL_HINTERGRUND = sett['organon_farben'][
            'tabs_sel_hintergrund']
        KONST.FARBE_TABS_SEL_SCHRIFT = sett['organon_farben'][
            'tabs_sel_schrift']
        KONST.FARBE_TABS_TRENNER = sett['organon_farben']['tabs_trenner']
        KONST.FARBE_LINIEN = sett['organon_farben']['linien']
        KONST.FARBE_DEAKTIVIERT = sett['organon_farben']['deaktiviert']

    except Exception as e:
        log(inspect.stack, tb())
Example #58
0
def set_app_style():
    if debug: log(inspect.stack)

    try:
        ctx = uno.getComponentContext()
        smgr = ctx.ServiceManager
        toolkit = smgr.createInstanceWithContext("com.sun.star.awt.Toolkit",
                                                 ctx)
        desktop = smgr.createInstanceWithContext("com.sun.star.frame.Desktop",
                                                 ctx)
        frame = desktop.Frames.getByIndex(0)
        comp = frame.ComponentWindow

        rot = 16275544

        hf = KONST.FARBE_HF_HINTERGRUND
        menu = KONST.FARBE_MENU_HINTERGRUND
        schrift = KONST.FARBE_SCHRIFT_DATEI
        menu_schrift = KONST.FARBE_MENU_SCHRIFT
        selected = KONST.FARBE_AUSGEWAEHLTE_ZEILE
        ordner = KONST.FARBE_SCHRIFT_ORDNER

        sett = settings_orga['organon_farben']['office']

        def get_farbe(value):
            if isinstance(value, int):
                return value
            else:
                return settings_orga['organon_farben'][value]

        # Kann button_schrift evt. herausgenommen werden?
        button_schrift = get_farbe(sett['button_schrift'])

        statusleiste_schrift = get_farbe(sett['statusleiste_schrift'])
        statusleiste_hintergrund = get_farbe(sett['statusleiste_hintergrund'])

        felder_hintergrund = get_farbe(sett['felder_hintergrund'])
        felder_schrift = get_farbe(sett['felder_schrift'])

        # Sidebar
        sidebar_eigene_fenster_hintergrund = get_farbe(
            sett['sidebar']['eigene_fenster_hintergrund'])
        sidebar_selected_hintergrund = get_farbe(
            sett['sidebar']['selected_hintergrund'])
        sidebar_selected_schrift = get_farbe(
            sett['sidebar']['selected_schrift'])
        sidebar_schrift = get_farbe(sett['sidebar']['schrift'])

        trenner_licht = get_farbe(sett['trenner_licht'])
        trenner_schatten = get_farbe(sett['trenner_schatten'])

        # Lineal
        OO_anfasser_trenner = get_farbe(sett['OO_anfasser_trenner'])
        OO_lineal_tab_zwischenraum = get_farbe(
            sett['OO_lineal_tab_zwischenraum'])
        OO_schrift_lineal_sb_liste = get_farbe(
            sett['OO_schrift_lineal_sb_liste'])

        LO_anfasser_text = get_farbe(sett['LO_anfasser_text'])
        LO_tabsumrandung = get_farbe(sett['LO_tabsumrandung'])
        LO_lineal_bg_innen = get_farbe(sett['LO_lineal_bg_innen'])
        LO_tab_fuellung = get_farbe(sett['LO_tab_fuellung'])
        LO_tab_trenner = get_farbe(sett['LO_tab_trenner'])

        LO = ('LibreOffice' in frame.Title)

        STYLES = {
            # Allgemein
            'ButtonRolloverTextColor':
            button_schrift,  # button rollover
            'FieldColor':
            felder_hintergrund,  # Hintergrund Eingabefelder
            'FieldTextColor':
            felder_schrift,  # Schrift Eingabefelder
            'RadioCheckTextColor':
            statusleiste_schrift,  #k.A.

            # Trenner
            'LightColor':
            trenner_licht,  # Fenster Trenner
            'ShadowColor':
            trenner_schatten,  # Fenster Trenner

            # OO Lineal + Trenner
            'DarkShadowColor': (
                LO_anfasser_text if LO  # LO Anfasser + Lineal Text
                else OO_anfasser_trenner
            ),  # OO Anfasser +  Document Fenster Trenner 
            'WindowTextColor': (
                schrift if LO  # Felder (Navi) Schriftfarbe Sidebar 
                else OO_schrift_lineal_sb_liste
            ),  # Felder (Navi) Schriftfarbe Sidebar + OO Lineal Schriftfarbe   

            # Sidebar
            'LabelTextColor':
            sidebar_schrift,  # Schriftfarbe Sidebar + allg Dialog
            'DialogColor':
            sidebar_eigene_fenster_hintergrund,  # Hintergrund Sidebar Dialog
            'FaceColor': (
                hf if LO  # LO Formatvorlagen Treeview Verbinder
                else hf),  # OO Hintergrund Organon + Lineal + Dropdowns  
            'WindowColor': (
                hf if LO  # LO Dialog Hintergrund
                else OO_lineal_tab_zwischenraum),  # OO Lineal Tabzwischenraum
            'HighlightColor':
            sidebar_selected_hintergrund,  # Sidebar selected Hintergrund
            'HighlightTextColor':
            sidebar_selected_schrift,  # Sidebar selected Schrift

            #                     'ActiveBorderColor' : rot,#k.A.
            #                     'ActiveColor' : rot,#k.A.
            #                     'ActiveTabColor' : rot,#k.A.
            #                     'ActiveTextColor' : rot,#k.A.
            #                     'ButtonTextColor' : rot,# button Textfarbe / LO Statuszeile Textfarbe
            #                     'CheckedColor' : rot,#k.A.
            #                     'DeactiveColor' : deaktiviert,
            #                     'DeactiveBorderColor' : deaktiviert,#k.A.
            #                     'DeactiveTextColor' : deaktiviert,#k.A.
            #                     'DialogTextColor' : rot,#k.A.
            #                     'DisableColor' : rot,
            #                     'FieldRolloverTextColor' : rot,#k.A.
            #                     'GroupTextColor' : rot,#k.A.
            #                     'HelpColor' : rot,#k.A.
            #                     'HelpTextColor' : rot,#k.A.
            #                     'InactiveTabColor' : rot,#k.A.
            #                     'InfoTextColor' : rot,#k.A.
            #                     'MenuBarColor' : rot,#k.A.
            #                     'MenuBarTextColor' : rot,#k.A.
            #                     'MenuBorderColor' : rot,#k.A.
            #                     'MenuColor' : rot,#k.A.
            #                     'MenuHighlightColor' : rot,#k.A.
            #                     'MenuHighlightTextColor' : rot,#k.A.
            #                     'MenuTextColor' : rot,#k.A.
            #                     'MonoColor' : rot, #k.A.
            #                     'WorkspaceColor' : rot, #k.A.
            #erzeugen Fehler:
            #'FaceGradientColor' : 502,
            #'SeparatorColor' : 502,
        }

        def stilaenderung(win, ignore=[]):

            for s in STYLES:
                if s in ignore:
                    pass
                else:
                    try:
                        val = STYLES[s]
                        setattr(win.StyleSettings, s, val)
                    except Exception as e:
                        pass

                win.setBackground(
                    statusleiste_hintergrund)  # Hintergrund Statuszeile
                win.setForeground(statusleiste_schrift)  # Schrift Statuszeile

        top_wins = []

        for i in range(toolkit.TopWindowCount):
            top_wins.append(toolkit.getTopWindow(i))

        # folgende Properties wuerden die Eigenschaften
        # der Office Menubar und aller Buttons setzen
        ignore = [
            'ButtonTextColor', 'LightColor', 'MenuBarTextColor',
            'MenuBorderColor', 'ShadowColor'
        ]

        for t in top_wins:
            stilaenderung(t, ignore)
            # Hier wird in OO auch das Lineal gesetzt
            # Es kann nicht einzeln angesprochen werden

        layoutmgr = frame.LayoutManager
        statusbar = layoutmgr.getElement(
            "private:resource/statusbar/statusbar")
        try:
            stilaenderung(statusbar.RealInterface)
        except:
            pass

        STYLES_LINEAL = {
            'ShadowColor': LO_tabsumrandung,  # Tabsumrandung
            'WindowColor': LO_lineal_bg_innen,  #Lineal: Hintergrund innen
            'WorkspaceColor': LO_tab_fuellung,  # Tabhalter Fuellung
            'DialogColor': LO_tab_trenner,  #Lineal Seitenraender
        }

        for t in comp.Windows:
            try:
                # Bordercolor
                stilaenderung(t)

                try:
                    for j in t.Windows:
                        # Lineal nur in LO
                        for s in STYLES_LINEAL:
                            val = STYLES_LINEAL[s]
                            try:
                                setattr(j.StyleSettings, s, val)
                            except:
                                pass
                        #j.setBackground(rot) # Lineal Leiste Hintergrund in LO
                except Exception as e:
                    pass

            except Exception as e:
                log(inspect.stack, tb())

    except Exception as e:
        log(inspect.stack, tb())
Example #59
0
    def createUIElement(self, url, args):
        cmd = url.split('/')[-1]

        try:
            xParentWindow = None
            xFrame = None
            xUIElement = None

            for arg in args:
                if arg.Name == "Frame":
                    xFrame = arg.Value
                elif arg.Name == "ParentWindow":
                    xParentWindow = arg.Value
                elif arg.Name == "Sidebar":
                    sidebar = arg.Value
                elif arg.Name == "Theme":
                    theme = arg.Value

            xUIElement = XUIPanel(self.ctx, xFrame, xParentWindow, url, theme)

            # getting the real panel window
            # for setting the content
            xUIElement.getRealInterface()
            panelWin = xUIElement.Window

            # panelWin has to be set visible
            panelWin.Visible = True

            conts = dict_sb['controls']

            if cmd not in conts:
                conts.update({cmd: (xUIElement, sidebar, xParentWindow, args)})
                dict_sb.update({'controls': conts})
            else:
                cont = dict_sb['controls'][cmd][0]
                cont.dispose()

            conts.update({cmd: (xUIElement, sidebar, xParentWindow, args)})
            dict_sb.update({'controls': conts})

            if dict_sb['erzeuge_sb_layout'] != None:

                dict_sb['sb_closed'] = False
                if cmd == 'organon_sidebar':
                    dict_sb['sb_closed'] = False
                    dict_sb['erzeuge_sb_layout']()
                else:
                    dict_sb['sb_closed'] = True
                    dict_sb['erzeuge_sb_search_layout']()
            else:
                pos_y = 10
                height = 50
                width = 282
                panelWin = xUIElement.Window

                text = u'No Project loaded'
                prop_names = ('Label', )
                prop_values = (text, )
                control, model = self.createControl(self.ctx, "FixedText", 10,
                                                    pos_y, width, height,
                                                    prop_names, prop_values)
                panelWin.addControl('Synopsis', control)

            return xUIElement

        except Exception as e:
            log(inspect.stack, tb())
Example #60
0
def main():
    # enable TDLib logging
    td_json_client_execute(
        None,
        "{\"@type\":\"setLogVerbosityLevel\", \"new_verbosity_level\":3}")

    client = td_json_client_create()

    #td_json_client_send(client, "{\"@type\":\"setProxy\", \"@extra\":1, \"proxy\":{\"@type\":\"proxySocks5\", \"server\":\"" LOCAL_SOCKS5_HOSTNAME_STR "\", \"port\":" LOCAL_SOCKS5_PORT_STR ", \"username\":\"" LOCAL_SOCKS5_USERNAME_STR "\",  \"password\":\"" LOCAL_SOCKS5_PASSWORD_STR "\"}}")
    #error { code = 400, message = "Failed to parse JSON object as TDLib request: Unknown class "setProxy"" }

    td_json_client_send(
        client,
        "{\"@type\":\"addProxy\", \"@extra\":1, \"server\":\"%s\", \"port\":%s, \"enable\":true, \"type\":{\"@type\":\"proxyTypeSocks5\", \"username\":\"%s\",  \"password\":\"%s\"}}"
        % (
            local_vars.LOCAL_SOCKS5_HOSTNAME_STR,
            local_vars.LOCAL_SOCKS5_PORT_STR,
            local_vars.LOCAL_SOCKS5_USERNAME_STR,
            local_vars.LOCAL_SOCKS5_PASSWORD_STR,
        ))

    test_incorrect_queries = False
    if test_incorrect_queries:
        td_json_client_execute(
            None,
            "{\"@type\":\"setLogVerbosityLevel\", \"new_verbosity_level\":3}")
        td_json_client_execute(None, "")
        td_json_client_execute(None, "test")
        td_json_client_execute(None, "\"test\"")
        td_json_client_execute(None, "{\"@type\":\"test\", \"@extra\":1}")

        td_json_client_send(client, "{\"@type\":\"getFileMimeType\"}")
        td_json_client_send(client,
                            "{\"@type\":\"getFileMimeType\", \"@extra\":1}")
        td_json_client_send(
            client, "{\"@type\":\"getFileMimeType\", \"@extra\":null}")
        td_json_client_send(client, "{\"@type\":\"test\"}")
        td_json_client_send(client, "[]")
        td_json_client_send(client, "{\"@type\":\"test\", \"@extra\":1}")
        td_json_client_send(
            client,
            "{\"@type\":\"sendMessage\", \"chat_id\":true, \"@extra\":1}")
        td_json_client_send(client, "test")

    WAIT_TIMEOUT = 1.0  # seconds
    while True:
        result = td_json_client_receive(client, WAIT_TIMEOUT)
        if result:
            #if (result is UpdateAuthorizationState with authorizationStateClosed) {
            #   break
            #}
            print("result: '%s'" % cooljson(result))
            res_type = result["@type"]
            if res_type == "updateAuthorizationState":
                authorization_state = result["authorization_state"]
                auth_type = authorization_state["@type"]
                if auth_type == "authorizationStateWaitTdlibParameters":
                    sendTdlibParameters(client)
                    continue
                if auth_type == "authorizationStateWaitEncryptionKey":
                    sendDbEncryptionKey(client)
                    continue
                if auth_type == "authorizationStateWaitPhoneNumber":
                    sendBotHashAuth(client)
                    continue
                if auth_type == "authorizationStateReady":
                    print("\n\n\n\n\nLOGGED_IN\n\n\n\n\n")
                    td_json_client_send(
                        client,
                        "{\"@type\":\"sendMessage\", \"chat_id\":%s, \"@extra\":3, \"input_message_content\":{\"@type\":\"inputMessageText\", \"text\":{\"@type\":\"formattedText\",\"text\":\"td flood test py bot logged in\"}}}"
                        % local_vars.LOCAL_CHAT_ID_STR)
                    continue

                print("unknown auth state update, exiting.")
                break
            """
            {
              "@type": "updateNewMessage",
              "message": {
                "@type": "message",
                "author_signature": "",
                "can_be_deleted_for_all_users": false,
                "can_be_deleted_only_for_self": false,
                "can_be_edited": false,
                "can_be_forwarded": true,
                "chat_id": 123,
                "contains_unread_mention": false,
                "content": {
                  "@type": "messageText",
                  "text": {
                    "@type": "formattedText",
                    "entities": [],
                    "text": "some ping"
                  }
                },
                "date": 1580340018,
                "edit_date": 0,
                "id": 2513436672,
                "is_channel_post": false,
                "is_outgoing": false,
                "media_album_id": "0",
                "reply_to_message_id": 0,
                "restriction_reason": "",
                "sender_user_id": 123,
                "ttl": 0,
                "ttl_expires_in": 0.0,
                "via_bot_user_id": 0,
                "views": 0
              }
            }
            """
            msg_text = None
            if res_type == "updateNewMessage":
                msg = result["message"]
                if not msg[
                        "is_outgoing"]:  # and not "messageSendingStatePending" in result:
                    sender_user_id = msg["sender_user_id"]
                    if int(local_vars.LOCAL_BOT_USER_ID_STR) != int(
                            sender_user_id):  #skip messages from self
                        reply_with_text = True
                        if "content" in msg:
                            content = msg["content"]
                            content_at_type = content["@type"]
                            if "text" in content:
                                content_text = content["text"]
                                if "text" in content_text:
                                    msg_text = content_text["text"]
                                    reply_text = "A message received with text `\"%s\"`" % msg_text
                                else:
                                    reply_text = "Some message received with no `text` field in `content.text`, `content.text`=`\"%s\"`" % json.dumps(
                                        content_text)
                            else:
                                try:
                                    reply_with_text = False
                                    if content_at_type == "messageAnimation":
                                        input_message_content = compose_input_message_content_for_messageAnimation(
                                            result, msg, content)
                                    else:
                                        if content_at_type == "messageSticker":
                                            input_message_content = compose_input_message_content_for_messageSticker(
                                                result, msg, content)
                                        else:
                                            reply_with_text = True
                                            reply_text = "Some message received with no `text` field in `content`, and it's neither `messageSticker` nor `messageAnimation`."
                                except Exception as ex:
                                    reply_with_text = True
                                    reply_text = "Exception while `Failed to format a reply to incoming `messageAnimation` or `messageSticker``: %s" % str(
                                        ex)
                                    print(reply_text)
                                    from traceback import print_exc as tb
                                    tb()
                            ###1
                        else:
                            reply_text = "Some message received with no `content` field in `message`"
                        if reply_with_text:
                            input_message_content = {
                                "@type": "inputMessageText",
                                "text": {
                                    "@type": "formattedText",
                                    "text": reply_text
                                }
                            }
                        reply = {
                            "@type": "sendMessage",
                            "chat_id": local_vars.LOCAL_CHAT_ID_STR,
                            "@extra": 3,
                            "input_message_content": input_message_content,
                        }
                        td_json_client_send(client, json.dumps(reply))
                        continue
            if res_type == "updateMessageSendFailed":
                try:
                    code = int(result["error_code"])
                    error_message = result["error_message"]
                    prefix = "FLOOD_WAIT_"
                    """
                        for (auto prefix :
                             {Slice("FLOOD_WAIT_"), Slice("SLOWMODE_WAIT_"), Slice("2FA_CONFIRM_WAIT_"), Slice("TAKEOUT_INIT_DELAY_")}) {
                          if (begins_with(msg, prefix)) {
                            timeout = clamp(to_integer<int>(msg.substr(prefix.size())), 1, 14 * 24 * 60 * 60);
                            break;
                          }
                        }
                    """
                    if code == 429 and error_message.startswith(
                            prefix
                    ):  # todo also implement the above C++ code here
                        seconds = clamp(int(error_message[len(prefix):]), 1,
                                        14 * 24 * 60 * 60)
                        print(
                            "updateMessageSendFailed: 429 %s, sleeping %s sec."
                            % (
                                error_message,
                                str(seconds),
                            ))
                        sleep(seconds)
                        timewait_sec = seconds
                    else:
                        timewait_sec = float(
                            result["message"]["sending_state"]["retry_after"])
                        print(
                            "updateMessageSendFailed: %s %s, sleeping %s sec."
                            % (str(code), error_message, str(timewait_sec)))
                        sleep(timewait_sec)
                    if result["message"]["sending_state"]["can_retry"]:
                        msg_text = result["message"]["content"]["text"]["text"]
                        retry_sendmsg_request = {
                            "@type": "sendMessage",
                            "chat_id": result["message"]["chat_id"],
                            "@extra": 4,
                            "input_message_content": {
                                "@type": "inputMessageText",
                                "text": {
                                    "@type":
                                    "formattedText",
                                    "text":
                                    """[overslept after sleeping %s seconds; redelivery after error %s %s]; failed msg text:

%s""" % (str(timewait_sec), str(code), error_message, msg_text)
                                }
                            }
                        }
                        td_json_client_send(client,
                                            json.dumps(retry_sendmsg_request))
                except Exception as ex:
                    print("Exception:", ex, "sleeping infinity")
                    while True:
                        sleep(10 * 3600)  #one hour
            """
            updateMessageSendFailed {
              message = message {
                id = 2592079874
                sender_user_id = 680736482
                chat_id = -1001289380798
                sending_state = messageSendingStateFailed {
                  error_code = 429
                  error_message = "Too Many Requests: retry after 4"
                  can_retry = true
                  retry_after = 3.999928
                }
                scheduling_state = null
                is_outgoing = true
                can_be_edited = false
                can_be_forwarded = true
                can_be_deleted_only_for_self = true
                can_be_deleted_for_all_users = false
                is_channel_post = false
                contains_unread_mention = false
                date = 1580341008
                edit_date = 0
                forward_info = null
                reply_to_message_id = 0
                ttl = 0
                ttl_expires_in = 0.000000
                via_bot_user_id = 0
                author_signature = ""
                views = 0
                media_album_id = 0
                restriction_reason = ""
                content = messageText {
                  text = formattedText {
                    text = "some message received with text 'ы'"
                    entities = vector[0] {
                    }
                  }
                  web_page = null
                }
                reply_markup = null
              }
              old_message_id = 2592079873
              error_code = 429
              error_message = "Too Many Requests: retry after 4"
            }

            // after hypn-dirty-fix at NetQueryDispatcher.cpp :
            {
              "@type": "updateMessageSendFailed",
              "error_code": 429,
              "error_message": "FLOOD_WAIT_4",
              "message": {
                "@type": "message",
                "author_signature": "",
                "can_be_deleted_for_all_users": false,
                "can_be_deleted_only_for_self": true,
                "can_be_edited": false,
                "can_be_forwarded": true,
                "chat_id": 123,
                "contains_unread_mention": false,
                "content": {
                  "@type": "messageText",
                  "text": {
                    "@type": "formattedText",
                    "entities": [],
                    "text": "td flood test py bot logged in"
                  }
                },
                "date": 1580350693,
                "edit_date": 0,
                "id": 3711959570,
                "is_channel_post": false,
                "is_outgoing": true,
                "media_album_id": "0",
                "reply_to_message_id": 0,
                "restriction_reason": "",
                "sender_user_id": 123,
                "sending_state": {
                  "@type": "messageSendingStateFailed",
                  "can_retry": true,
                  "error_code": 429,
                  "error_message": "FLOOD_WAIT_4",
                  "retry_after": 0.0
                },
                "ttl": 0,
                "ttl_expires_in": 0.0,
                "via_bot_user_id": 0,
                "views": 0
              },
              "old_message_id": 3711959569
            }
            """
    td_json_client_destroy(client)