示例#1
0
文件: daw_add.py 项目: RaaH/dawawin
 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
示例#2
0
 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()
示例#3
0
文件: daw_dict.py 项目: RaaH/dawawin
 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
示例#4
0
 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)
示例#5
0
文件: daw_fun.py 项目: RaaH/dawawin
 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))
示例#6
0
 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))
示例#7
0
 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'لا يوجد ملف صوتي لهذه القصيدة')
示例#8
0
    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'******* الصدر *******'])
示例#9
0
 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("")
示例#10
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()
示例#11
0
 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)
示例#12
0
 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'حدد شطرا واحدا من البيت الذي تريد الرجوع إليه')
示例#13
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
示例#14
0
 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()
示例#15
0
 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'''
         حدد البيت أو الأبيات التي تريد 
         إضافتها إلى أبياتك المفضلة
         ''')
示例#16
0
 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'''
         حدد البيت أو الأبيات التي تريد 
         إضافتها إلى أبياتك المفضلة
         ''')
示例#17
0
文件: daw_fun.py 项目: RaaH/dawawin
 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)
示例#18
0
文件: daw_add.py 项目: RaaH/dawawin
 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
示例#19
0
文件: daw_fun.py 项目: RaaH/dawawin
 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()
示例#20
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
示例#21
0
文件: daw_add.py 项目: RaaH/dawawin
 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