Profile dialog development
[speedfreak] / Client / settingsdialog.cpp
index 3ded2bb..cf6e26d 100644 (file)
@@ -1,23 +1,31 @@
 /*
  * SettingsDialog class
  *
- * @author     Olavi Pulkkinen <olavi.pulkkinen@fudeco.com>
- * @copyright  (c) 2010 Speed Freak team
- * @license    http://opensource.org/licenses/gpl-license.php GNU Public License
+ * @author      Olavi Pulkkinen <olavi.pulkkinen@fudeco.com>
+ * @author      Toni Jussila    <toni.jussila@fudeco.com>
+ * @copyright   (c) 2010 Speed Freak team
+ * @license     http://opensource.org/licenses/gpl-license.php GNU Public License
  */
 
 #include "settingsdialog.h"
 #include "ui_settingsdialog.h"
 #include "usersettings.h"
+#include <QMessageBox>
+#include <QDebug>
 
 SettingsDialog::SettingsDialog(QWidget *parent) :
-    QDialog(parent),
-    ui(new Ui::SettingsDialog)
+    QDialog(parent), ui(new Ui::SettingsDialog)
 {
     ui->setupUi(this);
+
+    helpSettingsDialog = NULL;
+    profileDialog = NULL;
+
     this->setWindowTitle("Settings");
     this->ui->regEMailLineEdit->setText("@");
 
+    ui->pushButtonProfile->setDisabled(true);
+
     if (loginSaved())
     {
         QString uName, pWord;
@@ -26,12 +34,23 @@ SettingsDialog::SettingsDialog(QWidget *parent) :
         this->username = uName;
         this->password = pWord;
 
+        // Set line edit
         ui->setUserPasswordLineEdit->setText(this->password);
         ui->setUserUsernameLineEdit->setText(this->username);
+        ui->setUserPasswordLineEdit->setDisabled(1); // Disable because user logged
+        ui->setUserUsernameLineEdit->setDisabled(1); // Disable because user logged
 
         // Already someone as user - change button text to "Change"
-        ui->setUserPushButton->setText("Change user");
+        ui->setUserPushButton->setText("Log out");
+
+        // Button settings
+        ui->pushButtonInfo->setAutoFillBackground(true);
+        ui->pushButtonInfo->setStyleSheet("background-color: rgb(0, 0, 0); color: rgb(255, 255, 255)");
+        ui->pushButtonProfile->setDisabled(false);
     }
+
+    ui->pushButtonInfo->setAutoFillBackground(true);
+    ui->pushButtonInfo->setStyleSheet("background-color: rgb(0, 0, 0); color: rgb(255, 255, 255)");
 }
 
 SettingsDialog::~SettingsDialog()
@@ -61,7 +80,15 @@ void SettingsDialog::on_registratePushButton_clicked()
     this->regPassword = ui->regPasswordLineEdit->text();
     this->regEmail = ui->regEMailLineEdit->text();
 
-    emit sendregistration();
+    if (this->regUsername.compare("") && this->regPassword.compare("") && this->regEmail.compare("") && this->regEmail.compare("@"))
+    {
+        emit sendregistration();
+
+    }
+    else
+    {
+        QMessageBox::about(this, "One or more of the fields is empty", "Set username (3-12 characters), password (at least 6 characters) and valid email address");
+    }
 
     //close();      //using close() hides popup-window which reports error from server
 }
@@ -103,24 +130,58 @@ QString SettingsDialog::getRegEmail()
 //
 void SettingsDialog::on_setUserPushButton_clicked()
 {
-    this->username = ui->setUserUsernameLineEdit->text();
-    this->password = ui->setUserPasswordLineEdit->text();
+    if (!ui->setUserPushButton->text().compare("Log out"))
+    {
+        ui->setUserUsernameLineEdit->setDisabled(false);
+        ui->setUserPasswordLineEdit->setDisabled(false);
+        //ui->setUserUsernameLineEdit->setText("");
+        //ui->setUserPasswordLineEdit->setText("");
+        ui->setUserUsernameLineEdit->clear();
+        ui->setUserPasswordLineEdit->clear();
+        this->username = ui->setUserUsernameLineEdit->text();
+        this->password = ui->setUserPasswordLineEdit->text();
+        ui->setUserPushButton->setText("Log in");
+        saveLogin( this->username, this->password);
+        ui->pushButtonProfile->setDisabled(true);
+        emit logout();
+    }
+    else
+    {
+        this->username = ui->setUserUsernameLineEdit->text();
+        this->password = ui->setUserPasswordLineEdit->text();
+        saveLogin( this->username, this->password);
+        ui->setUserPushButton->setText("Log out");
 
+        if(this->username.compare(""))
+        {
+            emit userNameChanged();
+            //ui->setUserPushButton->setText("Log out");
+        }
+
+        else
+        {
+            QMessageBox::about(this, "Username field is empty", "Set username and log in again");
+            ui->setUserPushButton->setText("Log in");
+        }
+    }
     // Save these also to usersettings
-    saveLogin( this->username, this->password);
+    //saveLogin( this->username, this->password);
 
+
+
+    /*
     // Set "Set/Change User" button text
     if (this->username.length() > 0)
     {
-        ui->setUserPushButton->setText("Change user");
+        ui->setUserPushButton->setText("Log out");
     }
     else
     {   // Username "cleared"
-        ui->setUserPushButton->setText("Set user");
+        ui->setUserPushButton->setText("Log in");
     }
 
     emit userNameChanged();
-
+    */
     //close();  //using close() hides popup-window which reports error from server
 }
 
@@ -150,3 +211,84 @@ void SettingsDialog::setLabelInfoToUser(QString infoText)
 {
     this->ui->labelInfoToUser->setText(infoText);
 }
+
+void SettingsDialog::usernameOk(bool isOk)
+{
+    if (isOk)
+    {
+        ui->setUserPushButton->setText("Log out");
+        ui->setUserUsernameLineEdit->setDisabled(true);
+        ui->setUserPasswordLineEdit->setDisabled(true);
+        ui->pushButtonProfile->setDisabled(false);
+    }
+
+    else
+    {
+        ui->setUserPushButton->setText("Log in");
+        ui->setUserUsernameLineEdit->clear();
+        ui->setUserPasswordLineEdit->clear();
+        this->username = ui->setUserUsernameLineEdit->text();
+        this->password = ui->setUserPasswordLineEdit->text();
+        saveLogin( this->username, this->password);
+        ui->pushButtonProfile->setDisabled(true);
+    }
+}
+
+void SettingsDialog::clearRegisterLineEdits()
+{
+    ui->regEMailLineEdit->setText("@");
+    ui->regPasswordLineEdit->setText("");
+    ui->regUserNameLineEdit->setText("");
+}
+
+/**
+  * This slot function called when ever info button clicked.
+  */
+void SettingsDialog::on_pushButtonInfo_clicked()
+{
+    if(!helpSettingsDialog)
+    {
+        helpSettingsDialog = new HelpSettingsDialog;
+    }
+    connect(helpSettingsDialog, SIGNAL(rejected()), this, SLOT(killDialog()));
+    helpSettingsDialog->show();
+}
+
+/**
+  * This slot function called when ever dialog rejected.
+  */
+void SettingsDialog::killDialog()
+{
+    if(helpSettingsDialog)
+    {
+        qDebug() << "__Settings kill: helpSettingsDialog";
+        delete helpSettingsDialog;
+        helpSettingsDialog = NULL;
+    }
+    if(profileDialog)
+    {
+        qDebug() << "__Settings kill: profileDialog";
+        delete profileDialog;
+        profileDialog = NULL;
+    }
+}
+
+/**
+  * This slot function called when ever profile button clicked.
+  * Open profile dialog.
+  */
+void SettingsDialog::on_pushButtonProfile_clicked()
+{
+    if(!profileDialog)
+    {
+        profileDialog = new ProfileDialog(this);
+    }
+    connect(profileDialog, SIGNAL(saveprofile()), this, SLOT(saveProfile()));
+    connect(profileDialog, SIGNAL(rejected()), this, SLOT(killDialog()));
+    profileDialog->show();
+}
+
+void SettingsDialog::saveProfile()
+{
+    emit saveprofile();
+}