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 new_db(self,*a): save_dlg = Gtk.FileChooserDialog(u'مسار قاعدة البيانات الجديدة', self.parent, Gtk.FileChooserAction.SELECT_FOLDER, (Gtk.STOCK_OK, Gtk.ResponseType.OK, Gtk.STOCK_CANCEL, Gtk.ResponseType.CANCEL)) res = save_dlg.run() if res == Gtk.ResponseType.OK: new_dir = join(save_dlg.get_filename().decode('utf8'), u'دواوين العرب') if os.path.exists(join(new_dir,'Dawawin.db')): daw_customs.erro(self.parent, u'يوجد قاعدة بيانات في هذا الدليل بالفعل') else: if not os.path.exists(new_dir): os.mkdir(new_dir) if not os.path.exists(join(new_dir,u'Audio')): os.mkdir(join(new_dir,u'Audio')) if not os.path.exists(join(new_dir,u'Ornament')): os.mkdir(join(new_dir,u'Ornament')) list_f = os.listdir(daw_customs.ORNAMENT) for v in list_f: copyfile(join(daw_customs.ORNAMENT,v), join(new_dir,u'Ornament',v)) self.parent.db.create_db(join(new_dir,'Dawawin.db')) copyfile(daw_customs.MY_AWZAN, join(new_dir,'Awzan.db')) copyfile(daw_customs.MY_HELP, join(new_dir,'Help.db')) copyfile(daw_customs.MY_DICT, join(new_dir,'Dict.db')) daw_customs.info(self.parent, u'تم إضافة قاعدة بيانات جديدة') save_dlg.destroy()
def search(self, *a): text = self.entry_search.get_text().decode('utf8') if text == u'': return elif len(text) < 3: daw_customs.erro(self.parent, 'أدخل كلمة بها أكثر من حرفين للبحث عنها') return all_root, all_term = daw_stemming.get_root(u''+text) self.tree_dict.collapse_all() self.store_dict.clear() self.view_dict_bfr.set_text('') if len(all_root['taje'])+len(all_root['assas'])+len(all_root['lisan'])+len(all_root['mekhtar']) == 0: daw_customs.erro(self.parent, 'لا يوجد نتيجة'); return if len(all_root['lisan']) != 0: a1 = self.store_dict.append(None, ['لسان العرب', 'lisan']) for text in all_root['lisan']: self.store_dict.append(a1, [text, 'lisan']) if len(all_root['taje']) != 0: a2 = self.store_dict.append(None, ['تاج العروس', 'taje']) for text in all_root['taje']: self.store_dict.append(a2, [text, 'taje']) if len(all_root['assas']) != 0: a3 = self.store_dict.append(None, ['أساس البلاغة', 'assas']) for text in all_root['assas']: self.store_dict.append(a3, [text, 'assas']) if len(all_root['mekhtar']) != 0: a4 = self.store_dict.append(None, ['مختار الصحاح', 'mekhtar']) for text in all_root['mekhtar']: self.store_dict.append(a4, [text, 'mekhtar']) self.all_term = all_term
def explain_term(self, *a): if self.view_poem_bfr.get_has_selection(): sel = self.view_poem_bfr.get_selection_bounds() sel_text = self.view_poem_bfr.get_text(sel[0], sel[1],True) text = daw_araby.stripTatweel(sel_text.decode('utf8')) text = daw_tools.first_term(text) if len(text) >= 3: all_root, all_term = daw_stemming.get_root(u''+text) if len(all_root['taje'])+len(all_root['assas'])+len(all_root['lisan'])+len(all_root['mekhtar']) == 0: daw_customs.erro(self.parent, 'لا يوجد نتيجة'); return self.parent.dictpage.tree_dict.collapse_all() self.parent.dictpage.store_dict.clear() self.parent.dictpage.view_dict_bfr.set_text('') if len(all_root['taje'])+len(all_root['assas'])+len(all_root['lisan'])+len(all_root['mekhtar']) == 0: daw_customs.erro(self.parent, 'لا يوجد نتيجة'); return if len(all_root['lisan']) != 0: a1 = self.parent.dictpage.store_dict.append(None, ['لسان العرب', 'lisan']) for text in all_root['lisan']: self.parent.dictpage.store_dict.append(a1, [text, 'lisan']) if len(all_root['taje']) != 0: a2 = self.parent.dictpage.store_dict.append(None, ['تاج العروس', 'taje']) for text in all_root['taje']: self.parent.dictpage.store_dict.append(a2, [text, 'taje']) if len(all_root['assas']) != 0: a3 = self.parent.dictpage.store_dict.append(None, ['أساس البلاغة', 'assas']) for text in all_root['assas']: self.parent.dictpage.store_dict.append(a3, [text, 'assas']) if len(all_root['mekhtar']) != 0: a4 = self.parent.dictpage.store_dict.append(None, ['مختار الصحاح', 'mekhtar']) for text in all_root['mekhtar']: self.parent.dictpage.store_dict.append(a4, [text, 'mekhtar']) self.parent.dictpage.all_term = all_term self.parent.main_notebook.set_current_page(7) self.parent.dicty_page.set_active(True)
def next_verse(self, rawi): all_verse = self.verse_all_bfr.get_text( self.verse_all_bfr.get_start_iter(), self.verse_all_bfr.get_end_iter(), False ).decode("utf8") if rawi == u"همزة": r = u"أ" elif rawi == u"ألف": r = u"ا" else: r = rawi[0] verses = self.db.first_in_verse(r) random.shuffle(verses) if len(verses) == 0: daw_customs.erro(self.parent, "لا يوجد بيت جديد يبدأ بحرف {}".format(rawi)) return else: for a in verses: if daw_araby.fuzzy_plus(a[0]) not in daw_araby.fuzzy_plus(all_verse): self.verse_prog_bfr.set_text(a[0].strip()) self.verse_all_bfr.insert(self.verse_all_bfr.get_end_iter(), u"\nالبرنامج : " + a[0].strip()) d = int(self.lab_answer_prog.get_label()) + 1 self.lab_answer_prog.set_label(str(d)) self.verse_usr_bfr.set_text("") i = self.db.id_poet(a[1]) self.lab_speaker0.set_label(self.db.name_poet(i)[1]) if a[0] == None: return r = self.db.rawi_poem(a[1]) rawi = daw_araby.NAMES[daw_tools.rawi_poem(a[0].strip())] self.lab_rawi.set_label(rawi) return daw_customs.erro(self.parent, "لا يوجد بيت جديد يبدأ بحرف {}".format(rawi))
def merge_poet_cb(self, *a): new_poet = self.poets_entry1.get_text() if new_poet == '': return poet, sex, balad, age = self.parent.db.id_name_poet(new_poet.decode('utf8')) if poet == None: daw_customs.erro(self.parent, 'ضع الاسم الصحيح للشاعر'); return model, i = self.sel_poet.get_selected() if i: poet_old = model.get_value(i,0) self.parent.db.merge_poet(poet_old, poet, sex, balad, age) daw_customs.info(self.parent, 'تم دمج ديوان {} مع ديوان {}'.format(model.get_value(i,1), new_poet))
def show_poem(self, *a): self.player.stop() model, i = self.tree_recited.get_selection().get_selected() if i: id_poem = model.get_value(i,0) self.iv.loading(id_poem, self.parent.theme.fontmp) self.player.set_sensitive(True) file_media = join(daw_customs.AUDIO_DIR,'00'+str(id_poem)+'.ogg') self.player.set_media(file_media) if not exists(file_media): daw_customs.erro(self.parent, u'لا يوجد ملف صوتي لهذه القصيدة')
def scan_cb(self, *a): v = 0 if self.ishbaa_m.get_active(): v = 1 text = self.verse_dictation_bfr.get_text(self.verse_dictation_bfr.get_start_iter(), self.verse_dictation_bfr.get_end_iter(), False).decode('utf8') if text != '': wazn = daw_scan.writing_wazn(text, v) ls_awzan = daw_scan.meter_verse(wazn) text1 = daw_scan.writing_spoken(text, v) if len(ls_awzan) == 0: daw_customs.erro(self.parent, u''' لم يستطع البرنامج تحديد بحر هذا البيت هل جميع الأحرف المنطوقة مكتوبة في الكتابة العروضية ؟ إن لم تكن ، فقد يكون الخطأ في التشكيل !.''') takti31= daw_scan.writing_scan(text, v) result = u'الكتابة العروضية : '+text1+'\n' result += u'الكتابة التقطيعية : '+takti31+'\n' else: result = u'الكتابة العروضية : '+text1+'\n' result += u'الكتابة التقطيعية : '+ls_awzan[0][4]+'\n' s = 1 if len(ls_awzan) > 1: result += u'هذا الوزن ينتمي لأكثر من بحر فقد يكون : \n'.format(str(s),) for a in ls_awzan: t = a[3].split(' ') if s > 1: result += u'وقد يكون : *****************************************\n'.format(str(s),) result += u'البحر : '+daw_scan.Elbehor[a[1]]+'\n' result += u'الكتابة التفعيلية : '+a[3]+'\n' if a[7] != u'': result += u'******* الصدر *******\n' result += u'التفعيلة الأولى : '+a[10]+'\n' if len(t) != 5 and len(t) != 2: result += u'التفعيلة الثانية : '+a[12]+'\n' if len(t) == 9: result += u'التفعيلة الثالثة : '+a[14]+'\n' result += u'العروض : '+a[6]+'\n' if a[7] != u'': result += u'******* العجز *******\n' if len(t) == 5: result += u'التفعيلة الأولى : '+a[12]+'\n' elif len(t) == 7: result += u'التفعيلة الأولى : '+a[14]+'\n' result += u'التفعيلة الثانية : '+a[16]+'\n' elif len(t) == 9: result += u'التفعيلة الأولى : '+a[16]+'\n' result += u'التفعيلة الثانية : '+a[18]+'\n' result += u'التفعيلة الثالثة : '+a[20]+'\n' if a[7] != u'': result += u'الضرب : '+a[8]+'\n' s += 1 self.view_scan_bfr.set_text(result) daw_customs.with_tag(self.view_scan_bfr, self.title_tag2, [u'الكتابة العروضية :',u'الكتابة التقطيعية :', u'البحر :', u'الكتابة التفعيلية :', u'العروض :', u'الضرب :', u'******* العجز *******', u'التفعيلة الأولى : ', u'التفعيلة الثانية :', u'التفعيلة الثالثة :', u'******* الصدر *******'])
def sav_result_cb(self, *a): nm = self.sav_result_entry.get_text() if nm == "": daw_customs.erro(self.parent, "أدخل الاسم أولا.") elif nm in os.listdir(daw_customs.HOME_DIR): daw_customs.erro(self.parent, "يوجد بحث محفوظ بنفس الاسم !!") else: output = open(join(daw_customs.HOME_DIR, nm+'.pkl'), 'wb') cPickle.dump(self.results_list, output) output.close() self.sav_result_entry.set_text("")
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 move_poem_cb(self, *a): new_poet = self.poets_entry.get_text() if new_poet == '': return poet, sex, balad, age = self.parent.db.id_name_poet(new_poet.decode('utf8')) if poet == None: daw_customs.erro(self.parent, 'ضع الاسم الصحيح للشاعر'); return model, i = self.sel_poem.get_selected() if i: poem = model.get_value(i,0) self.parent.db.change_poet(poem, poet, sex, balad, age) daw_customs.info(self.parent, 'تم نقل القصيدة {} إلى ديوان {}'.format(model.get_value(i,1), new_poet)) model.remove(i)
def save_ta3lim(self, *a): if self.view_poem_bfr.get_has_selection(): sel = self.view_poem_bfr.get_selection_bounds() sel_text = self.view_poem_bfr.get_text(sel[0], sel[1],True) text = daw_tools.one_half(sel_text.decode('utf8')) list_marks = eval(daw_config.getv('marks')) list_marks.append([self.id_poem, text]) marks = repr(list_marks) daw_config.setv('marks', marks) daw_customs.info(self.parent, u'تم تعليم الموضع') else: daw_customs.erro(self.parent, u'حدد شطرا واحدا من البيت الذي تريد الرجوع إليه')
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 search(self, *a): text = self.entry_search.get_text().decode('utf8') if text == u'': daw_customs.erro(self.parent, 'أدخل النص المراد البحث عنه') elif self.selected_list == []: daw_customs.erro(self.parent, 'أنت لم تحدد أين ستبحث') else: self.parent.set_title("دواوين العرب - نتائج البحث") self.parent.main_notebook.set_current_page(10) self.parent.search_result_page.set_sensitive(True) self.parent.search_result_page.set_active(True) sr = ShowResult(self.parent) self.parent.resultsearch.append_page(sr,TabLabel(sr, text)) self.parent.resultsearch.set_current_page(-1) sr.search(text, self.dict_perf, self.selected_list) self.hide()
def scan_verse(self, *a): if self.view_poem_bfr.get_has_selection(): sel = self.view_poem_bfr.get_selection_bounds() v1 = sel[0].get_line() v2 = v1 verse = daw_tools.get_abiat(self.text_poem, v1, v2, self.t) if verse == None: return daw_customs.erro(self.parent, u'لا يمكن تقطيع هذا البيت') self.parent.main_notebook.set_current_page(8) self.parent.wazn_page.set_active(True) n = self.parent.main_notebook.get_current_page() ch = self.parent.main_notebook.get_nth_page(n) ch.set_current_page(0) txt = verse.replace(u'*', u' ') ch.verse_dictation_bfr.set_text(txt.strip()) ch.view_scan_bfr.set_text('') else: daw_customs.erro(self.parent, u''' حدد البيت أو الأبيات التي تريد إضافتها إلى أبياتك المفضلة ''')
def save_abiaty(self, *a): if self.view_poem_bfr.get_has_selection(): sel = self.view_poem_bfr.get_selection_bounds() v1 = sel[0].get_line() v2 = sel[1].get_line() abiaty = daw_tools.get_abiat(self.text_poem, v1, v2, self.t) if abiaty == None: return daw_customs.erro(self.parent, u'لا يمكن إضافة هذه الأبيات إلى المفضلة') id_verse = self.parent.db.to_abiaty(self.id_poem, abiaty) if id_verse > 0: daw_customs.info(self.parent, u'تم إضافة هذا البيت للأبيات المفضلة') n = self.parent.main_notebook.get_n_pages() for s in range(n): ch = self.parent.main_notebook.get_nth_page(s) if self.parent.main_notebook.get_tab_label_text(ch) == 'أبياتي': ch.pages() return else: daw_customs.erro(self.parent, u''' حدد البيت أو الأبيات التي تريد إضافتها إلى أبياتك المفضلة ''')
def ok_verse_cb(self, *a): all_verse = self.verse_all_bfr.get_text( self.verse_all_bfr.get_start_iter(), self.verse_all_bfr.get_end_iter(), False ).decode("utf8") verse0 = self.verse_prog_bfr.get_text( self.verse_prog_bfr.get_start_iter(), self.verse_prog_bfr.get_end_iter(), False ).decode("utf8") rawi0 = daw_araby.NAMES[daw_tools.rawi_poem(verse0.strip())] verse1 = self.verse_usr_bfr.get_text( self.verse_usr_bfr.get_start_iter(), self.verse_usr_bfr.get_end_iter(), False ).decode("utf8") if verse1 == u"": return rawi1 = daw_araby.NAMES[daw_tools.rawi_poem(verse1.strip())] first1 = daw_araby.NAMES[verse1.strip()[0]] if first1 != rawi0: daw_customs.erro(self.parent, "البيت يبدأ بحرف غير الذي انتهى به الأول\nحاول مجددا .") return if self.db.is_verse(verse1): if daw_araby.fuzzy_plus(verse1) in daw_araby.fuzzy_plus(all_verse): daw_customs.erro(self.parent, "البيت مستخدم مسبقا\nحاول مجددا .") return else: daw_customs.info(self.parent, "أحسنت") self.verse_all_bfr.insert(self.verse_all_bfr.get_end_iter(), u"\nالمستخدم : " + verse1.strip()) d = int(self.lab_answer_user.get_label()) + 1 self.lab_answer_user.set_label(str(d)) self.next_verse(rawi1) else: daw_customs.erro(self.parent, "البيت غير موجود في قاعدة بيانات البرنامج\nحاول مجددا .") return daw_customs.with_tag(self.verse_all_bfr, self.verse_all_tag, ["البرنامج : "]) self.verse_all.scroll_to_iter(self.verse_all_bfr.get_end_iter(), 0, 1, 1, 1)
def adding_muth(self, *a): text = daw_tools.right_space(self.nasse_bfr.get_text(self.nasse_bfr.get_start_iter(), self.nasse_bfr.get_end_iter(), False)).decode('utf8') if text == '': daw_customs.erro(self.parent, 'ضع القصائد أولا'); return gharadh = 0 baher = 0 rawi = 0 kafia = 0 arodh = 0 sabab = "" charh = "" poet, sex, balad, age = self.add_poet() if poet == 'none': return self.set_sensitive(False) list_poems = text.split('#') for poem_text in list_poems: while (Gtk.events_pending()): Gtk.main_iteration() name, poem, naw3, gharadh, baher, rawi, kafia = daw_tools.name_poem(poem_text) poem = daw_tools.right_space(poem) label = Gtk.Label() label.override_font(Pango.FontDescription('KacstOne 15')) if naw3 != 5: if daw_tools.is_machtor(poem): longer_half, n_abiat = daw_tools.longer_half(poem, label, 1) else: longer_half, n_abiat = daw_tools.longer_half(poem, label, 0) else: longer_half = 0 n_abiat = len(poem.splitlines(1)) self.parent.db.add_poem(name, poem, sabab, charh, poet, sex, balad, age, n_abiat, baher, rawi, kafia, arodh, gharadh, naw3, longer_half) self.parent.dawawinpage.refresh_poets() self.parent.dawawinpage.search_cb() self.parent.organizepage.refresh_poets() self.parent.organizepage.search_cb() daw_customs.info(self.parent, 'تم إضافة جميع القصائد بنجاح') self.set_sensitive(True); return
def choice_speaker(self, *a): self.choice_1.set_sensitive(False) self.choice_2.set_sensitive(False) self.choice_3.set_sensitive(False) self.answer_who.set_sensitive(False) if self.choice_1.get_active() and self.entry_speaker_1.get_text().decode("utf8") == self.who_speaker: daw_customs.info(self.parent, u"أحسنت القائل هو {}".format(self.who_speaker)) d = int(self.lab_correct_who.get_label()) + 1 self.lab_correct_who.set_label(str(d)) elif self.choice_2.get_active() and self.entry_speaker_2.get_text().decode("utf8") == self.who_speaker: daw_customs.info(self.parent, u"أحسنت القائل هو {}".format(self.who_speaker)) d = int(self.lab_correct_who.get_label()) + 1 self.lab_correct_who.set_label(str(d)) elif self.choice_3.get_active() and self.entry_speaker_3.get_text().decode("utf8") == self.who_speaker: daw_customs.info(self.parent, u"أحسنت القائل هو {}".format(self.who_speaker)) d = int(self.lab_correct_who.get_label()) + 1 self.lab_correct_who.set_label(str(d)) else: if self.choice_1.get_active() or self.choice_2.get_active() or self.choice_3.get_active(): daw_customs.erro(self.parent, u"أخطأت !! القائل هو {}".format(self.who_speaker)) d = int(self.lab_false_who.get_label()) + 1 self.lab_false_who.set_label(str(d)) self.new_verse_who() self.appraisal_who()
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 adding_one(self, *a): text = daw_tools.right_space(self.nasse_bfr.get_text(self.nasse_bfr.get_start_iter(), self.nasse_bfr.get_end_iter(), False)).decode('utf8') if text == '': daw_customs.erro(self.parent, 'ضع القصيدة أولا'); return nam = self.name_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 : daw_customs.erro(self.parent, 'حدد بحر القصيدة'); return rawi = daw_customs.value_active(self.rawi) if rawi == None : daw_customs.erro(self.parent, 'حدد روي القصيدة'); return kafia = daw_customs.value_active(self.kafia) if kafia == None : daw_customs.erro(self.parent, 'حدد قافية القصيدة'); return arodh = daw_customs.value_active(self.arodh) if arodh == None : daw_customs.erro(self.parent, 'حدد عروض القصيدة'); return elif naw3 == 2: baher = daw_customs.value_active(self.baher) if baher == None : 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 : daw_customs.erro(self.parent, 'حدد غرض القصيدة'); return poet, sex, balad, age = self.add_poet() if poet == 'none': return charh = self.charh_bfr.get_text(self.charh_bfr.get_start_iter(), self.charh_bfr.get_end_iter(), False).decode('utf8') sabab = self.sabab_bfr.get_text(self.sabab_bfr.get_start_iter(), self.sabab_bfr.get_end_iter(), False).decode('utf8') label = Gtk.Label() label.override_font(Pango.FontDescription('KacstOne 15')) if naw3 != 5: if daw_tools.is_machtor(text): 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 n_abiat = len(text.splitlines(1)) check = self.parent.db.add_poem(nam, text, sabab, charh, poet, sex, balad, age, n_abiat, baher, rawi, kafia, arodh, gharadh, naw3, longer_half) self.parent.dawawinpage.refresh_poets() self.parent.dawawinpage.search_cb() self.parent.organizepage.refresh_poets() self.parent.organizepage.search_cb() if check == None: daw_customs.info(self.parent, 'تم إضافة القصيدة بنجاح'); return