system de favorit
This commit is contained in:
@@ -25,6 +25,7 @@ from qgis.PyQt.QtWidgets import (
|
||||
# QMenu,
|
||||
# QToolButton,
|
||||
# QTableWidget,
|
||||
QPushButton,
|
||||
QTableWidgetItem,
|
||||
QMessageBox,
|
||||
QVBoxLayout,
|
||||
@@ -101,6 +102,7 @@ class Flux_Editor(QDialog, EDITOR_CLASS):
|
||||
|
||||
self.tableWidget.setEditTriggers(QtWidgets.QAbstractItemView.EditTrigger(0))
|
||||
self.toolButton.setIcon(QtGui.QIcon(resources_path('ui', 'find.png')))
|
||||
self.toolButton_2.setIcon(QtGui.QIcon(resources_path('ui', 'star.png')))
|
||||
self.comboBox_2.addItem("SIG")
|
||||
self.comboBox_2.addItem('REF')
|
||||
|
||||
@@ -113,6 +115,7 @@ class Flux_Editor(QDialog, EDITOR_CLASS):
|
||||
self.checkBox.hide()
|
||||
# self.checkBox.stateChanged.connect(self.modeCarte)
|
||||
self.toolButton.clicked.connect(self.getCanevas)
|
||||
self.toolButton_2.clicked.connect(self.filtre_favorit)
|
||||
layout = QVBoxLayout()
|
||||
self.lineEdit.textChanged.connect(self.filtre_dynamique)
|
||||
# self.viewer.textChanged.connect(self.NewTitle)
|
||||
@@ -230,8 +233,41 @@ class Flux_Editor(QDialog, EDITOR_CLASS):
|
||||
def suppression_flux(self):
|
||||
self.tableWidget_2.removeRow(self.tableWidget_2.currentRow())
|
||||
|
||||
def AddOrDelToUserFav(self):
|
||||
selected_items = self.tableWidget.selectedItems()
|
||||
favorit_statut = selected_items[4].text()
|
||||
|
||||
selected_items[4].tableWidget().removeCellWidget(selected_items[4].row(), 4)
|
||||
|
||||
schema_name = selected_items[2].text()
|
||||
table_name = selected_items[3].text()
|
||||
|
||||
if favorit_statut == "0":
|
||||
FAV = "mStarIconDel.png"
|
||||
selected_items[4].setText("1")
|
||||
SQLAddFav = """INSERT INTO admin_sig.favtable (utilisateur, schema_name, table_name) VALUES ('""" + user + "','" + schema_name + "','" + table_name + """');"""
|
||||
if dbtype == sigdb:
|
||||
cur.execute(SQLAddFav)
|
||||
con.commit()
|
||||
|
||||
else:
|
||||
FAV = "mStarIconAdd.png"
|
||||
selected_items[4].setText("0")
|
||||
SQLDelFav = """DELETE FROM admin_sig.favtable WHERE utilisateur LIKE '""" + user + """' AND schema_name LIKE '""" + schema_name + """' AND table_name LIKE '""" + table_name + """';"""
|
||||
if dbtype == sigdb:
|
||||
cur.execute(SQLDelFav)
|
||||
con.commit()
|
||||
|
||||
iconFav = QIcon()
|
||||
iconFav.addPixmap(QtGui.QPixmap(resources_path('icons', FAV)), QIcon.Mode(0), QIcon.State(1))
|
||||
self.FavButton = QPushButton(iconFav, "")
|
||||
selected_items[4].tableWidget().setCellWidget(selected_items[4].row(), 4, self.FavButton)
|
||||
self.FavButton.clicked.connect(self.AddOrDelToUserFav)
|
||||
|
||||
def initialisation_flux(self):
|
||||
self.tableWidget.clear()
|
||||
if NoSignals == 0:
|
||||
# self.tableWidget.clear()
|
||||
# print('Initiaisation de la connection a la DB: ' + dbtype)
|
||||
if dbtype == sigdb:
|
||||
# self.toolButton.setEnabled(1)
|
||||
@@ -288,8 +324,19 @@ class Flux_Editor(QDialog, EDITOR_CLASS):
|
||||
GrandUser = []
|
||||
for grandsFind in list_grands:
|
||||
GrandUser.append(grandsFind[0])
|
||||
|
||||
if dbtype == sigdb:
|
||||
SQLFavTable = "SELECT concat(schema_name, '.', table_name) FROM admin_sig.favtable WHERE utilisateur LIKE '" + user + "';"
|
||||
cur.execute(SQLFavTable)
|
||||
list_fav = cur.fetchall()
|
||||
FavList = []
|
||||
for favFind in list_fav:
|
||||
FavList.append(favFind[0])
|
||||
else:
|
||||
FavList = []
|
||||
|
||||
self.tableWidget.setRowCount(len(list_schema))
|
||||
self.tableWidget.setColumnCount(4)
|
||||
self.tableWidget.setColumnCount(5)
|
||||
i = 0
|
||||
for value in list_schema:
|
||||
if dbtype == sigdb:
|
||||
@@ -320,6 +367,20 @@ class Flux_Editor(QDialog, EDITOR_CLASS):
|
||||
schema_name = str(value[0])
|
||||
table_name = str(value[1])
|
||||
|
||||
FavStatut = 0
|
||||
if (schema_name + '.' + table_name) not in FavList:
|
||||
FAV = "mStarIconAdd.png"
|
||||
FavStatut = 0
|
||||
else:
|
||||
FAV = "mStarIconDel.png"
|
||||
FavStatut = 1
|
||||
iconFav = QIcon()
|
||||
iconFav.addPixmap(QtGui.QPixmap(resources_path('icons', FAV)), QIcon.Mode(0), QIcon.State(1))
|
||||
self.FavButton = QPushButton(iconFav, "")
|
||||
self.FavButton.clicked.connect(self.AddOrDelToUserFav)
|
||||
if dbtype == refdb:
|
||||
self.FavButton.setEnabled(False)
|
||||
|
||||
if (str(value[0]) + '.' + str(value[1])) in RasterList:
|
||||
SVG = 'mIconRaster.svg'
|
||||
else:
|
||||
@@ -337,6 +398,9 @@ class Flux_Editor(QDialog, EDITOR_CLASS):
|
||||
self.tableWidget.setItem(i, 2, item)
|
||||
item = QTableWidgetItem(table_name)
|
||||
self.tableWidget.setItem(i, 3, item)
|
||||
item = QTableWidgetItem(str(FavStatut))
|
||||
self.tableWidget.setItem(i, 4, item)
|
||||
self.tableWidget.setCellWidget(i, 4, self.FavButton)
|
||||
|
||||
# if dbtype == sigdb:
|
||||
if (str(value[0]) + '.' + str(value[1])) in GrandUser:
|
||||
@@ -379,13 +443,17 @@ class Flux_Editor(QDialog, EDITOR_CLASS):
|
||||
item = QTableWidgetItem(Project[0])
|
||||
self.tableWidget.setItem(i, 3, item)
|
||||
|
||||
item = QTableWidgetItem('FavIcon')
|
||||
self.tableWidget.setItem(i, 4, item)
|
||||
|
||||
i = i + 1
|
||||
|
||||
self.tableWidget.setColumnWidth(0, 20)
|
||||
self.tableWidget.setColumnWidth(1, 70)
|
||||
self.tableWidget.setColumnWidth(2, 300)
|
||||
self.tableWidget.setColumnWidth(3, 300)
|
||||
self.tableWidget.setHorizontalHeaderLabels(["Type", "Code", "Schema", "Table"])
|
||||
self.tableWidget.setColumnWidth(4, 20)
|
||||
self.tableWidget.setHorizontalHeaderLabels(["Type", "Code", "Schema", "Table", "Favorit"])
|
||||
|
||||
if self.lineEdit.text() != 'Recherche par mots-clés':
|
||||
self.filtre_dynamique(self.lineEdit.text())
|
||||
@@ -403,14 +471,15 @@ class Flux_Editor(QDialog, EDITOR_CLASS):
|
||||
|
||||
for column in range(self.tableWidget.columnCount()):
|
||||
cloned_item = selected_items[column].clone()
|
||||
self.tableWidget_2.setHorizontalHeaderLabels(["Type", "Code", "Schema", "Table"])
|
||||
self.tableWidget_2.setColumnCount(4)
|
||||
self.tableWidget_2.setHorizontalHeaderLabels(["Type", "Code", "Schema", "Table", "Favorit"])
|
||||
self.tableWidget_2.setColumnCount(5)
|
||||
self.tableWidget_2.setItem(selected_row, column, cloned_item)
|
||||
|
||||
self.tableWidget_2.setColumnWidth(0, 20)
|
||||
self.tableWidget_2.setColumnWidth(1, 70)
|
||||
self.tableWidget_2.setColumnWidth(2, 300)
|
||||
self.tableWidget_2.setColumnWidth(3, 300)
|
||||
self.tableWidget_2.setColumnWidth(4, 20)
|
||||
|
||||
def item_already_exists(self, new_item_text):
|
||||
# Assuming you want to compare items in the first column for uniqueness
|
||||
@@ -588,6 +657,18 @@ class Flux_Editor(QDialog, EDITOR_CLASS):
|
||||
self.comboBox.addItem(baxval[0])
|
||||
NoSignals = 0
|
||||
|
||||
def filtre_favorit(self, filter_fav):
|
||||
if self.toolButton_2.text() == "0":
|
||||
self.toolButton_2.setText("1")
|
||||
for i in range(self.tableWidget.rowCount()):
|
||||
item = self.tableWidget.item(i, 4)
|
||||
match = self.toolButton_2.text() not in item.text().lower()
|
||||
self.tableWidget.setRowHidden(i, match)
|
||||
elif self.toolButton_2.text() == "1":
|
||||
self.toolButton_2.setText("0")
|
||||
for i in range(self.tableWidget.rowCount()):
|
||||
self.tableWidget.setRowHidden(i, False)
|
||||
|
||||
def filtre_dynamique(self, filter_text):
|
||||
if filter_text.find(' ') >= 0:
|
||||
filter_text = filter_text.replace(" ", "_")
|
||||
@@ -595,6 +676,10 @@ class Flux_Editor(QDialog, EDITOR_CLASS):
|
||||
for j in range(self.tableWidget.columnCount()):
|
||||
item = self.tableWidget.item(i, j)
|
||||
match = filter_text.lower() not in item.text().lower()
|
||||
if match is False:
|
||||
if self.toolButton_2.text() == "1":
|
||||
item = self.tableWidget.item(i, 4)
|
||||
match = self.toolButton_2.text() not in item.text().lower()
|
||||
self.tableWidget.setRowHidden(i, match)
|
||||
if not match:
|
||||
break
|
||||
@@ -637,6 +722,7 @@ class Flux_Editor(QDialog, EDITOR_CLASS):
|
||||
DepName = QTableWidgetItem('form')
|
||||
SchemaName = QTableWidgetItem(e[0][6:])
|
||||
TableName = QTableWidgetItem(e[1][len(e[0]) + 1:])
|
||||
FavoritStatut = QTableWidgetItem('FavIcon')
|
||||
self.tableWidget.insertRow(row_count)
|
||||
|
||||
itemIcon = QTableWidgetItem()
|
||||
@@ -648,6 +734,7 @@ class Flux_Editor(QDialog, EDITOR_CLASS):
|
||||
self.tableWidget.setItem(row_count, 1, DepName)
|
||||
self.tableWidget.setItem(row_count, 2, SchemaName)
|
||||
self.tableWidget.setItem(row_count, 3, TableName)
|
||||
self.tableWidget.setItem(row_count, 3, FavoritStatut)
|
||||
if TableSomme == 0:
|
||||
for j in range(self.tableWidget.columnCount()):
|
||||
self.tableWidget.item(row_count, j).setBackground(QtGui.QColor(246, 185, 73, 50))
|
||||
|
||||
Reference in New Issue
Block a user