BTP300B A2 Team 3 Bugs Report
Part 2
Accomplishments
Week 1: Nov 10 - 16
- Sunday - Alek: Implemented CField.
Week 2: Nov 17 - 23
- Saturday - Alek:
- Updated the build scripts to include CDialog, CLabel, CLine, and CButton.
- Added pure virtual function edit() to CField to be used by CDialog.
- Made minor modifications to CFrame to better handle the new classes.
- Saturday - Alek: Implemented the CDialog class.
Week 3: Nov 24 - 30
- Saturday - Justin, Anson, Alek:
- CButton implemented by the team.
- Main application implemented by the team.
- Saturday - Justin: Complete CLabel implemented.
- Saturday - Anson: Complete CLine implemented.
- Saturday - Alek: The assignment is now completed and will be submitted.
Bugs/Problems
Week 1: Nov 10 - 16
- Monday - Alek: CField::display() should check to see if the data field is NULL.
Week 4: Nov 24 - 30
- Saturday - Justin: CLabel constructor initialized its CField class incorrectly. Passed NULL to CField str and used set to modify it.
- Saturday - Justin: CLabel::allocateAndCopy needs to use data()=, not data = to dynamically allocate memory for str.
Part 1
Accomplishments
Week 1: Oct 6 - 12
- Sunday - Alek: Initial creation of the various files required for getting started on the project: iframe.h, cfg.h, cframe.h/cpp, etc.
- Monday - Alek: Basic functionality of the following methods were implemented (approximately 60% complete). A simplified version of a2test.cpp is used to test these methods:
- Constructors and destructors
- setLine()
- capture() and restore()
- display()
- edit()
- draw()
- Tuesday: Justin- Had team meeting to discuss how CFrame worked with its parents, wrote functions for retrieving and setting rows, cols, height, width
- Tuesday: Anson- Team meeting on assignment 2 for my parts, absrow(), abscol()
Week 2: Oct 13 - 19
- Sunday - Alek: The project has been set up on SVN including the branches, README, ChangeLog, TestLog, and the build scripts for each of Microsoft, Borland, and Linux. Also used a2test to test the basic functionality that has been developed so far.
Week 3: Oct 20 - 26
- Tuesday - Anson: The implementation of the following functions have now been completed:
- absrow(), abscol(), goMiddle(), bordered(), frame(), hide()
- Thursday - Alek: Made the following changes:
- Modified the constructor:
- Accounted for negative width or height
- Accounted for the border being invalid
- Modified capture():
- Release the capture buffer before capturing. This is to account for the case where capture() is called a second time because of a redraw.
- Modified display():
- Accounted for a bordered/non-bordered frame
- Adjusted width to restrict it to the boundaries of the parent frame
- Modified edit():
- Accounted for a bordered/non-bordered frame
- Adjusted width to restrict it to the boundaries of the parent frame
- Modified draw():
- Accounted for a bordered/non-bordered frame
- Modified the constructor:
- Thursday - Alek: Merged Anson's changes from his branch to mine.
Week 4: Oct 27 - Nov 2
- Monday - Alek: The implementation of the following functions have now been completed:
- constructors and destructors, setLine(), capture() and restore(), display(), edit(), draw()
- Wednesday - Alek:
- Merged Justin's changes from his branch to mine.
- Finished commenting the code.
- At this point, the code in my branch contains the code from all members of the team.
- Performed testing to ensure the integrated code works properly. The results are documented in TestLog in my branch.
- Saturday - Alek, Justin:
- Added the main application for CFrame named a2app.cpp
- Added changes to setter logic
- Saturday - Alek:
- Merged Justin's changes from his branch to mine.
- Merged my branch to the trunk. The trunk now contains the latest code from all team members.
- The assignment is now completed and will be submitted.
Bugs/Problems
Week 1: Oct 6 - 12
- Sunday - Alek: a2test includes CDialog, etc. which will not be implemented until Part 2. Therefore, we cannot even compile it for Part 1 of this assignment. For now, I have deleted the parts that are not required for Part 1 so that it can be compiled, built, and used for Part 1 of the assignment.
Week 4: Oct 27 - Nov 2
- Sunday - Alek:
- Fixed a bug in the constructor. If row or col is negative, it will be set to 0.
- Fixed a bug in the constructor. Row, col, width, and height should be within screen boundaries.
- The capture(), restore(), and draw() functions were modified to use absrow() and abscol() instead of row and col respectively.
- Monday - Alek:
- Fixed a bug in capture(). It should do the following: restore if there is anything in the capture buffer, release if there is anything in the capture buffer, then do the actual capturing.
- Fixed a bug in draw(). The function should not draw outside of its parent boundaries.
- Fixed a bug in display() and edit(). These functions should not display outside of their parent boundaries.
- Wednesday - Alek:
- Fixed a bug in capture() and restore(). These functions should not capture/restore outside of their parent boundaries or the screen as we never draw past these boundaries.