feat: TabTools_ChartRecommend

This commit is contained in:
2023-09-23 17:29:35 +08:00
parent 7679620617
commit 4b8d0d0427
7 changed files with 795 additions and 72 deletions

View File

@ -89,12 +89,12 @@
<translation>Continue</translation>
</message>
<message>
<location filename="../../startup/databaseChecker.py" line="117"/>
<location filename="../../startup/databaseChecker.py" line="115"/>
<source>dialog.tryInitExistingDatabase</source>
<translation>The existing database doesn&apos;t seem to be initialized properly, try initialize again?</translation>
</message>
<message>
<location filename="../../startup/databaseChecker.py" line="133"/>
<location filename="../../startup/databaseChecker.py" line="131"/>
<source>dialog.confirmNewDatabase</source>
<translation>Database file does not exist. Create now?</translation>
</message>
@ -283,22 +283,22 @@ validation</translation>
<context>
<name>OcrTableModel</name>
<message>
<location filename="../../extends/components/ocrQueue.py" line="341"/>
<location filename="../../extends/components/ocrQueue.py" line="347"/>
<source>horizontalHeader.title.select</source>
<translation>Select</translation>
</message>
<message>
<location filename="../../extends/components/ocrQueue.py" line="342"/>
<location filename="../../extends/components/ocrQueue.py" line="348"/>
<source>horizontalHeader.title.imagePreview</source>
<translation>Image Preview</translation>
</message>
<message>
<location filename="../../extends/components/ocrQueue.py" line="343"/>
<location filename="../../extends/components/ocrQueue.py" line="349"/>
<source>horizontalHeader.title.chart</source>
<translation>Chart</translation>
</message>
<message>
<location filename="../../extends/components/ocrQueue.py" line="344"/>
<location filename="../../extends/components/ocrQueue.py" line="350"/>
<source>horizontalHeader.title.score</source>
<translation>Score</translation>
</message>
@ -314,54 +314,54 @@ validation</translation>
<context>
<name>ScoreEditor</name>
<message>
<location filename="../../designer/components/scoreEditor.ui" line="109"/>
<location filename="../../designer/components/scoreEditor.ui" line="119"/>
<location filename="../../designer/components/scoreEditor.ui" line="189"/>
<location filename="../../designer/components/scoreEditor.ui" line="199"/>
<location filename="../../designer/components/scoreEditor.ui" line="239"/>
<location filename="../../designer/components/scoreEditor.ui" line="272"/>
<location filename="../../designer/components/scoreEditor.ui" line="279"/>
<location filename="../../designer/components/scoreEditor.ui" line="302"/>
<location filename="../../designer/components/scoreEditor.ui" line="139"/>
<location filename="../../designer/components/scoreEditor.ui" line="178"/>
<location filename="../../designer/components/scoreEditor.ui" line="225"/>
<location filename="../../designer/components/scoreEditor.ui" line="258"/>
<location filename="../../designer/components/scoreEditor.ui" line="285"/>
<location filename="../../designer/components/scoreEditor.ui" line="292"/>
<location filename="../../designer/components/scoreEditor.ui" line="318"/>
<location filename="../../designer/components/scoreEditor.ui" line="328"/>
<source>setNone</source>
<translation>None</translation>
</message>
<message>
<location filename="../../designer/components/scoreEditor.ui" line="169"/>
<location filename="../../designer/components/scoreEditor.ui" line="102"/>
<source>formLabel.date</source>
<translation>Time</translation>
</message>
<message>
<location filename="../../designer/components/scoreEditor.ui" line="338"/>
<location filename="../../designer/components/scoreEditor.ui" line="268"/>
<source>formLabel.comment</source>
<translation>Comment</translation>
</message>
<message>
<location filename="../../designer/components/scoreEditor.ui" line="358"/>
<location filename="../../designer/components/scoreEditor.ui" line="119"/>
<source>formLabel.preview</source>
<translation>Preview</translation>
</message>
<message>
<location filename="../../designer/components/scoreEditor.ui" line="99"/>
<location filename="../../designer/components/scoreEditor.ui" line="20"/>
<source>formLabel.score</source>
<translation>Score</translation>
</message>
<message>
<location filename="../../designer/components/scoreEditor.ui" line="162"/>
<location filename="../../designer/components/scoreEditor.ui" line="278"/>
<source>idAutoInsert</source>
<translation>(Auto insert)</translation>
</message>
<message>
<location filename="../../designer/components/scoreEditor.ui" line="309"/>
<location filename="../../designer/components/scoreEditor.ui" line="112"/>
<source>warnIfIncomplete</source>
<translation>Warn if incomplete</translation>
</message>
<message>
<location filename="../../designer/components/scoreEditor.ui" line="63"/>
<location filename="../../designer/components/scoreEditor.ui" line="218"/>
<source>commitButton</source>
<translation>Commit</translation>
</message>
<message>
<location filename="../../implements/components/scoreEditor.py" line="320"/>
<location filename="../../implements/components/scoreEditor.py" line="327"/>
<source>validate.ok</source>
<translation>OK</translation>
</message>
@ -406,57 +406,57 @@ validation</translation>
<translation>Cannot verify an incomplete score. Commit anyway?</translation>
</message>
<message>
<location filename="../../implements/components/scoreEditor.py" line="205"/>
<location filename="../../implements/components/scoreEditor.py" line="212"/>
<source>confirmDialog.chartNotSet.title</source>
<translation>Chart not set</translation>
</message>
<message>
<location filename="../../implements/components/scoreEditor.py" line="206"/>
<location filename="../../implements/components/scoreEditor.py" line="213"/>
<source>confirmDialog.chartNotSet.text</source>
<translation>Chart not set, cannot commit.</translation>
</message>
<message>
<location filename="../../implements/components/scoreEditor.py" line="214"/>
<location filename="../../implements/components/scoreEditor.py" line="221"/>
<source>confirmDialog.scoreIncomplete.title</source>
<translation>Score incomplete</translation>
</message>
<message>
<location filename="../../implements/components/scoreEditor.py" line="215"/>
<location filename="../../implements/components/scoreEditor.py" line="222"/>
<source>confirmDialog.scoreIncomplete.text</source>
<translation>Necessary score field missing, cannot commit.</translation>
</message>
<message>
<location filename="../../implements/components/scoreEditor.py" line="324"/>
<location filename="../../implements/components/scoreEditor.py" line="331"/>
<source>validate.chartNotSet</source>
<translation>Chart not set</translation>
</message>
<message>
<location filename="../../implements/components/scoreEditor.py" line="328"/>
<location filename="../../implements/components/scoreEditor.py" line="335"/>
<source>validate.chartIncomple</source>
<translation>No chart data, cannot verify</translation>
</message>
<message>
<location filename="../../implements/components/scoreEditor.py" line="332"/>
<location filename="../../implements/components/scoreEditor.py" line="339"/>
<source>validate.scoreMismatch</source>
<translation>Possible invalid score</translation>
</message>
<message>
<location filename="../../implements/components/scoreEditor.py" line="336"/>
<location filename="../../implements/components/scoreEditor.py" line="343"/>
<source>validate.scoreEmpty</source>
<translation>Empty score</translation>
</message>
<message>
<location filename="../../implements/components/scoreEditor.py" line="340"/>
<location filename="../../implements/components/scoreEditor.py" line="347"/>
<source>validate.scoreIncomplete</source>
<translation>Missing necessary score field</translation>
</message>
<message>
<location filename="../../implements/components/scoreEditor.py" line="346"/>
<location filename="../../implements/components/scoreEditor.py" line="353"/>
<source>validate.scoreIncompleteForValidate</source>
<translation>Score incomplete, cannot verify</translation>
</message>
<message>
<location filename="../../implements/components/scoreEditor.py" line="351"/>
<location filename="../../implements/components/scoreEditor.py" line="358"/>
<source>validate.unknownState</source>
<translation>Unknown</translation>
</message>
@ -581,12 +581,12 @@ validation</translation>
<translation>Manage</translation>
</message>
<message>
<location filename="../../implements/tabs/tabDbEntry.py" line="16"/>
<location filename="../../implements/tabs/tabDbEntry.py" line="20"/>
<source>tab.scoreTableViewer</source>
<translation>Table [Score]</translation>
</message>
<message>
<location filename="../../implements/tabs/tabDbEntry.py" line="20"/>
<location filename="../../implements/tabs/tabDbEntry.py" line="24"/>
<source>tab.b30TableViewer</source>
<translation>Table [B30]</translation>
</message>
@ -769,6 +769,11 @@ validation</translation>
</message>
<message>
<location filename="../../designer/tabs/tabToolsEntry.ui" line="34"/>
<source>tab.chartRecommend</source>
<translation>Chart Recommend</translation>
</message>
<message>
<location filename="../../designer/tabs/tabToolsEntry.ui" line="39"/>
<source>tab.andreal</source>
<translation>Andreal Image Generator</translation>
</message>
@ -836,11 +841,35 @@ validation</translation>
<translation>Generate</translation>
</message>
<message>
<location filename="../../implements/tabs/tabTools/tabTools_Andreal.py" line="81"/>
<location filename="../../implements/tabs/tabTools/tabTools_Andreal.py" line="82"/>
<source>imageWhatIsThisDialog.description</source>
<translation>Generate image of...&lt;ul&gt;&lt;li&gt;/a - the most recent score&lt;/li&gt;&lt;li&gt;/a b30 - best30 image&lt;/li&gt;&lt;li&gt;/a info - best score of the selected chart&lt;/li&gt;&lt;/ul&gt;</translation>
</message>
</context>
<context>
<name>TabTools_ChartRecommend</name>
<message>
<location filename="../../designer/tabs/tabTools/tabTools_ChartRecommend.ui" line="20"/>
<source>constantRangeFromPlayRating</source>
<translation>Chart Constant Range from Play Rating</translation>
</message>
<message>
<location filename="../../designer/tabs/tabTools/tabTools_ChartRecommend.ui" line="118"/>
<source>chartsByConstant</source>
<translation>Charts by Constant</translation>
</message>
<message>
<location filename="../../designer/tabs/tabTools/tabTools_ChartRecommend.ui" line="174"/>
<location filename="../../designer/tabs/tabTools/tabTools_ChartRecommend.ui" line="273"/>
<source>refreshButton</source>
<translation>Roll</translation>
</message>
<message>
<location filename="../../designer/tabs/tabTools/tabTools_ChartRecommend.ui" line="197"/>
<source>chartsRecommendFromPlayRating</source>
<translation>Chart from Play Rating Based on Best Score</translation>
</message>
</context>
<context>
<name>TabTools_InfoLookup</name>
<message>
@ -1008,6 +1037,11 @@ validation</translation>
<source>difficulty.title</source>
<translation>Title</translation>
</message>
<message>
<location filename="../../designer/tabs/tabTools/tabTools_InfoLookup.ui" line="695"/>
<source>playRatingCalculate</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>TabTools_StepCalculator</name>

View File

@ -89,12 +89,12 @@
<translation></translation>
</message>
<message>
<location filename="../../startup/databaseChecker.py" line="117"/>
<location filename="../../startup/databaseChecker.py" line="115"/>
<source>dialog.tryInitExistingDatabase</source>
<translation></translation>
</message>
<message>
<location filename="../../startup/databaseChecker.py" line="133"/>
<location filename="../../startup/databaseChecker.py" line="131"/>
<source>dialog.confirmNewDatabase</source>
<translation></translation>
</message>
@ -282,22 +282,22 @@
<context>
<name>OcrTableModel</name>
<message>
<location filename="../../extends/components/ocrQueue.py" line="341"/>
<location filename="../../extends/components/ocrQueue.py" line="347"/>
<source>horizontalHeader.title.select</source>
<translation></translation>
</message>
<message>
<location filename="../../extends/components/ocrQueue.py" line="342"/>
<location filename="../../extends/components/ocrQueue.py" line="348"/>
<source>horizontalHeader.title.imagePreview</source>
<translation></translation>
</message>
<message>
<location filename="../../extends/components/ocrQueue.py" line="343"/>
<location filename="../../extends/components/ocrQueue.py" line="349"/>
<source>horizontalHeader.title.chart</source>
<translation></translation>
</message>
<message>
<location filename="../../extends/components/ocrQueue.py" line="344"/>
<location filename="../../extends/components/ocrQueue.py" line="350"/>
<source>horizontalHeader.title.score</source>
<translation></translation>
</message>
@ -313,54 +313,54 @@
<context>
<name>ScoreEditor</name>
<message>
<location filename="../../designer/components/scoreEditor.ui" line="109"/>
<location filename="../../designer/components/scoreEditor.ui" line="119"/>
<location filename="../../designer/components/scoreEditor.ui" line="189"/>
<location filename="../../designer/components/scoreEditor.ui" line="199"/>
<location filename="../../designer/components/scoreEditor.ui" line="239"/>
<location filename="../../designer/components/scoreEditor.ui" line="272"/>
<location filename="../../designer/components/scoreEditor.ui" line="279"/>
<location filename="../../designer/components/scoreEditor.ui" line="302"/>
<location filename="../../designer/components/scoreEditor.ui" line="139"/>
<location filename="../../designer/components/scoreEditor.ui" line="178"/>
<location filename="../../designer/components/scoreEditor.ui" line="225"/>
<location filename="../../designer/components/scoreEditor.ui" line="258"/>
<location filename="../../designer/components/scoreEditor.ui" line="285"/>
<location filename="../../designer/components/scoreEditor.ui" line="292"/>
<location filename="../../designer/components/scoreEditor.ui" line="318"/>
<location filename="../../designer/components/scoreEditor.ui" line="328"/>
<source>setNone</source>
<translation></translation>
</message>
<message>
<location filename="../../designer/components/scoreEditor.ui" line="169"/>
<location filename="../../designer/components/scoreEditor.ui" line="102"/>
<source>formLabel.date</source>
<translation></translation>
</message>
<message>
<location filename="../../designer/components/scoreEditor.ui" line="338"/>
<location filename="../../designer/components/scoreEditor.ui" line="268"/>
<source>formLabel.comment</source>
<translation></translation>
</message>
<message>
<location filename="../../designer/components/scoreEditor.ui" line="358"/>
<location filename="../../designer/components/scoreEditor.ui" line="119"/>
<source>formLabel.preview</source>
<translation></translation>
</message>
<message>
<location filename="../../designer/components/scoreEditor.ui" line="99"/>
<location filename="../../designer/components/scoreEditor.ui" line="20"/>
<source>formLabel.score</source>
<translation></translation>
</message>
<message>
<location filename="../../designer/components/scoreEditor.ui" line="162"/>
<location filename="../../designer/components/scoreEditor.ui" line="278"/>
<source>idAutoInsert</source>
<translation></translation>
</message>
<message>
<location filename="../../designer/components/scoreEditor.ui" line="309"/>
<location filename="../../designer/components/scoreEditor.ui" line="112"/>
<source>warnIfIncomplete</source>
<translation></translation>
</message>
<message>
<location filename="../../designer/components/scoreEditor.ui" line="63"/>
<location filename="../../designer/components/scoreEditor.ui" line="218"/>
<source>commitButton</source>
<translation></translation>
</message>
<message>
<location filename="../../implements/components/scoreEditor.py" line="320"/>
<location filename="../../implements/components/scoreEditor.py" line="327"/>
<source>validate.ok</source>
<translation>OK</translation>
</message>
@ -405,57 +405,57 @@
<translation></translation>
</message>
<message>
<location filename="../../implements/components/scoreEditor.py" line="205"/>
<location filename="../../implements/components/scoreEditor.py" line="212"/>
<source>confirmDialog.chartNotSet.title</source>
<translation></translation>
</message>
<message>
<location filename="../../implements/components/scoreEditor.py" line="206"/>
<location filename="../../implements/components/scoreEditor.py" line="213"/>
<source>confirmDialog.chartNotSet.text</source>
<translation></translation>
</message>
<message>
<location filename="../../implements/components/scoreEditor.py" line="214"/>
<location filename="../../implements/components/scoreEditor.py" line="221"/>
<source>confirmDialog.scoreIncomplete.title</source>
<translation></translation>
</message>
<message>
<location filename="../../implements/components/scoreEditor.py" line="215"/>
<location filename="../../implements/components/scoreEditor.py" line="222"/>
<source>confirmDialog.scoreIncomplete.text</source>
<translation></translation>
</message>
<message>
<location filename="../../implements/components/scoreEditor.py" line="324"/>
<location filename="../../implements/components/scoreEditor.py" line="331"/>
<source>validate.chartNotSet</source>
<translation></translation>
</message>
<message>
<location filename="../../implements/components/scoreEditor.py" line="328"/>
<location filename="../../implements/components/scoreEditor.py" line="335"/>
<source>validate.chartIncomple</source>
<translation></translation>
</message>
<message>
<location filename="../../implements/components/scoreEditor.py" line="332"/>
<location filename="../../implements/components/scoreEditor.py" line="339"/>
<source>validate.scoreMismatch</source>
<translation></translation>
</message>
<message>
<location filename="../../implements/components/scoreEditor.py" line="336"/>
<location filename="../../implements/components/scoreEditor.py" line="343"/>
<source>validate.scoreEmpty</source>
<translation></translation>
</message>
<message>
<location filename="../../implements/components/scoreEditor.py" line="340"/>
<location filename="../../implements/components/scoreEditor.py" line="347"/>
<source>validate.scoreIncomplete</source>
<translation></translation>
</message>
<message>
<location filename="../../implements/components/scoreEditor.py" line="346"/>
<location filename="../../implements/components/scoreEditor.py" line="353"/>
<source>validate.scoreIncompleteForValidate</source>
<translation></translation>
</message>
<message>
<location filename="../../implements/components/scoreEditor.py" line="351"/>
<location filename="../../implements/components/scoreEditor.py" line="358"/>
<source>validate.unknownState</source>
<translation></translation>
</message>
@ -580,12 +580,12 @@
<translation></translation>
</message>
<message>
<location filename="../../implements/tabs/tabDbEntry.py" line="16"/>
<location filename="../../implements/tabs/tabDbEntry.py" line="20"/>
<source>tab.scoreTableViewer</source>
<translation> []</translation>
</message>
<message>
<location filename="../../implements/tabs/tabDbEntry.py" line="20"/>
<location filename="../../implements/tabs/tabDbEntry.py" line="24"/>
<source>tab.b30TableViewer</source>
<translation> [B30]</translation>
</message>
@ -768,6 +768,11 @@
</message>
<message>
<location filename="../../designer/tabs/tabToolsEntry.ui" line="34"/>
<source>tab.chartRecommend</source>
<translation></translation>
</message>
<message>
<location filename="../../designer/tabs/tabToolsEntry.ui" line="39"/>
<source>tab.andreal</source>
<translation>Andreal </translation>
</message>
@ -835,11 +840,35 @@
<translation></translation>
</message>
<message>
<location filename="../../implements/tabs/tabTools/tabTools_Andreal.py" line="81"/>
<location filename="../../implements/tabs/tabTools/tabTools_Andreal.py" line="82"/>
<source>imageWhatIsThisDialog.description</source>
<translation>&lt;ul&gt;&lt;li&gt;/a - &lt;/li&gt;&lt;li&gt;/a b30 - /a b30&lt;/li&gt;&lt;li&gt;/a info - &lt;/li&gt;&lt;/ul&gt;</translation>
</message>
</context>
<context>
<name>TabTools_ChartRecommend</name>
<message>
<location filename="../../designer/tabs/tabTools/tabTools_ChartRecommend.ui" line="20"/>
<source>constantRangeFromPlayRating</source>
<translation> PTT </translation>
</message>
<message>
<location filename="../../designer/tabs/tabTools/tabTools_ChartRecommend.ui" line="118"/>
<source>chartsByConstant</source>
<translation></translation>
</message>
<message>
<location filename="../../designer/tabs/tabTools/tabTools_ChartRecommend.ui" line="174"/>
<location filename="../../designer/tabs/tabTools/tabTools_ChartRecommend.ui" line="273"/>
<source>refreshButton</source>
<translation></translation>
</message>
<message>
<location filename="../../designer/tabs/tabTools/tabTools_ChartRecommend.ui" line="197"/>
<source>chartsRecommendFromPlayRating</source>
<translation> PTT </translation>
</message>
</context>
<context>
<name>TabTools_InfoLookup</name>
<message>
@ -1007,6 +1036,11 @@
<source>difficulty.title</source>
<translation></translation>
</message>
<message>
<location filename="../../designer/tabs/tabTools/tabTools_InfoLookup.ui" line="695"/>
<source>playRatingCalculate</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>TabTools_StepCalculator</name>