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
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)
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
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)
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()
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)
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()
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()
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
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()