Initial Commit. The packaging still does not work properly.
[confmgr] / src / mainwindow.cpp
1 #include "mainwindow.h"
2 #include "ui_mainwindow.h"
3 #include "xmlutil.h"
4 #include <QDebug>
5 #include <QMessageBox>
6
7 MainWindow::MainWindow(QWidget *parent) :
8     QMainWindow(parent),
9     ui(new Ui::MainWindow)
10 {
11     ui->setupUi(this);
12     connect(&mFrmAddProfile, SIGNAL(ProfileAddedSuccessfully(Profile)),
13             this, SLOT(updateProfileList(Profile)));
14     Initialize();
15 }
16
17 MainWindow::~MainWindow()
18 {
19     mConfig.writeAllProfiles();
20     mConfig.closeConfig();
21     delete ui;
22 }
23
24 void MainWindow::Initialize()
25 {
26      mConfig.openConfig();
27      for(int i = 0; i < mConfig.getNoOfProfiles(); i++)
28      {
29          Profile p = mConfig.profileList.at(i);
30          QString text = "Name: " + p.mName + " || Steps: " + QString::number(p.mNoOfSteps);
31          ui->mainProfileList->addItem(text);
32      }
33      ui->centralWidget->setAttribute(Qt::WA_Maemo5StackedWindow);
34      mFrmAddProfile.setWindowFlags(mFrmAddProfile.windowFlags() | Qt::Window);
35 }
36
37 void MainWindow::on_mainPBAdd_clicked()
38 {
39     bIsProfileEdited = false;
40     mFrmAddProfile.setParent(this, Qt::Window);
41     mFrmAddProfile.clear();
42     mFrmAddProfile.setAttribute(Qt::WA_Maemo5StackedWindow);
43     mFrmAddProfile.show();
44 }
45
46 void MainWindow::updateProfileList(Profile p)
47 {
48     if(bIsProfileEdited)
49     {
50         // Delete previous profile and write this new one
51         QString *pText = (QString *) ui->mainProfileList->takeItem(ui->mainProfileList->currentRow());
52         delete pText;
53         mConfig.removeProfile(p);
54     }
55     qDebug() << Xmlutil::generateProfileXML(p);
56     mConfig.addProfile(p);
57     QString text = "Name: " + p.mName + " || Steps: " + QString::number(p.mNoOfSteps);
58     ui->mainProfileList->addItem(text);
59 }
60
61 void MainWindow::on_mainPBDelete_clicked()
62 {
63     if(ui->mainProfileList->count() <= 0 || ui->mainProfileList->currentRow() < 0)
64     {
65         QMessageBox msg;
66         msg.setText("Please select a profile first!");
67         msg.exec();
68         return;    
69     }
70
71     Profile p = mConfig.profileList.at(ui->mainProfileList->currentRow());
72     qDebug() << "Profile to be deleted: " << endl << Xmlutil::generateProfileXML(p);
73     QString *pText = (QString *) ui->mainProfileList->takeItem(ui->mainProfileList->currentRow());
74     delete pText;
75     mConfig.removeProfile(p);
76 }
77
78 void MainWindow::on_btnmainStartConference_clicked()
79 {
80     if(ui->mainProfileList->count() <= 0 || ui->mainProfileList->currentRow() < 0)
81     {
82         QMessageBox msg;
83         msg.setText("Please select a profile first!");
84         msg.exec();
85         return;
86     }
87     Profile p = mConfig.profileList.at(ui->mainProfileList->currentRow());
88     qDebug() << "Profile To Dial: " << endl << Xmlutil::generateProfileXML(p);
89     mConfMgr.setProfile(p);
90     mConfMgr.startConference();
91 }
92
93 void MainWindow::on_mainPBEditProfile_clicked()
94 {
95     if(ui->mainProfileList->count() <= 0 || ui->mainProfileList->currentRow() < 0)
96     {
97         QMessageBox msg;
98         msg.setText("Please select a profile first!");
99         msg.exec();
100         return;
101     }
102     bIsProfileEdited = true;
103     Profile p = mConfig.profileList.at(ui->mainProfileList->currentRow());
104     qDebug() << "Profile to be Edited: " << endl << Xmlutil::generateProfileXML(p);
105     mFrmAddProfile.setParent(this, Qt::Window);
106     mFrmAddProfile.setAttribute(Qt::WA_Maemo5StackedWindow);
107     mFrmAddProfile.showProfile(p);
108 }