stifui/qt/src/dlgrepeatrun.cpp
changeset 34 e0ec97ec3cc4
child 31 e7a04a6385be
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/stifui/qt/src/dlgrepeatrun.cpp	Wed Jun 23 18:13:31 2010 +0300
@@ -0,0 +1,131 @@
+/*
+ * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description: QT C++ based Class.
+ * 
+ */
+
+#include "dlgrepeatrun.h"
+#include <QtGui>
+
+DlgRepeatRun::DlgRepeatRun(QWidget *parent)
+    : QDialog(parent),
+      loopTimes(0),
+      isInfinite(true)
+    {
+    SetupUI();
+    }
+
+void DlgRepeatRun::SetupUI()
+    {
+    this->setContextMenuPolicy(Qt::NoContextMenu);
+    QGridLayout *mainLayout = new QGridLayout(this);
+    this->setLayout(mainLayout);
+    
+    //nullWidget is just place holder for better looking.
+    QWidget *nullWidget = new QWidget(this);
+    nullWidget->setMinimumHeight(30);
+    mainLayout->addWidget(nullWidget, 0, 0);
+    
+    // check box LoopInfinitely
+    rdoLoopInfinitely = new QRadioButton(this);
+    rdoLoopInfinitely->setMinimumHeight(40);
+    rdoLoopInfinitely->setText(tr("Repeat infinitely."));
+    rdoLoopInfinitely->setChecked(Qt::Checked);
+    QObject::connect(rdoLoopInfinitely, SIGNAL(clicked(bool)), this,
+                SLOT(on_rdoLoopInfinitely_stateChanged(bool)));
+    
+
+    // check box LoopTime
+    rdoGiveLoopTimes = new QRadioButton(this);
+    rdoGiveLoopTimes->setMinimumHeight(40);
+    rdoGiveLoopTimes->setText(tr("Give loop times:"));
+    rdoGiveLoopTimes->setChecked(Qt::Unchecked);
+    QObject::connect(rdoGiveLoopTimes, SIGNAL(clicked(bool)), this,
+                SLOT(on_rdoGiveLoopTimes_stateChanged(bool)));
+    
+    // lineEdit, 
+    QValidator *validator = new QIntValidator(1, 999999, this); 
+    lineEdit = new QLineEdit(this);
+    lineEdit->setValidator(validator);
+    lineEdit->setMinimumHeight(40);
+    lineEdit->setMaxLength(6);
+    lineEdit->setMaximumWidth(60);
+    lineEdit->setEchoMode(QLineEdit::NoEcho);
+    lineEdit->setReadOnly(true);
+    
+    // add check box and lineEdit to layout. 
+    QWidget *toolWidgetForLoopTimes = new QWidget(this);
+    QGridLayout *toolLayoutForLoopTimes = new QGridLayout(this);
+    toolWidgetForLoopTimes->setLayout(toolLayoutForLoopTimes);
+    toolLayoutForLoopTimes->addWidget(rdoLoopInfinitely, 0, 0);
+    toolLayoutForLoopTimes->addWidget(rdoGiveLoopTimes, 1, 0);
+    toolLayoutForLoopTimes->addWidget(lineEdit, 1, 1);
+    mainLayout->addWidget(toolWidgetForLoopTimes, 1, 0);
+    
+    // add button
+    QWidget *toolWidgetForButtons = new QWidget(this);
+    QGridLayout *toolLayoutForButtons = new QGridLayout(this);
+    toolWidgetForButtons->setLayout(toolLayoutForButtons);
+    btnOk = new QPushButton(tr("Ok"), toolWidgetForButtons);
+    QObject::connect(btnOk, SIGNAL(clicked()), this,
+            SLOT(on_btnOk_clicked()));
+    btnCancel = new QPushButton(tr("Cancel"), toolWidgetForButtons);
+    QObject::connect(btnCancel, SIGNAL(clicked()), this,
+            SLOT(on_btnCancel_clicked()));
+    toolLayoutForButtons->addWidget(btnOk, 0, 0);
+    toolLayoutForButtons->addWidget(btnCancel, 0, 1);
+    mainLayout->addWidget(toolWidgetForButtons, 2, 0);
+    }
+
+void DlgRepeatRun::on_btnOk_clicked()
+    {
+    if(!isRepeatInfinitely())
+        {
+        loopTimes = lineEdit->text().toInt();
+        if (loopTimes < 0)
+            {
+            loopTimes = 0;
+            }
+        }
+    else
+        {
+        loopTimes = 0;
+        }
+    this->accept();
+    }
+
+void DlgRepeatRun::on_btnCancel_clicked()
+    {
+    this->reject();    
+    }
+
+void DlgRepeatRun::on_rdoLoopInfinitely_stateChanged(bool checked)
+    {
+    if(checked)
+        {
+        isInfinite = true;
+        lineEdit->setEchoMode(QLineEdit::NoEcho);
+        lineEdit->setReadOnly(true);
+        }
+    }
+
+void DlgRepeatRun::on_rdoGiveLoopTimes_stateChanged(bool checked)
+    {
+    if(checked)
+        {
+        isInfinite = false;
+        lineEdit->setEchoMode(QLineEdit::Normal); 
+        lineEdit->setReadOnly(false);
+        }
+    }