RPL Viewer architecture -- Suggested new C++ class name changes.
Phil, 7-30-2017, Revised: 7-31-2017.
Last week, the full implementations of RplBlockDlg and RplFunctionDlg (QMainWindows) were moved to new QFrame-based classes. Those new classes' names included "Frame" (...DlgFrame). That's an implementation-centric name, and "Panel" would be a more natural (and typical) name for this sort of GUI class.
A thing that I especially don't like about the original names I used (with "Frame"), is that "RplFrame" is a very different, and major RPL GUI class. It would be best to not confuse these new panel classes with RplFrame.
HOW ABOUT THIS? ...
Phil's original new class names |
Suggested change | Base Classes | Used In -- RplBaseDlg subclasses: |
RplDlgFrameBase | RplObjPanel | --- | RplViewerDlg |
RplBlockDlgFrame | RplBlockPanel | QFrame, RplObjPanel | RplViewerDlg* and RplBlockDlg |
RplFunctionDlgFrame | RplFunctionPanel | QFrame, RplObjPanel | RplViewerDlg* and RplFunctionDlg |
*Ideally, the RplViewerDlg would refer to the two concrete "panel" classes only during instantiation of those objects. From that point on, the RplViewerDlg could manage them as just base class (RplObjPanel) instances, making use of virtual methods defined in the two concrete classes.
Note also that RplDlgFrameBase / RplObjPanel started out as just an "abstract interface" class (no data members, and only pure virtual functions). It might be good to keep it that way, unless there is actual benefit to adding some implementation to that class. (This isn't really a big deal. But note that I didn't add a ".cpp" file for this class to the build, in my changes of a week ago).
UNIX commands to apply to QtRpl library to make these class name changes (including to *.pro and *.vcxproj files). This was tested with a Git "MINGW64" terminal window.
sed -i -b 's|RplDlgFrameBase|RplObjPanel|g'
Rpl* sed -i -b 's|RplBlockDlgFrame|RplBlockPanel|g'
Rpl* sed -i -b 's|RplFunctionDlgFrame|RplFunctionPanel|g'
Rpl* mv RplDlgFrameBase.hpp
RplObjPanel.hpp mv RplBlockDlgFrame.hpp
RplBlockPanel.hpp mv RplFunctionDlgFrame.hpp
RplFunctionPanel.hpp |
---