def choose_part(self, parent, msg): dlg = Gtk.MessageDialog(parent, Gtk.DialogFlags.MODAL, Gtk.MessageType.WARNING, Gtk.ButtonsType.YES_NO) dlg.set_markup(msg) ls = [] for a in self.db.all_parts(): ls.append([a[0], a[1]]) hb, parts_g = asm_customs.combo(ls, u'') parts_g.set_active(0) self.received_part_name = asm_customs.value_active(parts_g, 1) self.received_part_id = asm_customs.value_active(parts_g) def sel_part(w): self.received_part_name = asm_customs.value_active(parts_g, 1) self.received_part_id = asm_customs.value_active(parts_g) parts_g.connect('changed', sel_part) area = dlg.get_content_area() area.set_spacing(7) hbox = Gtk.HBox(False, 7) hbox.pack_end(hb, False, False, 0) area.pack_start(hbox, False, False, 0) area.show_all() r = dlg.run() dlg.destroy() return r
def __init__(self, parent, id_book): self.parent = parent self.listdb = listDB() book = self.listdb.file_book(id_book) self.db = bookDB(book, id_book) self.othman = Othman() Gtk.Dialog.__init__(self, parent=self.parent) self.set_icon_name("asmaa") self.resize(750, 450) self.set_modal(True) self.set_title(u'تعديل تفسير : {}'.format(self.db.book_name,)) self.connect('destroy', self.quit_dlg) box = self.vbox box.set_border_width(5) # a عارض النص----------------------------------- self.view_nasse = asm_customs.ViewClass() self.view_nasse_bfr = self.view_nasse.get_buffer() self.view_quran_tag = self.view_nasse_bfr.create_tag("quran") self.view_quran_tag.set_property('foreground', self.parent.theme.color_qrn) self.view_quran_tag.set_property("paragraph-background", self.parent.theme.color_bg_qrn) self.view_quran_tag.set_property('font', self.parent.theme.font_qrn) self.scroll_nasse = Gtk.ScrolledWindow() self.scroll_nasse.set_shadow_type(Gtk.ShadowType.IN) self.scroll_nasse.add(self.view_nasse) box.pack_start(self.scroll_nasse, True, True, 0) box.pack_start(Gtk.HSeparator(), False, False, 3) hb = Gtk.Box(spacing=7,orientation=Gtk.Orientation.HORIZONTAL) self.lab_id_pg = Gtk.Label('جزء 1 ، صفحة 1') hb.pack_start(self.lab_id_pg, False, False, 3) adj = Gtk.Adjustment(1, 1, len(self.db.list_pages), 1, 5.0, 0.0) self.id_pg = Gtk.SpinButton() self.id_pg.connect('changed', self.change_id_pg) self.id_pg.set_adjustment(adj) lab = Gtk.Label('معرف الصفحة') self.id_pg.set_wrap(True) self.id_pg.set_size_request(100, -1) hb.pack_end(self.id_pg, False, False, 0) hb.pack_end(lab, False, False, 0) box.pack_start(hb, False, False, 3) box.pack_start(Gtk.HSeparator(), False, False, 3) hb = Gtk.Box(spacing=7,orientation=Gtk.Orientation.HORIZONTAL) sura_list = self.othman.get_suras_names() hb0, self.suras = asm_customs.combo(sura_list, u'السورة') hb.pack_start(hb0, False, False, 3) self.suras.set_active(-1) adj = Gtk.Adjustment(0, 0, 0, 1, 5.0, 0.0) self.n_ayas = Gtk.SpinButton() self.n_ayas.set_adjustment(adj) lab = Gtk.Label('عدد الآيات') self.n_ayas.set_wrap(True) self.n_ayas.set_size_request(100, -1) hb.pack_end(self.n_ayas, False, False, 0) hb.pack_end(lab, False, False, 0) adj = Gtk.Adjustment(0, 0, 0, 1, 5.0, 0.0) self.ayas = Gtk.SpinButton() self.ayas.set_adjustment(adj) lab = Gtk.Label('أول آية') self.ayas.set_wrap(True) self.ayas.set_size_request(100, -1) hb.pack_end(self.ayas, False, False, 0) hb.pack_end(lab, False, False, 0) box.pack_start(hb, False, False, 3) hbox = Gtk.Box(spacing=5,orientation=Gtk.Orientation.HORIZONTAL) save_btn = asm_customs.ButtonClass("غيّر") save_btn.set_tooltip_text('ثبت السورة والآيات للصفحة الحالية') save_btn.connect('clicked', self.save_cb) hbox.pack_start(save_btn, False, False, 0) no_save_btn = asm_customs.ButtonClass("أخل") no_save_btn.set_tooltip_text('ألغ ربط الصفحة الحالية بالآيات') no_save_btn.connect('clicked', self.no_save_cb) hbox.pack_start(no_save_btn, False, False, 0) clo = asm_customs.ButtonClass("إغلاق") clo.connect('clicked', self.quit_dlg) hbox.pack_end(clo, False, False, 0) box.pack_end(hbox, False, False, 0) box.pack_end(Gtk.HSeparator(), False, False, 3) self.suras.connect('changed', self.select_sura) self.show_all()
def __init__(self, parent): self.no_all_book = 1 self.parent = parent self.db_bok = None self.stop_n = 0 self.db = listDB() vbox = Gtk.Box(spacing=5, orientation=Gtk.Orientation.VERTICAL) box = Gtk.Box(spacing=5, orientation=Gtk.Orientation.VERTICAL) Gtk.Dialog.__init__(self, parent=self.parent) self.resize(550, 450) area = self.get_content_area() area.set_spacing(3) self.set_position(Gtk.WindowPosition.CENTER) hb_bar = Gtk.HeaderBar() hb_bar.set_show_close_button(True) self.set_titlebar(hb_bar) self.stack = Gtk.Stack() self.stack.set_transition_type(Gtk.StackTransitionType.SLIDE_LEFT_RIGHT) self.stack.set_transition_duration(1000) stack_switcher = Gtk.StackSwitcher() stack_switcher.set_stack(self.stack) hb_bar.set_custom_title(stack_switcher) # a استيراد ملفات bok & asm---------------------------- hb = Gtk.HBox(False, 3) self.btn_add = Gtk.Button("جديد") self.btn_add.connect("clicked", self.add_bok) hb.pack_start(self.btn_add, False, False, 0) hb.pack_start(Gtk.Label("«bok, asm»"), True, True, 0) hbox = Gtk.Box(orientation=Gtk.Orientation.HORIZONTAL) Gtk.StyleContext.add_class(hbox.get_style_context(), "linked") hb.pack_end(hbox, False, False, 0) self.btn_remove = Gtk.Button("حذف") self.btn_remove.connect("clicked", self.remove_iter) hbox.pack_start(self.btn_remove, False, False, 0) self.btn_clear = Gtk.Button("مسح") self.btn_clear.connect("clicked", lambda *a: self.store_add.clear()) hbox.pack_start(self.btn_clear, False, False, 0) box.pack_start(hb, False, False, 0) self.store_add = Gtk.ListStore(str, str) self.tree_add = Gtk.TreeView() self.sel_add = self.tree_add.get_selection() column = Gtk.TreeViewColumn("الكتب", Gtk.CellRendererText(), text=1) self.tree_add.append_column(column) self.tree_add.set_model(self.store_add) scroll = Gtk.ScrolledWindow() scroll.set_shadow_type(Gtk.ShadowType.IN) scroll.add(self.tree_add) box.pack_start(scroll, True, True, 0) ls = [] for a in self.db.all_parts(): ls.append([a[0], a[1]]) hbox, self.groups = asm_customs.combo(ls, "ضع هذه الكتب في قسم :") box.pack_start(hbox, False, False, 0) box.set_border_width(5) self.stack.add_titled(box, "n1", "ملفات كتب") # a استيراد الملفات النصية---------------------------- box = Gtk.Box(spacing=5, orientation=Gtk.Orientation.VERTICAL) box.set_border_width(5) hb = Gtk.HBox(False, 3) self.btn_add_doc = Gtk.Button("جديد") self.btn_add_doc.connect("clicked", self.add_doc) hb.pack_start(self.btn_add_doc, False, False, 0) hb.pack_start(Gtk.Label("«odt, docx, doc, rtf, txt, html»"), True, True, 0) hbox = Gtk.Box(orientation=Gtk.Orientation.HORIZONTAL) Gtk.StyleContext.add_class(hbox.get_style_context(), "linked") hb.pack_end(hbox, False, False, 0) self.btn_remove_doc = Gtk.Button("حذف") self.btn_remove_doc.connect("clicked", self.remove_iter) hbox.pack_start(self.btn_remove_doc, False, False, 0) self.btn_clear_doc = Gtk.Button("مسح") self.btn_clear_doc.connect("clicked", lambda *a: self.store_add_doc.clear()) hbox.pack_start(self.btn_clear_doc, False, False, 0) box.pack_start(hb, False, False, 0) self.store_add_doc = Gtk.ListStore(str, str) self.tree_add_doc = Gtk.TreeView() self.sel_add_doc = self.tree_add_doc.get_selection() column = Gtk.TreeViewColumn("الملفات", Gtk.CellRendererText(), text=1) self.tree_add_doc.append_column(column) self.tree_add_doc.set_model(self.store_add_doc) scroll = Gtk.ScrolledWindow() scroll.set_shadow_type(Gtk.ShadowType.IN) scroll.add(self.tree_add_doc) box.pack_start(scroll, True, True, 0) hbox = Gtk.Box(spacing=10, orientation=Gtk.Orientation.HORIZONTAL) self.is_book_radio = Gtk.RadioButton.new_with_label_from_widget(None, "كتاب") self.is_part_radio = Gtk.RadioButton.new_with_label_from_widget(self.is_book_radio, "جزء") self.is_page_radio = Gtk.RadioButton.new_with_label_from_widget(self.is_part_radio, "صفحة") self.is_book_radio.connect("toggled", self.specified, "0") self.is_part_radio.connect("toggled", self.specified, "1") self.is_page_radio.connect("toggled", self.specified, "2") hbox.pack_start(Gtk.Label("كل ملف يمثل : "), False, False, 0) hbox.pack_start(self.is_book_radio, False, False, 0) hbox.pack_start(self.is_part_radio, False, False, 0) hbox.pack_start(self.is_page_radio, False, False, 0) hbox.set_border_width(5) box.pack_start(hbox, False, False, 0) hb = Gtk.HBox(False, 7) hb.pack_start(Gtk.Label("اسم الكتاب : "), False, False, 0) self.name_book_entry = Gtk.Entry() self.name_book_entry.set_sensitive(False) hb.pack_start(self.name_book_entry, True, True, 0) box.pack_start(hb, False, False, 0) hb = Gtk.HBox(False, 7) self.letters = Gtk.CheckButton("عدد الأحرف في الصفحة") hb.pack_start(self.letters, False, False, 0) adj = Gtk.Adjustment(3000, 10, 100000, 1, 5.0, 0.0) self.n_letters = Gtk.SpinButton() self.n_letters.set_adjustment(adj) self.n_letters.set_wrap(True) self.n_letters.set_sensitive(False) hb.pack_start(self.n_letters, False, False, 0) box.pack_start(hb, False, False, 0) hb = Gtk.HBox(False, 7) self.fasil = Gtk.CheckButton("رمز فاصل بين الصفحات") hb.pack_start(self.fasil, False, False, 0) self.separative = Gtk.Entry() self.separative.set_placeholder_text("الفاصل يتم حذفه من الكتاب") self.separative.set_sensitive(False) hb.pack_start(self.separative, True, True, 0) box.pack_start(hb, False, False, 0) def letters_cb(widget, *a): if self.letters.get_active(): self.n_letters.set_sensitive(True) self.fasil.set_active(False) else: self.n_letters.set_sensitive(False) self.letters.connect("toggled", letters_cb) def fasil_cb(widget, *a): if self.fasil.get_active(): self.separative.set_sensitive(True) self.letters.set_active(False) else: self.separative.set_sensitive(False) self.fasil.connect("toggled", fasil_cb) box.pack_start(Gtk.HSeparator(), False, False, 0) hbox, self.groups_doc = asm_customs.combo(ls, "ضع هذه الكتب في قسم :") box.pack_start(hbox, False, False, 0) self.stack.add_titled(box, "n2", "ملفات نصية") # a استيراد الشاملة---------------------------- box = Gtk.Box(spacing=3, orientation=Gtk.Orientation.VERTICAL) box.set_border_width(5) hbox = Gtk.Box(spacing=7, orientation=Gtk.Orientation.HORIZONTAL) self.entry_shamila = Gtk.Entry() b_shamila = Gtk.Button("...") b_shamila.connect("clicked", self.select_path) hbox.pack_start(Gtk.Label("مجلد الشاملة"), False, False, 0) hbox.pack_start(self.entry_shamila, True, True, 0) hbox.pack_start(b_shamila, False, False, 0) box.pack_start(hbox, False, False, 0) hbox = Gtk.Box(spacing=6, orientation=Gtk.Orientation.HORIZONTAL) b_show = Gtk.Button("أظهر قائمة الكتب") b_show.connect("clicked", self.show_books) hbox.pack_start(b_show, False, False, 0) box.pack_start(hbox, False, False, 0) # self.store_books = Gtk.TreeStore(GObject.TYPE_BOOLEAN, GObject.TYPE_STRING, GObject.TYPE_INT) self.store_books = Gtk.TreeStore( GObject.TYPE_BOOLEAN, GObject.TYPE_INT, GObject.TYPE_STRING, GObject.TYPE_INT, GObject.TYPE_STRING, GObject.TYPE_STRING, GObject.TYPE_STRING, GObject.TYPE_STRING, GObject.TYPE_INT, GObject.TYPE_INT, ) ######## self.tree_books = Gtk.TreeView() self.tree_books.set_model(self.store_books) self.sel_books = self.tree_books.get_selection() scroll = Gtk.ScrolledWindow() scroll.set_shadow_type(Gtk.ShadowType.IN) scroll.add(self.tree_books) scroll.set_size_request(200, -1) celltext = Gtk.CellRendererText() celltext.set_property("ellipsize", Pango.EllipsizeMode.END) celltoggle = Gtk.CellRendererToggle() celltoggle.set_property("activatable", True) columntoggle = Gtk.TreeViewColumn("اختر", celltoggle) columntext = Gtk.TreeViewColumn("الكتب", celltext, text=2) columntext.set_expand(True) columntoggle.add_attribute(celltoggle, "active", 0) celltoggle.connect("toggled", self.fixed_toggled, self.store_books) self.tree_books.append_column(columntoggle) self.tree_books.append_column(columntext) box.pack_start(scroll, True, True, 0) hbox = Gtk.Box(spacing=7, orientation=Gtk.Orientation.HORIZONTAL) self.all_books = Gtk.CheckButton("الكل") self.all_books.connect("toggled", self.select_all) hbox.pack_start(self.all_books, False, False, 0) self.lab_status = Gtk.Label("") self.lab_status.set_ellipsize(Pango.EllipsizeMode.END) hbox.pack_end(self.lab_status, False, False, 0) box.pack_end(hbox, False, False, 0) self.stack.add_titled(box, "n3", "قرص الشاملة") hbox = Gtk.Box(spacing=3, orientation=Gtk.Orientation.HORIZONTAL) hbox.set_border_width(5) self.btn_close = asm_customs.ButtonClass("إغلاق") self.btn_close.connect("clicked", lambda *a: self.destroy()) hbox.pack_end(self.btn_close, False, False, 0) hb = Gtk.Box(orientation=Gtk.Orientation.HORIZONTAL) Gtk.StyleContext.add_class(hb.get_style_context(), "linked") hbox.pack_start(hb, False, False, 0) self.btn_convert = Gtk.Button("تحويل") self.btn_convert.connect("clicked", self.start_convert) hb.pack_start(self.btn_convert, False, False, 0) self.btn_stop = Gtk.Button("إيقاف") self.btn_stop.connect("clicked", self.stop_operation) self.btn_stop.set_sensitive(False) hb.pack_start(self.btn_stop, False, False, 0) vbox.pack_start(self.stack, True, True, 0) self.progress = Gtk.ProgressBar() vbox.pack_start(self.progress, False, False, 0) vbox.pack_start(hbox, False, False, 0) area.pack_start(vbox, True, True, 0) self.show_all()
def __init__(self, parent): self.db = None self.current_id = 1 self.part_now = 1 self.page_now = 1 self.nm_book = 'التفسير الميسر' self.parent = parent self.othman = Othman() self.listbook = listDB() sura_list = self.othman.get_suras_names() self.opened_new = [] self.opened_old = [] Gtk.HBox.__init__(self, False, 0) vbox = Gtk.Box(spacing=7,orientation=Gtk.Orientation.VERTICAL) self.notebook = Gtk.Notebook() self.notebook.set_show_tabs(False) vb = Gtk.Box(spacing=7,orientation=Gtk.Orientation.VERTICAL) vb.set_border_width(5) self.load_list() self.tafsirs = asm_customs.combo(self.store_tafasir, 'التفسير') self.tafsirs.set_wrap_width(self.n_warp) vb.pack_start(self.tafsirs, False, False, 0) self.tafsirs.set_active(0) adj = Gtk.Adjustment(1, 1, 7, 1, 5.0, 0.0) self.ayas = Gtk.SpinButton() self.ayas.set_adjustment(adj) self.ayas.set_value(1.0) self.ayas.connect('activate', self.select_aya) hb, self.suras = asm_customs.combo(sura_list, 'السورة') self.suras.set_wrap_width(10) vb.pack_start(hb, False, False, 0) self.suras.set_active(0) hb = Gtk.Box(spacing=7,orientation=Gtk.Orientation.HORIZONTAL) lab = Gtk.Label('الآيــــة') self.ayas.set_wrap(True) self.ayas.set_size_request(140, -1) hb.pack_start(lab, False, False, 0) hb.pack_end(self.ayas, False, False, 0) vb.pack_start(hb, False, False, 0) show_search = Gtk.Button('أظهر البحث') def show_search_cb(w): self.notebook.set_current_page(1) self.ok_result() show_search.connect('clicked', show_search_cb) vb.pack_end(show_search, False, False, 0) modif_list_tafsir = Gtk.Button('تعديل قائمة التفاسير') modif_list_tafsir.connect('clicked', self.show_modif_list_tafsir) vb.pack_end(modif_list_tafsir, False, False, 0) self.notebook.append_page(vb, Gtk.Label('تصفح')) vb = Gtk.Box(spacing=7,orientation=Gtk.Orientation.VERTICAL) vb.set_border_width(5) self.tafsirs1 = asm_customs.combo(self.store_tafasir, 'التفسير') self.tafsirs1.set_wrap_width(self.n_warp) vb.pack_start(self.tafsirs1, False, False, 0) self.tafsirs1.set_active(0) self.search_entry = Gtk.SearchEntry() self.search_entry.set_placeholder_text('بحث في القرآن') self.search_entry.connect('activate', self.search_on_quran) hbox = Gtk.HBox(False, 2) hbox.pack_start(self.search_entry, True, True, 0) vb.pack_start(hbox, False, False, 0) self.store_search = Gtk.TreeStore(int, int, str) self.tree_search = asm_customs.TreeIndex() self.tree_search.set_model(self.store_search) cell = Gtk.CellRendererText() column = Gtk.TreeViewColumn('السورة', cell, text=2) self.tree_search.append_column(column) cell = Gtk.CellRendererText() column = Gtk.TreeViewColumn('الآية', cell, text=1) self.tree_search.append_column(column) self.sel_search = self.tree_search.get_selection() self.tree_search.connect("cursor-changed", self.ok_result) scroll = Gtk.ScrolledWindow() scroll.set_shadow_type(Gtk.ShadowType.IN) scroll.add(self.tree_search) show_browse = Gtk.Button('أظهر التصفح') def show_browse_cb(w): self.notebook.set_current_page(0) self.select_tafsir() show_browse.connect('clicked', show_browse_cb) vb.pack_end(show_browse, False, False, 0) scroll.set_policy(Gtk.PolicyType.NEVER, Gtk.PolicyType.AUTOMATIC) vb.pack_start(scroll, True, True, 0) self.notebook.append_page(vb, Gtk.Label('بحث')) vbox.pack_start(self.notebook, True, True, 0) self.pack_start(vbox, False, False, 0) self.view_tafsir = asm_customs.ViewClass() self.view_tafsir_bfr = self.view_tafsir.get_buffer() self.view_tafsir.connect_after("populate-popup", asm_popup.populate_popup, self.parent) self.view_quran_tag = self.view_tafsir_bfr.create_tag("quran") self.view_search_tag = self.view_tafsir_bfr.create_tag("search") self.change_font() self.scroll_nasse = Gtk.ScrolledWindow() self.scroll_nasse.set_shadow_type(Gtk.ShadowType.IN) self.scroll_nasse.add(self.view_tafsir) self.pack_start(self.scroll_nasse, True, True, 0) self.tafsirs.connect('changed', self.select_tafsir) self.tafsirs1.connect('changed', self.ok_result) self.change_sura = self.suras.connect('changed', self.select_sura) self.change_aya = self.ayas.connect('value-changed', self.select_aya) self.show_all() self.select_aya(self.ayas)