Modified Qt TAS branches view to compensate for different font sizes.
This commit is contained in:
parent
77ced676f0
commit
5a34a78a24
|
@ -96,6 +96,7 @@ void BRANCHES::setFont( QFont &newFont )
|
||||||
|
|
||||||
void BRANCHES::calcFontData(void)
|
void BRANCHES::calcFontData(void)
|
||||||
{
|
{
|
||||||
|
int w,h;
|
||||||
QWidget::setFont(font);
|
QWidget::setFont(font);
|
||||||
QFontMetrics metrics(font);
|
QFontMetrics metrics(font);
|
||||||
#if QT_VERSION > QT_VERSION_CHECK(5, 11, 0)
|
#if QT_VERSION > QT_VERSION_CHECK(5, 11, 0)
|
||||||
|
@ -110,6 +111,9 @@ void BRANCHES::calcFontData(void)
|
||||||
pxBoxHeight = pxLineSpacing;
|
pxBoxHeight = pxLineSpacing;
|
||||||
pxSelWidth = (pxBoxWidth * 7) / 8;
|
pxSelWidth = (pxBoxWidth * 7) / 8;
|
||||||
pxSelHeight = (pxBoxHeight * 7) / 8;
|
pxSelHeight = (pxBoxHeight * 7) / 8;
|
||||||
|
|
||||||
|
pxMinGridWidth = pxBoxWidth * 1;
|
||||||
|
pxMaxGridWidth = pxBoxWidth * 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
void BRANCHES::init()
|
void BRANCHES::init()
|
||||||
|
@ -574,6 +578,16 @@ bool BRANCHES::event(QEvent *event)
|
||||||
return QWidget::event(event);
|
return QWidget::event(event);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void BRANCHES::resizeEvent(QResizeEvent *event)
|
||||||
|
{
|
||||||
|
viewWidth = event->size().width();
|
||||||
|
viewHeight = event->size().height();
|
||||||
|
|
||||||
|
//printf("BranchView: %i x %i\n", viewWidth, viewHeight );
|
||||||
|
|
||||||
|
recalculateBranchesTree();
|
||||||
|
}
|
||||||
|
|
||||||
void BRANCHES::paintEvent(QPaintEvent *event)
|
void BRANCHES::paintEvent(QPaintEvent *event)
|
||||||
{
|
{
|
||||||
int x,y;
|
int x,y;
|
||||||
|
@ -1351,14 +1365,33 @@ void BRANCHES::recalculateBranchesTree()
|
||||||
int grid_width, cloud_prefix = 0;
|
int grid_width, cloud_prefix = 0;
|
||||||
if (BranchesLevels.size()-1 > 0)
|
if (BranchesLevels.size()-1 > 0)
|
||||||
{
|
{
|
||||||
grid_width = BRANCHES_CANVAS_WIDTH / (BranchesLevels.size()-1);
|
//grid_width = BRANCHES_CANVAS_WIDTH / (BranchesLevels.size()-1);
|
||||||
if (grid_width < BRANCHES_GRID_MIN_WIDTH)
|
grid_width = width() / (BranchesLevels.size()-1);
|
||||||
grid_width = BRANCHES_GRID_MIN_WIDTH;
|
//if (grid_width < BRANCHES_GRID_MIN_WIDTH)
|
||||||
else if (grid_width > BRANCHES_GRID_MAX_WIDTH)
|
//{
|
||||||
grid_width = BRANCHES_GRID_MAX_WIDTH;
|
// grid_width = BRANCHES_GRID_MIN_WIDTH;
|
||||||
} else grid_width = BRANCHES_GRID_MAX_WIDTH;
|
//}
|
||||||
|
//else if (grid_width > BRANCHES_GRID_MAX_WIDTH)
|
||||||
|
//{
|
||||||
|
// grid_width = BRANCHES_GRID_MAX_WIDTH;
|
||||||
|
//}
|
||||||
|
if (grid_width < pxMinGridWidth)
|
||||||
|
{
|
||||||
|
grid_width = pxMinGridWidth;
|
||||||
|
}
|
||||||
|
else if (grid_width > pxMaxGridWidth)
|
||||||
|
{
|
||||||
|
grid_width = pxMaxGridWidth;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
grid_width = pxMaxGridWidth;
|
||||||
|
}
|
||||||
if (grid_width < MIN_CLOUD_LINE_LENGTH)
|
if (grid_width < MIN_CLOUD_LINE_LENGTH)
|
||||||
|
{
|
||||||
cloud_prefix = MIN_CLOUD_LINE_LENGTH - grid_width;
|
cloud_prefix = MIN_CLOUD_LINE_LENGTH - grid_width;
|
||||||
|
}
|
||||||
|
|
||||||
// 2. Define GridY of branches
|
// 2. Define GridY of branches
|
||||||
recursiveSetYPos(ITEM_UNDER_MOUSE_CLOUD, 0);
|
recursiveSetYPos(ITEM_UNDER_MOUSE_CLOUD, 0);
|
||||||
|
@ -1366,15 +1399,26 @@ void BRANCHES::recalculateBranchesTree()
|
||||||
int grid_halfheight;
|
int grid_halfheight;
|
||||||
int totalHeight = 0;
|
int totalHeight = 0;
|
||||||
for (int i = children[0].size()-1; i >= 0; i--)
|
for (int i = children[0].size()-1; i >= 0; i--)
|
||||||
|
{
|
||||||
totalHeight += gridHeight[children[0][i]];
|
totalHeight += gridHeight[children[0][i]];
|
||||||
|
}
|
||||||
if (totalHeight)
|
if (totalHeight)
|
||||||
{
|
{
|
||||||
grid_halfheight = BRANCHES_CANVAS_HEIGHT / (2 * totalHeight);
|
//grid_halfheight = BRANCHES_CANVAS_HEIGHT / (2 * totalHeight);
|
||||||
|
grid_halfheight = height() / (2 * totalHeight);
|
||||||
if (grid_halfheight < BRANCHES_GRID_MIN_HALFHEIGHT)
|
if (grid_halfheight < BRANCHES_GRID_MIN_HALFHEIGHT)
|
||||||
|
{
|
||||||
grid_halfheight = BRANCHES_GRID_MIN_HALFHEIGHT;
|
grid_halfheight = BRANCHES_GRID_MIN_HALFHEIGHT;
|
||||||
|
}
|
||||||
else if (grid_halfheight > BRANCHES_GRID_MAX_HALFHEIGHT)
|
else if (grid_halfheight > BRANCHES_GRID_MAX_HALFHEIGHT)
|
||||||
|
{
|
||||||
grid_halfheight = BRANCHES_GRID_MAX_HALFHEIGHT;
|
grid_halfheight = BRANCHES_GRID_MAX_HALFHEIGHT;
|
||||||
} else grid_halfheight = BRANCHES_GRID_MAX_HALFHEIGHT;
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
grid_halfheight = BRANCHES_GRID_MAX_HALFHEIGHT;
|
||||||
|
}
|
||||||
// special case 2: if chain of branches is too long, the last item (fireball) goes up
|
// special case 2: if chain of branches is too long, the last item (fireball) goes up
|
||||||
if (changesSinceCurrentBranch)
|
if (changesSinceCurrentBranch)
|
||||||
{
|
{
|
||||||
|
@ -1488,9 +1532,13 @@ void BRANCHES::recalculateBranchesTree()
|
||||||
|
|
||||||
// align whole tree horizontally
|
// align whole tree horizontally
|
||||||
cloudX = (BRANCHES_BITMAP_WIDTH + BASE_HORIZONTAL_SHIFT - max_x) / 2;
|
cloudX = (BRANCHES_BITMAP_WIDTH + BASE_HORIZONTAL_SHIFT - max_x) / 2;
|
||||||
if (cloudX < MIN_CLOUD_X)
|
//if (cloudX < MIN_CLOUD_X)
|
||||||
|
//{
|
||||||
|
// cloudX = MIN_CLOUD_X;
|
||||||
|
//}
|
||||||
|
if (cloudX < pxBoxWidth)
|
||||||
{
|
{
|
||||||
cloudX = MIN_CLOUD_X;
|
cloudX = pxBoxWidth;
|
||||||
}
|
}
|
||||||
for (int i = TOTAL_BOOKMARKS-1; i >= 0; i--)
|
for (int i = TOTAL_BOOKMARKS-1; i >= 0; i--)
|
||||||
{
|
{
|
||||||
|
|
|
@ -32,12 +32,14 @@
|
||||||
#define BRANCHES_CLOUD_X 14
|
#define BRANCHES_CLOUD_X 14
|
||||||
#define BRANCHES_CLOUD_Y 72
|
#define BRANCHES_CLOUD_Y 72
|
||||||
#define BRANCHES_GRID_MIN_WIDTH 14
|
#define BRANCHES_GRID_MIN_WIDTH 14
|
||||||
#define BRANCHES_GRID_MAX_WIDTH 30
|
//#define BRANCHES_GRID_MAX_WIDTH 30
|
||||||
|
#define BRANCHES_GRID_MAX_WIDTH 40
|
||||||
#define MIN_CLOUD_LINE_LENGTH 19
|
#define MIN_CLOUD_LINE_LENGTH 19
|
||||||
#define MIN_CLOUD_X 12
|
#define MIN_CLOUD_X 12
|
||||||
#define BASE_HORIZONTAL_SHIFT 10
|
#define BASE_HORIZONTAL_SHIFT 10
|
||||||
#define BRANCHES_GRID_MIN_HALFHEIGHT 8
|
#define BRANCHES_GRID_MIN_HALFHEIGHT 8
|
||||||
#define BRANCHES_GRID_MAX_HALFHEIGHT 12
|
#define BRANCHES_GRID_MAX_HALFHEIGHT 32
|
||||||
|
//#define BRANCHES_GRID_MAX_HALFHEIGHT 12
|
||||||
#define EMPTY_BRANCHES_X_BASE 4
|
#define EMPTY_BRANCHES_X_BASE 4
|
||||||
#define EMPTY_BRANCHES_Y_BASE 9
|
#define EMPTY_BRANCHES_Y_BASE 9
|
||||||
#define EMPTY_BRANCHES_Y_FACTOR 14
|
#define EMPTY_BRANCHES_Y_FACTOR 14
|
||||||
|
@ -143,6 +145,7 @@ public:
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
void paintEvent(QPaintEvent *event);
|
void paintEvent(QPaintEvent *event);
|
||||||
|
void resizeEvent(QResizeEvent *event);
|
||||||
void mousePressEvent(QMouseEvent * event);
|
void mousePressEvent(QMouseEvent * event);
|
||||||
void mouseReleaseEvent(QMouseEvent * event);
|
void mouseReleaseEvent(QMouseEvent * event);
|
||||||
void mouseMoveEvent(QMouseEvent * event);
|
void mouseMoveEvent(QMouseEvent * event);
|
||||||
|
@ -184,16 +187,6 @@ private:
|
||||||
int fireballSize;
|
int fireballSize;
|
||||||
int lastItemUnderMouse;
|
int lastItemUnderMouse;
|
||||||
|
|
||||||
// GDI stuff
|
|
||||||
//HBRUSH normalBrush, borderBrush, selectedSlotBrush;
|
|
||||||
//RECT tempRect;
|
|
||||||
//HPEN normalPen, timelinePen, selectPen;
|
|
||||||
//HBITMAP hBranchesBitmap, hOldBitmap, hBufferBitmap, hOldBitmap1, hBranchesSpritesheet, hOldBitmap2;
|
|
||||||
//HDC hBitmapDC, hBufferDC, hSpritesheetDC;
|
|
||||||
//TRIVERTEX vertex[2];
|
|
||||||
//GRADIENT_RECT gRect;
|
|
||||||
//RECT branchesBitmapRect;
|
|
||||||
|
|
||||||
QFont font;
|
QFont font;
|
||||||
|
|
||||||
int viewWidth;
|
int viewWidth;
|
||||||
|
@ -205,6 +198,8 @@ private:
|
||||||
int pxBoxHeight;
|
int pxBoxHeight;
|
||||||
int pxSelWidth;
|
int pxSelWidth;
|
||||||
int pxSelHeight;
|
int pxSelHeight;
|
||||||
|
int pxMinGridWidth;
|
||||||
|
int pxMaxGridWidth;
|
||||||
|
|
||||||
// temps
|
// temps
|
||||||
std::vector<int> gridX; // measured in grid units, not in pixels
|
std::vector<int> gridX; // measured in grid units, not in pixels
|
||||||
|
|
Loading…
Reference in New Issue