Ejemplo n.º 1
0
 def addExample(self, k, e, word):
     if not (get_plugin().config.add_examples_to_list):
         return
     if k == "":
         k = word
     tr = "<tr><td>" + k + "</td><td>" + "____".join(e.split(word)) + "</td></tr>"
     text = self.text_edit.toHtml()[:-(len("</table></body></html>"))] + tr + "</table></body></html>"
     text = 'border="2"'.join(text.split('border="0"'))
     self.text_edit.setHtml(text)
     if get_plugin().config.log_wordlist:
         self.logfile.write(tr.encode("ascii","ignore") + "\n")
Ejemplo n.º 2
0
 def __init__(self, entry):
     self.dwnd = get_plugin().dwnd
     self.entry = entry
     # self.examples_widget is required for superclass __init__
     self.examples_widget = ExamplesWidget(self)
     super(DictEntryView, self).__init__()
     
     for i in entry.senses:
         self.add_sense_widget(SenseWidget(i, self))
     
     for link in entry.links:
         # TODO change it to use 'Destination' object
         # tej lambdy NIE można uprościć, bo inaczej się zbuguje:
         self.add_link(link, (lambda t: lambda: get_plugin().dwnd.dictSearch(t))(link.url) )
     
     self.init_finalize()
Ejemplo n.º 3
0
 def addSense(self, sense):
     tr = "<tr><td>" + sense.original_key + "</td><td>" + sense.definition + "</td></tr>"
     text = self.text_edit.toHtml()[:-(len("</table></body></html>"))] + tr + "</table></body></html>"
     text = 'border="2"'.join(text.split('border="0"'))
     self.text_edit.setHtml(text)
     if get_plugin().config.log_wordlist:
         self.logfile.write(tr.encode("ascii","ignore") + "\n")
Ejemplo n.º 4
0
 def add_example(self, example, callback):
     key = example.original_key
     ex = example.content
     tmp = '<a href="example" style="'+get_plugin().config.example_style+'"><i>'
     if key:
         tmp += "<b> "+key+" </b>"
     tmp += ex
     tmp += "</i></a>"
     tmplabel = QLabel(tmp)
     tmplabel.setWordWrap(True)
     tmplabel.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Maximum)
     tmplabel.setAlignment(Qt.AlignTop | Qt.AlignLeft)
     tmplabel.linkActivated.connect(callback)
     self.examples_to_hide.append(tmplabel)
Ejemplo n.º 5
0
 def add_example(self, example, callback):
     key = example.original_key
     ex = example.content
     tmp = '<a href="example" style="' + get_plugin(
     ).config.example_style + '"><i>'
     if key:
         tmp += "<b> " + key + " </b>"
     tmp += ex
     tmp += "</i></a>"
     tmplabel = QLabel(tmp)
     tmplabel.setWordWrap(True)
     tmplabel.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Maximum)
     tmplabel.setAlignment(Qt.AlignTop | Qt.AlignLeft)
     tmplabel.linkActivated.connect(callback)
     self.examples_to_hide.append(tmplabel)
Ejemplo n.º 6
0
 def __init__(self, sense, entry_view):
     self.sense = sense
     self.entry_view = entry_view
     self.dwnd = get_plugin().dwnd
     super(SenseWidget, self).__init__()
     
     self.add_btn.clicked.connect(self.saveDef)
     
     for example in sense.examples:
         def add_ex_func(k,e):
             def f():
                 self.entry_view.examples_widget.addExample(k, e)
                 self.entry_view.dwnd.wordlist_view.addExample(k, e, entry_view.entry.original_key)
             return f
         self.add_example(example, add_ex_func(example.original_key, example.content))
     
     self.init_finalize()
Ejemplo n.º 7
0
 def init_finalize(self):
     self.left_scroll.setWidgetResizable(True)
     self.right_scroll.setWidgetResizable(True)
     self.left_widget.setLayout(self.left_vbox)
     self.right_widget.setLayout(self.right_vbox)
     self.left_widget.show()
     self.right_widget.show()
     self.left_scroll.setWidget(self.left_widget)
     self.right_scroll.setWidget(self.right_widget)
     self.right_scroll.setSizePolicy(QSizePolicy.Fixed, QSizePolicy.Expanding)
     # TODO: potem i tak to będą jakieś labelsy, więc się będą zawijać i będzie dobrze
     self.right_scroll.setMaximumWidth(get_plugin().config.related_defs_panel_width)
     self.left_column = QVBoxLayout()
     self.left_column.addWidget(self.left_scroll)
     self.left_column.addWidget(self.examples_widget)
     self.main_hbox.addLayout(self.left_column)
     self.main_hbox.addWidget(self.right_scroll)
     self.setLayout(self.main_hbox)
Ejemplo n.º 8
0
 def __init__(self):
     super(WordListView, self).__init__()
     self.main_hbox = QHBoxLayout()
     self.text_edit = QTextEdit()
     self.text_edit.setHtml('<table border="2" style="border-color: black; border-width: 2; border-style: solid;"> </table>')
     self.main_hbox.addWidget(self.text_edit)
     self.setLayout(self.main_hbox)
     def func_constr(f):
         def wyn(e):
             f(e)
             if e.key() == QtCore.Qt.Key_Backspace:
                 self.reloadTable()
         return wyn
     self.text_edit.keyPressEvent = func_constr(self.text_edit.keyPressEvent)
     if get_plugin().config.log_wordlist:
         today = datetime.date.today()
         filename = "millandict_wordlist_log_"+str(today.month) + "_" +str(today.year) + ".html"
         self.logfile = open(filename, "a+")
Ejemplo n.º 9
0
        def make_hidden_examples():
            w = QWidget()
            w.onLeaveEvent = lambda e: None
            if self.examples_all == []:
                return w
            w.setMouseTracking(True)
            lab = QLabel('<a href="example" style="' +
                         get_plugin().config.example_style +
                         '"><b> ... ... ... </b></a>')
            lab.hide()
            layout = QVBoxLayout()
            for i in self.examples_all:
                layout.addWidget(i)
            layout.setMargin(2)
            layout.addWidget(lab)
            w.setLayout(layout)

            def onEnterEvent(event):
                # here showing examples (takie onHover)
                for i in self.examples_to_hide:
                    i.show()
                lab.hide()

            def onLeaveEvent(event):
                # here hiding examples (takie onUnHover)
                for i in self.examples_to_hide:
                    i.hide()
                if self.examples_to_hide != []:
                    lab.show()

            def mouseMoveEvent(event):
                if event.x() < get_plugin().config.examples_hover_area_width:
                    onEnterEvent(event)
                else:
                    onLeaveEvent(event)

            #w.enterEvent = onEnterEvent
            #w.leaveEvent = onLeaveEvent
            w.mouseMoveEvent = mouseMoveEvent
            w.onLeaveEvent = onLeaveEvent
            w.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Maximum)
            onLeaveEvent(None)
            w.show()
            return w
Ejemplo n.º 10
0
 def init_finalize(self):
     self.left_scroll.setWidgetResizable(True)
     self.right_scroll.setWidgetResizable(True)
     self.left_widget.setLayout(self.left_vbox)
     self.right_widget.setLayout(self.right_vbox)
     self.left_widget.show()
     self.right_widget.show()
     self.left_scroll.setWidget(self.left_widget)
     self.right_scroll.setWidget(self.right_widget)
     self.right_scroll.setSizePolicy(QSizePolicy.Fixed,
                                     QSizePolicy.Expanding)
     # TODO: potem i tak to będą jakieś labelsy, więc się będą zawijać i będzie dobrze
     self.right_scroll.setMaximumWidth(
         get_plugin().config.related_defs_panel_width)
     self.left_column = QVBoxLayout()
     self.left_column.addWidget(self.left_scroll)
     self.left_column.addWidget(self.examples_widget)
     self.main_hbox.addLayout(self.left_column)
     self.main_hbox.addWidget(self.right_scroll)
     self.setLayout(self.main_hbox)
Ejemplo n.º 11
0
 def make_hidden_examples():
     w = QWidget()
     w.onLeaveEvent = lambda e: None
     if self.examples_all == []:
         return w
     w.setMouseTracking(True)
     lab = QLabel('<a href="example" style="'+get_plugin().config.example_style+'"><b> ... ... ... </b></a>')
     lab.hide()
     layout = QVBoxLayout()
     for i in self.examples_all:
         layout.addWidget(i)
     layout.setMargin(2)
     layout.addWidget(lab)
     w.setLayout(layout)
     def onEnterEvent(event):
         # here showing examples (takie onHover)
         for i in self.examples_to_hide:
             i.show()
         lab.hide()
     def onLeaveEvent(event):
         # here hiding examples (takie onUnHover)
         for i in self.examples_to_hide:
             i.hide()
         if self.examples_to_hide != []:
             lab.show()
     def mouseMoveEvent(event):
         if event.x() < get_plugin().config.examples_hover_area_width :
             onEnterEvent(event)
         else:
             onLeaveEvent(event)
     #w.enterEvent = onEnterEvent
     #w.leaveEvent = onLeaveEvent
     w.mouseMoveEvent = mouseMoveEvent
     w.onLeaveEvent = onLeaveEvent
     w.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Maximum)
     onLeaveEvent(None)
     w.show()
     return w
Ejemplo n.º 12
0
 def mouseMoveEvent(event):
     if event.x() < get_plugin().config.examples_hover_area_width :
         onEnterEvent(event)
     else:
         onLeaveEvent(event)
Ejemplo n.º 13
0
 def init_finalize(self):
     self.examples_all = self.examples_to_hide
     self.examples_to_hide = self.examples_to_hide[(get_plugin().config.max_examples_per_sense):]
     def make_frame():
         fr = QFrame()
         fr.setStyleSheet("background-color: white;");
         fr.setFrameShape(QFrame.Box)
         fr.setFrameShadow(QFrame.Raised)
         fr.setLineWidth(2)
         fr.setMidLineWidth(2)
         return fr
     def make_hidden_examples():
         w = QWidget()
         w.onLeaveEvent = lambda e: None
         if self.examples_all == []:
             return w
         w.setMouseTracking(True)
         lab = QLabel('<a href="example" style="'+get_plugin().config.example_style+'"><b> ... ... ... </b></a>')
         lab.hide()
         layout = QVBoxLayout()
         for i in self.examples_all:
             layout.addWidget(i)
         layout.setMargin(2)
         layout.addWidget(lab)
         w.setLayout(layout)
         def onEnterEvent(event):
             # here showing examples (takie onHover)
             for i in self.examples_to_hide:
                 i.show()
             lab.hide()
         def onLeaveEvent(event):
             # here hiding examples (takie onUnHover)
             for i in self.examples_to_hide:
                 i.hide()
             if self.examples_to_hide != []:
                 lab.show()
         def mouseMoveEvent(event):
             if event.x() < get_plugin().config.examples_hover_area_width :
                 onEnterEvent(event)
             else:
                 onLeaveEvent(event)
         #w.enterEvent = onEnterEvent
         #w.leaveEvent = onLeaveEvent
         w.mouseMoveEvent = mouseMoveEvent
         w.onLeaveEvent = onLeaveEvent
         w.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Maximum)
         onLeaveEvent(None)
         w.show()
         return w
     self.hidden_examples = make_hidden_examples()
     self.main_vbox.addWidget(self.hidden_examples)
     frame = make_frame()
     frame.setLayout(self.main_vbox)
     self.def_hbox.addWidget(frame)
     self.def_hbox.addWidget(self.add_btn)
     
     
     self.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Maximum)
     
     self.setLayout(self.def_hbox)
     
Ejemplo n.º 14
0
 def mouseMoveEvent(event):
     if event.x() < get_plugin().config.examples_hover_area_width:
         onEnterEvent(event)
     else:
         onLeaveEvent(event)
Ejemplo n.º 15
0
    def init_finalize(self):
        self.examples_all = self.examples_to_hide
        self.examples_to_hide = self.examples_to_hide[(
            get_plugin().config.max_examples_per_sense):]

        def make_frame():
            fr = QFrame()
            fr.setStyleSheet("background-color: white;")
            fr.setFrameShape(QFrame.Box)
            fr.setFrameShadow(QFrame.Raised)
            fr.setLineWidth(2)
            fr.setMidLineWidth(2)
            return fr

        def make_hidden_examples():
            w = QWidget()
            w.onLeaveEvent = lambda e: None
            if self.examples_all == []:
                return w
            w.setMouseTracking(True)
            lab = QLabel('<a href="example" style="' +
                         get_plugin().config.example_style +
                         '"><b> ... ... ... </b></a>')
            lab.hide()
            layout = QVBoxLayout()
            for i in self.examples_all:
                layout.addWidget(i)
            layout.setMargin(2)
            layout.addWidget(lab)
            w.setLayout(layout)

            def onEnterEvent(event):
                # here showing examples (takie onHover)
                for i in self.examples_to_hide:
                    i.show()
                lab.hide()

            def onLeaveEvent(event):
                # here hiding examples (takie onUnHover)
                for i in self.examples_to_hide:
                    i.hide()
                if self.examples_to_hide != []:
                    lab.show()

            def mouseMoveEvent(event):
                if event.x() < get_plugin().config.examples_hover_area_width:
                    onEnterEvent(event)
                else:
                    onLeaveEvent(event)

            #w.enterEvent = onEnterEvent
            #w.leaveEvent = onLeaveEvent
            w.mouseMoveEvent = mouseMoveEvent
            w.onLeaveEvent = onLeaveEvent
            w.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Maximum)
            onLeaveEvent(None)
            w.show()
            return w

        self.hidden_examples = make_hidden_examples()
        self.main_vbox.addWidget(self.hidden_examples)
        frame = make_frame()
        frame.setLayout(self.main_vbox)
        self.def_hbox.addWidget(frame)
        self.def_hbox.addWidget(self.add_btn)

        self.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Maximum)

        self.setLayout(self.def_hbox)
Ejemplo n.º 16
0
 def __init__(self, txt):
     super(Example, self).__init__('<a href="example" style="'+get_plugin().config.example_style+'">'+txt+'</a>')
     self.txt = txt