Example #1
0
 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)
Example #2
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()
Example #3
0
 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
Example #4
0
    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)
Example #5
0
 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")
Example #6
0
 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()
Example #7
0
 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)
Example #8
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])
Example #9
0
 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
Example #10
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
Example #11
0
    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()
Example #12
0
    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)
Example #13
0
    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)
Example #14
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()
Example #15
0
    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()
Example #16
0
 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')