بایگانی دسته‌بندی‌ها: کامپیوتر

پچ دوجهته QBiDiExtender بروز شد!

مدتها بود که پچ دوجهته را بروز رسانی نکرده بودم، اواخر اردیبهشت‌ماه بعد از کار کردن روی پچ و روی نسخه جدید تک‌میکر به ایرادها و باگ‌هایی برخوردم، که موجب توقف کار گردید! تا اینکه از هفته پیش که یکی از دوستان در مورد تک‌میکر دوجهته پرسیده بودند، دوباره کار را از سر گرفتم و خوشبختانه توانستم باگ‌های پیش آمده رو رفع کنم.

یکی از این مشکلات این بود که تک‌میکر جدید برای اینکه از خاصیت Block Folding استفاده کند مجبور شده است (بخاطر کمبودی در یکی از کلاسهای وابسته) موتور متن استفاده شده را از QTextEdit به QPlainTextEdit تغییر دهد و همانطور که از نام دومی پیداست این دومی از متن فرمت‌دار (Rich Text) پشتیبانی نمی‌کند و درنتیجه از خطوط راست به چپ نیز حمایت نمی‌کند! بنابراین مجبور شدم فعلا خاصیت Block Folding را نادیده بگیرم.

علاوه بر این‌ها همانطور که قبلا هم گفته‌ام موتور متن QTextEdit از نسخه Qt-4.7.0 به بعد دارای قابلیت چینش خودکار خطوط سند به سمت راست یا چپ، است!
که این باعث شد بعضی قسمت‌های QBiDiExtender را تغییر بدهم و البته چند بهبود هم در کار آن ایجاد شده است!
بخاطر اینکه تغییرات زیاد بوده و آن را ناسازگار با نسخه قبلی کرده به نام فایلها شماره «۲» اضافه شده است اما نام کلاس همان QBiDiExtender است.

بهبودهای ایجاد شده:
ادامه‌ی خواندن

FTH و Win7!

در حال دباگ‌کردن(debugging) تک‌میکر دوجهته بر روی ویندوز ۷ بودم که متوجه اشکالی شدم که باعث بسته شدن تک‌میکر می‌شد(به قول معروف crash کرد) قسمتی از کد را که فکر می‌کردم باعث خطا شده داخل کامنت قرار دادم، مشکل crash کردن حل شد، اما دیدم در خروجی کنسول برنامه موقع اجرای برنامه پیغامی بصورت زیر ایجاد می‌شد:

FTH: (1004): *** Fault tolerant heap shim applied to current process. This is usually due to previous crashes. ***

با چند بار اجرای برنامه تعجب کردم که بدون اینکه خطا و crashی ایجاد بشه این پیغام نمایش داده میشه و میگه: «معمولا بعلت crash قبلی این اتفاق رخ میده!»
تنها راه جستجو در اینترنت بود که خوشبختانه به جواب رسید:
در واقع FTH یا همون «Fault Tolerant Heap» سرویسی برای ویندوز ۷ هست که هنگ کردن و crashهای نرم‌افزارها رو تحت‌نظر داره و سعی می‌کنه بصورت خودکار از بروز crashهای آینده برای نرم‌افزارهایی که دچار خطا شدن جلوگیری کنه!
ادامه‌ی خواندن

تبدیل «ساغر» به نرم‌افزار همراه

برای اینکه بتوانید ساغر را به‌صورت همراه استفاده کنید، مثلا آن را داخل Flash Memory ریخته و از آن در همه‌جا استفاده کنید، به‌صورتی که تمام تنظیمات موردنظر شما نیز همیشه همراه نرم‌افزار جابجا شوند لازم است چند مرحله ساده را دنبال کنید.

این مراحل در زیر برای سه سیستم‌عامل بصورت مجزا گفته شده‌اند
*فرض بر این است که کاربر دسترسی نوشتنی به محلی که بسته «ساغر همراه» را کپی خواهد کرد، دارد در غیراین‌صورت ساغر بصورت همراه اجرا نخواهد شد.
(کاربران مکینتاش و لینوکس به ادامه مطلب مراجعه کنید)

کاربران Windows:
مرحله اول: اگر ساغر را نصب نکرده‌اید، آن را نصب کنید.
مرحله دوم: پوشه مربوط به ساغر، یعنی ‎%ProgramFiles%\Pojh\Saaghar\‎ را در هرجا که موردنظرتان است مثلا Flash Memory کپی کنید، فرض کنیم نام این پوشه جدید Saaghar-Portable باشد.

* کافیست آدرس بالا را از اینجا کپی کنید و در Address Bar برنامه Windows Explorer قرار دهید و enter بزنید، بصورت معمول این آدرس بصورت C:\Program Files\Pojh\Saaghar\‎ می‌باشد.

مرحله سوم: فایل پایگاه‌داده را به پوشه Saaghar-Portable منتقل کنید. فایل پایگاه‌داده با نام ganjoor.s3db است و در آدرس ‎%USERPROFILE%\Pojh\Saaghar\‎ قرار دارد.

* کافیست آدرس بالا را از اینجا کپی کنید و در Address Bar برنامه Windows Explorer قرار دهید و enter بزنید، بصورت معمول در ویندوز ویستا و بالاتر این آدرس بصورت C:\Users\USERNAME\Pojh\Saaghar\‎ می‌باشد، که USERNAME نام کاربری شما می‌باشد.
مرحله چهارم: در پوشه Saaghar-Portable فایلی با نام settings.ini ایجاد کنید.
با اتمام مرحله چهارم، «ساغر» به صورت «نرم‌افزار همراه» در می‌آید، و کار به سرانجام می‌رسد.
ادامه‌ی خواندن

سورس‌کد ساغر

سورس‌کد از طریق لینک زیر در دسترس است،

دانلود سورس‌کد آخرین نسخه «ساغر»

md5sum: 7fdd6edc2d5f623dd45c8f64557fc3a4

همچنین این لینک به صفحه دانلودهای ساغر اضافه شد.

توضیح: در زمان انتشار نسخه لینوکسی مسیر فایل پایگاه‌داده را ‎/usr/share/saaghar در نظر گرفته بودم، اما در این کدها این مسیر به ‎~/.Pojh/Saaghar/‎ تغییر پیدا کرده است و همچنین چند باگ کوچک و نامحسوس رفع شده‌اند.

توجه: برای کامپایل سورس‌کد ساغر به Qt >= 4.6.2 نیاز دارید، Qtهای پایین‌تر از این ورژن دارای باگ‌هایی هستند که مشکل ایجاد می‌کنند.