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