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")
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()
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")
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)
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)
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()
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)
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+")
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
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)
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
def mouseMoveEvent(event): if event.x() < get_plugin().config.examples_hover_area_width : onEnterEvent(event) else: onLeaveEvent(event)
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)
def mouseMoveEvent(event): if event.x() < get_plugin().config.examples_hover_area_width: onEnterEvent(event) else: onLeaveEvent(event)
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)
def __init__(self, txt): super(Example, self).__init__('<a href="example" style="'+get_plugin().config.example_style+'">'+txt+'</a>') self.txt = txt