Skip to content

Post Port: Code review, refactor #41

@hexabits

Description

@hexabits

While the actual NifSkope codebase didn't require too many changes, Qt underwent a pretty drastic overhaul between 4.8 and 5.2. They deprecate code starting in one version, and then make it obsolete in a later version. This all happens silently unfortunately, and you have to actually study which classes and methods have been deprecated or made obsolete.

Also, this normally shouldn't happen, but code can change behavior between versions. For example, file filters in dialog windows stopped working. I've already fixed it, but more strangely, I can't find any explanation as to why *.nif used to work, but now I need NIF (*.nif). Another example, double-clicking/dragging NIFs to open up the program stopped working because of some changes to QUrl (also fixed).

See:

Obsolete Classes
Qt Coding Style
Qt Coding Conventions

Task List

  • Remove Qt4-specific code
  • Cross-reference deprecated/obsolete code between 4.8 and 5.2 with the NifSkope codebase. Replace obsolete code, optionally replace deprecated code, or leave a TODO.
  • Where there are new classes/methods available to improve or simplify the codebase, do so. This was a bit too vague to be a checkable task, and is an ongoing goal.
  • Use Q_UNUSED to clean up warnings.
  • Clean up whitespace.
  • Consistent code style.
  • Invert conditions to reduce nesting.
  • Remove unnecessary "if/else return" nesting.
  • Move from QRegExp to QRegularExpression

Deferred Tasks

  • Clean up comments (formatting, spelling, grammar). NEEDS FUTURE TICKET

And also, while not a quantifiable task for the task list, the program should be tested rigorously in order to find any areas that could have broken during the port, like the aforementioned QUrl / file issues.

Tracking

Refactor Progress #32

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions