mirror of
https://github.com/283375/arcaea-offline-pyside-ui.git
synced 2025-04-19 09:10:18 +00:00
impr: refine DatabaseUpdateSignals
This commit is contained in:
parent
52e618e664
commit
105d5c1dfb
@ -12,7 +12,8 @@ def create_engine(_url: str | QUrl, pool: Type[Pool] = NullPool) -> Engine:
|
|||||||
|
|
||||||
|
|
||||||
class DatabaseUpdateSignals(QObject):
|
class DatabaseUpdateSignals(QObject):
|
||||||
songDataUpdated = Signal()
|
songAddOrDelete = Signal()
|
||||||
|
chartInfoUpdated = Signal()
|
||||||
|
|
||||||
|
|
||||||
databaseUpdateSignals = DatabaseUpdateSignals()
|
databaseUpdateSignals = DatabaseUpdateSignals()
|
||||||
|
@ -35,10 +35,11 @@ class ChartSelector(Ui_ChartSelector, QWidget):
|
|||||||
self.ratingClassSelector.valueChanged.connect(self.valueChanged)
|
self.ratingClassSelector.valueChanged.connect(self.valueChanged)
|
||||||
|
|
||||||
# handle `songIdSelector.updateDatabase` by this component
|
# handle `songIdSelector.updateDatabase` by this component
|
||||||
databaseUpdateSignals.songDataUpdated.disconnect(
|
databaseUpdateSignals.songAddOrDelete.disconnect(
|
||||||
self.songIdSelector.updateDatabase
|
self.songIdSelector.updateDatabase
|
||||||
)
|
)
|
||||||
databaseUpdateSignals.songDataUpdated.connect(self.updateDatabase)
|
databaseUpdateSignals.songAddOrDelete.connect(self.updateDatabase)
|
||||||
|
databaseUpdateSignals.chartInfoUpdated.connect(self.updateResultLabel)
|
||||||
|
|
||||||
def setSongIdSelectorMode(self, mode: SongIdSelectorMode):
|
def setSongIdSelectorMode(self, mode: SongIdSelectorMode):
|
||||||
self.songIdSelector.setMode(mode)
|
self.songIdSelector.setMode(mode)
|
||||||
|
@ -72,7 +72,7 @@ class SongIdSelector(Ui_SongIdSelector, QWidget):
|
|||||||
self.songIdComboBox.currentIndexChanged.connect(self.valueChanged)
|
self.songIdComboBox.currentIndexChanged.connect(self.valueChanged)
|
||||||
|
|
||||||
self.updateDatabase()
|
self.updateDatabase()
|
||||||
databaseUpdateSignals.songDataUpdated.connect(self.updateDatabase)
|
databaseUpdateSignals.songAddOrDelete.connect(self.updateDatabase)
|
||||||
|
|
||||||
def setMode(self, mode: SongIdSelectorMode):
|
def setMode(self, mode: SongIdSelectorMode):
|
||||||
self.mode = mode
|
self.mode = mode
|
||||||
|
@ -48,7 +48,7 @@ class TabDb_ChartInfoEditor(Ui_TabDb_ChartInfoEditor, QWidget):
|
|||||||
self.chartSelector.setSongIdSelectorMode(SongIdSelectorMode.SongId)
|
self.chartSelector.setSongIdSelectorMode(SongIdSelectorMode.SongId)
|
||||||
self.chartSelector.valueChanged.connect(self.chartSelectorValueChanged)
|
self.chartSelector.valueChanged.connect(self.chartSelectorValueChanged)
|
||||||
|
|
||||||
databaseUpdateSignals.songDataUpdated.connect(self.updateChartInfoAbsentModel)
|
databaseUpdateSignals.chartInfoUpdated.connect(self.updateChartInfoAbsentModel)
|
||||||
self.updateChartInfoAbsentModel()
|
self.updateChartInfoAbsentModel()
|
||||||
|
|
||||||
self.commitButton.clicked.connect(self.commitChartInfo)
|
self.commitButton.clicked.connect(self.commitChartInfo)
|
||||||
@ -193,7 +193,7 @@ class TabDb_ChartInfoEditor(Ui_TabDb_ChartInfoEditor, QWidget):
|
|||||||
with self.db.sessionmaker() as session:
|
with self.db.sessionmaker() as session:
|
||||||
session.merge(chartInfo)
|
session.merge(chartInfo)
|
||||||
session.commit()
|
session.commit()
|
||||||
databaseUpdateSignals.songDataUpdated.emit()
|
databaseUpdateSignals.chartInfoUpdated.emit()
|
||||||
|
|
||||||
def deleteChartInfo(self):
|
def deleteChartInfo(self):
|
||||||
chart = self.chartSelector.value()
|
chart = self.chartSelector.value()
|
||||||
@ -223,4 +223,4 @@ class TabDb_ChartInfoEditor(Ui_TabDb_ChartInfoEditor, QWidget):
|
|||||||
with self.db.sessionmaker() as session:
|
with self.db.sessionmaker() as session:
|
||||||
session.delete(chartInfo)
|
session.delete(chartInfo)
|
||||||
session.commit()
|
session.commit()
|
||||||
databaseUpdateSignals.songDataUpdated.emit()
|
databaseUpdateSignals.chartInfoUpdated.emit()
|
||||||
|
@ -46,7 +46,7 @@ class TabDb_Manage(Ui_TabDb_Manage, QWidget):
|
|||||||
with db.sessionmaker() as session:
|
with db.sessionmaker() as session:
|
||||||
parser.write_database(session)
|
parser.write_database(session)
|
||||||
session.commit()
|
session.commit()
|
||||||
databaseUpdateSignals.songDataUpdated.emit()
|
databaseUpdateSignals.chartInfoUpdated.emit()
|
||||||
QMessageBox.information(self, None, "OK")
|
QMessageBox.information(self, None, "OK")
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logging.exception("Sync arcsong.db error")
|
logging.exception("Sync arcsong.db error")
|
||||||
@ -62,7 +62,7 @@ class TabDb_Manage(Ui_TabDb_Manage, QWidget):
|
|||||||
with db.sessionmaker() as session:
|
with db.sessionmaker() as session:
|
||||||
parser.write_database(session)
|
parser.write_database(session)
|
||||||
session.commit()
|
session.commit()
|
||||||
databaseUpdateSignals.songDataUpdated.emit()
|
databaseUpdateSignals.songAddOrDelete.emit()
|
||||||
itemNum = len([item for item in parser.parse() if isinstance(item, instance)])
|
itemNum = len([item for item in parser.parse() if isinstance(item, instance)])
|
||||||
logger.info(f"updated {itemNum} {logName} from {path}")
|
logger.info(f"updated {itemNum} {logName} from {path}")
|
||||||
return itemNum
|
return itemNum
|
||||||
|
Loading…
x
Reference in New Issue
Block a user