1
0
mirror of https://github.com/ppy/osu.git synced 2024-12-21 18:02:55 +08:00
Commit Graph

460 Commits

Author SHA1 Message Date
Dean Herbert
db15bd56e8 Invalidate working beatmap cache when calling DeleteDifficultyImmediately rather than in editor code 2022-09-06 18:12:47 +09:00
Dean Herbert
4f18105e9d Ensure next beatmap selected matches the menu ordering 2022-09-02 17:57:00 +09:00
Dean Herbert
840d1c4cd5 Disable delete difficulty menu item when only one difficulty is present 2022-09-02 17:14:48 +09:00
Dean Herbert
9fd8067e11 Tidy up dialog and deletion flow 2022-09-02 17:07:09 +09:00
Dean Herbert
605108c938 Refactor/rename deletion method to read better 2022-09-02 16:59:01 +09:00
Dean Herbert
b388428e1c
Merge branch 'master' into feature/EditorDeleteDiff 2022-09-02 16:48:38 +09:00
Dean Herbert
12d6d6793c Move EditorClock processing to Update and always decouple 2022-08-26 18:08:43 +09:00
Dean Herbert
6b9dec5996 Restore original event flow to allow for OnSuspend case to work correctly 2022-08-17 14:32:21 +09:00
Dean Herbert
8ce50e98a6 Move delegate debounce logic to Editor itself 2022-08-17 14:04:57 +09:00
Dean Herbert
ea50936d71 Fix slider ticks playing back at infinite rate while making changes to a slider in the editor 2022-08-16 15:27:58 +09:00
Dean Herbert
cc4cde2c79 Improve IBeatSyncProvider interface and reduce beatmap track dependence 2022-08-02 17:59:18 +09:00
Dean Herbert
2f60f91a0e Fix editor potentially using a track post-disposal
This changes the editor to track the current track as it is *loaded* by
`MusicController`, rather than haphazardly following the current global
`WorkingBeatmap` (with a potentially unloaded track) or relying on local
immediate-load behaviour (as implemented in `ResourcesSection`).
2022-08-01 16:53:49 +09:00
Micahel Kelly
dd315ff97b Adds hard-delete for a beatmap diff 2022-07-27 21:21:16 +10:00
Micahel Kelly
e6fad601cc Adds delete difficulty option to editor 2022-07-27 19:15:43 +10:00
Dean Herbert
f713253d1b Fix formatting inconsistencies in empty ctors 2022-07-22 14:00:29 +09:00
LukynkaCZE
ed94d7fce8 Fix requested changes 2022-07-22 02:46:17 +02:00
LukynkaCZE
5987acfbca Fixed code formatting 2022-07-19 22:59:25 +02:00
LukynkaCZE
a00da279b7 Beatmap Editor Save Toast 2022-07-19 21:38:23 +02:00
Dean Herbert
952d97c66e Update comment regarding LoadTrack safety 2022-07-13 19:02:22 +09:00
Joseph Madamba
834bb1f187 Fix editor playing object samples while paused after cancelling exit 2022-07-09 12:14:39 -07:00
Dean Herbert
98938821e5 Merge branch 'master' into beatmap-update-flow 2022-06-30 16:44:17 +09:00
Dean Herbert
0ba29b6fa6 Use currentScreen instead to make sure the screen we care about is loaded 2022-06-27 18:28:00 +09:00
Dean Herbert
5a7d339cc8 Centralise and harden editor-ready-for-use check
Not only does this combine the check into one location, but it also adds
a check on the global `WorkingBeatmap` being updated, which is the only
way I can see the following failure happening:

```csharp
05:19:07     osu.Game.Tests: osu.Game.Tests.Visual.Editing.TestSceneEditorBeatmapCreation.TestAddAudioTrack
05:19:07       Failed TestAddAudioTrack [161 ms]
05:19:07       Error Message:
05:19:07        TearDown : System.NullReferenceException : Object reference not set to an instance of an object.
05:19:07       Stack Trace:
05:19:07       --TearDown
05:19:07        at osu.Game.Database.ModelManager`1.<>c__DisplayClass7_0.<AddFile>b__0(TModel managed) in C:\BuildAgent\work\ecd860037212ac52\osu.Game\Database\ModelManager.cs:line 36
05:19:07        at osu.Game.Database.ModelManager`1.<>c__DisplayClass8_0.<performFileOperation>b__0(Realm realm) in C:\BuildAgent\work\ecd860037212ac52\osu.Game\Database\ModelManager.cs:line 49
05:19:07        at osu.Game.Database.RealmExtensions.Write(Realm realm, Action`1 function) in C:\BuildAgent\work\ecd860037212ac52\osu.Game\Database\RealmExtensions.cs:line 14
05:19:07        at osu.Game.Database.ModelManager`1.performFileOperation(TModel item, Action`1 operation) in C:\BuildAgent\work\ecd860037212ac52\osu.Game\Database\ModelManager.cs:line 46
05:19:07        at osu.Game.Database.ModelManager`1.AddFile(TModel item, Stream contents, String filename) in C:\BuildAgent\work\ecd860037212ac52\osu.Game\Database\ModelManager.cs:line 36
05:19:07        at osu.Game.Screens.Edit.Setup.ResourcesSection.ChangeAudioTrack(FileInfo source) in C:\BuildAgent\work\ecd860037212ac52\osu.Game\Screens\Edit\Setup\ResourcesSection.cs:line 115
05:19:07        at osu.Game.Tests.Visual.Editing.TestSceneEditorBeatmapCreation.<TestAddAudioTrack>b__13_0() in C:\BuildAgent\work\ecd860037212ac52\osu.Game.Tests\Visual\Editing\TestSceneEditorBeatmapCreation.cs:line 101
05:19:07        at osu.Framework.Testing.Drawables.Steps.AssertButton.checkAssert()
05:19:07        at osu.Framework.Testing.Drawables.Steps.StepButton.PerformStep(Boolean userTriggered)
05:19:07        at osu.Framework.Testing.TestScene.runNextStep(Action onCompletion, Action`1 onError, Func`2 stopCondition)
```
2022-06-27 16:22:01 +09:00
Dean Herbert
7692bac35a Simplify refetch (and ensure to invalidate after processing) 2022-06-24 21:02:38 +09:00
Dean Herbert
f71f6302fd Remove unnecessary null casts 2022-06-24 14:50:11 +09:00
Dean Herbert
c61e90d768 Change editor seek-while-playing modifier to be BPM agnostic 2022-06-21 13:07:50 +09:00
Dan Balasescu
f8830c6850 Automated #nullable processing 2022-06-17 16:37:17 +09:00
Dean Herbert
c27e5d1216 Fix editor still playing back sound when exiting with confirmation 2022-06-15 18:44:02 +09:00
Dean Herbert
713cff3403 Don't play editor exit sound when changing difficulties 2022-06-15 17:49:09 +09:00
Dean Herbert
fd4529aa7c Play editor exit sound if no confirmation buttons were shown during exit process 2022-06-15 17:37:54 +09:00
Jamie Taylor
5e3ccf7087
Don't play 'back' sample when exiting Editor 2022-06-15 15:41:28 +09:00
Dean Herbert
aeca138930 Fix ctrl-z in editor also seeking to start in addition to undo 2022-06-14 18:48:57 +09:00
Bartłomiej Dach
e511c1dfff
Merge branch 'master' into use-normalised-precise-scrolling 2022-05-27 16:55:13 +02:00
Dean Herbert
fb586fe0b2 Merge branch 'master' into editor-bottom-bar-new-design 2022-05-26 18:32:28 +09:00
Dean Herbert
8791e3b9ef Split BottomBar out of Editor 2022-05-25 23:54:59 +09:00
Dean Herbert
206f2ca208 Rename screen switcher control to be in line with naming expectations 2022-05-25 22:20:33 +09:00
Dean Herbert
0bcf8c846c Change editor colour scheme to aquamarine 2022-05-24 18:43:22 +09:00
Dean Herbert
648cee7106 Remove editor screen transitions for now 2022-05-24 18:43:22 +09:00
Susko3
88217e0c98 Adjust ScrollDelta usages to account for normalised IsPrecise values 2022-05-23 20:22:27 +02:00
Dean Herbert
007582afb9 Remove unused usings resulting from namespace move 2022-05-22 23:55:33 +09:00
Dean Herbert
eabf578282 Use interface to convey beat sync information 2022-05-22 22:44:54 +09:00
Bartłomiej Dach
ab5c736da1
Merge branch 'master' into editor-readability 2022-05-13 21:10:48 +02:00
Dean Herbert
c4871ebcf4 Add editor track traversal keys (Z-V) 2022-05-14 02:50:51 +09:00
Dean Herbert
f22ff4e087 Remove editor animation toggling (replaced by overlap markers) 2022-05-12 19:28:56 +09:00
Bartłomiej Dach
cbd1169495
Move cache declarations of ISamplePlaybackDisabler to interface 2022-05-08 10:38:58 +02:00
Bartłomiej Dach
9ae019eb39
Move ISamplePlaybackDisabler to more general namespace 2022-05-08 10:38:58 +02:00
Dean Herbert
832d37b2c2 Update screen transition events to use new event args 2022-04-22 00:52:44 +09:00
Joseph Madamba
5e5c8e78a6 Use existing web localisation for most hardcoded strings 2022-04-20 16:31:11 -07:00
Dean Herbert
043599081b Split out INotificationOverlay to allow for easier testing 2022-04-18 20:14:01 +09:00
Dean Herbert
e315313266 Split out IDialogOverlay to allow for easier testing 2022-04-18 18:36:26 +09:00
Bartłomiej Dach
f3aad77239
Remove unused local variable 2022-03-22 22:00:24 +01:00
Bartłomiej Dach
a38bafab91
Remove unused using directive 2022-03-22 22:00:05 +01:00
Dean Herbert
61ddf1e6cf Disallow exiting the editor without saving (unless explicitly confirming) 2022-03-22 15:42:56 +09:00
Dean Herbert
f95bd89166 Revert editor exit behaviour to exit without changes for now 2022-03-22 14:46:57 +09:00
Dean Herbert
f15b8781bb Move editor mode selector out of EditorMenuBar to allow for better reuse 2022-03-02 20:05:01 +09:00
Bartłomiej Dach
e45a2ae0fc
Restructure difficulty copy flow to adapt to latest changes 2022-02-14 22:02:37 +01:00
Bartłomiej Dach
6221447164
Append copy suffix on creating copy of difficulty 2022-02-14 20:19:12 +01:00
Bartłomiej Dach
a144d6f8d6
Fix beatmap skin properties not copying 2022-02-13 14:01:22 +01:00
Bartłomiej Dach
a2c2b2bbb3
Add flow for copying existing difficulty content 2022-02-13 14:01:20 +01:00
Salman Ahmed
6f0e32826c Standardise ordering/grouping of IRulesetInfo/RulesetInfos 2022-02-11 04:27:11 +03:00
Dean Herbert
ee1feae806
Remove unnecessary ruleset ordering
Co-authored-by: Salman Ahmed <frenzibyte@gmail.com>
2022-02-04 11:06:18 +09:00
Bartłomiej Dach
afc48d86df
Add failing test coverage for save after safeties addition 2022-02-02 21:57:10 +01:00
Bartłomiej Dach
4f1aac9345
Add safeties preventing creating multiple difficulties with same name 2022-02-02 21:57:09 +01:00
Bartłomiej Dach
0d51c015ad
Add basic test coverage for new difficulty creation 2022-02-02 21:55:34 +01:00
Bartłomiej Dach
dc96c4888b
Add support for creating new blank difficulties 2022-02-02 21:55:33 +01:00
Bartłomiej Dach
3386f038ba
Add new difficulty creation menu 2022-02-02 21:23:35 +01:00
Bartłomiej Dach
e2fcdc394b
Extract method for difficulty switch menu creation 2022-02-02 21:23:35 +01:00
Dean Herbert
b3856c9005 Fix editor crashing on custom rulesets due to ChangeHandler not being supported
As per https://github.com/ppy/osu/discussions/16668, even without proper
saving support some ruleset developers do want to work on the editor.
This brings things back into a workable state.
2022-01-28 14:03:31 +09:00
Dean Herbert
a5d422e82c Merge branch 'master' into ruleset-id-fixes 2022-01-27 17:07:18 +09:00
Dean Herbert
5288eedd31 Update all usages of RulesetID and Ruleset.ID to use Ruleset.OnlineID 2022-01-27 15:38:03 +09:00
Bartłomiej Dach
d760283665
Ensure edited beatmap is restored to a baseline state on exit 2022-01-26 21:15:49 +01:00
Salman Ahmed
f7f58b06a1 Fix beat divisor not saving in editor 2022-01-25 11:56:38 +03:00
Dean Herbert
51251e3204 Fix CI reported warnings 2022-01-12 22:39:00 +09:00
Dean Herbert
7509a9ff8f Update BeatmapModelManager.Save to work for editor scenarios 2022-01-12 17:49:11 +09:00
Dean Herbert
a3276758b8 Remove unnecessary re-query of beatmap set in editor menu construction 2022-01-12 17:00:16 +09:00
Dean Herbert
83cbee39de Mark cases where BeatmapSet is generally guaranteed to be non-null 2022-01-12 16:39:36 +09:00
Dean Herbert
1eed2436e6 Clean up unused resolved properties 2021-12-03 18:49:49 +09:00
Dean Herbert
e2ebcf7a26 Remove unnecessary manager parameter
Confused why I added this in the first place..
2021-11-25 18:36:03 +09:00
Dean Herbert
cc1b91e4bd Split out legacy model export logic into LegacyModelExporter classes 2021-11-25 16:41:12 +09:00
Dean Herbert
7599efac30 Update editor cases where repeat should not be handled 2021-11-18 13:13:36 +09:00
Bartłomiej Dach
2562412125
Propagate clock state from gameplay test back to editor 2021-11-13 22:11:00 +01:00
Bartłomiej Dach
d2ddc25ab3
Propagate clock state from editor to gameplay test 2021-11-13 22:10:59 +01:00
Bartłomiej Dach
5f2a789a6d
Ensure editor clock is stopped before testing gameplay 2021-11-13 14:01:00 +01:00
Bartłomiej Dach
eb8c5292d5
Ensure editor background is dimmed after return from gameplay test 2021-11-13 13:50:57 +01:00
Bartłomiej Dach
b47c0b63f4
Tweak loader transition when testing gameplay in editor 2021-11-13 13:39:18 +01:00
Bartłomiej Dach
a5ba3bd012
Move gameplay test pieces to own namespace 2021-11-13 13:39:17 +01:00
Dean Herbert
54ae307a3d Trigger test via button click when using keyboard shortcut 2021-11-12 14:42:33 +09:00
Dean Herbert
e891c0ce53 Add keyboard shortcut to start test mode in editor 2021-11-12 14:13:11 +09:00
Dean Herbert
321aa456a7 Adjust button size slightly 2021-11-12 14:04:34 +09:00
Bartłomiej Dach
59727ce836
Add minimal implementation of gameplay testing from editor 2021-11-11 20:54:35 +01:00
Bartłomiej Dach
32b5a736c8
Add preview gameplay button to bottom editor bar 2021-11-11 17:12:21 +01:00
Dean Herbert
ebe58cee11 Rename BeatmapInfo.StarDifficulty to StarRating to match underlying interface 2021-11-11 17:19:46 +09:00
Bartłomiej Dach
5e31e890ae
Extract class for clipboard contents for DI purposes 2021-11-10 12:36:23 +01:00
Bartłomiej Dach
042b05a250
Move clipboard action availability logic down to editor screens 2021-11-09 19:54:37 +01:00
Bartłomiej Dach
286754f6f7
Move clipboard operation implementation down to current screen 2021-11-09 19:54:37 +01:00
Dean Herbert
6944151486 Apply batch fixing of built-in types using var 2021-10-27 13:04:41 +09:00
Dean Herbert
09536cd733 Add logging of WorkingBeatmapCache.Invalidate calls 2021-10-14 14:05:33 +09:00
Dean Herbert
02689a1b60 Use actual BeatmapInfo rather than PlayableBeatmap.BeatmapInfo for editor writes 2021-10-13 14:50:12 +09:00
Jamie Taylor
4d91204faf
Pause Editor sample playback while popup dialog is shown 2021-09-29 20:46:41 +09:00
smoogipoo
f9d5abff8a Update with keybinding changes 2021-09-16 18:26:12 +09:00
Dean Herbert
fa693bb8a8 Move MusicController adjustment set to inside OsuScreen itself (and result nullable) 2021-09-16 16:08:09 +09:00
AbstractQbit
318f0941ca Move all the "inherit previous AllowTrackAdjustments" logic into OsuScreen 2021-09-15 21:25:39 +03:00
Dean Herbert
931e873a7e
Merge branch 'master' into inheritable-allow-track-adjust 2021-09-15 22:26:13 +09:00
AbstractQbit
b9193aae6d Make IOsuScreen.AllowTrackAdjustments nullable
Allows for inheriting value from the previous screen if undefined
2021-09-14 17:37:57 +03:00
Dean Herbert
f8bdca542d Make restoring state a public call on Editor 2021-09-14 23:36:17 +09:00
Bartłomiej Dach
35ee889e5b
Restore clipboard content after difficulty switch 2021-09-13 21:04:27 +02:00
Bartłomiej Dach
3fc72271f1
Restore editor clock time after difficulty switch 2021-09-13 20:59:31 +02:00
Bartłomiej Dach
22fa9a303e
Expose test helper for switching between difficulties 2021-09-12 13:55:48 +02:00
Bartłomiej Dach
2d59008f52
Move screen management logic to EditorLoader 2021-09-06 21:30:50 +02:00
Bartłomiej Dach
bd7d6dd35d
Rename method 2021-09-06 21:27:17 +02:00
Bartłomiej Dach
d6a47fd99c
Sort difficulties by ruleset and star rating in menu 2021-09-05 21:48:11 +02:00
Bartłomiej Dach
382269b362
Test staying on same difficulty due to unsaved changes 2021-09-05 21:48:10 +02:00
Bartłomiej Dach
a9403b65b3
Eliminate dependency on OsuGame 2021-09-05 21:48:10 +02:00
Bartłomiej Dach
c397cc2027
Restructure proof of concept 2021-09-05 21:48:09 +02:00
Bartłomiej Dach
fe2520c599
Add intermediary screen to avoid going back to menus 2021-09-05 21:48:09 +02:00
Bartłomiej Dach
7befd030df
Minimal working example of switching difficulties 2021-09-05 21:48:09 +02:00
Bartłomiej Dach
90f0b6874f
Highlight current difficulty in switcher 2021-09-05 21:48:08 +02:00
Bartłomiej Dach
e8fb5d2e66
Add non-functional difficulty switcher to menu 2021-09-05 21:48:08 +02:00
Salman Ahmed
3ad0b529fb Make EditorScreen inherit from VisibilityContainer rather than unsafe transforms 2021-08-25 17:14:52 +03:00
Bartłomiej Dach
6108451449
Retrieve separated skin instance from working beatmap for editing 2021-08-15 21:18:09 +02:00
Henry Lin
89e8296eb1 Reset all types of adjustments in MusicController; Rename AllowRateAdjustments to AllowTrackAdjustments 2021-07-29 15:39:26 +08:00
ekrctb
1bac471b49 Adapt to PlatformAction type change 2021-07-21 16:12:53 +09:00
Dean Herbert
3c028ce05c Add IDeepCloneable interface and update existing CreateCopy methods to use it 2021-07-19 12:54:17 +09:00
Dean Herbert
dbfaaecd9c Reword comment to not mention tests driectly 2021-05-20 15:39:29 +09:00
Dean Herbert
a639132825 Avoid doing any re-fetch on beatmap from test scenes 2021-05-19 17:58:28 +09:00
Dean Herbert
44e22b31a9 Refactor editor exit sequence to avoid any scenario where a dialog could go stray 2021-05-19 16:51:54 +09:00
Dean Herbert
b36c991ba1 Fix single case of incorrect usage 2021-05-14 12:04:38 +09:00
Salman Ahmed
fc2a527e9d Revert "Guard against potentially null track if ever"
This reverts commit b1134c3857.
2021-05-07 09:57:08 +03:00
Salman Ahmed
7c4e54a1d4 Unrevert null-colaescing/conditionals removal 2021-05-07 09:54:14 +03:00
Salman Ahmed
b1134c3857 Guard against potentially null track if ever 2021-05-07 08:30:50 +03:00
Salman Ahmed
37f44d2e37 Revert wrong not-null track changes
This reverts commit f9d99a9882.
This reverts commit 71547bece0.
2021-05-07 08:28:44 +03:00
Salman Ahmed
71547bece0 Remove any null-coalescing/conditionals in WorkingBeatmap.Track usages 2021-05-07 07:46:23 +03:00
Salman Ahmed
539643c72b Set loadable beatmap track to clock immediately in BDL
This reverts commit 84da247002.

Use loadable beatmap track for clock directly in BDL
2021-05-07 07:21:56 +03:00
Salman Ahmed
84da247002 Fix editor clock using the wrong beatmap track on creation 2021-05-07 05:32:55 +03:00
Dean Herbert
9d8f0c854d Setup configuration item for editor hit animations 2021-04-21 18:05:40 +09:00
Dean Herbert
c6c91cd9a5 Refactor WaveformOpacityMenuItem to not receive whole config 2021-04-21 18:05:26 +09:00
Dean Herbert
7654df94f6
Merge pull request #12395 from frenzibyte/fix-cinema-ignore-settings
Fix beatmap background displayed if storyboard is hidden on "Cinema" mod
2021-04-14 14:31:03 +09:00
Salman Ahmed
36510309d1 Merge EnableUserDim and IgnoreUserSettings to one bindable 2021-04-13 10:58:56 +03:00
Dean Herbert
14bd5bdc77 Merge branch 'master' into verify-tab 2021-04-12 15:14:37 +09:00
Bartłomiej Dach
4df7ff21c7 Fix editor arrow seek snapping not updating after control point changes
The editor clock, which is responsible for performing the seek, was not
aware of changes in control points due to reading from the wrong
beatmap. `loadableBeatmap` is not actually changed by any of the editor
components; `playableBeatmap` and `editorBeatmap` are.

For now this is changed to use `playableBeatmap`. A better follow-up
would be to use `editorBeatmap`, but it would probably be best to move
the beat snap bindable into `EditorBeatmap` first.
2021-04-03 14:02:46 +02:00
Dean Herbert
690debe507
Merge pull request #12030 from LeNitrous/editor-platform-clipboard-copy 2021-03-29 19:31:16 +09:00
Naxess
d58ef5310b Add verify tab
Currently empty, but works.
2021-03-28 17:36:22 +02:00
Nathan Alo
c96321206a fix appveyor complaints 2021-03-26 16:17:24 +08:00
Nathan Alo
2bea69456e remove implementations 2021-03-26 15:24:33 +08:00
Nathan Alo
51e0304c54 properly format strings per ruleset 2021-03-17 18:31:09 +08:00
Nathan Alo
133ff085a5 refactor code 2021-03-17 18:06:40 +08:00
Nathan Alo
8046b5a818 set text to platform clipboard on copy 2021-03-17 17:35:49 +08:00
Dean Herbert
3b6a1180b6 Remove non-accessed field 2021-03-17 17:02:11 +09:00
Dean Herbert
c7740d1181 Fix opening the editor occasionally causing a hard crash due to incorrect threading logic
Setting one of the global screen `Bindable`s (in this case, `Beatmap`)
is not valid from anywhere but the update thread. This changes the order
in which things happen during the editor startup process to ensure
correctness.

Closes #11968.
2021-03-17 15:52:25 +09:00
Dan Balasescu
c70dd2edfc
Merge pull request #11569 from peppy/fix-editor-new-beatmap-crash
Fix a potential crash when exiting the editor before a new beatmap is added to the database
2021-02-01 21:01:51 +09:00