kspl 1.3.0__py3-none-any.whl → 1.4.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
kspl/__init__.py CHANGED
@@ -1 +1 @@
1
- __version__ = "1.3.0"
1
+ __version__ = "1.4.0"
kspl/gui.py CHANGED
@@ -63,36 +63,23 @@ class MainView(CTkView):
63
63
  control_frame = customtkinter.CTkFrame(self.root)
64
64
  control_frame.grid(row=0, column=0, sticky="ew", padx=10, pady=5)
65
65
 
66
- self.column_select_button = customtkinter.CTkButton(
67
- master=control_frame,
68
- text="Select variants",
69
- command=self.open_column_selection_dialog,
70
- )
71
- self.column_select_button.pack(side="left", padx=5)
72
-
73
- # Tree expansion controls with segmented button
74
- tree_label = customtkinter.CTkLabel(control_frame, text="Tree:", font=("Arial", 12))
75
- tree_label.pack(side="left", padx=(10, 5))
76
-
66
+ # Define control actions - only need to maintain this list
67
+ self.control_actions = [
68
+ ("🔽 Expand", self.expand_all_items),
69
+ ("🔼 Collapse", self.collapse_all_items),
70
+ ("🔍 Select", self.open_column_selection_dialog),
71
+ ("🔄 Refresh", self.trigger_refresh_event),
72
+ ]
73
+
74
+ # Tree expansion controls with segmented button including filter
77
75
  self.tree_control_segment = customtkinter.CTkSegmentedButton(
78
76
  master=control_frame,
79
- values=["⊞", "⊟", "🔄"],
77
+ values=[action[0] for action in self.control_actions],
80
78
  command=self.on_tree_control_segment_click,
81
- height=30,
79
+ height=35,
80
+ font=("Arial", 14),
82
81
  )
83
82
  self.tree_control_segment.pack(side="left", padx=2)
84
- # Note: Tooltip doesn't work with segmented buttons due to CTk limitations
85
-
86
- # Reserve space for future refresh button
87
- # self.refresh_button = customtkinter.CTkButton(
88
- # master=control_frame,
89
- # text="🔄",
90
- # command=self.refresh_data,
91
- # width=30,
92
- # height=30,
93
- # )
94
- # self.refresh_button.pack(side="left", padx=2)
95
- # self.create_tooltip(self.refresh_button, "Refresh")
96
83
 
97
84
  # ========================================================
98
85
  # create main content frame
@@ -367,12 +354,11 @@ class MainView(CTkView):
367
354
 
368
355
  def on_tree_control_segment_click(self, value: str) -> None:
369
356
  """Handle clicks on the tree control segmented button."""
370
- if value == "⊞":
371
- self.expand_all_items()
372
- elif value == "⊟":
373
- self.collapse_all_items()
374
- elif value == "🔄":
375
- self.trigger_refresh_event()
357
+ # Find the action based on the button text and execute it
358
+ for label, action in self.control_actions:
359
+ if value == label:
360
+ action()
361
+ break
376
362
  # Reset selection to avoid button staying selected
377
363
  self.tree_control_segment.set("")
378
364
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: kspl
3
- Version: 1.3.0
3
+ Version: 1.4.0
4
4
  Summary: KConfig GUI for Software Product Lines with multiple variants.
5
5
  License: MIT
6
6
  Author: Cuinixam
@@ -1,14 +1,14 @@
1
- kspl/__init__.py,sha256=F5mW07pSyGrqDNY2Ehr-UpDzpBtN-FsYU0QGZWf6PJE,22
1
+ kspl/__init__.py,sha256=8UhoYEXHs1Oai7BW_ExBmuwWnRI-yMG_u1fQAXMizHQ,22
2
2
  kspl/_run.py,sha256=0X7DbSk5DYP2uU0hRIf0XetUNerrABit5U4AdG8wE00,338
3
3
  kspl/config_slurper.py,sha256=co7nTtSznEMQ2uFv5L7O_cUDnDSoIXxGk9PKsdRAAjI,3407
4
4
  kspl/edit.py,sha256=AVy4obDx_FJvHT_Qr0HSPpUcJeiz13gXdsjBTB8d5AU,3156
5
5
  kspl/generate.py,sha256=pcRqgJDZ5gmCwnF_PcwczV_e-w4HK9CLh5ra82HCf4M,6831
6
- kspl/gui.py,sha256=reOCaxxp5do7F68II3gCu-WkT6fG98_5pVqEeNEHe6U,26397
6
+ kspl/gui.py,sha256=Km53yEwepYvJMsGcHKJWUTuDDKepGF64t0rFN7ePTcM,25929
7
7
  kspl/kconfig.py,sha256=eVZKuOTAG7bRzsTfinDq940gWTArxnLKA1YRaYT6kVs,8707
8
8
  kspl/main.py,sha256=U_zVxCcJLqFILSeiNqHNX3adraVAEkKaCAerRqiHF6A,1007
9
9
  kspl/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
10
- kspl-1.3.0.dist-info/LICENSE,sha256=eJwI5n6lDPIjogNcYBln7NKGtreVlek905oBBY_HnxQ,1066
11
- kspl-1.3.0.dist-info/METADATA,sha256=6LzdWwKxOyGklRRfzXd1idcv331g-PshBSidInNoG9A,4842
12
- kspl-1.3.0.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
13
- kspl-1.3.0.dist-info/entry_points.txt,sha256=6haBy5AuYGJblw1cWUTx5N41Ilg4YALABhi1psEvruY,39
14
- kspl-1.3.0.dist-info/RECORD,,
10
+ kspl-1.4.0.dist-info/LICENSE,sha256=eJwI5n6lDPIjogNcYBln7NKGtreVlek905oBBY_HnxQ,1066
11
+ kspl-1.4.0.dist-info/METADATA,sha256=KwHmVrICqWsdVHlOVOX15SP8llpbinyrlsIqfMffnW0,4842
12
+ kspl-1.4.0.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
13
+ kspl-1.4.0.dist-info/entry_points.txt,sha256=6haBy5AuYGJblw1cWUTx5N41Ilg4YALABhi1psEvruY,39
14
+ kspl-1.4.0.dist-info/RECORD,,
File without changes
File without changes