Skip to content

Commit

Permalink
Work on console window resize flicker.
Browse files Browse the repository at this point in the history
  • Loading branch information
Denvi committed Nov 29, 2015
1 parent ce1a68e commit 4db0808
Show file tree
Hide file tree
Showing 5 changed files with 1,111 additions and 1,055 deletions.
65 changes: 57 additions & 8 deletions frmmain.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -148,6 +148,18 @@ frmMain::frmMain(QWidget *parent) :
button->setChecked(button->text().toDouble() == ui->txtJogStep->value());
}

// Console window handling
connect(ui->grpConsole, SIGNAL(mouseMoved(int,int)), this, SLOT(onConsoleMouseMove(int,int)));
connect(ui->grpConsole, SIGNAL(mousePressed()), this, SLOT(onConsoleMousePress()));
connect(ui->grpConsole, SIGNAL(mouseReleased()), this, SLOT(onConsoleMouseRelease()));
connect(ui->grpConsole, SIGNAL(resized(QSize)), this, SLOT(onConsoleResized(QSize)));

ui->txtConsole->setMinimumHeight(1);

ui->splitPanels->setCollapsible(1, false);
connect(ui->scrollAreaWidgetContents, SIGNAL(sizeChanged(QSize)), this, SLOT(onPanelsSizeChanged(QSize)));
connect(ui->splitPanels, SIGNAL(splitterMoved(int,int)), this, SLOT(onPanelsSplitterMoved(int,int)));

show(); // Visibility bug workaround
applySettings();
updateControlsState();
Expand All @@ -160,10 +172,6 @@ frmMain::frmMain(QWidget *parent) :
m_timerConnection.start(1000);
m_timerStateQuery.start();

// Console window handling
connect(ui->grpConsole, SIGNAL(mouseMoved(int,int)), this, SLOT(onConsoleMouseMove(int,int)));
connect(ui->grpConsole, SIGNAL(mousePressed()), this, SLOT(onConsoleMousePress()));

// Handle file drop
if (qApp->arguments().count() > 1 && isGCodeFile(qApp->arguments().last())) {
loadFile(qApp->arguments().last());
Expand Down Expand Up @@ -238,7 +246,7 @@ void frmMain::loadSettings()
m_settings.setPanelJog(set.value("panelJogVisible", true).toBool());

m_settings.setFontSize(set.value("fontSize", 8).toInt());
ui->txtConsole->setMinimumHeight(set.value("consoleMinHeight", 100).toInt());
// ui->txtConsole->setMinimumHeight(set.value("consoleMinHeight", 100).toInt());

ui->chkAutoScroll->setChecked(set.value("autoScroll", false).toBool());
ui->sliSpindleSpeed->setValue(set.value("spindleSpeed", 100).toInt() / 100);
Expand Down Expand Up @@ -1193,6 +1201,9 @@ void frmMain::resizeEvent(QResizeEvent *re)
resizeCheckBoxes();
resizeTableHeightMapSections();

int a = ui->splitPanels->height() - m_storedPanelsHeight - 6;
ui->splitPanels->setSizes(QList<int>() << m_storedPanelsHeight + 3 << a);

// ui->scrollArea->setMinimumSize(ui->scrollAreaWidgetContents->sizeHint());
// qDebug() << "viewport sizeHint:" << ui->scrollArea->viewport()->sizeHint() << ;
}
Expand Down Expand Up @@ -1330,6 +1341,10 @@ void frmMain::on_actFileExit_triggered()

void frmMain::on_cmdFileOpen_clicked()
{
ui->grpConsole->setMinimumHeight(ui->grpConsole->minimumHeight() + 20);

return;

if (!m_heightMapMode) {
if (!saveChanges(false)) return;

Expand Down Expand Up @@ -1685,13 +1700,47 @@ void frmMain::onTableCurrentChanged(QModelIndex idx1, QModelIndex idx2)
}

void frmMain::onConsoleMouseMove(int dx, int dy)
{
ui->txtConsole->setMinimumHeight(qBound(1, m_pressedConsoleMinHeight - dy, 300));
{
qDebug() << "mouse move";
// ui->grpConsole->setMinimumHeight(qBound(1, m_pressedConsoleMinHeight - dy, 300));
// if (ui->txtConsole->minimumHeight() > 1 && !ui->txtConsole->isVisible()) ui->txtConsole->setVisible(true);
int a = m_pressedHeight - dy;

if (a < m_pressedHeight && !ui->scrollArea->verticalScrollBar()->isVisible()) return;
ui->splitPanels->setSizes(QList<int>() << ui->splitPanels->height() - a << a);
}

void frmMain::onConsoleMousePress()
{
m_pressedConsoleMinHeight = ui->txtConsole->height();
qDebug() << "mouse press";
// m_pressedConsoleMinHeight = ui->grpConsole->height();
m_pressedHeight = ui->splitPanels->sizes().at(1);
ui->splitPanels->setSizes(QList<int>() << ui->splitPanels->height() - ui->grpConsole->height() << ui->grpConsole->height());
ui->txtConsole->setMinimumHeight(1);
}

void frmMain::onConsoleMouseRelease()
{
if (ui->scrollArea->verticalScrollBar()->isVisible()) ui->txtConsole->setMinimumHeight(ui->txtConsole->height());
}

void frmMain::onConsoleResized(QSize size)
{
int pureHeight = ui->grpConsole->layout()->spacing() + ui->grpConsole->layout()->margin() * 2 + ui->cboCommand->height() + 3;
bool visible = ui->grpConsole->contentsRect().height() > pureHeight;
// if (ui->txtConsole->isVisible() != visible) ui->txtConsole->setVisible(visible);
}

void frmMain::onPanelsSizeChanged(QSize size)
{
qDebug() << "panels resized" << size.height() << ui->splitPanels->height();
int a = ui->splitPanels->height() - size.height() - 6;
ui->splitPanels->setSizes(QList<int>() << size.height() + 3 << a);
m_storedPanelsHeight = size.height();
}

void frmMain::onPanelsSplitterMoved(int pos, int index)
{
}

void frmMain::onTableInsertLine()
Expand Down
8 changes: 7 additions & 1 deletion frmmain.h
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,10 @@ private slots:
void onTableCurrentChanged(QModelIndex idx1, QModelIndex idx2);
void onConsoleMouseMove(int dx, int dy);
void onConsoleMousePress();
void onConsoleMouseRelease();
void onConsoleResized(QSize size);
void onPanelsSizeChanged(QSize size);
void onPanelsSplitterMoved(int pos, int index);

void on_actFileExit_triggered();
void on_cmdFileOpen_clicked();
Expand Down Expand Up @@ -224,7 +228,9 @@ private slots:
QString m_storedParserStatus;
double m_storedOffsets[1][3];

int m_pressedConsoleMinHeight;
int m_consoleMinHeight;
int m_pressedHeight;
int m_storedPanelsHeight;

// Flags
bool m_settingZeroXY = false;
Expand Down
Loading

0 comments on commit 4db0808

Please sign in to comment.