Bug when opening and changing professions #97

  • Fixed
  • chkmyid created this issue Oct 22, 2019

    <Please include the Skillet-Classic version number (from the title or the .toc file)>



    If you look at the screenshot below, there are two buttons
    The Enching button is on top and the Tailoring button is on the bottom.


    Click on the 'Enchanting' button to open well.



    In this state, I click the Tailoring button in Skillet to change the professions, and when I look at the button in the action bar, I see the opening of the Enchanting button.



    If I click the Enchanting button again to change profssions, the Enchanting button on the action bar goes to a closed state, but the Tailoring frame is still maintained in the frame of the Skillet.




    Clicking the Tailoring button again terminates the Skillet frame and exposes the Tailoring frame in the form of the unknown title of the screen shot, Blizzard default frame.


  • bsmorgan posted a comment Oct 22, 2019

    Thank you for a well written issue. I hope my answer is as well written.


    Unfortunately, this is a side effect of Enchanting being a Craft and Tailoring being a TradeSkill. Blizzard has two different UIs even though they look very similar. Skillet (the parent of Skillet-Classic) was conceived after Blizzard moved Enchanting from being a Craft to being a TradeSkill, so Skillet-Classic had to learn new tricks to support Enchanting. Blizzard also has a rule (intended to prevent bots) that says one action per hardware event. Opening a profession is an action, closing a profession is an action. A hardware event is a mouse click or a keystroke.


    Skillet-Classic adds a third action, changing a profession. Normally this requires only one event (casting the spell for the new profession) but to switch from a Craft to a TradeSkill requires two events, one to close the TradeSkill UI and one to open the Craft UI (or vice versa). Skillet-Classic uses its one event to cast the spell for the new profession and assumes (incorrectly) that its job is complete. This is the state shown by your third screenshot. The action bar buttons show that Tailoring is open but that Enchanting is not yet closed.


    From this point on, Skillet-Classic can only make things worse. As you click on its profession buttons, it keeps falling farther and farther behind developing a deficit of events. Eventually, it confuses both Blizzard UIs and you finally end up with overlapping buttons and/or an UNKNOWN Blizzard UI.


    There are a few solutions to this "problem".


    The first is to remove the profession buttons from the Skillet-Classic frame when Enchanting is one of your professions. You will notice that if you open Tailoring by clicking your action bar button and then switch to Enchanting by clicking your action bar button, that both buttons are now highlighted. If you click the action bar button for the profession currently open, it closes. The other button is still highlighted and if you click it, the highlight is removed. If you disable Skillet-Classic, it becomes more obvious. When both buttons are highlighted, both of Blizzard's UIs are open. the action bar buttons properly reflect this state. You can even switch between TradeSkills (i.e Tailoring, Cooking, First Aid) and Blizzard's TradeSkill UI does the right thing (with the Enchanting/Craft UI happily sharing the screen).


    A second solution is to change the behavior of Skillet-Classic's profession buttons so that clicking a highlighted button closes the Skillet-Classic window and keep the highlighting for Crafts and TradeSkills separate. I put a lot of effort into hiding the difference between a Craft and a TradeSkill and this is undoing some of that effort to expose the difference.


    Before we forget, there is an elephant in the room, the Skillet-Classic queue(s). One of the major features of Skillet-Classic is the queue(s). In addition to being able to queue items to be made, if those items require multiple professions (think Blacksmithing and Mining/Smelting), Skillet-Classic builds a queue that properly switches between professions to complete the original item. This can get quite complex (Engineering and Mining/Smelting) and involve multiple switches to complete an item. If I change the logic of the profession buttons, I also mess with the logic that provides this intelligence to the queue(s).


    This brings us to the third "solution", which is to do nothing and teach Enchanters the shortcomings of Skillet-Classic's attempts to combine Enchanting/Crafts and TradeSkills into one seamless interface. It is really very simple, open and close Enchanting or open and freely use your TradeSkills, closing them before Enchanting again.


    There is also a fourth "solution", Skillet-Classic can go back to being a TradeSkill UI replacement and remove Enchanting support completely (this is, by the way, a one line code change).


    I have chosen the third option and if pressed to make a change, I would probably choose the first option, remove the profession buttons from the Skillet-Classic frame. I might consider another solution some time in the future, but to do that now would destabilize and delay the delivery of the version 1.00 release.


    Other than completely fixing this issue, what would you be willing to live with?





    Edited Oct 22, 2019
  • bsmorgan added a tag Waiting Oct 22, 2019
  • chkmyid closed issue Oct 22, 2019
  • chkmyid posted a comment Oct 22, 2019

    Since this is a problem due to Blizzard's unique system, I think it's right to remove processions buttons that can remind you of this problem and cause misunderstanding about Skillet. I realized with your kind explanation that I had to open and close using the skill button of the action bar I had created. Thank you. I'll close this issue.

  • bsmorgan posted a comment Oct 22, 2019

    I thought about this some more and I think I have a solution (the fifth!). Please give Skillet-Classic-r95-alpha a try. There's some localization needed which will be in the next build if you agree that this is an acceptable solution. I believe this allows the Skillet-Classic profession buttons to function correctly. When using action buttons, close one before opening another still seems to be the best solution.

    Edited Oct 22, 2019
  • bsmorgan reopened issue Oct 22, 2019
  • bsmorgan added a tag Fixed Oct 22, 2019
  • chkmyid posted a comment Oct 22, 2019

    This is a hassle as long as it is not automatically pressed during the professions change, but it still works very well.
    I want the phrase key to be combined into one sentence to localize the description with different English and word order. I'm glad that this issue has been resolved in the proper way. Thank you very much.

  • chkmyid posted a comment Oct 22, 2019

    The Enchanting button remains open when only the Enchanting window is opened and closed.

    Note that this happens when using the close button on the Skillet frame.

    It works normally when you open and close an action bar button.

    If the symptom remains, it will cause the 'unknown' frame to be floated again when a skill in the action bar is executed.


    And when you change professions from the button in the action bar, you need to localize the 'Skillet-Classic: No headers, try again' sentence printed in the chat frame.

    Edited Oct 22, 2019
  • bsmorgan posted a comment Oct 23, 2019

    In the "change professions" dialog, the documentation says that the text on the button is localized so I used that same text in the description. I think you want:

    text = "Skillet-Classic\n"..L["Press"].." "..OKAY.." "..L["to continue changing professions"],

    to be one string that can be localized, correct?


    If so then there are a couple of options:

    1) text = "Skillet-Classic\n"..L["Press to continue changing professions"],

    2)  text = "Skillet-Classic\n"..string.format(L["Press %s to continue changing professions"],OKAY),


    I prefer option 1 because I can't guarantee that translators will add the %s to their translations. The word "Click" can be substituted for "Press".

    Your thoughts?


    for the "No headers, try again" string, this is an indication that the Blizzard API did not return proper data for the current profession. It is often a transient condition that will correct itself by trying again. If the addon TradeSkillMaster (TSM) is active, then this message changes to

    "Conflict between Skillet-Classic and TradeSkillMaster" without the "try again" because when TSM has disrupted the operation of the Blizzard API, it isn't going to fix itself. This conflict string contains Skillet-Classic twice, so perhaps "Conflict with the addon TradeSkillMaster" would be a better string to localize. Your thoughts on this one? I'm open to changing either message.


  • chkmyid posted a comment Oct 24, 2019

    L["Press OKAY to continue changing professions"] is preferred. There's no relationship between the first and the second.
    When translated, "전문기술을 계속 변경하려면 확인을 누르세요."

    If expressed in English in the order of the words, the order of the professions(전문기술을), continue(계속), changing(변경하려면), okay(확인을), press(누르세요) will be in the order.

    I agree with any of the two statements you offer.


    The string "No heads, try again" is requested because the phrase key is not connected to wowace.com and cannot be localized.

  • bsmorgan posted a comment Oct 24, 2019

    The localization strings have been entered into the project. Since I see you are the translator for koKR (Korean), please let me know when you have updated the translations so I can create a new beta build that includes them (there may be an alpha build before you are done).


    By the way, I did a search for all the messages output the same way as these messages and found one more.


    Thank you for your assistance. This is one area of the project where I can not do it alone and being able to communicate with you has improved the project!

  • bsmorgan posted a comment Oct 24, 2019

    Skillet-Classic-r96-alpha contains the logic changes and the English (enUS) localization strings.

  • bsmorgan closed issue Oct 25, 2019
  • bsmorgan removed a tag Waiting Oct 25, 2019
  • chkmyid posted a comment Oct 25, 2019

    With the exception of 'Enchanting', 'Tailoring' and 'Cooking' repeatedly, then close the 'Skillet' frame and riding on mount the action bar and the 'UNKNOWN' frame is suddenly displayed on the screen.


    Open 'Tailoring'  >  Change 'Cooking'  >  Change 'Tailoring'  >  Close 'Skillet'  >  On Mount  = Displayed 'UNKNOWN' frame.

    Edited Oct 25, 2019
  • bsmorgan posted a comment Oct 25, 2019

    This issue is marked Closed so I copied this 'UNKNOWN' error to issue #105. Please continue the discussion there.

    Edited Oct 26, 2019

To post a comment, please login or register a new account.