Skip to content

Instantly share code, notes, and snippets.

@ben-hearn-sb
Created January 11, 2021 10:21
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ben-hearn-sb/038da0d75d6887205e7333147ae9f0d9 to your computer and use it in GitHub Desktop.
Save ben-hearn-sb/038da0d75d6887205e7333147ae9f0d9 to your computer and use it in GitHub Desktop.
class Sql_Table_Model(QSqlTableModel):
def __init__(self, parent=None, db=None):
QSqlTableModel.__init__(self, parent, db)
'''Qt::ItemFlags flags(const QModelIndex &index) const override {return QSqlTableModel::flags(index) | Qt::ItemIsDragEnabled;}'''
self.setTable(db.connectionName())
self.select()
self.removeColumn(0) # Remove the ID column
self.rename_headers()
self.fetch_all_rows()
self.setEditStrategy(QSqlTableModel.OnManualSubmit)
#self.rekordbox_compare = False
def flags(self, index):
"""Reimplemented to set editable and movable status."""
flags = (Qt.ItemIsSelectable | Qt.ItemIsEnabled | Qt.ItemIsDragEnabled)
return flags
def mimeData(self, indexes):
if not indexes:
return None
files = set()
for idx in indexes:
row = idx.row()
fpath = self.index(row, _COL_PATH).data()
files.add(fpath)
files = list(files)
data = QMimeData()
data.setUrls(files)
return data
def fetch_all_rows(self):
""" Fetches all the rows that the database has access to. SQLite only displays 256 rows as default """
while self.canFetchMore():
self.fetchMore()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment