Skip to content

Commit

Permalink
v1.8 - added ability to reorder items in settings list
Browse files Browse the repository at this point in the history
  • Loading branch information
AltaArts authored Jun 7, 2024
1 parent 1495c8a commit 3cd0512
Show file tree
Hide file tree
Showing 2 changed files with 69 additions and 14 deletions.
81 changes: 68 additions & 13 deletions ExportToDir/Scripts/Prism_ExportToDir_Functions.py
Original file line number Diff line number Diff line change
Expand Up @@ -545,7 +545,6 @@ def userSettings_loadUI(self, origin): # ADDING "Export to Dir" TO SETTINGS

# Add the "File Naming Template" box before the "Export to Dir" group box
origin.lo_exportTo.addWidget(gb_fileNamingTemplate)

spacer = QSpacerItem(20, 20, QSizePolicy.Minimum, QSizePolicy.Fixed)
origin.lo_exportTo.addItem(spacer)

Expand All @@ -566,25 +565,19 @@ def userSettings_loadUI(self, origin): # ADDING "Export to Dir" TO SETTINGS
self.tw_exportTo.setSelectionBehavior(QTableWidget.SelectRows)
self.tw_exportTo.setSelectionMode(QTableWidget.SingleSelection)

tip = ("Directories that will be available in ExportToDir in addition to Project Locations.\n\n"
"Short Name will be displayed in the right-click menu."
)
self.tw_exportTo.setToolTip(tip)

# Adds Buttons
w_exportTo = QWidget()
lo_exportToButtons = QHBoxLayout()
b_addoexportTo = QPushButton("Add")
tip = "Adds directory to ExportToDir list dropdown."
b_addoexportTo.setToolTip(tip)

b_moveItemUp = QPushButton("Move Up")
b_moveItemDn = QPushButton("Move Down")
b_addoexportTo = QPushButton("Add...")
b_removeoexportTo = QPushButton("Remove")
tip = ("Removes directory from ExportToDir list dropdown.\n\n"
"Will not delete any files in the directory."
)
b_removeoexportTo.setToolTip(tip)

w_exportTo.setLayout(lo_exportToButtons)
lo_exportToButtons.addWidget(b_moveItemUp)
lo_exportToButtons.addWidget(b_moveItemDn)
# Add stretch to separate the buttons
lo_exportToButtons.addStretch()
lo_exportToButtons.addWidget(b_addoexportTo)
lo_exportToButtons.addWidget(b_removeoexportTo)
Expand All @@ -599,6 +592,8 @@ def userSettings_loadUI(self, origin): # ADDING "Export to Dir" TO SETTINGS
self.tw_exportTo.setEditTriggers(QAbstractItemView.NoEditTriggers)

# Executes button actions
b_moveItemUp.clicked.connect(lambda: self.moveItemUp())
b_moveItemDn.clicked.connect(lambda: self.moveItemDn())
b_addoexportTo.clicked.connect(lambda: self.addExportToDir(origin, self.tw_exportTo))
b_removeoexportTo.clicked.connect(lambda: self.removeExportToDir(origin, self.tw_exportTo))

Expand All @@ -620,6 +615,32 @@ def userSettings_loadUI(self, origin): # ADDING "Export to Dir" TO SETTINGS
self.tw_exportTo.setItem(row_position, 0, QTableWidgetItem(item.get("Name", "")))
self.tw_exportTo.setItem(row_position, 1, QTableWidgetItem(item.get("Path", "")))

# Tooltips
tip = ("Directories that will be available in ExportToDir in addition to Project Locations.\n\n"
"Short Name will be displayed in the right-click menu."
)
self.tw_exportTo.setToolTip(tip)

tip = "Move selected item up in list."
b_moveItemUp.setToolTip(tip)

tip = "Move selected item down in list."
b_moveItemDn.setToolTip(tip)

tip = "Opens dialogue to add directory to ExportToDir list dropdown."
b_addoexportTo.setToolTip(tip)

tip = ("Removes directory from ExportToDir list dropdown.\n\n"
"Will not delete any files in the directory."
)
b_removeoexportTo.setToolTip(tip)

# Initialize button states
self.updateButtonStates(b_moveItemUp, b_moveItemDn, b_removeoexportTo)

# Connect item selection changed signal to the method
self.tw_exportTo.itemSelectionChanged.connect(lambda: self.updateButtonStates(b_moveItemUp, b_moveItemDn, b_removeoexportTo))

# Add Tab to User Settings
origin.addTab(origin.w_exportTo, "Export to Dir")

Expand All @@ -638,6 +659,40 @@ def getToolTipItems(self, template, textbox):
return templateItems


@err_catcher(name=__name__)
def updateButtonStates(self, b_moveItemUp, b_moveItemDn, b_removeOpenWith):
selectedItems = self.tw_exportTo.selectedItems()
hasSelection = bool(selectedItems)

b_moveItemUp.setEnabled(hasSelection)
b_moveItemDn.setEnabled(hasSelection)
b_removeOpenWith.setEnabled(hasSelection)


@err_catcher(name=__name__)
def moveItemUp(self):
currentRow = self.tw_exportTo.currentRow()
if currentRow > 0:
self.tw_exportTo.insertRow(currentRow - 1)
for column in range(self.tw_exportTo.columnCount()):
item = self.tw_exportTo.takeItem(currentRow + 1, column)
self.tw_exportTo.setItem(currentRow - 1, column, item)
self.tw_exportTo.removeRow(currentRow + 1)
self.tw_exportTo.setCurrentCell(currentRow - 1, 0)


@err_catcher(name=__name__)
def moveItemDn(self):
currentRow = self.tw_exportTo.currentRow()
if currentRow < self.tw_exportTo.rowCount() - 1:
self.tw_exportTo.insertRow(currentRow + 2)
for column in range(self.tw_exportTo.columnCount()):
item = self.tw_exportTo.takeItem(currentRow, column)
self.tw_exportTo.setItem(currentRow + 2, column, item)
self.tw_exportTo.removeRow(currentRow)
self.tw_exportTo.setCurrentCell(currentRow + 1, 0)


# Check Loaded Plugins
@err_catcher(name=__name__)
def getLoadedPlugins(self):
Expand Down
2 changes: 1 addition & 1 deletion ExportToDir/Scripts/Prism_ExportToDir_Variables.py
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@

class Prism_ExportToDir_Variables(object):
def __init__(self, core, plugin):
self.version = "v2.0.2-1.7"
self.version = "v2.0.2-1.8"
self.pluginName = "ExportToDir"
self.pluginType = "Custom"
self.platforms = ["Windows", "Linux", "Darwin"]

0 comments on commit 3cd0512

Please sign in to comment.