+
    Ki	  c                   s    ^ RI t ^ RIHt ^ RIHtHtHtHt ^ RIH	t	 ^ RI
Ht ^ RIHt ]! 4       t] ! R R4      4       tR	 R
 ltR tR R ltR R ltR R ltR# )i    N)	dataclass)AnyDictListOptional)settings)sql)NotificationSourcec                   sn   a  ] tR t^t o R
V 3R lR lltR
V 3R lR lltR
V 3R lR lltV 3R ltRtV t	R	# )SavedSearchc                $   < V ^8  d   QhRS[ RR/#    	no_signalreturnNZboolformat__classdict__   "C/usr/lib/python3.14/site-packages/lutris/database/saved_searches.py__annotate__SavedSearch.__annotate__   s     * *T *d *    c                s    \         P                  ! \        P                  RRV P                  RV P
                  /4      V n        V'       g   \        P                  4        R# R# )zAdd a category to the databasesaved_searchesnamesearchN)	r   Z	db_insertr   DB_PATHr   r   saved_search_idSAVED_SEARCHES_UPDATEDfire)selfr   s   &&r   addZSavedSearch.add   sH    "}}.Hdkk0Z 
 "'') r   c                r	   r
   r   r   r   r   r   r      s     * * * *r   c           	     sF   R p\         P                  ! \        P                  4      ;_uu_ 4       p\         P                  ! W2V P
                  V P                  V P                  34       RRR4       V'       g   \        P                  4        R# R#   + '       g   i     L0; i)z5UPDATE saved_searches SET name=?, search=? WHERE id=?N)
r   	db_cursorr   r   cursor_executer   r   r   r   r   r   r   ZqueryZcursor   &&  r   updateZSavedSearch.update   se    G]]8++,,vtyy$++tG[G[.\] -"'')  -,s   9BB 	c                r	   r
   r   r   r   r   r   r   "   s     * * * *r   c                s   R p\         P                  ! \        P                  4      ;_uu_ 4       p\         P                  ! W2V P
                  34       RRR4       V'       g   \        P                  4        R# R#   + '       g   i     L0; i)z%DELETE FROM saved_searches WHERE id=?N)r   r    r   r   r!   r   r   r   r"   r#   r   removeZSavedSearch.remove"   s[    7]]8++,,vt/C/C.EF - "'')  -,s   #A::B
	c                s>   < V ^8  d   Qh/ S[ ;R&   S[;R&   S[;R&   # )r   r   r   r   )intstrr   r   r   r   r      s(       I  K	 r   )r   N)F)
Z__name__Z
__module__Z__qualname__Z__firstlineno__r   r$   r%   Z__annotate_func__Z__static_attributes__Z__classdictcell__)r   s   @r   r   r      s*     * ** ** *-  r   r   c                sJ    V ^8  d   QhR\         \        \        3,          RR/# )r   rowr   r   )r   r'   r   r      "r   r   r   ,   s"     > >S#X >= >r   c                 sF    \        V R ,          V R,          V R,          4      # )idr   r   )r   )r(      &r   _create_searchr-   ,   s    s4y#f+s8}==r   c                sj    T ;'       g    RP                  4       p \        P                  ! RRV 4      p V # )zGThis strips the name given, and also removes extra internal whitespace.Z z +Z )ZstripreZsub)r   r,   r   strip_saved_search_namer/   0   s-    JJBD66$T"DKr   c                s:    V ^8  d   QhR\         \        ,          /# )r   r   )r   r   r)   r*   r   r   r   7   s     1 1D- 1r   c                 s    \         P                  ! \        P                  R4      p V  Uu. uF  p\	        V4      NK  	  up# u upi )z)Get the list of every search in database.r   r   Z	db_selectr   r   r-   )Zrowsr(   s     r   get_saved_searchesr1   7   s6    ==))+;<D+/04CN34000s   Ac                F    V ^8  d   QhR\         R\        \        ,          /# )r   r   r   )r'   r   r   r)   r*   r   r   r   =   s      3 8K+@ r   c                    \         P                  ! \        P                  RRV 3R7      pV'       d   \	        V^ ,          4      # R# )Return a category by namer   r   Z	conditionNr0   )r   
categories   & r   get_saved_search_by_namer8   =   s5    x//1AfVZ^\Jjm,,r   c                r2   )r   r   r   )r&   r   r   r)   r*   r   r   r   F   s      C H[4I r   c                r3   )r4   r   r+   r5   Nr0   )r   r6   r7   r   get_saved_search_by_idr9   F   s6    x//1AdTcMdeJjm,,r   )r.   Zdataclassesr    Ztypingr   r   r   r   Zlutrisr   Zlutris.databaser   Zlutris.gui.widgetsr   r   r   r-   r/   r1   r8   r9   ) r   r   <module>r:      sU    	 ! , ,   1+-  * * *>>1r   