def show_side(self, *a): if asm_config.getn('show_side') == 0: self.list_books.vbox_side.hide() asm_config.setv('show_side', 1) else: self.list_books.vbox_side.show_all() asm_config.setv('show_side', 0)
def set_tashkil(self, *a): if asm_config.getn('tashkil') == 0: asm_config.setv('tashkil', 1) self.del_tashkil.set_label("حذف التّشكيل") else: asm_config.setv('tashkil', 0) self.del_tashkil.set_label("إعادة التّشكيل") self.viewerbook.set_tashkil()
def expand_shorts(self, txt): if asm_config.getn('nmbrs') == 0: for i, j in self.altered: txt = txt.replace(i, j) else: for i, j in self.altered0: txt = txt.replace(i, j) for i, j in self.shorts1: txt = txt.replace(i, j) for i, j in self.shorts2: txt = txt.replace(i, j) return txt
def build(self, *a): self.id_page_last = 0 try: self.list_sura = pickle.load( open(join(asm_path.MOSHAF_DIR, 'list_sura.pkl'), "rb")) self.list_ahzab = pickle.load( open(join(asm_path.MOSHAF_DIR, 'list_ahzab.pkl'), "rb")) except: self.list_sura = [] self.list_ahzab = [] self.my_aya = {} self.page_id = asm_config.getn('quran_pos') Gtk.HPaned.__init__(self) self.set_border_width(3) self.set_position(150) # a الفهرس----------------------------------- vbox = Gtk.VBox(False, 3) index_by = Gtk.ComboBoxText() index_by.append_text('السور') index_by.append_text('الأجزاء') index_by.append_text('الصفحات') index_by.set_active(0) vbox.pack_start(index_by, False, False, 0) self.tree_index = Gtk.TreeView() self.tree_index.set_name('Tree') self.tree_index.set_headers_visible(False) cell = Gtk.CellRendererText() cell.set_property("wrap-width", 150) kal = Gtk.TreeViewColumn('الفهرس', cell, text=1) self.tree_index.append_column(kal) self.store_index = Gtk.TreeStore(int, str) self.tree_index.set_model(self.store_index) self.sel_index = self.tree_index.get_selection() self.changed_index = self.tree_index.connect("cursor-changed", self.ok_index) scroll = Gtk.ScrolledWindow() scroll.set_shadow_type(Gtk.ShadowType.IN) scroll.add(self.tree_index) scroll.get_hadjustment().set_value(0.0) vbox.pack_start(scroll, True, True, 0) self.pack1(vbox, True, True) self.view_quran = WebKit2.WebView() self.view_quran.connect("context-menu", self.populate_page_popup_cb) scroll = Gtk.ScrolledWindow() scroll.set_shadow_type(Gtk.ShadowType.IN) scroll.add(self.view_quran) self.view_quran.set_zoom_level(True) self.pack2(scroll, True, True) index_by.connect('changed', self.load_index) self.load_index(index_by)
def set_tashkil(self, *a): self.show_page(self.all_in_page[1]) if asm_config.getn('tashkil') == 0: now_text = asm_araby.stripHarakat(self.all_in_page[2]) else: now_text = self.all_in_page[2] ch = self.stack.get_visible_child_name() if ch == "n1": self.view_nasse_bfr1.set_text(now_text) self.view_nasse_bfr1.insert(self.view_nasse_bfr1.get_end_iter(), " \n") else: self.view_nasse_bfr2.set_text(now_text) self.view_nasse_bfr2.insert(self.view_nasse_bfr2.get_end_iter(), " \n")
def scroll_event(self, sc, ev): if asm_config.getn('mouse_browse') == 0: return vadj = sc.get_vadjustment() v = vadj.get_value() if self.vadj_last == v: if self.vadj_list == [v] * 5: if ev.direction == 1: self.next_page() if ev.direction == 0: self.previous_page() if ev.direction == 4: if ev.delta_y > 0: self.next_page() if ev.delta_y < 0: self.previous_page() self.vadj_list.clear() else: self.vadj_list.append(v) else: self.vadj_last = v self.vadj_list.clear()
def show_page(self, id_page): self.all_in_page = self.db.get_text_body( id_page) #rowid, id, text, part, page, hno, sora, aya, na if asm_config.getn('tashkil') == 0: now_text = asm_araby.stripHarakat(self.all_in_page[2]) else: now_text = self.all_in_page[2] self.has_commment(id_page) titles = self.db.titles_page(self.all_in_page[1]) ch = self.stack.get_visible_child_name() if ch == "n1": self.view_nasse_bfr2.set_text(now_text) self.view_nasse_bfr2.insert(self.view_nasse_bfr2.get_end_iter(), " \n") try: asm_customs.with_tag(self.view_nasse_bfr2, self.view_title_tag2, titles) except: pass else: self.view_nasse_bfr1.set_text(now_text) self.view_nasse_bfr1.insert(self.view_nasse_bfr1.get_end_iter(), " \n") try: asm_customs.with_tag(self.view_nasse_bfr1, self.view_title_tag1, titles) except: pass self.is_tafsir(self.all_in_page) self.current_id = self.all_in_page[0] self.ent_page.set_text(str(self.all_in_page[4])) self.ent_part.set_text(str(self.all_in_page[3])) text = self.parent.entry_search.get_text() if len(text) >= 2 and text != "ال": self.search_now(text) if len(self.opened_old) == 0: self.opened_old.append(id_page) elif id_page != self.opened_old[-1]: self.opened_old.append(id_page) self.stack.show_all() self.scroll_nasse1.get_vadjustment().set_value(0.0) self.scroll_nasse2.get_vadjustment().set_value(0.0)
def start_session(self, *a): session = eval(asm_config.getv('start_session')) if asm_config.getn('saved_session') == 0: return if session[1][-1] == 1: if len(session[0][0]) == 0: self.notebook.set_current_page(session[1][-2]) else: self.notebook.set_current_page(1) elif session[1][-1] in [0, 2, 3, 4, 5, 6, 8]: self.notebook.set_current_page(session[1][-1]) else: self.notebook.set_current_page(session[1][-2]) if session[0] == []: return for id_book in session[0][0]: book = self.db.file_book(id_book) sr = OpenBook(self, book, id_book) self.viewerbook.append_page( sr, TabLabel(sr, self.db.tit_book(id_book)[1])) sr.set_index() sr.scroll_search.hide() self.viewerbook.set_current_page(session[0][1])
def scroll_event(self, sc, ev): if asm_config.getn('mouse_browse') == 0: return vadj = sc.get_vadjustment() p = vadj.get_page_size() m = vadj.get_upper() - p v = vadj.get_value() if m == v: if self.vadj_page_next == 5: self.next_page() self.vadj_page_next = 0 else: self.vadj_page_next += 1 elif v <= 1.0: if self.vadj_page_prev == 5: if ev.get_scroll_deltas()[2] == -1.0: self.previous_page() if ev.get_scroll_deltas()[2] == 1.0: self.next_page() self.vadj_page_prev = 0 else: self.vadj_page_prev += 1 else: self.vadj_page_next = 0 self.vadj_page_prev = 0
def convert_browse(self, *a): ls = [1, 2, 5, 10, 15, 20, 30] self.stack.set_transition_duration(ls[asm_config.getn('time_browse')] * 100) GObject.source_remove(self.timeo) self.timeo = GLib.timeout_add( 100 / ((asm_config.getn('auto_browse')) * 8), self.autoScroll, None) if asm_config.getn('style_browse') == 0: self.style_browse_next = Gtk.StackTransitionType.NONE self.style_browse_prev = Gtk.StackTransitionType.NONE elif asm_config.getn('style_browse') == 1: self.style_browse_next = Gtk.StackTransitionType.CROSSFADE self.style_browse_prev = Gtk.StackTransitionType.CROSSFADE elif asm_config.getn('style_browse') == 2: self.style_browse_next = Gtk.StackTransitionType.SLIDE_LEFT self.style_browse_prev = Gtk.StackTransitionType.SLIDE_RIGHT elif asm_config.getn('style_browse') == 3: self.style_browse_next = Gtk.StackTransitionType.SLIDE_UP self.style_browse_prev = Gtk.StackTransitionType.SLIDE_DOWN
def build(self,*a): self.set_transition_type(Gtk.StackTransitionType.SLIDE_LEFT_RIGHT) self.set_transition_duration(300) self.list_btn_colors = [] #--------------------------- vb = Gtk.Box(spacing=3,orientation=Gtk.Orientation.VERTICAL) btn_color = Gtk.ToolButton() btn_color.set_label('الألوان') vb.pack_start(btn_color, False, False, 0) btn_color.connect('clicked', lambda *a: self.set_visible_child_name('n1')) btn_font = Gtk.ToolButton() btn_font.set_label('الخطوط') vb.pack_start(btn_font, False, False, 0) btn_font.connect('clicked', lambda *a: self.set_visible_child_name('n2')) vb.pack_start(Gtk.Separator(), False, False, 3) btn_wins = Gtk.ToolButton() btn_wins.set_label('النوافذ') vb.pack_start(btn_wins, False, False, 0) btn_wins.connect('clicked', lambda *a: self.set_visible_child_name('n3')) btn_option = Gtk.ToolButton() btn_option.set_label('العمليات') vb.pack_start(btn_option, False, False, 0) btn_option.connect('clicked', lambda *a: self.set_visible_child_name('n4')) btn_prefe = Gtk.ToolButton() btn_prefe.set_label('الخيارات') vb.pack_start(btn_prefe, False, False, 0) btn_prefe.connect('clicked', lambda *a: self.set_visible_child_name('n5')) vb.pack_start(Gtk.Separator(), False, False, 3) btn_info = Gtk.ToolButton() btn_info.set_label('معلومات') vb.pack_start(btn_info, False, False, 0) btn_info.connect('clicked', lambda *a: self.set_visible_child_name('n6')) btn_about = Gtk.ToolButton() btn_about.set_label('حول المكتبة') btn_about.connect('clicked', lambda *a: About(self.parent)) vb.pack_start(btn_about, False, False, 0) self.add_named(vb, 'n0') #---------------------------- vb = Gtk.Box(spacing=3,orientation=Gtk.Orientation.VERTICAL) btn_back = Gtk.ToolButton() btn_back.set_label('الرجوع للخيارات') vb.pack_start(btn_back, False, False, 0) vb.pack_start(Gtk.Separator(), False, False, 3) btn_back.connect('clicked', lambda *a: self.set_visible_child_name('n0')) ls = ['أصفر' ,'أزرق','أحمر','أخضر','بنفسجي','معتم', 'مخصص'] self.style_btn = Gtk.ComboBoxText() self.style_btn.set_name('style_btn') for a in ls: self.style_btn.append_text(a) self.style_btn.set_active(asm_config.getn('theme')) self.style_btn.connect("changed", self.specified) hb = Gtk.Box(orientation=Gtk.Orientation.HORIZONTAL) self.btn_specific = Gtk.Button('تخصيصه') self.btn_specific.connect('clicked', self.specific_cb) hb.pack_start(self.btn_specific, False, False, 0) hb.pack_end(self.style_btn, False, False, 0) hb.pack_end(Gtk.Label('الألوان : '), False, False, 0) vb.pack_start(hb, False, False, 0) self.vbox_color = Gtk.Box(spacing=10,orientation=Gtk.Orientation.VERTICAL) self.vbox_color.set_border_width(10) if asm_config.getn('theme') == 6: self.btn_specific.set_no_show_all(True) self.btn_specific.hide() else: self.vbox_color.set_no_show_all(True) self.vbox_color.hide() self.set_btns_color() scroll = Gtk.ScrolledWindow() scroll.set_shadow_type(Gtk.ShadowType.NONE) scroll.add(self.vbox_color) vb.pack_start(scroll, True, True, 0) self.add_named(vb, 'n1') #---------------------------- vb = Gtk.Box(spacing=3,orientation=Gtk.Orientation.VERTICAL) vb_font = Gtk.Box(spacing=3,orientation=Gtk.Orientation.VERTICAL) btn_back = Gtk.ToolButton() btn_back.set_label('الرجوع للخيارات') vb.pack_start(btn_back, False, False, 0) vb.pack_start(Gtk.Separator(), False, False, 3) btn_back.connect('clicked', lambda *a: self.set_visible_child_name('n0')) list_fonts = [['خط النافذة','_window'], ['قائمة الأقسام','_lists_parts'], ['قائمة الكتب','_lists_books'], ['القوائم الجانبية','_lists_titles'], ['نص الكتاب','_nasse_books'], ['نصوص أخرى','_nasse_others'], ['العناوين','_anawin'], ['القرآن الكريم','_quran']] for a in list_fonts: hbox = Gtk.Box(spacing=10,orientation=Gtk.Orientation.HORIZONTAL) btn = Gtk.FontButton.new_with_font(asm_config.getv('font{}'.format(a[1]))) btn.set_name('font'+a[1]) btn.connect('font-set',self.ch_font) hbox.pack_end(btn, False, False, 0) hbox.pack_start(Gtk.Label(a[0]), False, False, 0) vb_font.pack_start(hbox, False, False, 0) scroll = Gtk.ScrolledWindow() scroll.set_shadow_type(Gtk.ShadowType.NONE) scroll.set_policy(Gtk.PolicyType.NEVER, Gtk.PolicyType.AUTOMATIC) scroll.add(vb_font) vb.pack_start(scroll, True, True, 0) sf = asm_config.getf('scale_fonts') ad1 = Gtk.Adjustment(sf, 1, 2, 5, 0.0, 0) self.h_scale = Gtk.Scale(orientation=Gtk.Orientation.HORIZONTAL, adjustment=ad1) self.h_scale.set_draw_value(True) self.h_scale.set_has_origin(True) self.h_scale.set_digits(1) self.h_scale.set_valign(Gtk.Align.START) self.h_scale.connect("value-changed", self.scale_fonts_c) self.h_scale.set_hexpand(True) self.h_scale.add_mark(1.0,0,None) self.h_scale.add_mark(1.1,0,None) self.h_scale.add_mark(1.2,0,None) self.h_scale.add_mark(1.3,0,None) self.h_scale.add_mark(1.4,0,None) self.h_scale.add_mark(1.5,0,None) self.h_scale.add_mark(1.6,0,None) self.h_scale.add_mark(1.7,0,None) self.h_scale.add_mark(1.8,0,None) self.h_scale.add_mark(1.9,0,None) self.h_scale.add_mark(2.0,0,None) vb.pack_start(Gtk.Separator(), False, False, 3) vb.pack_start(self.h_scale, False, False, 0) self.add_named(vb, 'n2') #---------------------------- vb = Gtk.Box(spacing=3,orientation=Gtk.Orientation.VERTICAL) btn_back = Gtk.ToolButton() btn_back.set_label('الرجوع للخيارات') vb.pack_start(btn_back, False, False, 0) vb.pack_start(Gtk.Separator(), False, False, 3) btn_back.connect('clicked', lambda *a: self.set_visible_child_name('n0')) btn_win_organize = Gtk.ToolButton() btn_win_organize.set_label('تعديل المكتبة') btn_win_organize.connect('clicked', self.cheeck_page, 1) vb.pack_start(btn_win_organize, False, False, 0) btn_win_siana = Gtk.ToolButton() btn_win_siana.set_label('نافذة الصيانة') btn_win_siana.connect('clicked', self.cheeck_page, 2) vb.pack_start(btn_win_siana, False, False, 0) btn_win_add = Gtk.ToolButton() btn_win_add.set_label('نافذة الاستيراد') btn_win_add.connect('clicked', self.cheeck_page, 3) vb.pack_start(btn_win_add, False, False, 0) btn_win_export = Gtk.ToolButton() btn_win_export.set_label('نافذة التصدير') btn_win_export.set_sensitive(False) #btn_win_export.connect('clicked', lambda *a: AddBooks(self.parent)) vb.pack_start(btn_win_export, False, False, 0) btn_win_index = Gtk.ToolButton() btn_win_index.set_label('نافذة الفهرسة') btn_win_index.set_sensitive(False) vb.pack_start(btn_win_index, False, False, 0) self.add_named(vb, 'n3') #---------------------------- vb = Gtk.Box(spacing=3,orientation=Gtk.Orientation.VERTICAL) btn_back = Gtk.ToolButton() btn_back.set_label('الرجوع للخيارات') vb.pack_start(btn_back, False, False, 0) vb.pack_start(Gtk.Separator(), False, False, 3) btn_back.connect('clicked', lambda *a: self.set_visible_child_name('n0')) self.add_db = Gtk.ToolButton() self.add_db.set_label('إنشاء مكتبة مفرّغة') self.add_db.connect('clicked', self.new_db) vb.pack_start(self.add_db, False, False, 0) self.b_dest = Gtk.ToolButton() self.b_dest.set_label('تغيير مسار المكتبة') self.b_dest.connect('clicked', self.change_path_db) self.b_path = Gtk.ToolButton() self.b_path.set_label('عرض المسار الحاليّ') self.b_path.connect('clicked', lambda *a: asm_customs.info(self.parent, asm_config.getv('path'))) vb.pack_start(self.b_dest, False, False, 0) vb.pack_start(self.b_path, False, False, 0) self.copy_to_home = Gtk.ToolButton() self.copy_to_home.set_label('نسخ المكتبة إلى المنزل') self.copy_to_home.set_tooltip_text('هذا الخيار إذا كانت كتب المكتبة في دليل :\nلا يمكن الكتابة فيه') self.copy_to_home.connect('clicked', self.copy_to_home_cb) vb.pack_start(self.copy_to_home, False, False, 0) self.add_named(vb, 'n4') #---------------------------- vb = Gtk.Box(spacing=3,orientation=Gtk.Orientation.VERTICAL) btn_back = Gtk.ToolButton() btn_back.set_label('الرجوع للخيارات') vb.pack_start(btn_back, False, False, 0) vb.pack_start(Gtk.Separator(), False, False, 3) btn_back.connect('clicked', lambda *a: self.set_visible_child_name('n0')) self.saved_session = Gtk.CheckButton('حفظ الجلسة عند الإغلاق') vb.pack_start(self.saved_session, False, False, 0) if asm_config.getn('saved_session') == 1: self.saved_session.set_active(True) else: self.saved_session.set_active(False) self.saved_session.connect("toggled", self.saved_session_cb) self.active_mouse_browse = Gtk.CheckButton('التصفح بعجلة الفأرة') vb.pack_start(self.active_mouse_browse, False, False, 0) if asm_config.getn('mouse_browse') == 1: self.active_mouse_browse.set_active(True) else: self.active_mouse_browse.set_active( False) self.active_mouse_browse.connect("toggled", self.active_mouse_browse_cb) ls = ['بدون', 'اختفاء وظهور', 'زحلقة أفقية', 'زحلقة عمودية'] style_browse = Gtk.ComboBoxText() for a in ls: style_browse.append_text(a) style_browse.connect("changed", self.style_browse_cb) style_browse.set_active(asm_config.getn('style_browse')) hb = Gtk.Box(orientation=Gtk.Orientation.HORIZONTAL) hb.pack_start(Gtk.Label('نمط التصفح'), False, False, 0) hb.pack_end(style_browse, False, False, 0) vb.pack_start(hb, False, False, 0) ls = ['0.1', '0.2', '0.5', '1', '1.5', '2', '3'] time_browse = Gtk.ComboBoxText() for a in ls: time_browse.append_text(a) time_browse.connect("changed", self.time_browse_cb) time_browse.set_active(asm_config.getn('time_browse')) hb = Gtk.Box(orientation=Gtk.Orientation.HORIZONTAL) hb.pack_start(Gtk.Label('زمن التصفح بالثواني'), False, False, 0) hb.pack_end(time_browse, False, False, 0) vb.pack_start(hb, False, False, 0) ls = ['1', '2', '3', '4', '5', '10'] auto_browse = Gtk.ComboBoxText() for a in ls: auto_browse.append_text(a) auto_browse.connect("changed", self.auto_browse_cb) idx = ls.index(str(asm_config.getv('auto_browse')), ) auto_browse.set_active(idx) hb = Gtk.Box(orientation=Gtk.Orientation.HORIZONTAL) hb.pack_start(Gtk.Label('سرعة الاستعراض الآلي'), False, False, 0) hb.pack_end(auto_browse, False, False, 0) vb.pack_start(hb, False, False, 0) self.numbers = Gtk.CheckButton('استعمال أرقام المغاربة') vb.pack_start(self.numbers, False, False, 0) if asm_config.getn('nmbrs') == 1: self.numbers.set_active(True) else: self.numbers.set_active(False) self.numbers.connect("toggled", self.numbers_cb) self.add_named(vb, 'n5') #---------------------------- vb = Gtk.Box(spacing=3,orientation=Gtk.Orientation.VERTICAL) btn_back = Gtk.ToolButton() btn_back.set_label('الرجوع للخيارات') vb.pack_start(btn_back, False, False, 0) vb.pack_start(Gtk.Separator(), False, False, 3) btn_back.connect('clicked', lambda *a: self.set_visible_child_name('n0')) self.n_books_parts = Gtk.ToolButton() self.n_books_parts.set_label('عدد الكتب') self.n_books_parts.connect('clicked', self.count_cb) vb.pack_start(self.n_books_parts, False, False, 0) self.rapid_count = Gtk.ToolButton() self.rapid_count.set_label('إحصاء سريع') self.rapid_count.connect('clicked', self.count_fast) self.detail_count = Gtk.ToolButton() self.detail_count.set_label('إحصاء مفصل') self.detail_count.connect('clicked', self.count_detail) vb.pack_start(self.rapid_count, False, False, 0) vb.pack_start(self.detail_count, False, False, 0) web_page = Gtk.LinkButton.new_with_label("http://sourceforge.net/projects/asmaalibrary/files/", 'صفحة البرنامج على الشّبكة') vb.pack_start(web_page, False, False, 0) db_void = Gtk.LinkButton.new_with_label("http://sourceforge.net/projects/asmaalibrary/files/AsmaaLibrary.tar.gz/download", 'تنزيل قاعدة بيانات للتجربة') vb.pack_start(db_void, False, False, 0) db_all = Gtk.LinkButton.new_with_label("http://sourceforge.net/projects/asmaalibrary/files/AsmaaLibrary.tar.xz/download", 'تنزيل مكتبة كاملة 4000 كتاب') vb.pack_start(db_all, False, False, 0) self.add_named(vb, 'n6') self.show_all()
def build(self, *a): self.select_part = '' self.select_book = '' Gtk.HBox.__init__(self, False, 3) self.set_border_width(3) self.vbox_side = Gtk.VBox(False, 0) # a أيقونات الكتب-------------------------- self.vbox_iconview = Gtk.VBox(False, 5) self.nb = Gtk.Notebook() self.nb.set_show_tabs(False) vbox = Gtk.VBox(False, 0) self.particon = GdkPixbuf.Pixbuf.new_from_file_at_size( join(asm_path.ICON_DIR, 'Groups-128.png'), 128, 128) self.bookicon = GdkPixbuf.Pixbuf.new_from_file_at_size( join(asm_path.ICON_DIR, 'Book-128.png'), 120, 120) sw = Gtk.ScrolledWindow() vbox.pack_start(sw, True, True, 0) self.store_parts_icon = Gtk.ListStore(str, GdkPixbuf.Pixbuf, int) self.iconview_parts = Gtk.IconView() self.iconview_parts.set_name('iconview') self.iconview_parts.set_reorderable(True) self.iconview_parts.set_model(self.store_parts_icon) self.iconview_parts.override_font(Pango.FontDescription('KacstOne 20')) self.iconview_parts.set_text_column(COL_NAME) self.iconview_parts.set_pixbuf_column(COL_PIXBUF) self.iconview_parts.set_item_width(150) self.iconview_parts.set_row_spacing(50) self.iconview_parts.connect("item-activated", self.item_part_active) sw.add(self.iconview_parts) self.iconview_parts.grab_focus() self.nb.append_page(vbox, Gtk.Label('0')) vbox = Gtk.VBox(False, 0) sw = Gtk.ScrolledWindow() vbox.pack_start(sw, True, True, 0) self.store_books_icon = Gtk.ListStore(str, GdkPixbuf.Pixbuf, int) self.iconview_books = Gtk.IconView() self.iconview_books.set_name('iconview') self.iconview_books.set_model(self.store_books_icon) self.iconview_books.override_font(Pango.FontDescription('KacstOne 16')) self.iconview_books.set_text_column(COL_NAME) self.iconview_books.set_pixbuf_column(COL_PIXBUF) self.iconview_books.connect("selection_changed", self.item_book_select) self.iconview_books.set_item_width(120) self.iconview_books.set_row_spacing(40) sw.add(self.iconview_books) self.iconview_books.grab_focus() self.nb.append_page(vbox, Gtk.Label('1')) self.vbox_iconview.pack_start(self.nb, True, True, 0) # a قائمة الكتب---------------------------- self.particon1 = GdkPixbuf.Pixbuf.new_from_file_at_size( join(asm_path.ICON_DIR, 'Groups-128.png'), 32, 32) self.bookicon1 = GdkPixbuf.Pixbuf.new_from_file_at_size( join(asm_path.ICON_DIR, 'Book-128.png'), 28, 28) scroll = Gtk.ScrolledWindow() self.tree_parts = Gtk.TreeView() self.tree_parts.set_name('Tree') self.tree_parts.set_headers_visible(False) self.sel_parts = self.tree_parts.get_selection() cell = Gtk.CellRendererText() cell.set_property("ellipsize", Pango.EllipsizeMode.END) kal = Gtk.TreeViewColumn('الأقسام') icon_renderer = Gtk.CellRendererPixbuf() kal.pack_start(icon_renderer, False) kal.pack_start(cell, False) kal.add_attribute(icon_renderer, "pixbuf", 2) kal.add_attribute(cell, "text", 1) self.tree_parts.connect("row-activated", self.active_row_parts) self.tree_parts.append_column(kal) self.store_parts_list = Gtk.ListStore(int, str, GdkPixbuf.Pixbuf) scroll.add(self.tree_parts) self.tree_parts.set_model(self.store_parts_list) self.load_list() self.nb.append_page(scroll, Gtk.Label('2')) scroll = Gtk.ScrolledWindow() self.tree_books = Gtk.TreeView() self.tree_books.set_name('Tree') self.tree_books.set_headers_visible(False) self.sel_books = self.tree_books.get_selection() cell = Gtk.CellRendererText() cell.set_property("ellipsize", Pango.EllipsizeMode.END) kal = Gtk.TreeViewColumn('الكتب') icon_renderer = Gtk.CellRendererPixbuf() kal.pack_start(icon_renderer, False) kal.pack_start(cell, False) kal.add_attribute(icon_renderer, "pixbuf", 2) kal.add_attribute(cell, "text", 1) self.tree_books.connect("row-activated", self.active_row_books) self.tree_books.append_column(kal) self.store_books_list = Gtk.ListStore(int, str, GdkPixbuf.Pixbuf) scroll.add(self.tree_books) self.tree_books.set_model(self.store_books_list) self.nb.append_page(scroll, Gtk.Label('3')) # a بطاقة كتاب-------------------------------- self.view_info = asm_customs.ViewClass() self.view_info.set_name('View') self.view_info_bfr = self.view_info.get_buffer() scroll = Gtk.ScrolledWindow() scroll.set_shadow_type(Gtk.ShadowType.IN) scroll.add(self.view_info) scroll.set_size_request(250, 200) self.vbox_side.pack_start(scroll, False, False, 0) # a ------------------------------------------ stack = Gtk.Stack() stack.set_transition_type(Gtk.StackTransitionType.SLIDE_LEFT_RIGHT) stack.set_transition_duration(1000) # a الكتب الأخيرة------------------------------ vbox = Gtk.Box(spacing=2, orientation=Gtk.Orientation.VERTICAL) # vbox.set_border_width(3) self.tree_last = Gtk.TreeView() self.tree_last.set_name('Tree') self.tree_last.set_headers_visible(False) self.tree_last.set_size_request(250, -1) self.sel_last = self.tree_last.get_selection() cell = Gtk.CellRendererText() kal = Gtk.TreeViewColumn('الكتب الأخيرة', cell, text=1) self.tree_last.append_column(kal) self.store_last = Gtk.ListStore(int, str) self.load_last() self.tree_last.set_model(self.store_last) scroll = Gtk.ScrolledWindow() scroll.set_shadow_type(Gtk.ShadowType.IN) scroll.add(self.tree_last) self.tree_last.connect("row-activated", self.ok_last) vbox.pack_start(scroll, True, True, 0) remove_all = Gtk.Button("مسح القائمة") remove_all.connect('clicked', self.rm_last_all) vbox.pack_start(remove_all, False, False, 0) stack.add_titled(vbox, 'n0', 'الكتب الأخيرة') # a المفضلة----------------------------------- vbox = Gtk.Box(spacing=2, orientation=Gtk.Orientation.VERTICAL) # vbox.set_border_width(3) self.tree_favorite = Gtk.TreeView() self.tree_favorite.set_name('Tree') self.tree_favorite.set_headers_visible(False) self.tree_favorite.set_size_request(250, -1) self.sel_favorite = self.tree_favorite.get_selection() cell = Gtk.CellRendererText() kal = Gtk.TreeViewColumn('الكتب المفضلة', cell, text=1) self.tree_favorite.append_column(kal) self.store_favorite = Gtk.ListStore(int, str) self.load_fav() self.tree_favorite.set_model(self.store_favorite) scroll = Gtk.ScrolledWindow() scroll.set_shadow_type(Gtk.ShadowType.IN) scroll.add(self.tree_favorite) self.tree_favorite.connect("row-activated", self.ok_fav) vbox.pack_start(scroll, True, True, 0) self.tree_books.connect("cursor-changed", self.select_row, self.sel_books) self.tree_last.connect("cursor-changed", self.select_row, self.sel_last) self.tree_favorite.connect("cursor-changed", self.select_row, self.sel_favorite) remove_one = Gtk.Button("حذف من المفضلة") remove_one.connect('clicked', self.rm_fav_one) vbox.pack_start(remove_one, False, False, 0) stack.add_titled(vbox, 'n1', 'الكتب المفضلة') hbox = Gtk.Box(spacing=2, orientation=Gtk.Orientation.HORIZONTAL) stack_switcher = Gtk.StackSwitcher() stack_switcher.set_stack(stack) hbox.pack_start(stack_switcher, True, False, 0) self.vbox_side.pack_start(hbox, False, False, 3) self.vbox_side.pack_start(stack, True, True, 0) self.pack_start(self.vbox_iconview, True, True, 0) self.pack_start(self.vbox_side, False, False, 0) self.show_all() #----------------------------------------- if asm_config.getn('view_books') == 0: pass else: self.nb.set_current_page(2)
def build(self, *a): Gtk.Dialog.__init__(self, parent=self.parent) self.set_border_width(3) self.set_icon_name("asmaa") area = self.get_content_area() area.set_spacing(3) 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.pack_end(stack_switcher) vbox1 = Gtk.Box(spacing=3, orientation=Gtk.Orientation.VERTICAL) vbox2 = Gtk.Box(spacing=3, orientation=Gtk.Orientation.VERTICAL) self.set_size_request(600, 450) self.connect('delete-event', lambda w, *a: w.hide() or True) #--------------------------------------------------- hbox = Gtk.Box(spacing=10, orientation=Gtk.Orientation.HORIZONTAL) self.entry_search = Gtk.SearchEntry() # self.entry_search.set_size_request(400,-1) try: self.list_terms = pickle.load( open(join(asm_path.HOME_DIR, u'last-terms.pkl'), "rb")) except: self.list_terms = [] completion = Gtk.EntryCompletion() self.list_ts = Gtk.ListStore(str) for a in self.list_terms: self.list_ts.append([a]) completion.set_model(self.list_ts) completion.set_text_column(0) self.entry_search.set_completion(completion) self.entry_search.set_size_request(500, -1) self.entry_search.connect('activate', self.search) self.entry_search.set_placeholder_text('أدخل النص المراد البحث عنه') self.btn_search = asm_customs.ButtonClass('بحث') hb_bar.pack_start(self.btn_search) hb_bar.pack_start(self.entry_search) self.btn_search.connect('clicked', self.search) vbox1.pack_start(hbox, False, False, 0) #------------------------------------------------------- hbox = Gtk.Box(spacing=7, orientation=Gtk.Orientation.HORIZONTAL) vbox = Gtk.Box(spacing=7, orientation=Gtk.Orientation.VERTICAL) hb = Gtk.Box(spacing=7, orientation=Gtk.Orientation.HORIZONTAL) self.ent_search = Gtk.SearchEntry() self.ent_search.set_placeholder_text('بحث عن كتاب') self.ent_search.connect('changed', self.search_entry_cb) hb.pack_end(self.ent_search, False, False, 0) self.ent_search.connect('activate', self.search_cb) vbox.pack_start(hb, False, False, 0) hbox.pack_start(vbox, False, False, 0) self.store_fields = Gtk.ListStore(GObject.TYPE_BOOLEAN, GObject.TYPE_STRING) self.load_fields() self.tree_fields = Gtk.TreeView(self.store_fields) self.tree_fields.set_rules_hint(True) 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=1) columntext.set_expand(True) columntoggle.add_attribute(celltoggle, "active", 0) celltoggle.connect('toggled', self.fixed_toggled_field, self.store_fields) self.tree_fields.append_column(columntoggle) self.tree_fields.append_column(columntext) scroll = Gtk.ScrolledWindow() scroll.set_shadow_type(Gtk.ShadowType.IN) scroll.add(self.tree_fields) vbox.pack_start(scroll, True, True, 0) self.store_books = Gtk.TreeStore(GObject.TYPE_BOOLEAN, GObject.TYPE_STRING, GObject.TYPE_INT) self.load_books() 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) columntoggle.set_clickable(True) columntoggle.connect('clicked', lambda *a: self.tree_books.collapse_all()) self.columntext1 = Gtk.TreeViewColumn("علّم جميع الكتب", celltext, text=1) self.columntext1.set_clickable(True) self.columntext1.connect('clicked', self.select_all) self.columntext1.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(self.columntext1) hbox.pack_start(scroll, True, True, 0) vbox1.pack_start(hbox, True, True, 0) #------------------------------------------------------- expander = Gtk.Expander.new("خيارات متقدمة") notebk = Gtk.Notebook() expander.add(notebk) box = Gtk.Box(spacing=7, orientation=Gtk.Orientation.VERTICAL) box.set_border_width(7) notebk.append_page(box, Gtk.Label('مجالات البحث')) self.dict_field = {'nass': True, 'tit': False} self.in_nasse = Gtk.RadioButton.new_with_label_from_widget( None, u'في النصوص') self.in_nasse.set_name('nass') box.pack_start(self.in_nasse, False, False, 0) self.in_nasse.connect('toggled', self.select_field, 1) self.in_title = Gtk.RadioButton.new_with_label_from_widget( self.in_nasse, u'في العناوين') self.in_title.set_name('tit') box.pack_start(self.in_title, False, False, 0) self.in_title.connect('toggled', self.select_field, 2) box = Gtk.Box(spacing=7, orientation=Gtk.Orientation.VERTICAL) box.set_border_width(7) notebk.append_page(box, Gtk.Label('خيارات البحث')) self.dict_perf = {} for a in [[u'بدون لواصق', u'identical'], [u'عبارة متصلة', u'cursive'], [u'إحدى الكلمات', u'one_term'], [u'مع التشكيل', u'with_tachkil']]: btn = Gtk.CheckButton(a[0]) btn.set_name(a[1]) box.pack_start(btn, False, False, 0) btn.connect('toggled', self.select_perf) self.dict_perf[a[1]] = False box = Gtk.Box(spacing=7, orientation=Gtk.Orientation.VERTICAL) box.set_border_width(7) notebk.append_page(box, Gtk.Label('حفظ النطاقات')) sav_field = Gtk.Button('حفظ النطاق المحدد') sav_field.set_tooltip_text("حفظ نطاق البحث المحدد حالياً") hb = Gtk.Box(spacing=7, orientation=Gtk.Orientation.HORIZONTAL) hb.pack_start(sav_field, False, False, 0) sav_field.connect('clicked', self.save_fields) self.ent_field = Gtk.Entry() self.ent_field.set_placeholder_text('اسم النطاق') hb.pack_start(self.ent_field, False, False, 0) box.pack_start(hb, False, False, 0) hb = Gtk.Box(spacing=7, orientation=Gtk.Orientation.HORIZONTAL) rm_field = Gtk.Button('حذف النطاق المحدد') hb.pack_start(rm_field, False, False, 0) box.pack_start(hb, False, False, 0) def rm_field_cb(widget, *a): model, i = self.tree_fields.get_selection().get_selected() if i: nm = model.get_value(i, 1) if nm == u"المفضلة": return os.remove( join(asm_path.LIBRARY_DIR, u'fields-search', nm + '.pkl')) model.remove(i) rm_field.connect('clicked', rm_field_cb) box = Gtk.Box(spacing=7, orientation=Gtk.Orientation.VERTICAL) box.set_border_width(7) notebk.append_page(box, Gtk.Label('خيارات أخرى')) del_term = Gtk.Button('مسح الكلمات المحفوظة') hb = Gtk.Box(spacing=7, orientation=Gtk.Orientation.HORIZONTAL) hb.pack_start(del_term, False, False, 0) del_term.connect('clicked', self.del_history) box.pack_start(hb, False, False, 0) vbox1.pack_start(expander, False, False, 0) self.stack.add_titled(vbox1, 'n1', 'بحث عادي') hbox = Gtk.Box(spacing=7, orientation=Gtk.Orientation.HORIZONTAL) box = Gtk.Box(spacing=7, orientation=Gtk.Orientation.VERTICAL) box.set_border_width(7) self.dict_field_index = {'nass': True, 'tit': False} self.in_nasse_index = Gtk.RadioButton.new_with_label_from_widget( None, u'في النصوص') self.in_nasse_index.set_name('nass') box.pack_start(self.in_nasse_index, False, False, 0) self.in_nasse_index.connect('toggled', self.select_field_index, 1) self.in_title_index = Gtk.RadioButton.new_with_label_from_widget( self.in_nasse_index, u'في العناوين') self.in_title_index.set_name('tit') box.pack_start(self.in_title_index, False, False, 0) self.in_title_index.connect('toggled', self.select_field_index, 2) hbox.pack_start(box, False, False, 0) box = Gtk.Box(spacing=7, orientation=Gtk.Orientation.VERTICAL) box.set_border_width(7) self.dict_perf_index = {} for a in [[u'بدون لواصق', u'identical'], [u'عبارة متصلة', u'cursive'], [u'إحدى الكلمات', u'one_term'], [u'مع التشكيل', u'with_tachkil']]: btn = Gtk.CheckButton(a[0]) btn.set_name(a[1]) box.pack_start(btn, False, False, 0) btn.connect('toggled', self.select_perf_index) self.dict_perf_index[a[1]] = False hbox.pack_start(box, False, False, 0) vbox2.pack_start(hbox, True, True, 0) self.stack.add_titled(vbox2, 'n2', 'بحث مفهرس') if asm_config.getn('search') == 0: self.stack.set_visible_child_name("n1") else: self.stack.set_visible_child_name("n2") self.stack.show_all() area.pack_start(self.stack, True, True, 0)
def build(self, *a): self.set_title("مكتبة أسماء") self.set_icon_name('asmaa') self.set_default_size(1200, 700) self.maximize() self.connect("delete_event", self.delete_event_cb) self.connect("destroy", self.delete_event_cb) self.box = Gtk.Box(spacing=5, orientation=Gtk.Orientation.VERTICAL) hb_bar = Gtk.HeaderBar() hb_bar.set_show_close_button(True) self.set_titlebar(hb_bar) menu_wins = Gtk.Menu() win_quran = Gtk.ImageMenuItem.new_with_label("القرآن الكريم") win_quran.add_accelerator("activate", self.axl, Gdk.KEY_F1, 0, Gtk.AccelFlags.VISIBLE) img = Gtk.Image() img.set_from_file(join(asm_path.ICON_DIR, 'Quran-16.png')) win_quran.set_image(img) win_quran.connect('activate', lambda *a: self.notebook.set_current_page(2)) win_tafsir = Gtk.ImageMenuItem.new_with_label("التفاسير") win_tafsir.add_accelerator("activate", self.axl, Gdk.KEY_F2, 0, Gtk.AccelFlags.VISIBLE) img = Gtk.Image() img.set_from_file(join(asm_path.ICON_DIR, 'Tafsir-16.png')) win_tafsir.set_image(img) win_tafsir.connect('activate', lambda *a: self.notebook.set_current_page(4)) win_list = Gtk.ImageMenuItem.new_with_label("قائمة الكتب") win_list.add_accelerator("activate", self.axl, Gdk.KEY_F3, 0, Gtk.AccelFlags.VISIBLE) img = Gtk.Image() img.set_from_file(join(asm_path.ICON_DIR, 'Books-16.png')) win_list.set_image(img) win_list.connect('activate', lambda *a: self.notebook.set_current_page(0)) win_opened = Gtk.ImageMenuItem.new_with_label("الكتب المفتوحة") win_opened.add_accelerator("activate", self.axl, Gdk.KEY_F4, 0, Gtk.AccelFlags.VISIBLE) img = Gtk.Image() img.set_from_file(join(asm_path.ICON_DIR, 'Book-Open-16.png')) win_opened.set_image(img) win_opened.connect('activate', self.opened_book) win_waraka = Gtk.ImageMenuItem.new_with_label("أوراق البحث") win_waraka.add_accelerator("activate", self.axl, Gdk.KEY_F5, 0, Gtk.AccelFlags.VISIBLE) img = Gtk.Image() img.set_from_file(join(asm_path.ICON_DIR, 'Papers-16.png')) win_waraka.set_image(img) win_waraka.connect('activate', lambda *a: self.notebook.set_current_page(6)) win_special = Gtk.ImageMenuItem.new_with_label("نوافذ خاصة") win_special.add_accelerator("activate", self.axl, Gdk.KEY_F6, 0, Gtk.AccelFlags.VISIBLE) img = Gtk.Image() img.set_from_file(join(asm_path.ICON_DIR, 'Wins-16.png')) win_special.set_image(img) win_special.connect('activate', lambda *a: self.notebook.set_current_page(3)) win_help = Gtk.ImageMenuItem.new_with_label("صفحة المساعدة") win_help.add_accelerator("activate", self.axl, Gdk.KEY_F7, 0, Gtk.AccelFlags.VISIBLE) img = Gtk.Image() img.set_from_file(join(asm_path.ICON_DIR, 'Help-16.png')) win_help.set_image(img) win_help.connect('activate', lambda *a: self.notebook.set_current_page(5)) full_screen = Gtk.ImageMenuItem.new_with_label("ملء الشاشة") full_screen.add_accelerator("activate", self.axl, Gdk.KEY_F11, 0, Gtk.AccelFlags.VISIBLE) full_screen.connect('activate', self.full_screen) exit1 = Gtk.ImageMenuItem.new_with_label("خروج") exit1.add_accelerator("activate", self.axl, Gdk.KEY_Q, ACCEL_CTRL_MOD, Gtk.AccelFlags.VISIBLE) exit1.connect('activate', Gtk.main_quit) menu_wins.append(win_quran) menu_wins.append(win_tafsir) menu_wins.append(win_list) menu_wins.append(win_opened) menu_wins.append(win_waraka) menu_wins.append(win_special) menu_wins.append(win_help) menu_wins.append(Gtk.SeparatorMenuItem()) menu_wins.append(full_screen) menu_wins.append(exit1) btn_menu = Gtk.MenuButton() btn_menu.set_popup(menu_wins) img = Gtk.Image.new_from_icon_name('go-home-symbolic', 2) btn_menu.set_image(img) menu_wins.show_all() hb_bar.pack_start(btn_menu) btnbox_action = Gtk.Box(orientation=Gtk.Orientation.HORIZONTAL) Gtk.StyleContext.add_class(btnbox_action.get_style_context(), "linked") find_btn = Gtk.Button() img = Gtk.Image.new_from_icon_name('system-search-symbolic', 2) find_btn.set_image(img) find_btn.set_tooltip_text('نافذة البحث') find_btn.connect('clicked', lambda *a: self.search_win.show_all()) btnbox_action.pack_start(find_btn, False, False, 0) # a أحداث صفحة الكتاب المفتوح-------------------------------------- menu_action_book = Gtk.Menu() go_old = Gtk.ImageMenuItem.new_with_label("الذهاب إلى التصفح الأقدم") go_old.connect('activate', self.back_to_old) menu_action_book.append(go_old) go_new = Gtk.ImageMenuItem.new_with_label("الذهاب إلى التصفح الأحدث") go_new.connect('activate', self.advance_to_new) menu_action_book.append(go_new) menu_action_book.append(Gtk.SeparatorMenuItem()) add_fav = Gtk.ImageMenuItem.new_with_label("أضف الكتاب إلى المفضّلة") add_fav.connect('activate', self.add_to_favory) menu_action_book.append(add_fav) sav_mark = Gtk.ImageMenuItem.new_with_label( "حفظ موضع الصّفحة الحاليّة") sav_mark.connect('activate', self.site_in_book) menu_action_book.append(sav_mark) menu_action_book.append(Gtk.SeparatorMenuItem()) self.del_tashkil = Gtk.ImageMenuItem.new_with_label("حذف التّشكيل") if asm_config.getn('tashkil') == 0: self.del_tashkil.set_label("إعادة التّشكيل") self.del_tashkil.connect('activate', self.set_tashkil) menu_action_book.append(self.del_tashkil) menu_action_book.append(Gtk.SeparatorMenuItem()) win_marks = Gtk.ImageMenuItem.new_with_label( "نافذة العلامات المرجعيّة") win_marks.connect('activate', lambda *a: SavedMarks(self)) menu_action_book.append(win_marks) win_results = Gtk.ImageMenuItem.new_with_label("نافذة البحوث المحفوظة") win_results.connect('activate', lambda *a: SavedResult(self)) menu_action_book.append(win_results) self.btn_action_book = Gtk.MenuButton() img = Gtk.Image.new_from_icon_name('view-more-symbolic', 2) self.btn_action_book.set_image(img) self.btn_action_book.set_popup(menu_action_book) menu_action_book.show_all() btnbox_action.pack_start(self.btn_action_book, False, False, 0) # a أحداث صفحة قائمة الكتب-------------------------------------- menu_action_list = Gtk.Menu() self.show_icons = Gtk.ImageMenuItem.new_with_label("عرض بالأيقونات") self.show_icons.add_accelerator("activate", self.axl, Gdk.KEY_S, ACCEL_CTRL_MOD, Gtk.AccelFlags.VISIBLE) menu_action_list.append(self.show_icons) if asm_config.getn('view_books') == 0: self.show_icons.set_label("عرض بالقائمة") else: self.show_icons.set_label("عرض بالأيقونات") self.show_icons.connect('activate', self.change_view) menu_action_list.append(Gtk.SeparatorMenuItem()) side_panel = Gtk.ImageMenuItem.new_with_label( "إخفاء/عرض اللوح الجانبي") side_panel.connect('activate', self.show_side) menu_action_list.append(side_panel) menu_action_list.append(Gtk.SeparatorMenuItem()) organize = Gtk.ImageMenuItem.new_with_label("تنظيم المكتبة") organize.connect('activate', self.organize_page) menu_action_list.append(organize) menu_action_list.append(Gtk.SeparatorMenuItem()) win_marks = Gtk.ImageMenuItem.new_with_label( "نافذة العلامات المرجعيّة") win_marks.connect('activate', lambda *a: SavedMarks(self)) menu_action_list.append(win_marks) win_results = Gtk.ImageMenuItem.new_with_label("نافذة البحوث المحفوظة") win_results.connect('activate', lambda *a: SavedResult(self)) menu_action_list.append(win_results) self.btn_action_list = Gtk.MenuButton() img = Gtk.Image.new_from_icon_name('view-more-symbolic', 2) self.btn_action_list.set_image(img) self.btn_action_list.set_popup(menu_action_list) menu_action_list.show_all() btnbox_action.pack_start(self.btn_action_list, False, False, 0) # a أحداث صفحة تحرير الكتاب-------------------------------------- menu_action_edit = Gtk.Menu() find_replace = Gtk.ImageMenuItem.new_with_label("إيجاد واستبدال") find_replace.connect('activate', self.editbook.replace_all) find_replace.add_accelerator("activate", self.axl, Gdk.KEY_F, ACCEL_CTRL_MOD, Gtk.AccelFlags.VISIBLE) menu_action_edit.append(find_replace) back_old_text = Gtk.ImageMenuItem.new_with_label("أرجع النص الأصلي") back_old_text.add_accelerator("activate", self.axl, Gdk.KEY_Z, ACCEL_CTRL_MOD, Gtk.AccelFlags.VISIBLE) back_old_text.connect('activate', self.editbook.undo_cb) menu_action_edit.append(back_old_text) menu_action_edit.append(Gtk.SeparatorMenuItem()) change_info = Gtk.ImageMenuItem.new_with_label("تغيير معلومات الكتاب") menu_action_edit.append(change_info) change_info.connect('activate', lambda *a: EditBitaka(self, self.editbook.id_book)) menu_action_edit.append(Gtk.SeparatorMenuItem()) save_changed = Gtk.ImageMenuItem.new_with_label( "حفظ التغييرات في الكتاب") save_changed.add_accelerator("activate", self.axl, Gdk.KEY_S, ACCEL_CTRL_MOD, Gtk.AccelFlags.VISIBLE) save_changed.connect('activate', self.editbook.save_book) menu_action_edit.append(save_changed) show_normal = Gtk.ImageMenuItem.new_with_label( "عرض الكتاب في الوضع العاديّ") show_normal.connect('activate', self.editbook.show_book) menu_action_edit.append(show_normal) menu_action_edit.append(Gtk.SeparatorMenuItem()) win_marks = Gtk.ImageMenuItem.new_with_label( "نافذة العلامات المرجعيّة") win_marks.connect('activate', lambda *a: SavedMarks(self)) menu_action_edit.append(win_marks) win_results = Gtk.ImageMenuItem.new_with_label("نافذة البحوث المحفوظة") win_results.connect('activate', lambda *a: SavedResult(self)) menu_action_edit.append(win_results) self.btn_action_edit = Gtk.MenuButton() self.btn_action_edit.set_popup(menu_action_edit) img = Gtk.Image.new_from_icon_name('view-more-symbolic', 2) self.btn_action_edit.set_image(img) menu_action_edit.show_all() btnbox_action.pack_start(self.btn_action_edit, False, False, 0) hb_bar.pack_start(btnbox_action) # a أحداث باقي الصفحات-------------------------------------- menu_action_other = Gtk.Menu() win_marks = Gtk.ImageMenuItem.new_with_label( "نافذة العلامات المرجعيّة") win_marks.connect('activate', lambda *a: SavedMarks(self)) menu_action_other.append(win_marks) win_results = Gtk.ImageMenuItem.new_with_label("نافذة البحوث المحفوظة") win_results.connect('activate', lambda *a: SavedResult(self)) menu_action_other.append(win_results) menu_action_other.append(Gtk.SeparatorMenuItem()) self.btn_action_other = Gtk.MenuButton() self.btn_action_other.set_popup(menu_action_other) img = Gtk.Image.new_from_icon_name('view-more-symbolic', 2) self.btn_action_other.set_image(img) menu_action_other.show_all() btnbox_action.pack_start(self.btn_action_other, False, False, 0) #------------------------------------ self.go_parts = Gtk.Button() self.go_parts.set_size_request(64, -1) self.go_parts.set_tooltip_text("الرجوع إلى الأقسام الرّئيسة") self.go_parts.connect('clicked', lambda *a: self.list_books.back_cb()) img = Gtk.Image.new_from_icon_name('go-previous-symbolic-rtl', 2) self.go_parts.set_image(img) hb_bar.pack_start(self.go_parts) # a أزرار التصفح--------------------------------------- self.btnbox_pages = Gtk.Box(orientation=Gtk.Orientation.HORIZONTAL) Gtk.StyleContext.add_class(self.btnbox_pages.get_style_context(), "linked") #----------------------------- first_page = Gtk.Button() img = Gtk.Image.new_from_icon_name('go-first-symbolic-rtl', 2) first_page.set_image(img) first_page.set_tooltip_text('الصفحة الأولى') first_page.connect('clicked', self.first_page) first_page.add_accelerator("clicked", self.axl, Gdk.KEY_Up, ACCEL_ALT_MOD, Gtk.AccelFlags.VISIBLE) self.btnbox_pages.pack_start(first_page, False, False, 0) #-------------------------------------- prev_page = Gtk.Button() img = Gtk.Image.new_from_icon_name('go-previous-symbolic-rtl', 2) prev_page.set_image(img) prev_page.set_tooltip_text('الصفحة السابقة') prev_page.connect('clicked', self.previous_page) prev_page.add_accelerator("clicked", self.axl, Gdk.KEY_Right, ACCEL_ALT_MOD, Gtk.AccelFlags.VISIBLE) self.btnbox_pages.pack_start(prev_page, False, False, 0) #-------------------------------------- next_page = Gtk.Button() img = Gtk.Image.new_from_icon_name('go-next-symbolic-rtl', 2) next_page.set_image(img) next_page.set_tooltip_text('الصفحة التالية') next_page.connect('clicked', self.next_page) next_page.add_accelerator("clicked", self.axl, Gdk.KEY_Left, ACCEL_ALT_MOD, Gtk.AccelFlags.VISIBLE) self.btnbox_pages.pack_start(next_page, False, False, 0) #-------------------------------------- last_page = Gtk.Button() img = Gtk.Image.new_from_icon_name('go-last-symbolic-rtl', 2) last_page.set_image(img) last_page.set_tooltip_text('الصفحة الأخيرة') last_page.connect('clicked', self.last_page) last_page.add_accelerator("clicked", self.axl, Gdk.KEY_Down, ACCEL_ALT_MOD, Gtk.AccelFlags.VISIBLE) self.btnbox_pages.pack_start(last_page, False, False, 0) hb_bar.set_custom_title(self.btnbox_pages) #- btn_pref--------------------------------- btn_pref = Gtk.MenuButton() btn_pref.connect('toggled', lambda *a: self.mepref.set_visible_child_name('n0')) self.popover = Gtk.Popover() btn_pref.set_popover(self.popover) btn_pref.set_name('btn_pref') img = Gtk.Image.new_from_icon_name('open-menu-symbolic', 2) btn_pref.set_image(img) self.popover.add(self.mepref) hb_bar.pack_end(btn_pref) #-------------------------------------- self.entry_search.set_placeholder_text('بحث عن كتاب') self.entry_search.connect('changed', self.search_on_page) self.entry_search.connect('activate', self.search_on_active) hb_bar.pack_end(self.entry_search) # a-------------------------------- self.notebook = Gtk.Notebook() self.notebook.set_show_tabs(False) self.notebook.append_page(self.list_books, Gtk.Label.new('0')) self.notebook.append_page(self.viewerbook, Gtk.Label.new('1')) self.notebook.append_page(self.moshafpage, Gtk.Label.new('2')) self.notebook.append_page(self.winspage, Gtk.Label.new('3')) self.notebook.append_page(self.tafsirpage, Gtk.Label.new('4')) self.notebook.append_page(self.help_book, Gtk.Label.new('5')) self.notebook.append_page(self.warakapage, Gtk.Label.new('6')) self.notebook.append_page(self.editbook, Gtk.Label.new('7')) self.notebook.append_page(self.organize, Gtk.Label.new('8')) self.notebook.connect("switch-page", self.switch_page) self.notebook.set_scrollable(True) self.notebook.set_show_tabs(False) self.box.pack_start(self.notebook, True, True, 0) self.axl.connect(Gdk.KEY_F11, 0, Gtk.AccelFlags.VISIBLE, self.full_screen) self.axl.connect(Gdk.KEY_F9, 0, Gtk.AccelFlags.VISIBLE, self.viewerbook.hide_index) self.axl.connect(Gdk.KEY_BackSpace, ACCEL_CTRL_MOD, Gtk.AccelFlags.VISIBLE, self.back_to_previous_page) self.axl.connect(Gdk.KEY_F1, 0, Gtk.AccelFlags.VISIBLE, lambda *a: self.notebook.set_current_page(2)) self.axl.connect(Gdk.KEY_F2, 0, Gtk.AccelFlags.VISIBLE, lambda *a: self.notebook.set_current_page(4)) self.axl.connect(Gdk.KEY_F3, 0, Gtk.AccelFlags.VISIBLE, lambda *a: self.notebook.set_current_page(0)) self.axl.connect(Gdk.KEY_F4, 0, Gtk.AccelFlags.VISIBLE, self.opened_book) self.axl.connect(Gdk.KEY_F5, 0, Gtk.AccelFlags.VISIBLE, lambda *a: self.notebook.set_current_page(6)) self.axl.connect(Gdk.KEY_F6, 0, Gtk.AccelFlags.VISIBLE, lambda *a: self.notebook.set_current_page(3)) self.axl.connect(Gdk.KEY_F7, 0, Gtk.AccelFlags.VISIBLE, lambda *a: self.notebook.set_current_page(5)) self.axl.connect(Gdk.KEY_Q, ACCEL_CTRL_MOD, Gtk.AccelFlags.VISIBLE, self.delete_event_cb) self.axl.connect(Gdk.KEY_S, ACCEL_CTRL_MOD, Gtk.AccelFlags.VISIBLE, self.change_view) self.axl.connect(Gdk.KEY_Up, ACCEL_ALT_MOD, Gtk.AccelFlags.VISIBLE, self.first_page) self.axl.connect(Gdk.KEY_Down, ACCEL_ALT_MOD, Gtk.AccelFlags.VISIBLE, self.last_page) self.axl.connect(Gdk.KEY_Left, ACCEL_ALT_MOD, Gtk.AccelFlags.VISIBLE, self.next_page) self.axl.connect(Gdk.KEY_Right, ACCEL_ALT_MOD, Gtk.AccelFlags.VISIBLE, self.previous_page) self.add(self.box) self.show_all() if asm_config.getn('search') == 0: self.search_win.stack.set_visible_child_name("n1") else: self.search_win.stack.set_visible_child_name("n2") self.btnbox_pages.hide() self.btn_action_book.hide() self.btn_action_other.hide() self.btn_action_edit.hide() self.go_parts.hide() self.help_book.scroll_search.hide() self.help_book.hp.set_position(120) if asm_config.getn('show_side') == 1: self.list_books.vbox_side.hide() else: self.list_books.vbox_side.show_all() greet.destroy() try: self.start_session() except: pass self.change_font()
def build(self, *a): self.vadj_page_next = 0 self.vadj_page_prev = 0 self.hp = Gtk.HPaned() self.parent.connect("check-resize", self.convert_browse) # a الفهرس----------------------------------- vbox = Gtk.VBox(False, 0) self.tree_index = Gtk.TreeView() self.tree_index.set_name('Tree') cell = Gtk.CellRendererText() cell.set_property("ellipsize", Pango.EllipsizeMode.END) kal = Gtk.TreeViewColumn('الفهرس', cell, text=1) self.tree_index.append_column(kal) self.store_index = Gtk.TreeStore(int, str) self.tree_index.set_model(self.store_index) self.sel_index = self.tree_index.get_selection() self.tree_index.connect("cursor-changed", self.ok_index) self.scroll_index = Gtk.ScrolledWindow() self.scroll_index.set_shadow_type(Gtk.ShadowType.IN) self.scroll_index.add(self.tree_index) #self.scroll_index.set_policy(Gtk.PolicyType.ALWAYS, Gtk.PolicyType.AUTOMATIC) self.scroll_index.get_hadjustment().set_value(0.0) vbox.pack_start(self.scroll_index, True, True, 0) #---------------------------------------------- self.tree_search = Gtk.TreeView() self.tree_search.set_name('Tree') cell = Gtk.CellRendererText() raq = Gtk.TreeViewColumn('الرقم', cell, text=1) self.tree_search.append_column(raq) cell = Gtk.CellRendererText() cell.set_property("ellipsize", Pango.EllipsizeMode.END) kal = Gtk.TreeViewColumn('أغلق النتائج', cell, text=2) kal.set_expand(True) kal.set_clickable(True) kal.connect('clicked', self.hide_search) self.tree_search.append_column(kal) self.store_search = Gtk.ListStore(int, int, str, str, int, int, str, int) self.tree_search.set_model(self.store_search) self.sel_search = self.tree_search.get_selection() self.tree_search.connect("cursor-changed", self.ok_search) self.scroll_search = Gtk.ScrolledWindow() self.scroll_search.set_shadow_type(Gtk.ShadowType.IN) self.scroll_search.add(self.tree_search) self.scroll_search.get_hadjustment().set_value(0.0) vbox.pack_start(self.scroll_search, True, True, 0) try: self.entry_index = Gtk.SearchEntry() except: self.entry_index = Gtk.Entry() self.entry_index.set_placeholder_text('بحث في الفهرس') self.entry_index.connect('changed', self.search_entry) vbox.pack_start(self.entry_index, False, False, 3) self.hp.pack1(vbox, True, True) # a عارض النص----------------------------------- vbox = Gtk.VBox(False, 0) self.stack = Gtk.Stack() vbox.pack_start(self.stack, True, True, 0) #------------------------------------- self.view_nasse1 = asm_customs.ViewClass() self.view_nasse1.set_name('View') self.view_nasse_bfr1 = self.view_nasse1.get_buffer() self.view_nasse1.connect_after("populate-popup", asm_popup.populate_popup, self.parent) #self.view_nasse1.connect('button-press-event', self.sss) self.scroll_nasse1 = Gtk.ScrolledWindow() #self.scroll_nasse1.set_policy(Gtk.PolicyType.NEVER, Gtk.PolicyType.AUTOMATIC) self.scroll_nasse1.set_shadow_type(Gtk.ShadowType.IN) self.scroll_nasse1.add(self.view_nasse1) self.scroll_event_name1 = self.scroll_nasse1.connect( 'scroll-event', self.scroll_event) self.view_title_tag1 = self.view_nasse_bfr1.create_tag("title1") self.view_quran_tag1 = self.view_nasse_bfr1.create_tag("quran1") self.view_search_tag1 = self.view_nasse_bfr1.create_tag("search1") self.view_terms_tag1 = self.view_nasse_bfr1.create_tag("terms1") self.title_select_tag1 = self.view_nasse_bfr1.create_tag("tit_select1") self.stack.add_named(self.scroll_nasse1, 'n1') #------------------------------------- self.view_nasse2 = asm_customs.ViewClass() self.view_nasse2.set_name('View') self.view_nasse_bfr2 = self.view_nasse2.get_buffer() self.view_nasse2.connect_after("populate-popup", asm_popup.populate_popup, self.parent) self.scroll_nasse2 = Gtk.ScrolledWindow() #self.scroll_nasse2.set_policy(Gtk.PolicyType.NEVER, Gtk.PolicyType.AUTOMATIC) self.scroll_nasse2.set_shadow_type(Gtk.ShadowType.IN) self.scroll_nasse2.add(self.view_nasse2) self.scroll_event_name2 = self.scroll_nasse2.connect( 'scroll-event', self.scroll_event) self.view_title_tag2 = self.view_nasse_bfr2.create_tag("title2") self.view_quran_tag2 = self.view_nasse_bfr2.create_tag("quran2") self.view_search_tag2 = self.view_nasse_bfr2.create_tag("search2") self.view_terms_tag2 = self.view_nasse_bfr2.create_tag("terms2") self.title_select_tag2 = self.view_nasse_bfr2.create_tag("tit_select2") self.stack.add_named(self.scroll_nasse2, 'n2') #---------------------------------------- hbox = Gtk.HBox(False, 3) hbox.set_border_width(3) hbox.pack_start(Gtk.Label('('), False, False, 0) self.ent_page = Gtk.Label() hbox.pack_start(self.ent_page, False, False, 0) hbox.pack_start(Gtk.Label('/'), False, False, 0) self.ent_part = Gtk.Label() hbox.pack_start(self.ent_part, False, False, 0) hbox.pack_start(Gtk.Label(')'), False, False, 0) move_btn = Gtk.MenuButton() img = Gtk.Image.new_from_icon_name('go-jump-symbolic', 2) move_btn.set_image(img) self.popover = Gtk.Popover() move_btn.set_popover(self.popover) self.ent_page_move = Gtk.Entry() self.ent_part_move = Gtk.Entry() self.lab_page_move = Gtk.Label("عدد الصفحات ") self.lab_part_move = Gtk.Label("عدد الأجزاء ") move = Gtk.Button("انتقل") def replace_cb(widget): n_page = int(self.ent_page_move.get_text()) n_part = int(self.ent_part_move.get_text()) id_page = self.db.go_to_page(n_part, n_page) if id_page == None: for n in range(20): id_page = self.db.go_to_nearer_page(n_part, n_page, n + 1) if id_page != None: break if id_page == None: asm_customs.erro(self.parent, "لا يمكن الذهاب إلى الصفحة المحددة") return if self.current_id < id_page[0]: self.stack.set_transition_type(self.style_browse_next) elif self.current_id > id_page[0]: self.stack.set_transition_type(self.style_browse_prev) elif self.current_id == id_page[0]: return self.show_page(id_page[0]) ch = self.stack.get_visible_child_name() if ch == "n1": self.stack.set_visible_child_name("n2") else: self.stack.set_visible_child_name("n1") self.popover.hide() move.connect('clicked', replace_cb) self.ent_page_move.connect('activate', replace_cb) self.ent_part_move.connect('activate', replace_cb) box = Gtk.Box(spacing=5, orientation=Gtk.Orientation.VERTICAL) box.set_border_width(5) hb = Gtk.Box(spacing=5, orientation=Gtk.Orientation.HORIZONTAL) hb.pack_start(self.ent_page_move, False, False, 3) hb.pack_start(self.lab_page_move, False, False, 3) box.pack_start(hb, False, False, 3) hb = Gtk.Box(spacing=5, orientation=Gtk.Orientation.HORIZONTAL) hb.pack_start(self.ent_part_move, False, False, 3) hb.pack_start(self.lab_part_move, False, False, 3) box.pack_start(hb, False, False, 3) hb = Gtk.Box(spacing=5, orientation=Gtk.Orientation.HORIZONTAL) hb.pack_start(move, False, False, 0) box.pack_end(hb, False, False, 0) move_btn.connect("clicked", self.move_to_page) box.show_all() self.popover.add(box) move_btn.set_tooltip_text('الانتقال إلى الصفحة المحددة') hbox.pack_start(move_btn, False, False, 10) btnbox_action = Gtk.Box(orientation=Gtk.Orientation.HORIZONTAL) Gtk.StyleContext.add_class(btnbox_action.get_style_context(), "linked") self.comment_btn = Gtk.Button() self.comment_btn.set_tooltip_text("أظهر التعليق") self.comment_btn.connect('clicked', self.comment_cb) btnbox_action.pack_start(self.comment_btn, False, False, 0) vbox.pack_start(hbox, False, False, 0) self.btn_autoScroll = Gtk.ToggleButton() img = Gtk.Image.new_from_icon_name('media-seek-forward-symbolic-rtl', 2) self.btn_autoScroll.add(img) self.btn_autoScroll.set_tooltip_text("استعراض آلي") btnbox_action.pack_start(self.btn_autoScroll, False, False, 0) hbox.pack_start(btnbox_action, False, False, 0) self.autoScrolling = False self.btn_autoScroll.connect("clicked", self.autoScrollCb) self.timeo = GLib.timeout_add( 100 / ((asm_config.getn('auto_browse')) * 8), self.autoScroll, None) btnbox_info = Gtk.Box(orientation=Gtk.Orientation.HORIZONTAL) Gtk.StyleContext.add_class(btnbox_info.get_style_context(), "linked") bitaka = Gtk.Button() bitaka.set_tooltip_text("بطاقة عن الكتاب") bitaka.connect('clicked', self.show_bitaka) img = Gtk.Image.new_from_icon_name('dialog-information-symbolic', 2) bitaka.set_image(img) btnbox_info.pack_start(bitaka, False, False, 0) edit_book = Gtk.Button() edit_book.set_tooltip_text("تحرير الكتاب الحاليّ") edit_book.connect('clicked', self.editbk_cb) img = Gtk.Image.new_from_icon_name('text-editor-symbolic', 2) edit_book.set_image(img) btnbox_info.pack_start(edit_book, False, False, 0) hbox.pack_end(btnbox_info, False, False, 0) self.convert_browse() self.hp.pack2(vbox, True, False) self.pack_start(self.hp, True, True, 0) self.show_all() self.scroll_search.hide() self.change_font()
def apply_preference(self, *a): self.font_window = asm_config.getv('font_window') self.font_lists_parts = asm_config.getv('font_lists_parts') self.font_lists_books = asm_config.getv('font_lists_books') self.font_nasse_books = asm_config.getv('font_nasse_books') self.font_nasse_others = asm_config.getv('font_nasse_others') self.font_anawin = asm_config.getv('font_anawin') self.font_lists_titles = asm_config.getv('font_lists_titles') self.font_quran= asm_config.getv('font_quran') if asm_config.getn('theme') == 0: self.color_lists_parts = 'rgb(46,52,54)' self.color_lists_books = 'rgb(85,87,83)' self.color_nasse_books = 'rgb(85,87,83)' self.color_nasse_others = 'rgb(85,87,83)' self.color_anawin = 'rgb(204,0,0)' self.color_lists_titles = 'rgb(85,87,83)' self.color_quran= 'rgb(85,87,83)' self.background_quran= 'rgb(252,234,174)' self.background_lists_titles = 'rgb(253,253,215)' self.background_lists_parts = 'rgb(252,234,174)' self.background_lists_books = 'rgb(253,253,215)' self.background_nasse_books = 'rgb(253,253,215)' self.background_nasse_others = 'rgb(253,253,215)' self.background_anawin = 'rgb(253,253,215)' self.color_selected = 'rgb(52,52,52)' self.background_selected = 'rgb(221,221,221)' self.color_hover = 'rgb(52,52,52)' self.background_hover = 'rgb(221,221,221)' self.color_searched = 'rgb(85,87,83)' self.background_searched = 'rgb(243,201,96)' elif asm_config.getn('theme') == 1: self.color_lists_parts = 'rgb(32,74,155)' self.color_lists_books = 'rgb(32,74,135)' self.color_nasse_books = 'rgb(52,101,164)' self.color_nasse_others = 'rgb(52,101,164)' self.color_anawin = 'rgb(204,0,0)' self.color_lists_titles = 'rgb(85,87,83)' self.color_quran= 'rgb(85,87,83)' self.background_quran= 'rgb(252,234,174)' self.background_lists_titles = 'rgb(243,243,243)' self.background_lists_parts = 'rgb(233,233,233)' self.background_lists_books = 'rgb(243,243,243)' self.background_nasse_books = 'rgb(243,243,243)' self.background_nasse_others = 'rgb(243,243,243)' self.background_anawin = 'rgb(243,243,243)' self.color_selected = 'rgb(52,52,52)' self.background_selected = 'rgb(221,221,221)' self.color_hover = 'rgb(52,52,52)' self.background_hover = 'rgb(221,221,221)' self.color_searched = 'rgb(32,74,135)' self.background_searched = 'rgb(254,250,135)' elif asm_config.getn('theme') == 2: self.color_lists_parts = 'rgb(120,10,10)' self.color_lists_books = 'rgb(150,10,10)' self.color_nasse_books = 'rgb(92,53,102)' self.color_nasse_others = 'rgb(92,53,102)' self.color_anawin = 'rgb(204,0,0)' self.color_lists_titles = 'rgb(150,10,10)' self.color_quran= 'rgb(150,10,10)' self.background_quran= 'rgb(252,234,174)' self.background_lists_titles = 'rgb(255,225,225)' self.background_lists_parts = 'rgb(235,205,205)' self.background_lists_books = 'rgb(255,225,225)' self.background_nasse_books = 'rgb(255,225,225)' self.background_nasse_others = 'rgb(255,225,225)' self.background_anawin = 'rgb(255,225,225)' self.color_selected = 'rgb(255,255,255)' self.background_selected = 'rgb(249,124,124)' self.color_hover = 'rgb(255,255,255)' self.background_hover = 'rgb(249,124,124)' self.color_searched = 'rgb(92,53,102)' self.background_searched = 'rgb(254,250,135)' elif asm_config.getn('theme') == 3: self.color_lists_parts = 'rgb(20,47,28)' self.color_lists_books = 'rgb(32,64,0)' self.color_nasse_books = 'rgb(32,64,0)' self.color_nasse_others = 'rgb(32,64,0)' self.color_anawin = 'rgb(134,9,21)' self.color_lists_titles = 'rgb(32,64,0)' self.color_quran= 'rgb(32,64,0)' self.background_quran= 'rgb(252,234,174)' self.background_lists_titles = 'rgb(217,255,188)' self.background_lists_parts = 'rgb(158,193,122)' self.background_lists_books = 'rgb(217,255,188)' self.background_nasse_books = 'rgb(217,255,188)' self.background_nasse_others = 'rgb(217,255,188)' self.background_anawin = 'rgb(217,255,188)' self.color_selected = 'rgb(255,255,255)' self.background_selected = 'rgb(0,56,0)' self.color_hover = 'rgb(255,255,255)' self.background_hover = 'rgb(0,56,0)' self.color_searched = 'rgb(32,64,0)' self.background_searched = 'rgb(254,250,135)' elif asm_config.getn('theme') == 4: self.color_lists_parts = 'rgb(211,215,207)' self.color_lists_books = 'rgb(211,215,207)' self.color_nasse_books = 'rgb(238,238,236)' self.color_nasse_others = 'rgb(211,215,207)' self.color_anawin = 'rgb(252,234,174)' self.color_lists_titles = 'rgb(211,215,207)' self.color_quran= 'rgb(211,215,207)' self.background_quran= 'rgb(52,101,164)' self.background_lists_titles = 'rgb(92,53,102)' self.background_lists_parts = 'rgb(117,80,123)' self.background_lists_books = 'rgb(92,53,102)' self.background_nasse_books = 'rgb(92,53,102)' self.background_nasse_others = 'rgb(92,53,102)' self.background_anawin = 'rgb(92,53,102)' self.color_selected = 'rgb(46,52,54)' self.background_selected = 'rgb(186,189,182)' self.color_hover = 'rgb(46,52,54)' self.background_hover = 'rgb(186,189,182)' self.color_searched = 'rgb(238,238,236)' self.background_searched = 'rgb(143,89,2)' elif asm_config.getn('theme') == 5: self.color_lists_parts = 'rgb(211,215,207)' self.color_lists_books = 'rgb(211,215,207)' self.color_nasse_books = 'rgb(186,189,182)' self.color_nasse_others = 'rgb(186,189,182)' self.color_anawin = 'rgb(233,185,110)' self.color_lists_titles = 'rgb(211,215,207)' self.color_quran= 'rgb(211,215,207)' self.background_quran= 'rgb(46,52,54)' self.background_lists_titles = 'rgb(64,64,64)' self.background_lists_parts = 'rgb(60,60,60)' self.background_lists_books = 'rgb(64,64,64)' self.background_nasse_books = 'rgb(64,64,64)' self.background_nasse_others = 'rgb(64,64,64)' self.background_anawin = 'rgb(64,64,64)' self.color_selected = 'rgb(46,52,54)' self.background_selected = 'rgb(186,189,182)' self.color_hover = 'rgb(46,52,54)' self.background_hover = 'rgb(186,189,182)' self.color_searched = 'rgb(186,189,182)' self.background_searched = 'rgb(0,0,0)' elif asm_config.getn('theme') == 6: self.color_lists_parts = asm_config.getv('color_lists_parts') self.color_lists_books = asm_config.getv('color_lists_books') self.color_nasse_books = asm_config.getv('color_nasse_books') self.color_nasse_others = asm_config.getv('color_nasse_others') self.color_anawin = asm_config.getv('color_anawin') self.color_lists_titles = asm_config.getv('color_lists_titles') self.color_quran= asm_config.getv('color_quran') self.background_quran= asm_config.getv('background_quran') self.background_lists_titles = asm_config.getv('background_lists_titles') self.background_lists_parts = asm_config.getv('background_lists_parts') self.background_lists_books = asm_config.getv('background_lists_books') self.background_nasse_books = asm_config.getv('background_nasse_books') self.background_nasse_others = asm_config.getv('background_nasse_others') self.background_anawin = asm_config.getv('background_anawin') self.color_selected = asm_config.getv('color_selected') self.background_selected = asm_config.getv('background_selected') self.color_hover = asm_config.getv('color_hover') self.background_hover = asm_config.getv('background_hover') self.color_searched = asm_config.getv('color_searched') self.background_searched = asm_config.getv('background_searched')