Mudlet: توقف نسخ / لصق نافذة النص الرئيسية عن العمل

تم إنشاؤها على ٢٢ ديسمبر ٢٠١٩  ·  24تعليقات  ·  مصدر: Mudlet/Mudlet

ملخص موجز للمشكلة / وصف العنصر المطلوب:

Mudlet 4.4.0 بدلاً من الانهيار الآن ، لا يعمل النسخ / اللصق أحيانًا

  • لست متأكدًا تمامًا من سبب بدء هذا ، ولكن يبدو أنه في وقت ما ، فإن النسخ / اللصق سيرفض العمل بعد الآن. cmd-c أو انقر بزر الماوس الأيمن فوق نسخ ، فلن يعمل كلاهما. نسخ كما يعمل أتش تي أم أل ثو. وهو أمر مثير للاهتمام.

هذا محبط للغاية.

bug high

التعليق الأكثر فائدة

اكتشف @ njs50Ranfir لقد وسيلة لإصلاح هذا دون الحاجة إلى إعادة ملفك الشخصي. اصنع اسمًا مستعارًا باستخدام هذا:

echo("\nJust fill up the line with random gibberish!")
echo("\nJust fill up the line with random gibberish!")
echo("\nJust fill up the line with random gibberish!")
---etc, up to 1000 lines of the above echo

ثم اضغط على الاسم المستعار الخاص بك لإرسال 1000 سطر من البريد العشوائي إلى ملف التعريف الخاص بك. ضربة واحدة وستتمكن من النسخ واللصق مرة أخرى! لقد جربتها باستخدام اسم مستعار مكون من 100 سطر ولم يكن ذلك كافيًا ، لكن 1000 سطر فعلت الحيلة.

ال 24 كومينتر

أواجه هذه المشكلة على Windows 10. ستتوقف عن العمل بشكل متقطع ، ثم تبدأ العمل بعد بضع دقائق. غير واضح بشأن كيفية التكاثر باستمرار ، ولكنه يحدث بشكل متكرر بدرجة كافية ليكون بمثابة استطلاع دقيق رئيسي.

ما زلت أرى هذه المشكلة تحت 4.5.1-de.

هذا محبط للغاية.

لا أستطيع أن أتفق مع هذا أكثر.

تم التأكيد على أن هذه المشكلة لا تزال تحدث في 4.6.2 على OSX. إنه أمر غريب لأنه خاص بالملف الشخصي أيضًا. سيتمكن ملف تعريف واحد من النسخ واللصق بينما لن يتمكن ملف تعريف آخر مفتوح بشكل متزامن من النسخ واللصق.

من الصعب إصلاح هذا لأنه يمكن للمرء أن يفتح Mudlet وهو يعمل بشكل جيد ، فكيف تجد المشكلة بعد ذلك؟ طريقة لتكرار المشكلة من شأنها أن تقدم هذا عن طريق أكوام

fwiw ، عند كسرها ، لا تزال النسخة تعمل لأن html. ربما يساعد ذلك في تضييق نطاق المشكلة.

أعتقد أيضًا أنه بدأ في وقت قريب من دمج هذه العلاقات العامة: https://github.com/Mudlet/Mudlet/pull/3241 ، تم إصلاح الانهيار ولكن بدلاً من تعطل النسخ / اللصق يتوقف عن العمل ، لذلك ربما لم يكن هناك شيء ما تمامًا هناك مباشرة...

حسنًا ، يمكننا اختبار هذه النظرية ، جرب بناء الاختبار في https://github.com/Mudlet/Mudlet/pull/3688. قم بتشغيل Mudlet من المحطة - لذلك في macOS يوجد داخل التطبيق / المحتويات. ستتم طباعة رسالة عندما لا يكون الشيك مطابقًا.

لاحظت عيبًا مشابهًا في Win10 قبل بضعة أيام.

جرب الإصدار التجريبي ، وقم بتشغيل mudlet.exe وتأكد من ظهور أي شيء في الجهاز عند ظهور المشكلة.

حسنًا ، أنا حاليًا أقوم بالفعل بتشغيل ومحاولة الإصدار التالي من المرشح ، لذا سأفعل ذلك لاحقًا. على أي حال ، حدث هذا مرة واحدة فقط من قبل (لذلك لاحظت ذلك) ، وكنت أدير Mudlet لفترة طويلة في تلك المرحلة. لست متأكدًا من كيفية التكرار.

اكتشف @ njs50Ranfir لقد وسيلة لإصلاح هذا دون الحاجة إلى إعادة ملفك الشخصي. اصنع اسمًا مستعارًا باستخدام هذا:

echo("\nJust fill up the line with random gibberish!")
echo("\nJust fill up the line with random gibberish!")
echo("\nJust fill up the line with random gibberish!")
---etc, up to 1000 lines of the above echo

ثم اضغط على الاسم المستعار الخاص بك لإرسال 1000 سطر من البريد العشوائي إلى ملف التعريف الخاص بك. ضربة واحدة وستتمكن من النسخ واللصق مرة أخرى! لقد جربتها باستخدام اسم مستعار مكون من 100 سطر ولم يكن ذلك كافيًا ، لكن 1000 سطر فعلت الحيلة.

بالنسبة لي ، لم يحدث الخطأ بعد الآن في الأسابيع الأخيرة ، لكن كان لدينا لاعب عرضي في Discord أبلغ عن نفس الشيء. لقد بدوا راضين عن الحل أعلاه ، لذلك قد يساعد ذلك في تثليث الخطأ.

على أي حال ، بدلاً من وضع الجميع 1000 سطر من البريد العشوائي في الاسم المستعار الخاص بهم ، يمكنك استخدام حلقة lua :

 local repetitions = 1000
 local i = 1
 repeat
  echo("\nJust fill up the line with random gibberish!")
  i = i + 1
 until i > repetitions 

يمكنك حتى تجربة عدد التكرارات ، فربما يساعد ذلك أكثر؟ يبدو حاليًا أن 100 عدد قليل ، ويبدو أن 1000 يكفي. لست متأكدا ، لماذا وأين يتغير بالضبط.

: bulb: Um، IIRC يتم تخزين تفاصيل التحديد الحالي في قسمين QPoint s TConsole::P_begin & P_end - ولكن عندما يبدأ (void) TBuffer::shrinkBuffer() لقص الأقدم (أدنى أرقام الأسطر) من بداية TBuffer 's (std::deque<std::deque<TChar>>) buffer و (QStringList) lineBuffer وواحدة أو اثنتين من حاويات العنصر الواحد الأخرى لكل سطر: ما الخطوات التي يتم اتخاذها لضبط قيم y لـ P_begin و P_end : سؤال:

لقد لاحظت حدوث ذلك فقط بعد أن يصبح المخزن المؤقت طويلاً بما يكفي لتقليصه. بالإضافة إلى ذلك ، عندما يحدث ذلك ، يبدو أنه يتسبب في عدم تزامن التمييز في المخزن المؤقت العلوي والسفلي (عند التمرير لأعلى في وحدة التحكم) مع بعضهما البعض. يبدو أن إجراء التحديدات في الجزء العلوي والسفلي يساعد في تشغيل وظيفة النسخ مرة أخرى ، لكن لا يمكنني القول إنها متسقة تمامًا لأنها لا تحدث كثيرًا بما يكفي للاختبار بشكل موثوق.

يبدو من الغريب أن يستمر "copy as html" في العمل عندما تتوقف النسخة العادية عن العمل. يبدو أن هذا يشير إلى أن الاختيار ليس هو المشكلة ولكن شيء موجود في التحديد؟

كلاهما يستخدمان خوارزميات مختلفة على ما أعتقد. مما يشير إلى أن النسخة البسيطة يمكن أن تتعلم خدعة أو اثنتين من النسخ إلى html.

نسخ كصورة أيضًا لا يزال ينسخ التحديد بشكل صحيح وكذلك iirc

هل هناك طريقة للقيام بخدعة الصدى دون ملء المخزن المؤقت الخاص بي بـ 1000 سطر من القمامة؟ أرغب في محاولة الحصول على حل بديل لا يتضمن التخلص من جلسة ألعاب جيدة تمامًا أقوم بتسجيلها أيضًا.

هل يعمل ClearWindow؟

يبدو أنه نجح معي للتو. لا أعرف ما إذا كانت هذه مصادفة. يبدو بشكل مريب أن النسخ / اللصق سيستمر في العمل حتى يبدأ طرد الأشياء من نهاية التمرير للخلف

لقد كررت ذلك مرة أخرى. ظهر النسخ / اللصق جيدًا بعد إجراء clearWindow () حتى امتلاء المخزن المؤقت. بمجرد أن كان ممتلئًا عندما قمت بنسخ بعض النص الذي كان يمر عبره فشل وتوقف عن العمل. تم إصلاحه clearWindow مرة أخرى.

لقد ملأت أيضًا مخزن لعبتي حتى بدأت الخطوط تتلاشى في الأعلى.
في ذلك الوقت ، لا يزال النسخ / اللصق يعمل بشكل جيد كما هو متوقع.
كيف تملأ المخزن المؤقت الخاص بك بالضبط؟

لقد حاولت خفض رقم حذف الدُفعات لحجم المخزن المؤقت لوحدة التحكم الخاصة بي إلى 10 ، وبينما يتسبب ذلك في التأثير الجانبي لعرض النص الغريب عند حدوث حذف الدُفعات ، يبدو أنه يسرع في عملية إصلاح مشكلة النسخ.

لقد ملأت أيضًا مخزن لعبتي حتى بدأت الخطوط تتلاشى في الأعلى.
في ذلك الوقت ، لا يزال النسخ / اللصق يعمل بشكل جيد كما هو متوقع.
كيف تملأ المخزن المؤقت الخاص بك بالضبط؟

كنت أختبرها بلعبة قيد التشغيل في ذلك الوقت. لقد ملأت معظمها من خلال المرور بمجموعة من الملاحظات على لوح الملاحظات وعندما لاحظت أنه تم حذف النص من أعلى المخزن المؤقت مرة أخرى ، قمت بتحديد جديد.

كان هناك نص واضح قادم طوال الوقت الذي كنت أختار نسخه.

كنت أيضًا بالتأكيد في التمرير للخلف عندما كنت أقوم بالنسخ. على سبيل المثال ، لقد قمت بسحب التحديد بعيدًا بما يكفي للخروج من الصفحة الحالية للنص.

باستخدام Ctrl-C (نسخ) من قائمة السياق:

  • (void) TTextEdit::slot_copySelectionToClipboard()
  • (QString) TTextEdit::getSelectedText(char newlineChar) - الذي يستخدم القيم الحالية في (QPoint) TTextEdit::mPA & mpB ويضع النص في QApplication::clipboard()

باستخدام Copy as HTML من قائمة السياق:

  • (void) TTextEdit::slot_copySelectionToClipboardHTML() - يستخدم (QPoint) TTextEdit::mDragStart و mDragSelectionEnd لتعيين TTextEdit::mPA & mpB حسب الاقتضاء ثم يستخدم الأخير على الفور لنسخ بيانات TBuffer في HTML الذي تم إنشاؤه.

قد يكون من المفيد تجربة نسخ عملية الاختيار من الأخير إلى السابق ....

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات