وبلاگ سعید رسولی

بخور، بخواب، کد بزن

بخور، بخواب، کد بزن

گنو/لینوکس، پایتون، زندگی

آخرین مطالب
مطالب پربحث‌تر

۲ مطلب در دی ۱۳۹۲ ثبت شده است

انتشار StarCalendar 2.3.0 


sourceforge.net/projects/starcal/files/starcal2/2.3

github.com/ilius/starcal


این نسخه احتمالاً خیلی پایدارتر از 2.1.0 و 2.2.0 باشه.


تغییرات قابل ذکر از نسخهٔ 2.2


۱- بهبود Tray Icon

احتمالاً اولین تغییری هست که به چشم میاد.




نکتهٔ اول: قبلاً از دو فایل png برای ساخت آیکون tray استفاده می‌کرد (یکی برای روزهای تعطیل و یکی هم روزهای معمولی). اما الآن از فایل‌های svg استفاده میشه. که هم راحت‌تر میشه ادیت‌شون کرد (توسط خودم یا کاربر) هم کیفیت‌شون بالاتره و حتی با زیاد کردن ارتفاع panel تا ۱۲۸ پیکسل هم، خود به خود اندازهٔ آیکون تغییر می‌کنه و کیفیت کم نمیشه. این از خاصیت‌های تصاویر برداری هست


نکتهٔ دوم: آیکون‌ها قبلاً زمینهٔ سفید داشت، ولی الآن آیکون‌های زمینه‌سفید دوباره با svg طراحی شدن، و آیکون‌های تیره یا dark هم اضافه شدن و بطور پیش‌فرض هم آیکون dark جدید جای آیکون سفید png رو می‌گیره.


نکتهٔ سوم: می‌تونید آیکون tray رو از داخل ترجیحات برنامه تغییر بدید، مثلاً آیکون‌های زمینه‌سفید رو دوباره بذارید، یا اینکه فایل svg آیکون‌ها رو توی پوشهٔ خانگی خودتون کپی کنید، با Inkscape ویرایش کنید و به برنامه معرفی کنید تا از اونا بجای آیکون‌های پیش‌فرض استفاده کنه.

کافیه برید به قسمت: ترجیحات -> ظاهر -> شمایل Tray

(شمایل معادل فارسی Icon هست)



۲- منطقهٔ زمانی

اگه از من می‌پرسید مهم‌ترین تغییر در این نسخه چیه، می‌گم اضافه شدن قابلیت Time Zone به رویدادها هست.

البته رویدادهای تمام-روز نیازی به منطقهٔ زمانی ندارند. پس فقط در این نوع رویدادها می‌تونید منطقهٔ زمانی مشخص کنید: کار - رویداد هفتگی - رویداد دلخواه

و از اونجایی که منطقهٔ زمانی یک رویداد، در هنگام اضافه شدن/تعریف شدن مشخص میشه، پس در اولین اجرای برنامه، رویدادهایی که قبلاً وجود داشتن باید منطقهٔ زمانی براشون تعریف بشه و ذخیره بشه. به همین منظور، اولین باری که نسخهٔ 2.3 رو اجرا می‌کنید، دیالوگی باز میشه و این کار رو انجام میده. بطور دقیق‌تر، اگه ورژنی که توی فایل

~/.starcal2/event/info.json

هست، قدیمی‌تر از 2.3.0 باشه، این دیالوگ باز میشه.



۳- تغییراتی دیگر در رویدادها


ویرایش گروه -> نمایش در تقویم -> [x]روز [x]ماه [x]سال

مثلاً گروه‌هایی که تعداد رویدادهاشون در هر روز زیاده، یا متن رویدادهاش طولانیه، ممکنه نخواید توی تقویم هفتگی و تقویم ماهیانه نشون داده بشه، بلکه فقط توی رویدادهای روز (زیر تقویم) نشون داده بشه.


رویدادهای لحظه‌ای که طول‌شون صفر بود (ابتدا و انتهاشون یکی بود) قبلاً باهاشون مشکل داشتیم، یعنی توی تقویم نشون داده نمی‌شدن. که در این نسخه این مشکل برطرف شده.


مدیریت رویدادها -> جستجوی رویدادها -> [ ]حساس به حروف بزرگ و کوچک


گروه رویدادهای سالیانه -> ویرایش -> نمایش تاریخ در خلاصهٔ رویدادها

گزینه‌ای که در پلاگین‌ها (مناسبت‌های سالیانه) وجود داشت، ولی توی رویدادهای سالیانه هم نیاز بود.



قاعدهٔ رویداد هفته-ماه -> اضافه شدن گزینهٔ «هر ماه»

حالا میشه رویدادی شبیه «اولین دوشنبهٔ هر ماه شمسی» (روز باشگاه فیزیک) رو هم تعریف کرد.

با تشکر از «امیرمسعود پورموسی‎» بخاطر پیشنهادش.


روز باشگاه فیزیک - استارکلندر


۴- خط زمان: بهبود فاحش الگوریتمی در رندر کردن رویدادها

این به نظر خودم جذاب‌ترین کار در توسعهٔ این نسخه بود.

با استفاده از گراف (به مفهوم ریاضیاتی نظریهٔ گراف)، رندر کردن اون مستطیل‌های رویدادها، هم سریع‌تر شده (هر چی تعداد رویدادها بیشتر بشه، این تفاوت سرعت بیشتر خودش رو نشون میده) و هم موقعیت و ترکیب‌شون در رندر شدن خیلی بهبود پیدا کرد و هم کدش خیلی تمیزتر شده. امیدوارم در آینده بتونم این رو بصورت یک کتابخانهٔ جدا در زبانی مثل سی پیاده‌سازی کنم. چون کاملاً ابداع خودم بوده و معادلش رو جایی ندیدم.

به هر حال، اگه مثل خودم، تعداد زیادی رویداد توی خط زمان داشته باشید، این یک تغییر مهم به حساب میاد.

اگه هم هنوز از خط زمان زیاد استفاده نمی‌کنید، توصیه می‌کنم از امروز استفاده کنید.


البته این باعث شده برنامه به پکیج python-igraph وابسته بشه (که با وابستگی‌هاش کمتر از ۲ مگ هست)

اگه از پکیج‌های deb و rpm استفاده کنید خود به خود این پکیج نصب میشه.

اگه همpython-igraph رو نصب نکنید و برنامه رو از پکیج سورس اجرا کنید، برنامه اجرا میشه (ارور نمیده) ولی رویدادها در خط زمان نشون داده نمیشه.

دو اسکرین‌شات از خط زمان در نسخهٔ 2.2 و 2.3 گذاشتم تا تفاوت رو ببینید

تاریخ ایران رو بعنوان مثال در نظر گرفتم (مثال بهتری نداشتم)




۵- تغییراتی در پنجرهٔ اصلی


در پنجرهٔ اصلی، اگه تقویم ماه فعال باشه و روی یک قسمتش راست-کلیک کنید، یک گزینهٔ «تغییر به تقویم هفتگی» اضافه شده که با کلیک کردن روش، خیلی سریع تقویم ماه پنهان میشه و تقویم هفتگی جاش رو می‌گیره.

همینطور در منوی راست-کلیک تقویم هفتگی هم گزینهٔ «تغییر به تقویم ماه» اضافه شده.

قبلاً برای این کار باید پنجرهٔ شخصی‌سازی رو باز می‌کردید، یک تیک رو برمی‌داشتید و یک تیک رو می‌زدید و پنجرهٔ شخصی‌سازی رو می‌بستید. یعنی قبلاً با ۴ کلیک انجام میشد، الآن با ۲ کلیک.



شخصی‌سازی -> نوار پیش‌روی فصل‌ها

که همیشه بهتون نشون میده چند درصد از فصلی که توش هستید، طی شده.


شخصی‌سازی -> تقویم هفتگی -> نوارابزار -> منوی اصلی

آیکونی که با کلیک کردن روش، منوی اصلی باز میشه.

در ضمن با دکمهٔ F10 هم می‌تونید منوی اصلی رو باز کنید.


همینطور در نوارابزار تقویم هفتگی، اگه شمارهٔ هفته (در سال) فعال باشه، با کلیک کردن روی این عدد، تبدیل به یک عدد منفی میشه (یعنی چند هفته تا انتهای سال باقی مونده). با کلیک کردن مجدد تبدیل به عدد مثبت میشه.




۶- پخش صدای اذان توسط افزونهٔ اوقات شرعی


کافیه به قسمت تنظیمات پلاگین اوقات شرعی برید و فایل صوتی اذان رو بهش معرفی کنید.


در ضمن امکان پخش «صوت پیش‌اذان» هم وجود داره، مثلاً پخش قرآن، از ۱۰ دقیقه قبل از اذان.

که موقع اذان، این فایل متوقف میشه و فایل اذان پخش میشه (پس لازم نیست نگران طول صوت پیش‌اذان باشید، با اذان تداخل پیدا نمی‌کنه)


موقع اذان، این فایلی که مشخص کردید (که لزوما هم نباید صوتی باشه) با برنامهٔ پیش‌فرض‌ش باز میشه (انگار که روی اون فایل دبل‌کلیک کرده باشید). اگه می‌خواید این برنامهٔ پیش‌فرض عوض بشه، باید توسط File Manager سیستم، در قسمت Open with اون رو تغییر بدید.

این فایل اذان می‌تونه mp3 یا wav یا mpeg یا حتی اسکریپت bash و پایتون هم باشه.




۷- ماه‌های قمری


ماه‌های قمری برای سال ۱۳۹۳ شمسی هم طبق تقویم رسمی ایران، آپدیت شده. که البته در نسخهٔ 2.2.6 هم این تغییر اعمال شده بود.


همینطور در قسمت:

ترجیحات -> پیشرفته -> تنظیم ماه‌های قمری

دکمه‌های افزودن و حذف در سمت چپ اضافه شده.

ولی احتمالاً تا انتهای رمضان سال آینده به این «تنظیم ماه‌های قمری» نیاز پیدا نخواهید کرد.


۸- سایر تغییرات


کدهای مربوط رابط Qt هم از پکیج برنامه حذف شدن.

به دلیل اینکه خیلی وقت بود دست بهشون نزده بودم و عملاً out of date شده بود.

در مخزن git هم این کدها رو به یک branch جدا منتقل کردم. اگه تونستم دوباره آپدیت و تکمیل‌ش کنم، دوباره به برنامه اضافه می‌کنم.


و خب طبق معمول هم کلی رفع باگ و تمیزکاری انجام شده.

البته رفع باگ‌ها رو تا جایی که می‌تونستم در نسخهٔ پایدار برنامه (نسخه‌های 2.2.1 تا 2.2.7) اعمال کردم.

ولی بعضی‌هاش که اعمالش زیاد راحت نبود، رفع‌شون به این نسخه موکول شد.


برنامه در حال حاضر حدود ۳۰ هزار خط کد پایتون داره.

میزان تغییرات کد از نسخهٔ 2.2 رو هم گیت بهمون نشون میده:

$ git diff --shortstat 2.2.0 2.3.0

194 files changed, 8175 insertions(+), 4350 deletions(-)




از نظرات شما استقبال می‌کنیم

موفق باشید


۶ نظر موافقین ۰ مخالفین ۰ ۲۷ دی ۹۲ ، ۲۳:۲۱
سعید رسولی

2.2.6 StarCalendar منتشر شد

با رفع چند باگ نسبت به 2.2.5

بروزرسانی ماه‌های قمری برای سال آینده (۱۳۹۳)

و حجم آرشیو tar.gz برنامه هم حدود ۷۰ کیلوبایت کاهش پیدا کرد (به دلیل حذف فایل‌های بلااستفاده)

https://sourceforge.net/projects/starcal/files/starcal2/2.2

۰ نظر موافقین ۰ مخالفین ۰ ۰۶ دی ۹۲ ، ۱۴:۳۷
سعید رسولی