Jump to content


Photo

Menu eventinfo/extension: manual re-order list


  • Please log in to reply
12 replies to this topic

#1 Dimitrij

  • PLi® Core member
  • 9,994 posts

+338
Excellent

Posted 13 March 2015 - 10:50

-In the menu eventinfo(long info/epg)/extension(blue button) you are now able to re-order list via the < > buttons instantly
-button menu sort list to default and exit

 

 


GigaBlue UHD Quad 4K /Lunix3-4K/Solo 4K


Re: Menu eventinfo/extension: manual re-order list #2 Taapat

  • PLi® Core member
  • 2,343 posts

+120
Excellent

Posted 13 March 2015 - 12:46

Maybe I am missing something, but why is it necessary for all staff on the screen init after "if self.reorderConfig:" if nothing has changed? http://sourceforge.n...hoiceBox.py#l33
Or better not be directly after the "if self.reorderConfig:" assign self.config_type, check whether its value is not ''", and only then do all other?



Re: Menu eventinfo/extension: manual re-order list #3 littlesat

  • PLi® Core member
  • 56,260 posts

+691
Excellent

Posted 13 March 2015 - 14:22

I see.... but to fully understand what you mean... do you mean reorder keys is not required when the config value is an empty string?


WaveFrontier 28.2E | 23.5E | 19.2E | 16E | 13E | 10/9E | 7E | 5E | 1W | 4/5W | 15W


Re: Menu eventinfo/extension: manual re-order list #4 Taapat

  • PLi® Core member
  • 2,343 posts

+120
Excellent

Posted 13 March 2015 - 14:32

I think something like this:

self.keymap = {}
  pos = 0
  if self.reorderConfig:
-   prev_list = zip(list, self.__keys)
-   new_list = []
-   self.config_type = eval("config.misc.pluginlist." + self.reorderConfig)
-   for x in self.config_type.value.split(","):
-    for entry in prev_list:
-     if entry[0][0] == x:
-      new_list.append(entry)
-      prev_list.remove(entry)
-   list = zip(*(new_list + prev_list))
-   list, self.__keys = list[0], list[1]
-   number = 1
-   new_keys = []
-   for x in self.__keys:
-    if (not x or x.isdigit()) and number <= 10:
-     new_keys.append(str(number % 10))
-     number+=1
-    else:
-     new_keys.append(not x.isdigit() and x or "")
+   self.config_type = eval("config.misc.pluginlist." + self.reorderConfig)
+   if self.config_type.value != "":
+    prev_list = zip(list, self.__keys)
+    new_list = []
+    for x in self.config_type.value.split(","):
+     for entry in prev_list:
+      if entry[0][0] == x:
+       new_list.append(entry)
+       prev_list.remove(entry)
+    list = zip(*(new_list + prev_list))
+    list, self.__keys = list[0], list[1]
+    number = 1
+    new_keys = []
+    for x in self.__keys:
+     if (not x or x.isdigit()) and number <= 10:
+      new_keys.append(str(number % 10))
+      number+=1
+     else:
+      new_keys.append(not x.isdigit() and x or "")
+    self.__keys = new_keys
  for x in list:
   strpos = str(self.__keys[pos])
   self.list.append(ChoiceEntryComponent(key = strpos, text = x))

If nothing has changed, then "config.misc.pluginlist. ..." must be empty, and do not need to do anything.


Edited by Taapat, 13 March 2015 - 14:35.


Re: Menu eventinfo/extension: manual re-order list #5 littlesat

  • PLi® Core member
  • 56,260 posts

+691
Excellent

Posted 13 March 2015 - 14:55

That will lead to a GSOD in any ChoiceBox without a reorderConfig...


WaveFrontier 28.2E | 23.5E | 19.2E | 16E | 13E | 10/9E | 7E | 5E | 1W | 4/5W | 15W


Re: Menu eventinfo/extension: manual re-order list #6 Taapat

  • PLi® Core member
  • 2,343 posts

+120
Excellent

Posted 13 March 2015 - 15:15

Why?
Ok, i write this changes simply by looking at the code, I'll try in the evening, and then probably would see reason.
But now, I do not see why should be GSOD.


Edited by Taapat, 13 March 2015 - 15:16.


Re: Menu eventinfo/extension: manual re-order list #7 littlesat

  • PLi® Core member
  • 56,260 posts

+691
Excellent

Posted 13 March 2015 - 15:21

Because self.reorderConfig could be an empty string and when we do not have a config.


WaveFrontier 28.2E | 23.5E | 19.2E | 16E | 13E | 10/9E | 7E | 5E | 1W | 4/5W | 15W


Re: Menu eventinfo/extension: manual re-order list #8 Taapat

  • PLi® Core member
  • 2,343 posts

+120
Excellent

Posted 13 March 2015 - 15:29

Therefore I do config check after self.reorderConfig check.
Just when the self.reorderConfig is not empty bat config is empty, do not take reoder on startup.

But I check it all, maybe I'm wrong somewhere.


Edited by Taapat, 13 March 2015 - 15:31.


Re: Menu eventinfo/extension: manual re-order list #9 Taapat

  • PLi® Core member
  • 2,343 posts

+120
Excellent

Posted 13 March 2015 - 16:49

I have checked now, but I do not have any GSOD.

Attached Files



Re: Menu eventinfo/extension: manual re-order list #10 littlesat

  • PLi® Core member
  • 56,260 posts

+691
Excellent

Posted 13 March 2015 - 17:00

that looks good...

 

I would only change this...

 

if self.config_type.value != "":

 

if self.config_type.value:

 

Same result... simpler code...


WaveFrontier 28.2E | 23.5E | 19.2E | 16E | 13E | 10/9E | 7E | 5E | 1W | 4/5W | 15W


Re: Menu eventinfo/extension: manual re-order list #11 Taapat

  • PLi® Core member
  • 2,343 posts

+120
Excellent

Posted 13 March 2015 - 17:17

I agree.
I know that it is faster and spend less resuces, but when I tried it before, for me it did not work after the eval. I do not know why, probably before I made a mistake somewhere, but now I see that it works.

Attached Files


Edited by Taapat, 13 March 2015 - 17:17.


Re: Menu eventinfo/extension: manual re-order list #12 littlesat

  • PLi® Core member
  • 56,260 posts

+691
Excellent

Posted 13 March 2015 - 17:21

Thanks! I just pushed it...


Edited by littlesat, 13 March 2015 - 17:25.

WaveFrontier 28.2E | 23.5E | 19.2E | 16E | 13E | 10/9E | 7E | 5E | 1W | 4/5W | 15W


Re: Menu eventinfo/extension: manual re-order list #13 Taapat

  • PLi® Core member
  • 2,343 posts

+120
Excellent

Posted 13 March 2015 - 17:28

Thanks!




0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users