| مجتمع Qt العربي http://qt-ar.org/community/ |
|
| اخر اخبار مشروع المؤذن. http://qt-ar.org/community/viewtopic.php?f=3&t=176 |
صفحة 1 من 2 |
| الكاتب: | SudaNix [ الاربعاء مايو 13, 2009 7:07 am ] |
| عنوان المشاركة: | اخر اخبار مشروع المؤذن. |
السلام عليكم ورحمة الله وبركاته ، قبل فترة عدت مجددا للتطوير في برنامج المؤذن ، وقد قمت ببعض التحديثات والتي لم ينتهي بعضها الى الان -كالعادة . وشملت التحديثات : * تحسين في كود حساب المواقيت . * اصلاح بعض الـ Bugs . * اعتماد Phonon لتشغيل ملفات الصوت بدلا من الفئة العقيمة QSound * اضافة خاصية الاذكار العشوائية و اذكار الصباح والمساء "بشكل نصي او صوتي". * اضافة خاصية الضبط اليدوي للمواقيت -لم تنتهي بعد- . * حساب الوقت المتبقي للصلاة القادمة تمت ولكن تبقى اظهارها على QProgressBar. خصائص ساضيفها: * حساب اتجاه القبلة. * استخدام مكتبة هجرة لحساب التاريخ الهجري - لكن يجب تحويلها اولا من python الى c++ -. * إضافة استايل اخر للبرنامج . وهذه بعض الـ Screen shot ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ما اريده الان هو افكار/مقترحات اضافية تراها مناسبة ؟ تصاميم او ايقونات او ملفات استايل تستطيع تصميمها ؟ اذا كنت مصمم ، هل هناك مجموعة الوان تراها مناسبة للمشروع بدلا من الالوان الحالية؟ وان شاء الله ستصدر النسخة الاولى v0.1 بعد ان انتهي من امتحانات اخر العام . بالتوفيق. |
|
| الكاتب: | Amine27 [ الاربعاء مايو 13, 2009 3:48 pm ] |
| عنوان المشاركة: | Re: اخر اخبار مشروع المؤذن. |
السلام عليكم جهد مبارك إن شاء الله أرى أن تحسن مظهر الواجهة ليكون أكثر جمالا : خلفية لكل وقت مثلا، إضافة widget للساعة بدلا من الأرقام، تخصيص ميزة التذكير لكل وقت، توفير عدة أشكال للأذان (بالصوت أو pop-up)، إضافة إلى systray بعض المعلومات عند تمرير الفأرة كالوقت المتبقي للصلاة القادمة، التحكم في حجم صوت البرنامج، إمكانية تعديل التاريخ الهجري. ألن تكون هناك نسخ alpha أو beta ؟ للإطلاع على السورس والمساعدة شكرا جزيلا |
|
| الكاتب: | Akou [ الاربعاء مايو 13, 2009 10:23 pm ] |
| عنوان المشاركة: | Re: اخر اخبار مشروع المؤذن. |
السلام عليكم بارك الله فيك اخي . مشروع مميز. ==> عندي سؤال كيف يمكنني ان اصنع مظهر جميل كهذا . شكرا. |
|
| الكاتب: | SudaNix [ الخميس مايو 14, 2009 7:33 pm ] |
| عنوان المشاركة: | حياكم الله ، |
وعليكم السلام ورحمة الله وبركاته ، اهلا اخي أمين .. اقتباس: أرى أن تحسن مظهر الواجهة ليكون أكثر جمالا : خلفية لكل وقت مثلا، إضافة widget للساعة بدلا من الأرقام، تخصيص ميزة التذكير لكل وقت، توفير عدة أشكال للأذان (بالصوت أو pop-up)، إضافة إلى systray بعض المعلومات عند تمرير الفأرة كالوقت المتبقي للصلاة القادمة، التحكم في حجم صوت البرنامج، إمكانية تعديل التاريخ الهجري. أفكار ممتازة ، ساطبقها باذن الله. وسأركز على جزيئة الواجهة الرسومية ، فهي أهم شيء بالنسبة للـ End-user اقتباس: ألن تكون هناك نسخ alpha أو beta ؟ للإطلاع على السورس والمساعدة يوجد نسخة beta في قسم المشاريع ، ولكن النسخة التي اعمل عليها الان هي v0.1 وقد تخطت مرحلة البيتا و بالنسبة للكود ، فاني قد فضلت عدم وضعه في الوقت الحالي نظرا لانه غير موثق ، ويوجد الكثير من الاكواد التجريبية والتي لم احذفها. لكن بما انك مهتم بالموضوع فلا مانع لدي و أرحب باي مساعدة او انتقاد فهذا هو الطريق الوحيد للمضي قدما .. وهذا شرح مبسط حتى يتضح لك الكود : المشروع بشكل عام يرتكز على الفئة PrayerTime وهي الفئة التي تحسب مواقيت الصلاة ، وتوفر لنا دوالا لمعرفة أوقات الصلوات .وقد تم كتابتها بلغة سي++ "بدون كيوت" وتم فصلها عن كود الواجهة تماما. الواجهة الرئيسية للبرنامج هي الفئة AlMoazenDialog وهي النافذة التي يتم من خلالها استدعاء النوافذ الاخرى ، بالاضافة الى انها هي التي تحفظ اعدادات وخيارات المستخدم "عن طريق ال QSetting" وتقوم بقرائتها مجددا عندما يعمل البرنامج .هذه الفئة فقط هي التي تكون موجودة على الذاكرة ، وعندما تريد فتح نافذة فرعية يتم انشائها وتمرير الاعدادات السابقة لها. وعندما يتم غلق النافذة الفرعية يتم مسحها من الذاكرة ،وحفظ الاعدادات الجديدة . وهذا حتى يكون البرنامج خفيف على الذاكرة و حجم الفئة يساوي 428 بايت . حجم مناسب ؟ الفئة PopupDialog هي نافذة تظهر لنا وقت الصلاة مع صوت للمؤذن . ايضا لها وظيفة اخرى وهي التذكير قبل خمس دقائق وبعد خمس دقائق من الاذان . الفئة PlaceDialog هي التي تظهر لنا خيارات المنطقة والمدينة ، ومنها تختر ما تريد وتضغط على موافق. لاحظ اني أحفظ اعدادات وخيارات البرنامج في الفئة AlMoazenDialog ، بمعنى ان اي فئة فرعية "مثل PlaceDialog" يجب ان توفر لنا دوالا لكي نعرف ما هي الخيارات التي تم اختيارها ومن ثم تقوم الفئة AlMoazenDialog بحفظها. الفئة PrayerTimesReport تظهر لنا تقرير عن مواقيت الصلاة للشهر الحالي ، طبعا سأعدلها واضيف امكانية طباعتها لاي وقت يحدده المستخدم. الفئة SettingDialog هي التي تظهر لنا اعدادات الصوت والتذكير ، ايضا يوجد زر لتجربة الصوت ولكن لم افعله الى الان.. الفئة Services توفر لنا دوالا لكي استخدمها في البرنامج "اريد تحسينها كليا". الفئة ChangeTimeDialog هي التي تتيح لنا امكانية تعديل وضبط مواقيت الصلاة بشكل يدوي ."لم انتهي منها بعد". الفئة AzkarDialog توفر لنا خيارات الاذكار والاغلاق التلقائي لها. الفئة AzkarPopupDialog هي نافذة الاذكار التي تظهر كل مدة معينة "بحسب الوقت الذي قمت بضبطه" . ايضا فيها دوال تشغيل اذكار الصباح والمساء الصوتية والنصية. الفئة Database تقوم بالاتصال مع قاعدة البيانات "تحوي خط الطول والعرض للمدن ،بالاضافة الي بعض الاذكار في جدول اخر". الفئة AboutDialog تحوي معلومات بسيطة. بالنسة للمجلدات : مجلد azkar يحوي اذكار الصباح والمساء "بصوت مشاري العفاسي". مجلد configures يحوي على ملف lockFile في حالة كان البرنامج يعمل ، وفي حالة اغلاقه سيقوم البرنامج بحذفه دلالة.ويوجد نفس المشكلة السابقة لم احلها الى الان. مجلد database يحوي قاعدة البيانات. مجلد sounds يحوي ملفات اصوات الاذان. مجلد qss يحوي على ملفات الاستايل. مجلد images يحوي على الصور. رابط التحميل: Just for Developers and Testers Download ملفات الاذكار : ضعها في مجلد الاذكار azkar : sabah masa ملاحظة: حتى يعمل الصوت يجب توفر حزم ال phonon : phonon libphonon4 phonon-devel phonon-backend-gstreamer ++++++++++++++++++++++++ أخي Akou : وعليكم السلام ورحمة الله وبركاته ، اقتباس: عندي سؤال كيف يمكنني ان اصنع مظهر جميل كهذا . عن طريق الاستايل شيت Style sheet . عليك ان تبدأ من هنا : http://doc.trolltech.com/4.5/stylesheet.html بالتوفيق يا شباب .. |
|
| الكاتب: | Amine27 [ الجمعه مايو 15, 2009 5:14 pm ] |
| عنوان المشاركة: | Re: اخر اخبار مشروع المؤذن. |
مرحبا أحمد والله أسعدني تجاوبك، شكرا لك قمت بتحميل السورس وتصنيف البرنامج من دون مشاكل، جاري الإطلاع على طريقة عمله وإن شاء الله أوافيك بالجديد وشكرا |
|
| الكاتب: | SudaNix [ الجمعه مايو 15, 2009 6:22 pm ] |
| عنوان المشاركة: | Re: اخر اخبار مشروع المؤذن. |
الله يخليك اخي امين .. ما سوينا الا الواجب .. وبانتظار ملاحظاتك وارائك .. الى اللقاء. |
|
| الكاتب: | StrikerX [ الاثنين مايو 18, 2009 10:24 am ] |
| عنوان المشاركة: | Re: اخر اخبار مشروع المؤذن. |
ممتاز كالعادة مساهمة منى دعم لل prayertime ببايثون عشان لو حد حب يستخدمها مستقبليا http://programming-fr34ks.net/smf/pytho ... or-python/ |
|
| الكاتب: | SudaNix [ الاثنين مايو 18, 2009 6:35 pm ] |
| عنوان المشاركة: | Re: اخر اخبار مشروع المؤذن. |
ما شاء الله عليك يا StrikerX .. شغل نظيف وفقك الله . |
|
| الكاتب: | المستشار [ السبت مايو 30, 2009 7:45 pm ] |
| عنوان المشاركة: | Re: اخر اخبار مشروع المؤذن. |
الله يعطيك العافية فية فكرة ... مثل اذا دخل الآذان يظهر عرض مثل عروض البويربونت يظهر فيها التكرار وارء المؤذن ..هي فكرة |
|
| الكاتب: | scorpiondezer [ الاحد فبراير 07, 2010 3:23 pm ] |
| عنوان المشاركة: | Re: اخر اخبار مشروع المؤذن. |
السلام عليكم و رحمة الله تعالى و بركاته، شكرا على هذا البرنامج فنحن ننتظر النسخة النعائية بفارغ الصبر اطلعت هلى الكود و قمت بتجريبه و لكن ليس لهذه النسخة بل النسخة الموجودة في قسم المشاريع البرمجية لانها تعتمد على QSound فقط (ليس لدي وقت لاجربها مع الـ phonon و لكن سأجربه قريبا ان شاء الله)، فقط احدثت بعض التغييرات بالنسة للملف الذي لا يسمح بالعمل لأكثر من نسخة واحدة، فما رأيك بستعمال الصف QSharedMemory : بالنسبة للـ main: CODE: #include <QApplication> #include <QtSql> #include <QMessageBox> #include <QTextStream> #include <QFile> #include <QFont> #include <QSharedMemory> #include "window.h" #include "services.h" #include "database.h" int main(int argc,char* argv[]) { Q_INIT_RESOURCE(gui); QApplication app(argc,argv); //QApplication::setFont(QFont("Tahoma")); qint64 processId = app.applicationPid(); QSharedMemory sharedMemory; Services services; sharedMemory.setKey("pid"); // trying to create a shared memory segment if(!sharedMemory.create(sizeof(processId))) { // if the segment already exists (an instance of the application is already running) if(sharedMemory.error() == QSharedMemory::AlreadyExists) { if(sharedMemory.attach(QSharedMemory::ReadOnly)) { // we save data of the first instance sharedMemory.lock(); qint64 p = *(qint64 *)sharedMemory.constData(); sharedMemory.unlock(); // calling QMessageBox::critical, we can't calling it in main (main dosn't support UTF-8) services.notSingle(); return 1; } } else { // error ... qDebug() << sharedMemory.errorString(); } } else { // first run of application, we save the ID sharedMemory.lock(); memcpy(sharedMemory.data(), &processId, sharedMemory.size()); sharedMemory.unlock(); } Database db; // check if another instance of program run in memory. /*if( !services.isSignle() ) return false;*/ // load style sheet services.loadStyleSheet("style"); // check availability of place_settings file. if( !services.createPlaceSettingsFile() ) return false; // check availability of program_settings file. if( !services.createProgramSettingsFile() ) return false; // check availability of Database file. if( !db.checkDatabase() ) return false; // connect to SQLite database. if( !db.makeConnection() ) return false; // Create Almoathen Object and pass to it the initial(Previous) configuration. Window Almoathen(services.readPlaceSettingsFile()); Almoathen.show(); Almoathen.setFixedSize(QSize(320,366)); return app.exec(); } استعملت Services::notSingle() من نوع void في مكان isSignle() الشرح في التعليقات، و بهذا تتخلص من الملف و سلبياته بالنسبة للـ services.h CODE: void Services::notSingle() { QMessageBox::critical(0,QObject::trUtf8("خطأ في التشغيل"),QObject::trUtf8("يوجد نسخة من البرنامج تعمل حاليا ، لا تستطيع تشغيل اكثر من نسخة واحدة"),QMessageBox::Close); } مع حذف جميع التعيمات الخاصة بالملف Lock من constructer و غيرها.... سأقوم ببناء البرناج على منصة الماك عندما اجد وقت فراغ ان شاء الله، و الرجاء الاكثار من التعليقات لكل دالة و كل متغير حتى نفهم الكود بسرعة، و سأحاول تحويل الكود الى لغة objectif-c ليستطيع البرنامج العمل على اجهزة الـ iphone ان شاء الله... و السلام عليكم و رحمة الله تعالى و بركاته |
|
| صفحة 1 من 2 | جميع الأوقات تستخدم GMT |
| Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |
|