Permalink
Browse files

fixed issues on non-retina devices, added selected states for headers

  • Loading branch information...
1 parent b84d72e commit a4e46127f9bc7235e25963d7f9428cd20266c541 @dimitribouniol dimitribouniol committed Oct 18, 2011
Showing with 73 additions and 124 deletions.
  1. +5 −0 Classes/MDSpreadView.h
  2. +42 −98 Classes/MDSpreadView.m
  3. +2 −2 Classes/MDSpreadViewCell.m
  4. +6 −6 Classes/MDSpreadViewCellColumnHeaderBackground.m
  5. +12 −12 Classes/MDSpreadViewCellCornerHeaderBackground.m
  6. +6 −6 Classes/MDSpreadViewCellRowHeaderBackground.m
  7. BIN Images/MDSpreadViewCell.png
  8. BIN Images/MDSpreadViewCell@2x.png
  9. BIN Images/MDSpreadViewCellSelected.png
  10. BIN Images/MDSpreadViewCellSelected@2x.png
  11. BIN Images/MDSpreadViewColumnHeaderLeft.png
  12. BIN Images/MDSpreadViewColumnHeaderLeft@2x.png
  13. BIN Images/MDSpreadViewColumnHeaderLeftSelected.png
  14. BIN Images/MDSpreadViewColumnHeaderLeftSelected@2x.png
  15. BIN Images/MDSpreadViewColumnHeaderRight.png
  16. BIN Images/MDSpreadViewColumnHeaderRight@2x.png
  17. BIN Images/MDSpreadViewColumnHeaderRightSelected.png
  18. BIN Images/MDSpreadViewColumnHeaderRightSelected@2x.png
  19. BIN Images/MDSpreadViewCornerBottomLeft.png
  20. BIN Images/MDSpreadViewCornerBottomLeft@2x.png
  21. BIN Images/MDSpreadViewCornerBottomLeftSelected.png
  22. BIN Images/MDSpreadViewCornerBottomLeftSelected@2x.png
  23. BIN Images/MDSpreadViewCornerBottomRight.png
  24. BIN Images/MDSpreadViewCornerBottomRight@2x.png
  25. BIN Images/MDSpreadViewCornerBottomRightSelected.png
  26. BIN Images/MDSpreadViewCornerBottomRightSelected@2x.png
  27. BIN Images/MDSpreadViewCornerTopLeft.png
  28. BIN Images/MDSpreadViewCornerTopLeft@2x.png
  29. BIN Images/MDSpreadViewCornerTopLeftSelected.png
  30. BIN Images/MDSpreadViewCornerTopLeftSelected@2x.png
  31. BIN Images/MDSpreadViewCornerTopRight.png
  32. BIN Images/MDSpreadViewCornerTopRight@2x.png
  33. BIN Images/MDSpreadViewCornerTopRightSelected.png
  34. BIN Images/MDSpreadViewCornerTopRightSelected@2x.png
  35. BIN Images/MDSpreadViewRowHeaderBottom.png
  36. BIN Images/MDSpreadViewRowHeaderBottom@2x.png
  37. BIN Images/MDSpreadViewRowHeaderBottomSelected.png
  38. BIN Images/MDSpreadViewRowHeaderBottomSelected@2x.png
  39. BIN Images/MDSpreadViewRowHeaderTop.png
  40. BIN Images/MDSpreadViewRowHeaderTop@2x.png
  41. BIN Images/MDSpreadViewRowHeaderTopSelected.png
  42. BIN Images/MDSpreadViewRowHeaderTopSelected@2x.png
View
@@ -71,6 +71,11 @@
NSUInteger selectedRow;
NSUInteger selectedSection;
+
+ UIView *anchorCell;
+ UIView *anchorRowHeaderCell;
+ UIView *anchorColumnHeaderCell;
+ UIView *anchorCornerHeaderCell;
}
@property (nonatomic, assign) IBOutlet id <MDSpreadViewDataSource> dataSource;
View
@@ -72,6 +72,26 @@ - (void)_performInit
selectedRow = NSNotFound;
selectedSection = NSNotFound;
+
+ anchorCell = [[UIView alloc] init];
+ anchorCell.hidden = YES;
+ [self addSubview:anchorCell];
+ [anchorCell release];
+
+ anchorRowHeaderCell = [[UIView alloc] init];
+ anchorRowHeaderCell.hidden = YES;
+ [self addSubview:anchorRowHeaderCell];
+ [anchorRowHeaderCell release];
+
+ anchorColumnHeaderCell = [[UIView alloc] init];
+ anchorColumnHeaderCell.hidden = YES;
+ [self addSubview:anchorColumnHeaderCell];
+ [anchorColumnHeaderCell release];
+
+ anchorCornerHeaderCell = [[UIView alloc] init];
+ anchorCornerHeaderCell.hidden = YES;
+ [self addSubview:anchorCornerHeaderCell];
+ [anchorCornerHeaderCell release];
}
- (id<MDSpreadViewDelegate>)delegate
@@ -118,6 +138,9 @@ - (void)reloadData
[dequeuedCells addObjectsFromArray:[descriptor allCells]];
[descriptor clearAllCells];
+ calculatedSize.width -= 1;
+ calculatedSize.height -= 1;
+
self.contentSize = calculatedSize;
// if (selectedSection != NSNotFound || selectedRow!= NSNotFound) {
@@ -135,16 +158,12 @@ - (void)layoutSubviews
[super layoutSubviews];
CGPoint offset = self.contentOffset;
-// CGSize contentSize = self.contentSize;
CGSize boundsSize = self.bounds.size;
NSUInteger numberOfColumnSections = [descriptor columnSectionCount];
NSUInteger numberOfRowSections = [descriptor rowSectionCount];
CGPoint cellOrigin = CGPointZero;
-
-// MDSpreadViewCell *recentHeader = nil;
-// MDSpreadViewColumnDescriptor *recentColumnHeader = nil;
CGRect cellFrame;
CGFloat headerWidth = self.sectionColumnHeaderWidth;
@@ -167,6 +186,16 @@ - (void)layoutSubviews
} else {
for (int rowSection = 0; rowSection < numberOfRowSections; rowSection++) {
NSUInteger numberOfRows = [descriptor rowCountForSection:rowSection];
+ cellFrame = CGRectZero;
+
+ if (cellOrigin.x >= offset.x) {
+ cellFrame.origin.x = cellOrigin.x;
+ } else if (cellOrigin.x + columnWidth * numberOfColumns < offset.x) {
+ cellFrame.origin.x = cellOrigin.x + columnWidth * numberOfColumns;
+ } else {
+ cellFrame.origin.x = offset.x;
+ }
+
if (cellOrigin.y + headerHeight + cellHeight * numberOfRows < offset.y || cellOrigin.y >= offset.y+boundsSize.height) {
MDSpreadViewCell *cell = [descriptor cellForHeaderInRowSection:rowSection forColumnSection:columnSection];
[cell removeFromSuperview];
@@ -181,18 +210,10 @@ - (void)layoutSubviews
}
if ([cell superview] != self) {
- [self addSubview:cell];
+ [self insertSubview:cell aboveSubview:anchorCornerHeaderCell];
}
- cellFrame = CGRectMake(0, 0, headerWidth, headerHeight);
-
- if (cellOrigin.x >= offset.x) {
- cellFrame.origin.x = cellOrigin.x;
- } else if (cellOrigin.x + columnWidth * numberOfColumns < offset.x) {
- cellFrame.origin.x = cellOrigin.x + columnWidth * numberOfColumns;
- } else {
- cellFrame.origin.x = offset.x;
- }
+ cellFrame.size = CGSizeMake(headerWidth, headerHeight);
if (cellOrigin.y >= offset.y) {
cellFrame.origin.y = cellOrigin.y;
@@ -206,6 +227,7 @@ - (void)layoutSubviews
}
cellOrigin.y += headerHeight;
+ cellFrame.size = CGSizeMake(headerWidth, rowHeight);
for (int row = 0; row < numberOfRows; row++) {
NSIndexPath *rowIndexPath = [NSIndexPath indexPathForRow:row inSection:rowSection];
@@ -223,18 +245,10 @@ - (void)layoutSubviews
}
if ([cell superview] != self) {
- [self insertSubview:cell atIndex:0];
+ [self insertSubview:cell aboveSubview:anchorColumnHeaderCell];
}
- cellFrame = CGRectMake(0, cellOrigin.y, headerWidth, rowHeight);
-
- if (cellOrigin.x >= offset.x) {
- cellFrame.origin.x = cellOrigin.x;
- } else if (cellOrigin.x + columnWidth * numberOfColumns < offset.x) {
- cellFrame.origin.x = cellOrigin.x + columnWidth * numberOfColumns;
- } else {
- cellFrame.origin.x = offset.x;
- }
+ cellFrame.origin.y = cellOrigin.y;
[cell setFrame:cellFrame];
}
@@ -272,7 +286,7 @@ - (void)layoutSubviews
}
if ([cell superview] != self) {
- [self insertSubview:cell atIndex:0];
+ [self insertSubview:cell aboveSubview:anchorRowHeaderCell];
}
cellFrame = CGRectMake(cellOrigin.x, 0, columnWidth, headerHeight);
@@ -289,6 +303,7 @@ - (void)layoutSubviews
}
cellOrigin.y += headerHeight;
+ cellFrame = CGRectMake(cellOrigin.x, cellOrigin.y, columnWidth, rowHeight);
for (int row = 0; row < numberOfRows; row++) {
NSIndexPath *rowIndexPath = [NSIndexPath indexPathForRow:row inSection:rowSection];
@@ -306,10 +321,10 @@ - (void)layoutSubviews
}
if ([cell superview] != self) {
- [self insertSubview:cell atIndex:0];
+ [self insertSubview:cell aboveSubview:anchorCell];
}
- cellFrame = CGRectMake(cellOrigin.x, cellOrigin.y, columnWidth, rowHeight);
+ cellFrame.origin.y = cellOrigin.y;
[cell setFrame:cellFrame];
}
@@ -320,46 +335,7 @@ - (void)layoutSubviews
cellOrigin.x += cellWidth;
}
-
-// cellOrigin += headerHeight;
-//
-// for (int row = 0; row < numberOfRows; row++) {
-// if (cellOrigin + rowHeight < offset || cellOrigin >= offset+clipHeight) {
-// //NSLog(@"%d:%d cell: %@", section, row, [self cellForRow:row inSection:section]);
-// [self setCell:nil forRow:row inSection:section];
-// } else {
-// MDTableViewCell *cell = [self cellForRow:row inSection:section];
-// //NSLog(@" %d:%d cell: %@", section, row, cell);
-// if (!cell) {
-// cell = [self tableView:self cellForRow:row inSection:section];
-// [self setCell:cell forRow:row inSection:section];
-// }
-//
-// if ([cell superview] != self) {
-// [self addSubview:cell positioned:NSWindowBelow relativeTo:nil];
-// }
-//
-// [cell setHidden:NO];
-// cell.selected = (section == selectedSection && row == selectedRow);
-// cell.alternatedRow = row % 2;
-//
-// cellFrame = NSMakeRect(0, actualHeight-cellOrigin-rowHeight, cellWidth, rowHeight);
-//
-// NSRect cellFrameAdjustments = cell.frameAdjustments;
-//
-// cellFrame.origin.x += cellFrameAdjustments.origin.x;
-// cellFrame.origin.y += cellFrameAdjustments.origin.y;
-// cellFrame.size.width += cellFrameAdjustments.size.width;
-// cellFrame.size.height += cellFrameAdjustments.size.height;
-//
-// [cell setFrame:cellFrame];
-// [cell setNeedsDisplay:YES];
-// }
-// cellOrigin += rowHeight;
-// }
}
-
-// NSLog(@"%d", self.subviews.count);
}
- (MDSpreadViewCell *)dequeueReusableCellWithIdentifier:(NSString *)identifier
@@ -380,38 +356,6 @@ - (MDSpreadViewCell *)dequeueReusableCellWithIdentifier:(NSString *)identifier
#pragma mark - Fetchers
-//- (NSUInteger)tableView:(MDSectionedTableView *)tableView numberOfRowsInSection:(NSUInteger)section
-//{
-// NSInteger returnValue = 0;
-//
-// if (dataSource && [dataSource respondsToSelector:@selector(tableView:numberOfRowsInSection:)])
-// returnValue = [dataSource tableView:tableView numberOfRowsInSection:section];
-//
-// return returnValue;
-//}
-//
-//- (MDTableViewCell *)tableView:(MDSectionedTableView *)tableView cellForRow:(NSUInteger)row inSection:(NSUInteger)section
-//{
-// MDTableViewCell *returnValue = nil;
-//
-// if (dataSource && [dataSource respondsToSelector:@selector(tableView:cellForRow:inSection:)])
-// returnValue = [dataSource tableView:tableView cellForRow:row inSection:section];
-//
-// return returnValue;
-//}
-//
-//- (MDTableViewCell *)tableView:(MDSectionedTableView *)tableView cellForHeaderOfSection:(NSUInteger)section
-//{
-// MDTableViewCell *returnValue = nil;
-//
-// if (dataSource && [dataSource respondsToSelector:@selector(tableView:cellForHeaderOfSection:)])
-// returnValue = [dataSource tableView:tableView cellForHeaderOfSection:section];
-//
-// return returnValue;
-//}
-//
-
-
- (CGFloat)_widthForColumnHeaderInSection:(NSInteger)columnSection
{
NSInteger returnValue = self.sectionColumnHeaderWidth;
@@ -34,13 +34,13 @@ - (id)initWithStyle:(MDSpreadViewCellStyle)aStyle reuseIdentifier:(NSString *)aR
UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"MDSpreadViewCell.png"]];
imageView.contentMode = UIViewContentModeScaleToFill;
- imageView.contentStretch = CGRectMake(1./imageView.bounds.size.width, 1./imageView.bounds.size.height, 1./imageView.bounds.size.width, 1./imageView.bounds.size.height);
+ imageView.contentStretch = CGRectMake(2./imageView.frame.size.width, 2./imageView.frame.size.height, 1./imageView.frame.size.width, 1./imageView.frame.size.height);
self.backgroundView = imageView;
[imageView release];
imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"MDSpreadViewCellSelected.png"]];
imageView.contentMode = UIViewContentModeScaleToFill;
- imageView.contentStretch = CGRectMake(1./imageView.bounds.size.width, 1./imageView.bounds.size.height, 1./imageView.bounds.size.width, 1./imageView.bounds.size.height);
+ imageView.contentStretch = CGRectMake(2./imageView.frame.size.width, 2./imageView.frame.size.height, 1./imageView.frame.size.width, 1./imageView.frame.size.height);
self.highlightedBackgroundView = imageView;
[imageView release];
@@ -12,17 +12,17 @@ @implementation MDSpreadViewCellColumnHeaderBackground
- (void)prepareBackground
{
- UIImage *left = [UIImage imageNamed:@"MDSpreadViewColumnHeaderLeft.png"];
- backgroundLeft = [[UIImageView alloc] initWithImage:left highlightedImage:left];
+ backgroundLeft = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"MDSpreadViewColumnHeaderLeft.png"]
+ highlightedImage:[UIImage imageNamed:@"MDSpreadViewColumnHeaderLeftSelected.png"]];
backgroundLeft.contentMode = UIViewContentModeScaleToFill;
- backgroundLeft.contentStretch = CGRectMake(2./backgroundLeft.bounds.size.width, 1./backgroundLeft.bounds.size.height, 1./backgroundLeft.bounds.size.width, 1./backgroundLeft.bounds.size.height);
+ backgroundLeft.contentStretch = CGRectMake(3./backgroundLeft.bounds.size.width, 2./backgroundLeft.bounds.size.height, 1./backgroundLeft.bounds.size.width, 1./backgroundLeft.bounds.size.height);
[self addSubview:backgroundLeft];
[backgroundLeft release];
- UIImage *right = [UIImage imageNamed:@"MDSpreadViewColumnHeaderRight.png"];
- backgroundRight = [[UIImageView alloc] initWithImage:right highlightedImage:right];
+ backgroundRight = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"MDSpreadViewColumnHeaderRight.png"]
+ highlightedImage:[UIImage imageNamed:@"MDSpreadViewColumnHeaderRightSelected.png"]];
backgroundRight.contentMode = UIViewContentModeScaleToFill;
- backgroundRight.contentStretch = CGRectMake(1./backgroundRight.bounds.size.width, 1./backgroundRight.bounds.size.height, 1./backgroundRight.bounds.size.width, 1./backgroundRight.bounds.size.height);
+ backgroundRight.contentStretch = CGRectMake(2./backgroundRight.bounds.size.width, 2./backgroundRight.bounds.size.height, 1./backgroundRight.bounds.size.width, 1./backgroundRight.bounds.size.height);
[self addSubview:backgroundRight];
[backgroundRight release];
}
@@ -12,31 +12,31 @@ @implementation MDSpreadViewCellCornerHeaderBackground
- (void)prepareBackground
{
- UIImage *topLeft = [UIImage imageNamed:@"MDSpreadViewCornerTopLeft.png"];
- backgroundTopLeft = [[UIImageView alloc] initWithImage:topLeft highlightedImage:topLeft];
+ backgroundTopLeft = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"MDSpreadViewCornerTopLeft.png"]
+ highlightedImage:[UIImage imageNamed:@"MDSpreadViewCornerTopLeftSelected.png"]];
backgroundTopLeft.contentMode = UIViewContentModeScaleToFill;
- backgroundTopLeft.contentStretch = CGRectMake(2./backgroundTopLeft.bounds.size.width, 2./backgroundTopLeft.bounds.size.height, 1./backgroundTopLeft.bounds.size.width, 1./backgroundTopLeft.bounds.size.height);
+ backgroundTopLeft.contentStretch = CGRectMake(3./backgroundTopLeft.bounds.size.width, 3./backgroundTopLeft.bounds.size.height, 1./backgroundTopLeft.bounds.size.width, 1./backgroundTopLeft.bounds.size.height);
[self addSubview:backgroundTopLeft];
[backgroundTopLeft release];
- UIImage *topRight = [UIImage imageNamed:@"MDSpreadViewCornerTopRight.png"];
- backgroundTopRight = [[UIImageView alloc] initWithImage:topRight highlightedImage:topRight];
+ backgroundTopRight = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"MDSpreadViewCornerTopRight.png"]
+ highlightedImage:[UIImage imageNamed:@"MDSpreadViewCornerTopRightSelected.png"]];
backgroundTopRight.contentMode = UIViewContentModeScaleToFill;
- backgroundTopRight.contentStretch = CGRectMake(1./backgroundTopRight.bounds.size.width, 2./backgroundTopRight.bounds.size.height, 1./backgroundTopRight.bounds.size.width, 1./backgroundTopRight.bounds.size.height);
+ backgroundTopRight.contentStretch = CGRectMake(2./backgroundTopRight.bounds.size.width, 3./backgroundTopRight.bounds.size.height, 1./backgroundTopRight.bounds.size.width, 1./backgroundTopRight.bounds.size.height);
[self addSubview:backgroundTopRight];
[backgroundTopRight release];
- UIImage *bottomLeft = [UIImage imageNamed:@"MDSpreadViewCornerBottomLeft.png"];
- backgroundBottomLeft = [[UIImageView alloc] initWithImage:bottomLeft highlightedImage:bottomLeft];
+ backgroundBottomLeft = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"MDSpreadViewCornerBottomLeft.png"]
+ highlightedImage:[UIImage imageNamed:@"MDSpreadViewCornerBottomLeftSelected.png"]];
backgroundBottomLeft.contentMode = UIViewContentModeScaleToFill;
- backgroundBottomLeft.contentStretch = CGRectMake(2./backgroundBottomLeft.bounds.size.width, 1./backgroundBottomLeft.bounds.size.height, 1./backgroundBottomLeft.bounds.size.width, 1./backgroundBottomLeft.bounds.size.height);
+ backgroundBottomLeft.contentStretch = CGRectMake(3./backgroundBottomLeft.bounds.size.width, 2./backgroundBottomLeft.bounds.size.height, 1./backgroundBottomLeft.bounds.size.width, 1./backgroundBottomLeft.bounds.size.height);
[self addSubview:backgroundBottomLeft];
[backgroundBottomLeft release];
- UIImage *bottomRight = [UIImage imageNamed:@"MDSpreadViewCornerBottomRight.png"];
- backgroundBottomRight = [[UIImageView alloc] initWithImage:bottomRight highlightedImage:bottomRight];
+ backgroundBottomRight = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"MDSpreadViewCornerBottomRight.png"]
+ highlightedImage:[UIImage imageNamed:@"MDSpreadViewCornerBottomRightSelected.png"]];
backgroundBottomRight.contentMode = UIViewContentModeScaleToFill;
- backgroundBottomRight.contentStretch = CGRectMake(5./backgroundBottomRight.bounds.size.width, 5./backgroundBottomRight.bounds.size.height, 1./backgroundBottomRight.bounds.size.width, 1./backgroundBottomRight.bounds.size.height);
+ backgroundBottomRight.contentStretch = CGRectMake(6./backgroundBottomRight.bounds.size.width, 6./backgroundBottomRight.bounds.size.height, 1./backgroundBottomRight.bounds.size.width, 1./backgroundBottomRight.bounds.size.height);
[self addSubview:backgroundBottomRight];
[backgroundBottomRight release];
}
@@ -12,17 +12,17 @@ @implementation MDSpreadViewCellRowHeaderBackground
- (void)prepareBackground
{
- UIImage *top = [UIImage imageNamed:@"MDSpreadViewRowHeaderTop.png"];
- backgroundTop = [[UIImageView alloc] initWithImage:top highlightedImage:top];
+ backgroundTop = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"MDSpreadViewRowHeaderTop.png"]
+ highlightedImage:[UIImage imageNamed:@"MDSpreadViewRowHeaderTopSelected.png"]];
backgroundTop.contentMode = UIViewContentModeScaleToFill;
- backgroundTop.contentStretch = CGRectMake(1./backgroundTop.bounds.size.width, 2./backgroundTop.bounds.size.height, 1./backgroundTop.bounds.size.width, 1./backgroundTop.bounds.size.height);
+ backgroundTop.contentStretch = CGRectMake(2./backgroundTop.bounds.size.width, 3./backgroundTop.bounds.size.height, 1./backgroundTop.bounds.size.width, 1./backgroundTop.bounds.size.height);
[self addSubview:backgroundTop];
[backgroundTop release];
- UIImage *bottom = [UIImage imageNamed:@"MDSpreadViewRowHeaderBottom.png"];
- backgroundBottom = [[UIImageView alloc] initWithImage:bottom highlightedImage:bottom];
+ backgroundBottom = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"MDSpreadViewRowHeaderBottom.png"]
+ highlightedImage:[UIImage imageNamed:@"MDSpreadViewRowHeaderBottomSelected.png"]];
backgroundBottom.contentMode = UIViewContentModeScaleToFill;
- backgroundBottom.contentStretch = CGRectMake(1./backgroundBottom.bounds.size.width, 1./backgroundBottom.bounds.size.height, 1./backgroundBottom.bounds.size.width, 1./backgroundBottom.bounds.size.height);
+ backgroundBottom.contentStretch = CGRectMake(2./backgroundBottom.bounds.size.width, 2./backgroundBottom.bounds.size.height, 1./backgroundBottom.bounds.size.width, 1./backgroundBottom.bounds.size.height);
[self addSubview:backgroundBottom];
[backgroundBottom release];
}
View
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Diff not rendered.
Diff not rendered.
Diff not rendered.
Diff not rendered.
Diff not rendered.
Diff not rendered.
Diff not rendered.
Diff not rendered.
Diff not rendered.
Diff not rendered.
Diff not rendered.

0 comments on commit a4e4612

Please sign in to comment.