Windows: style selection fixup

.. infinite loop when clicking style selector on Linux or
Windows fixed and signals reconnected.
This commit is contained in:
Mark Liversedge
2013-03-15 19:46:21 +00:00
parent c6530d6ba8
commit 73d295d0d3
2 changed files with 18 additions and 7 deletions

View File

@@ -465,7 +465,7 @@ MainWindow::MainWindow(const QDir &home) :
styleSelector->setSegmentIcon(1, tiledIcon);
styleSelector->setSelectionBehavior(QtSegmentControl::SelectOne); //wince. spelling. ugh
styleSelector->setFixedHeight(25);
//connect(styleSelector, SIGNAL(segmentSelected(int)), this, SLOT(toggleStyle()));
connect(styleSelector, SIGNAL(segmentSelected(int)), this, SLOT(setStyleFromSegment(int))); //avoid toggle infinitely
head->addWidget(spacerl);
head->addWidget(import);
@@ -1117,6 +1117,14 @@ MainWindow::selectWindow(QAction *act)
}
}
void
MainWindow::setStyleFromSegment(int segment)
{
if (!currentWindow) return;
currentWindow->setStyle(segment ? 2 : 0);
styleAction->setChecked(!segment);
}
void
MainWindow::toggleStyle()
{
@@ -1713,7 +1721,8 @@ MainWindow::setStyle()
#ifdef Q_OS_MAC
styleSelector->setSelected(select, true);
#else
styleSelector->setSegmentSelected(select, true);
if (styleSelector->isSegmentSelected(select) == false)
styleSelector->setSegmentSelected(select, true);
#endif
}
@@ -2577,11 +2586,11 @@ MainWindow::exportMeasures()
start.fromTime_t(0);
foreach (SummaryMetrics x, metricDB->db()->getAllMeasuresFor(start, end)) {
qDebug()<<x.getDateTime();
qDebug()<<x.getText("Weight", "0.0").toDouble();
qDebug()<<x.getText("Lean Mass", "0.0").toDouble();
qDebug()<<x.getText("Fat Mass", "0.0").toDouble();
qDebug()<<x.getText("Fat Ratio", "0.0").toDouble();
//qDebug()<<x.getDateTime();
//qDebug()<<x.getText("Weight", "0.0").toDouble();
//qDebug()<<x.getText("Lean Mass", "0.0").toDouble();
//qDebug()<<x.getText("Fat Mass", "0.0").toDouble();
//qDebug()<<x.getText("Fat Ratio", "0.0").toDouble();
}
}

View File

@@ -385,6 +385,8 @@ class MainWindow : public QMainWindow
void toggleStyle();
void setStyle();
// special case for linux/win qtsegmentcontrol toggline
void setStyleFromSegment(int);
#ifndef Q_OS_MAC
void toggleFullScreen();