Ejemplo n.º 1
0
 def modify_poet_cb(self, *a):
     model, i = self.sel_poet.get_selected()
     id_poet = model.get_value(i,0)
     if id_poet != 0:
         nm = self.nm_poet.get_text().decode('utf8')
         lak = self.lak_poet.get_text().decode('utf8')
         if nm == lak == '': daw_customs.erro(self.parent, 'ضع أسما للشاعر'); return
         if nm == '': nm += lak
         elif lak == '': lak += nm
         age = daw_customs.value_active(self.ages)
         if age == None : daw_customs.erro(self.parent, 'حدد عصر الشاعر\nأو اجعله غير معروف'); return
         balad = daw_customs.value_active(self.lands)
         if self.lands.get_sensitive():
             if balad == None : daw_customs.erro(self.parent, 'حدد بلد الشاعر\nأو اجعله غير معروف'); return
         else: balad = 22
         sex = daw_customs.value_active(self.sexs)
         if sex == None : daw_customs.erro(self.parent, 'حدد جنس الشاعر'); return
         die = self.dh_poet.get_value()
         tarjama = self.view_tarjama_bfr.get_text(self.view_tarjama_bfr.get_start_iter(),
                                                  self.view_tarjama_bfr.get_end_iter(), False).decode('utf8')
         msg = daw_customs.sure(self.parent, '''
             هل أنت متأكد بأنك 
             تريد تعديل بيانات الشاعر ؟
             ''' )
         if msg == Gtk.ResponseType.NO:
             return
         check = self.parent.db.modify_poet(id_poet, nm, lak, tarjama, die, sex, balad, age)
         if check == None: daw_customs.info(self.parent, 'تم تعديل البيانات بنجاح'); return
     else: return
Ejemplo n.º 2
0
 def remove_cb(self, *a):
     msg = daw_customs.sure(self.parent, "هل تريد مسح جميع البيانات المعلمة")
     if msg == Gtk.ResponseType.YES:
         for btn in self.list_ages_btn:
             if btn.get_active() :
                 self.set_sensitive(False)
                 self.db.remove_age(int(btn.get_name()))
                 btn.set_active(False)
         if self.del_abiaty.get_active():
             self.db.remove_abiaty()
             self.del_abiaty.set_active(False)
         if self.del_favory.get_active():
             self.db.remove_favory()
             self.del_favory.set_active(False)
         if self.del_recite.get_active():
             self.db.remove_recite()
             self.del_recite.set_active(False)
         if self.del_search.get_active():
             list_n = os.listdir(daw_customs.HOME_DIR)
             for v in list_n:
                 if '.pkl' in v:
                     os.remove(join(daw_customs.HOME_DIR, v))
             self.del_search.set_active(False)
         if self.del_mark.get_active():
             daw_config.setv('marks', '[]')
             self.del_mark.set_active(False)
     self.parent.dawawinpage.refresh_poets()
     self.parent.dawawinpage.search_cb()
     self.parent.organizepage.refresh_poets()
     self.parent.organizepage.search_cb()
     self.parent.favorite.store()
     self.parent.recite.store()
     self.set_sensitive(True)
Ejemplo n.º 3
0
 def add_poet(self, *a):
     if self.outsider.get_active():
         msg = daw_customs.sure(self.parent, '''
         هل أنت متأكد من أن 
         قائل هذه الأبيات غير معروف ؟
         ''' )
         if msg == Gtk.ResponseType.NO:
             return 'none', False, False, False
         else:
             return 0, 0, 22, 9
     elif self.present.get_active():
         poet, sex, balad, age = self.parent.db.id_name_poet(self.poets.get_text().decode('utf8'))
         if poet == None:
             daw_customs.erro(self.parent, 'ضع الاسم الصحيح للشاعر'); return
     elif self.nopresent.get_active():
         nm = self.nm_poet.get_text().decode('utf8')
         lak = self.lak_poet.get_text().decode('utf8')
         if nm == lak == '': daw_customs.erro(self.parent, 'ضع أسما للشاعر'); return
         if nm == '': nm += lak
         elif lak == '': lak += nm
         age = daw_customs.value_active(self.ages)
         if age == None : daw_customs.erro(self.parent, 'حدد عصر الشاعر\nأو اجعله غير معروف'); return
         balad = daw_customs.value_active(self.lands)
         if self.lands.get_sensitive():
             if balad == None : daw_customs.erro(self.parent, 'حدد بلد الشاعر\nأو اجعله غير معروف'); return
         else: balad = 22
         sex = daw_customs.value_active(self.sexs)
         if sex == None : daw_customs.erro(self.parent, 'حدد جنس الشاعر'); return
         if self.death.get_active(): die = self.dh_poet.get_value()
         else: die = 0
         tarjama = self.tarjama_bfr.get_text(self.tarjama_bfr.get_start_iter(),
                                             self.tarjama_bfr.get_end_iter(), False).decode('utf8')
         poet, sex, balad, age = self.parent.db.add_poet(nm, lak, tarjama, die, sex, balad, age)
     return poet, sex, balad, age
Ejemplo n.º 4
0
 def remove_iter(self, *a):
     (model, i) = self.tree_sav.get_selection().get_selected()
     if i :
         res_self = daw_customs.sure(self, " هل ترغب في حذف النتيجة المحددة ؟")
         if res_self:
             nm = model.get_value(i,0)
             os.remove(join(daw_customs.HOME_DIR, nm+'.pkl'))
             self.store_sav.remove(i)
Ejemplo n.º 5
0
 def set_recite(self, *a):
     open_dlg = Gtk.FileChooserDialog("أضف ملفا صوتيا للقصيدة", self.parent,
                                     Gtk.FileChooserAction.OPEN,
                                     (Gtk.STOCK_OK, Gtk.ResponseType.OK,
                                     Gtk.STOCK_CANCEL, Gtk.ResponseType.CANCEL))
     
     Filter = Gtk.FileFilter()
     Filter.set_name("ملفات OGG")
     Filter.add_pattern("*.[Oo][Gg][Gg]")
     open_dlg.add_filter(Filter)
     
     res = open_dlg.run()
     if res == Gtk.ResponseType.OK:
         old_file = open_dlg.get_filename()
         old_name = basename(old_file)
         new_name = u'00'+str(self.id_poem)+u'.ogg'
         new_file = join(daw_customs.AUDIO_DIR, new_name)
         if new_file == old_file:
             daw_customs.erro(self.parent, u'الملف موجود بالفعل لايمكنك استيراده') 
         else:
             ent_dlg = Gtk.Dialog("أدخل اسم الملقي", open_dlg, Gtk.DialogFlags.MODAL)
             entry = Gtk.Entry()
             entry.show()
             btn = daw_customs.ButtonClass('نعم')
             btn.show()
             ent_dlg.add_action_widget(entry, 0)
             ent_dlg.add_action_widget(btn, 1)
             res_ent = ent_dlg.run()
             if res_ent == 1:
                 reciter = entry.get_text().decode('utf8')
                 ent_dlg.destroy()
                 if exists(new_file):
                     replace = u'واستبداله بالملف القديم'
                 else:
                     replace = u''
                 msg = daw_customs.sure(self.parent, u'''
                 سوف يقوم البرنامج بنسخ الملف {} 
                 إلى المجلد {}
                 بعد تسميته بـ {}
                 {} 
                 ''' .format(
                 old_name, 
                 daw_customs.AUDIO_DIR, 
                 new_name, 
                 replace))
                 if msg == Gtk.ResponseType.YES:
                     copyfile(old_file, new_file)
                     check = self.parent.db.set_recite(self.id_poem, reciter)
                     self.parent.recite.store()
                     if check == None: daw_customs.info(self.parent, 'تم إضافة ملف صوتي لهذه القصيدة') 
                     open_dlg.destroy()
             else:
                 ent_dlg.destroy()
     open_dlg.destroy()
Ejemplo n.º 6
0
 def rm_bayt(self, btn, *a):
     id_verse = int(btn.get_name())
     msg = daw_customs.sure(self.parent, '''
         هل أنت متأكد من أنك 
         تريد حذف هذا الموضع ؟
         ''' )
     if msg == Gtk.ResponseType.YES:
         self.parent.db.del_abiat(id_verse)
         de = self.btns_pages.get_children()
         ch = de[2].get_children()
         for a in ch:
             if a.get_active():
                 self.select_page(a)
Ejemplo n.º 7
0
 def remove_poem(self,*a):
     model, i = self.sel_poem.get_selected()
     if i:
         id_poem = model.get_value(i,0)
         nm = model.get_value(i,1)
         msg = daw_customs.sure(self.parent, '''
         سيتم حذف قصيدة {}
         هل تريد الاستمرار ؟
         '''.format(nm,))
         if msg == Gtk.ResponseType.YES:
             check = self.parent.db.remove_poem(id_poem)
             if check == None:
                 self.ok_poet()
Ejemplo n.º 8
0
 def remove_poet(self,*a):
     model, i = self.sel_poet.get_selected()
     if i:
         id_poet = model.get_value(i,0)
         nm = model.get_value(i,1)
         msg = daw_customs.sure(self.parent, '''
         سيتم حذف ديوان {}"
         مع بيانات الشاعر، هل تريد الاستمرار ؟
         '''.format(nm,))
         if msg == Gtk.ResponseType.YES:
             check = self.parent.db.remove_poet(id_poet)
             if check == None:
                 self.refresh_poets()
Ejemplo n.º 9
0
 def modify_data(self, *a):
     model, i = self.sel_poem.get_selected()
     id_poem = model.get_value(i,0)
     text = daw_tools.right_space(self.view_nasse_bfr.get_text(self.view_nasse_bfr.get_start_iter(),
                                                     self.view_nasse_bfr.get_end_iter(), False)).decode('utf8')
     if text == '': daw_customs.erro(self.parent, 'لقد تم مسح القصيدة'); return
     nam = self.nm_poem.get_text().decode('utf8')
     if nam == '' : daw_customs.erro(self.parent, 'ضع اسما للقصيدة\nأو أول شطر منها'); return
     naw3 = daw_customs.value_active(self.naw3)
     if naw3 == None : daw_customs.erro(self.parent, 'حدد نوع القصيدة'); return
     if naw3 == 1:
         baher = daw_customs.value_active(self.baher)
         if baher == None : 
             if self.active_baher.get_active() == False:
                 baher = 0
             else: daw_customs.erro(self.parent, 'حدد بحر القصيدة'); return
         rawi = daw_customs.value_active(self.rawi)
         if rawi == None : 
             if self.active_rawi.get_active() == False:
                 rawi = 0
             else:  daw_customs.erro(self.parent, 'حدد روي القصيدة'); return
         kafia = daw_customs.value_active(self.kafia)
         if kafia == None : 
             if self.active_kafia.get_active() == False:
                 kafia = 0
             else:  daw_customs.erro(self.parent, 'حدد قافية القصيدة'); return
         arodh = daw_customs.value_active(self.arodh)
         if arodh == None : 
             if self.active_arodh.get_active() == False:
                 arodh = 0
             else:  daw_customs.erro(self.parent, 'حدد عروض القصيدة'); return
     elif naw3 == 2:
         baher = daw_customs.value_active(self.baher)
         if baher == None : 
             if self.active_baher.get_active() == False:
                 baher = 0
             else:  daw_customs.erro(self.parent, 'حدد بحر القصيدة'); return
         rawi = 0
         kafia = 0
         arodh = 0
     else:
         baher = 0
         rawi = 0
         kafia = 0
         arodh = 0
     gharadh = daw_customs.value_active(self.gharadh)
     if gharadh == None : 
             if self.active_gharadh.get_active() == False:
                 gharadh = 0
             else:  daw_customs.erro(self.parent, 'حدد غرض القصيدة'); return
     charh = self.view_charh_bfr.get_text(self.view_charh_bfr.get_start_iter(),
                                          self.view_charh_bfr.get_end_iter(), False).decode('utf8')
     sabab = self.view_sabab_bfr.get_text(self.view_sabab_bfr.get_start_iter(),
                                          self.view_sabab_bfr.get_end_iter(), False).decode('utf8')
     label = Gtk.Label()
     label.override_font(Pango.FontDescription('KacstOne 15'))
     if naw3 != 5:
         if arodh in [26, 27, 37, 39, 40]:
             longer_half, n_abiat = daw_tools.longer_half(text, label, 1)
         else:
             longer_half, n_abiat = daw_tools.longer_half(text, label, 0)
     else: longer_half = 0
     msg = daw_customs.sure(self.parent, '''
         هل أنت متأكد بأنك 
         تريد تعديل البيانات ؟
         ''' )
     if msg == Gtk.ResponseType.NO:
         return
     check = self.parent.db.modify_poem(id_poem, nam, text, sabab, charh, n_abiat, 
                                        baher, rawi, kafia, arodh, gharadh, naw3, longer_half)
     if check == None: daw_customs.info(self.parent, 'تم تعديل البيانات بنجاح'); return
Ejemplo n.º 10
0
 def remove_iters(self, *a):
     res_self = daw_customs.sure(self, " هل ترغب في حذف جميع النتائج الموجودة ؟")
     if res_self:
         for a in self.list_n:
             os.remove(join(daw_customs.HOME_DIR, a))
         self.store_sav.clear()