-
Notifications
You must be signed in to change notification settings - Fork 26
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[DRAFT] Diz 3.0 rewrite - early pull request for comments / review #48
base: master
Are you sure you want to change the base?
Conversation
…ents and labels. ready for integration with main form after a little more cleanup
- a bit too slow though, have to profile
- this is a giant mess right now, heavy WIP
- WORKS! messy as hell
- definitely breaking some stuff, this needs lots of testing
- starting to get there now
- DizApplicationContext - controller/view interfaces - initial work on "current selection" - refactor INotifyPropertyChanged to be an interface (avoids needing to derive a concrete class) - remove DizDocument (doesn't make a ton of sense in the context of multi-project editing)
- fix double buffering called @ wrong time - add better table navigation functions
- remove BindingListView - remove creation of RomDataGridRow() until it gets to the form control [much faster loading] - databinding is broken for multiple forms open, but that's next
- (needs 2 other csprojs to work) - enabled by default, need to disable
1. Don't double buffer if we're in remote desktop 2. Add SendMessage() so we can disable drawing for datagrid loads
- this will be so we can unit test view models more easily
Will this be compatible cross-platform? |
I'm hoping it will. Everything already is except the GUI, and there's another branch off this branch that is attempting to replace the winforms GUI with AvaloniaUI, which is cross platform. |
Okay, thank you! |
Update: Tried on |
yea, unfortunately, it's still referencing winforms, the avalonia-ui-test2 branch is BOTH avalonia and winforms together, with the intention of slowly replacing one with the other. also there's little avalonia UI actually written (I do have the main grid in a simplified form). the big thing going on first is to get the UI using ReactiveUI under the hood. If you really did want to try it under linux, I -think- in that fork I had put all the winforms stuff in one project. you could modify the solution to not build that, and start avalonia. all this is super-untested and very early, I'd have to look around and make sure it compiles/etc at the moment. I have though run it with the minimal avaloniaUI on linux. it might have been with mono, I forget (stock .net -should- work OK here now on non-windows) |
the core of the project though IS separated out so it works without a gui (there's a powershell command-line-only project included that demonstrates using the Diz library functionality from non-gui). that means it can easily work inside another GUI or even in webassembly like on a webpage, or as a backend with a react-ui javascript frontend/etc. sorry, I mostly ran out of time to keep working on this for the forseeable future. if you were interested in digging in, I'm down to help, a LOT of the backend datamodel overhaul has been completed in this branch already, the UI is just not caught up to it great. |
- fixes IsoFrieze#62 - both 'Dword ptr' and 'Graphics' were using the character 'G' for their compressed encoding in the XML, must be unique - I have... no idea why I didn't just use a Dictionary here in the first place. switched to that to enforce unique keys. - change char for 32bit dword point from 'G' (conflict) to 'H' (unique) (cherry picked from commit f1ce061)
- erratic builds, gotta figure out what's wrong it
- included automatically by every file in the solution - this builtin include replaces our custom CommonSettings.targets file, more elegant
- for backporting to 2.0 branch
- moving stuff around so easier to merge / identical with 2.0 branch - backporting lots of this stuff in small pieces since doing all of it at once in a huge pain
- matches Diz2.0 branch
hi guys, im really interested into making this work on linux |
Diz 3.0
WARNING: This is super-early super-rough alpha-level code. Don't use yet unless you're ready to jump in with a C# debugger and hack the unit tests :) Do not even attempt to open prior projects yet. I am mostly opening this PR to start making my own release checklists. The code is now starting to cool down enough that it could be worth checking out now. The UI needs the most polish work, the underlying data model is starting to be pretty solid.
This is basically another major rewrite of Diz, which will be version 3.0. Major new features include:
Data Model
Future stuff now easier to implement
Checklist before putting this in:
Closes #46