Ë
    Î£j'  ã                   ó´   — d dl Z d dlmZmZ d dlmZ d dlmZmZm	Z	m
Z
mZmZmZmZmZ d dlmZ d dlmZmZmZmZmZ  e j0                  «       Z G d„ de«      Zy)	é    N)ÚQtÚ
pyqtSignal)ÚQColor)	ÚQAbstractItemViewÚQFrameÚQHBoxLayoutÚQLabelÚQListWidgetÚQListWidgetItemÚQPushButtonÚQVBoxLayoutÚQWidget)Údetect_addon_overwrites)ÚBUTTON_STYLE_ALTÚFONT_SIZE_NORMALÚFRAME_STYLEÚSECTION_LABEL_STYLEÚWARNINGc                   ó~   ‡ — e Zd Z e«       Z ee«      Z e«       Zd
ˆ fd„	Zd„ Z	d„ Z
d„ Zd„ Zd
d„Zd„ Zd„ Zd	„ Zˆ xZS )ÚLoadOrderPanelc                 ón   •— t         ‰| �  |«       d | _        d | _        d | _        | j                  «        y ©N)ÚsuperÚ__init__Úload_order_listÚconflict_labelÚdeselect_all_btnÚsetup_ui)ÚselfÚparentÚ	__class__s     €úGC:\Users\pivot\Documents\cueki\casual-preloader\gui\load_order_panel.pyr   zLoadOrderPanel.__init__   s1   ø€ Ü‰Ñ˜Ô Ø#ˆÔØ"ˆÔØ $ˆÔØ�‰�ó    c                 óð  ‡ — t        ‰ «      }|j                  dddd«       t        «       }|j                  t        «       t        |«      }t        «       }t        d«      }|j                  t        «       |j                  |«       |j                  «        t        d«      ‰ _        ‰ j                  j                  t        «       ‰ j                  j                  j                  ‰ j                  «       |j                  ‰ j                  «       |j!                  |«       t#        «       ‰ _        ‰ j$                  j'                  t"        j(                  j*                  «       ‰ j$                  j-                  t.        j0                  j2                  «       ‰ j$                  j5                  «       j6                  j                  ‰ j8                  «       ‰ j$                  j:                  j                  ˆ fd„«       ‰ j$                  j<                  j                  ‰ j>                  «       |j                  ‰ j$                  «       t        d«      ‰ _         ‰ j@                  jC                  tD        jF                  jH                  «       ‰ j@                  j                  dtJ        › dtL        › d�«       ‰ j@                  jO                  «        |j                  ‰ j@                  «       |j                  |«       y )	Nr   zLoad Order (Drag to Reorder)zDeselect Allc                  ó8   •— ‰ j                   j                  «       S r   )r   ÚclearSelection©r   s   €r"   Ú<lambda>z)LoadOrderPanel.setup_ui.<locals>.<lambda>;   s   ø€ ¸×9MÑ9M×9\Ñ9\Ô9^r#   u.   Conflicts detected, hover over âš  for detailszcolor: z; font-size: z; padding: 8px;)(r   ÚsetContentsMarginsr   ÚsetStyleSheetr   r   r	   r   Ú	addWidgetÚ
addStretchr   r   r   ÚclickedÚconnectÚdeselect_all_requestedÚ	addLayoutr
   r   ÚsetSelectionModeÚSelectionModeÚSingleSelectionÚsetDragDropModer   ÚDragDropModeÚInternalMoveÚmodelÚ	rowsMovedÚon_load_order_changedÚitemClickedÚitemDoubleClickedÚon_item_double_clickedr   ÚsetAlignmentr   ÚAlignmentFlagÚAlignCenterr   r   Úhide)r   ÚlayoutÚload_order_frameÚload_order_layoutÚ
header_rowÚload_order_lbls   `     r"   r   zLoadOrderPanel.setup_ui"   s.  ø€ Ü˜TÓ"ˆØ×!Ñ! ! Q¨¨1Ô-ä!›8ÐØ×&Ñ&¤{Ô3Ü'Ð(8Ó9Ðä “]ˆ
ÜÐ >Ó?ˆØ×$Ñ$Ô%8Ô9Ø×Ñ˜^Ô,Ø×ÑÔä +¨NÓ ;ˆÔØ×Ñ×+Ñ+Ô,<Ô=Ø×Ñ×%Ñ%×-Ñ-¨d×.IÑ.IÔJØ×Ñ˜T×2Ñ2Ô3à×#Ñ# JÔ/ä*›}ˆÔØ×Ñ×-Ñ-¬k×.GÑ.G×.WÑ.WÔXØ×Ñ×,Ñ,Ô->×-KÑ-K×-XÑ-XÔYØ×Ñ×"Ñ"Ó$×.Ñ.×6Ñ6°t×7QÑ7QÔRØ×Ñ×(Ñ(×0Ñ0Ó1^Ô_Ø×Ñ×.Ñ.×6Ñ6°t×7RÑ7RÔSà×#Ñ# D×$8Ñ$8Ô9ä$Ð%UÓVˆÔØ×Ñ×(Ñ(¬×)9Ñ)9×)EÑ)EÔFØ×Ñ×)Ñ)¨G´G°9¸MÔJZÐI[Ð[jÐ*kÔlØ×Ñ× Ñ Ô"Ø×#Ñ# D×$7Ñ$7Ô8à×ÑÐ)Õ*r#   c                 ó8   — | j                   j                  «        y r   )Úload_order_changedÚemitr'   s    r"   r9   z$LoadOrderPanel.on_load_order_changedH   s   € Ø×Ñ×$Ñ$Õ&r#   c                 óÀ   — |j                  «       }|j                  dd«      d   j                  dd«      j                  «       }| j                  j                  |«       y ©Nú] é   éÿÿÿÿõ    âš Ú )ÚtextÚsplitÚreplaceÚstripÚunadd_requestedrH   )r   ÚitemrP   Ú
clean_names       r"   r<   z%LoadOrderPanel.on_item_double_clickedK   sL   € à�y‰y‹{ˆØ—Z‘Z  aÓ(¨Ñ,×4Ñ4°V¸RÓ@×FÑFÓHˆ
Ø×Ñ×!Ñ! *Õ-r#   c                 óX  — g }t        | j                  j                  «       «      D ]o  }| j                  j                  |«      j	                  «       }|j                  dd«      d   j                  dd«      j                  «       }|j                  |«       Œq t        t        |«      «      S rJ   )Úranger   ÚcountrU   rP   rQ   rR   rS   ÚappendÚlistÚreversed)r   Ú
load_orderÚirP   rV   s        r"   Úget_load_orderzLoadOrderPanel.get_load_orderQ   s�   € Øˆ
Ü�t×+Ñ+×1Ñ1Ó3Ö4ˆAØ×'Ñ'×,Ñ,¨QÓ/×4Ñ4Ó6ˆDàŸ™ D¨!Ó,¨RÑ0×8Ñ8¸ÀÓD×JÑJÓLˆJØ×Ñ˜jÕ)ð	 5ô ”H˜ZÓ(Ó)Ð)r#   c                 óZ  — 	 | j                   j                  d«       g }t        | j                   j                  «       «      D ]m  }| j                   j	                  |«      }|j                  |j                  «       j                  dd«      d   j                  dd«      j                  «       «       Œo | j                   j                  «        t        |«      }t        ||r|ni |«      }d}t        |«      D ]Ú  \  }	}
||	z
  }d|› d|
› �}|
|v r©||
   }|dz  }d}d	}|j                  «       D ]-  \  }}|d
|› d�z  }|r|t        |«      › d|d   › d�z  }Œ)|dz  }Œ/ |dz  }t        |«      }|j!                  |«       |j#                  t%        t&        «      «       | j                   j)                  |«       ŒÀ| j                   j)                  |«       ŒÜ | j*                  j-                  |«       | j                   j                  d«       y # t.        $ r t0        j3                  d«       Y y w xY w)NTrK   rL   rM   rN   rO   Fz[#zD<div style='white-space: nowrap; color: #FFFFFF'>Will overwrite:<br>u   â€¢ z: z files including r   z<br>zUnknown files<br>z</div>zError in update_display)r   ÚblockSignalsrX   rY   rU   rZ   rP   rQ   rR   rS   ÚclearÚlenr   Ú	enumerateÚitemsr   Ú
setToolTipÚsetForegroundr   r   ÚaddItemr   Ú
setVisibleÚ	ExceptionÚlogÚ	exception)r   Úaddon_contentsÚaddon_name_mappingÚload_order_itemsr^   rU   Útotal_itemsÚall_overwritesÚhas_conflictsÚposÚ
addon_nameÚpriority_numberÚdisplay_textÚ
overwritesÚtooltipÚoverwrite_addonÚoverwrite_filess                    r"   Úupdate_displayzLoadOrderPanel.update_display[   s0  € ð4	5Ø× Ñ ×-Ñ-¨dÔ3Ø!Ðô ˜4×/Ñ/×5Ñ5Ó7Ö8�Ø×+Ñ+×0Ñ0°Ó3�Ø ×'Ñ'¨¯	©	«×(9Ñ(9¸$ÀÓ(BÀ2Ñ(F×(NÑ(NÈvÐWYÓ(Z×(`Ñ(`Ó(bÕcð 9ð
 × Ñ ×&Ñ&Ô(ÜÐ.Ó/ˆKô 5Ø Ù"0‘°bØ"óˆNð "ˆMÜ#,Ð-=Ö#>‘��ZØ"-°Ñ"3�Ø!# OÐ#4°B°z°lÐC�ð  Ñ/Ø!/°
Ñ!;�JØ  FÑ*�LØ$(�MØd�GØ<F×<LÑ<LÖ<NÑ8˜¨Ø T¨/Ð):¸"Ð#=Ñ=˜Ù*Ø#¬#¨oÓ*>Ð)?Ð?PÐQ`ÐabÑQcÐPdÐdhÐ'iÑi™Gà#Ð':Ñ:™Gð =Oð ˜xÑ'�Gä*¨<Ó8�DØ—O‘O GÔ,Ø×&Ñ&¤v¬g£Ô7Ø×(Ñ(×0Ñ0°Õ6à×(Ñ(×0Ñ0°Õ>ð/ $?ð4 ×Ñ×*Ñ*¨=Ô9à× Ñ ×-Ñ-¨eÕ4øäò 	5Ü�M‰MÐ3Ö4ð	5ús   ‚HH	 È	H*È)H*c                 óŽ  — | j                   j                  d«       g }t        | j                   j                  «       «      D ]o  }| j                   j	                  |«      j                  «       }|j                  dd«      d   j                  dd«      j                  «       }|j                  |«       Œq g }|D ]  }||vsŒ|j                  |«       Œ |D ]  }||v sŒ|j                  |«       Œ | j                   j                  «        |D ]  }| j                   j                  |«       Œ | j                   j                  d«       y )NTrK   rL   rM   rN   rO   F)r   ra   rX   rY   rU   rP   rQ   rR   rS   rZ   rb   rh   )r   Úchecked_addon_namesÚexisting_orderr^   rP   rV   Ú	new_orderÚnames           r"   Úsync_from_checked_addonsz'LoadOrderPanel.sync_from_checked_addons“   s%  € à×Ñ×)Ñ)¨$Ô/ð ˆÜ�t×+Ñ+×1Ñ1Ó3Ö4ˆAØ×'Ñ'×,Ñ,¨QÓ/×4Ñ4Ó6ˆDØŸ™ D¨!Ó,¨RÑ0×8Ñ8¸ÀÓD×JÑJÓLˆJØ×!Ñ! *Õ-ð 5ð ˆ	Û'ˆDØ˜>Ò)Ø× Ñ  Õ&ð (ó
 #ˆDØÐ*Ò*Ø× Ñ  Õ&ð #ð
 	×Ñ×"Ñ"Ô$ÛˆDØ× Ñ ×(Ñ(¨Õ.ð ð 	×Ñ×)Ñ)¨%Õ0r#   c                 ól   — | j                   j                  «        | j                  j                  «        y r   )r   rb   r   r@   r'   s    r"   rb   zLoadOrderPanel.clear°   s&   € Ø×Ñ×"Ñ"Ô$Ø×Ñ× Ñ Õ"r#   c                 óú   — | j                   j                  d«       | j                   j                  «        t        |«      D ]  }| j                   j	                  |«       Œ | j                   j                  d«       y )NTF)r   ra   rb   r\   rh   )r   Úaddon_namesr€   s      r"   Úrestore_orderzLoadOrderPanel.restore_order´   s_   € à×Ñ×)Ñ)¨$Ô/Ø×Ñ×"Ñ"Ô$Ü˜[Ö)ˆDØ× Ñ ×(Ñ(¨Õ.ð *à×Ñ×)Ñ)¨%Õ0r#   r   )Ú__name__Ú
__module__Ú__qualname__r   rG   ÚstrrT   r/   r   r   r9   r<   r_   r{   r�   rb   r…   Ú__classcell__)r!   s   @r"   r   r      sK   ø„ Ù#›ÐÙ  “o€OÙ'›\Ðõò$+òL'ò.ò*ó65òp1ò:#ö1r#   r   )ÚloggingÚPyQt6.QtCorer   r   ÚPyQt6.QtGuir   ÚPyQt6.QtWidgetsr   r   r   r	   r
   r   r   r   r   Úcore.services.conflictsr   Ú	gui.themer   r   r   r   r   Ú	getLoggerrk   r   © r#   r"   Ú<module>r“      sF   ðÛ ß 'Ý ÷
÷ 
õ 
õ <ß cÕ cà€g×ÑÓ€ôd1�Wõ d1r#   