Modified welcome text file so it shows proper names in the reporsitory
[confmgr] / mainwindow.cpp
1 #include "mainwindow.h"
2 #include "ui_mainwindow.h"
3 #include "xmlutil.h"
4 #include "aboutdialog.h"
5 #include <QDebug>
6 #include <QMessageBox>
7
8 MainWindow::MainWindow(QWidget *parent) :
9     QMainWindow(parent),
10     ui(new Ui::MainWindow)
11 {
12     ui->setupUi(this);
13     connect(&mFrmAddProfile, SIGNAL(ProfileAddedSuccessfully(Profile)),
14             this, SLOT(updateProfileList(Profile)));
15 /*
16     connect(&ui->mainMenuAbout, SIGNAL(Triggered(QAction*)),
17             this, SLOT(mainAboutClickedSlot()));
18 */
19     Initialize();
20 }
21
22 MainWindow::~MainWindow()
23 {
24     mConfig.writeAllProfiles();
25     mConfig.closeConfig();
26     delete ui;
27 }
28
29 void MainWindow::Initialize()
30 {
31      mConfig.openConfig();
32      for(int i = 0; i < mConfig.getNoOfProfiles(); i++)
33      {
34          Profile p = mConfig.profileList.at(i);
35          QString text = "Name: " + p.mName + " || Steps: " + QString::number(p.mNoOfSteps);
36          ui->mainProfileList->addItem(text);
37      }
38      ui->centralWidget->setAttribute(Qt::WA_Maemo5StackedWindow);
39      mFrmAddProfile.setWindowFlags(mFrmAddProfile.windowFlags() | Qt::Window);
40 }
41
42 void MainWindow::on_mainPBAdd_clicked()
43 {
44     bIsProfileEdited = false;
45     mFrmAddProfile.setParent(this, Qt::Window);
46     mFrmAddProfile.clear();
47     mFrmAddProfile.setAttribute(Qt::WA_Maemo5StackedWindow);
48     mFrmAddProfile.show();
49 }
50
51 void MainWindow::updateProfileList(Profile p)
52 {
53     if(bIsProfileEdited)
54     {
55         // Delete previous profile and write this new one
56         QString *pText = (QString *) ui->mainProfileList->takeItem(ui->mainProfileList->currentRow());
57         delete pText;
58         mConfig.removeProfile(p);
59     }
60     qDebug() << Xmlutil::generateProfileXML(p);
61     mConfig.addProfile(p);
62     QString text = "Name: " + p.mName + " || Steps: " + QString::number(p.mNoOfSteps);
63     ui->mainProfileList->addItem(text);
64 }
65
66 void MainWindow::on_mainPBDelete_clicked()
67 {
68     if(ui->mainProfileList->count() <= 0 || ui->mainProfileList->currentRow() < 0)
69     {
70         QMessageBox msg;
71         msg.setText("Please select a profile first!");
72         msg.exec();
73         return;    
74     }
75
76     Profile p = mConfig.profileList.at(ui->mainProfileList->currentRow());
77     qDebug() << "Profile to be deleted: " << endl << Xmlutil::generateProfileXML(p);
78     QString *pText = (QString *) ui->mainProfileList->takeItem(ui->mainProfileList->currentRow());
79     delete pText;
80     mConfig.removeProfile(p);
81 }
82
83 void MainWindow::on_btnmainStartConference_clicked()
84 {
85     if(ui->mainProfileList->count() <= 0 || ui->mainProfileList->currentRow() < 0)
86     {
87         QMessageBox msg;
88         msg.setText("Please select a profile first!");
89         msg.exec();
90         return;
91     }
92     Profile p = mConfig.profileList.at(ui->mainProfileList->currentRow());
93     qDebug() << "Profile To Dial: " << endl << Xmlutil::generateProfileXML(p);
94     mConfMgr.setProfile(p);
95     mConfMgr.startConference();
96 }
97
98 void MainWindow::on_mainPBEditProfile_clicked()
99 {
100     if(ui->mainProfileList->count() <= 0 || ui->mainProfileList->currentRow() < 0)
101     {
102         QMessageBox msg;
103         msg.setText("Please select a profile first!");
104         msg.exec();
105         return;
106     }
107     bIsProfileEdited = true;
108     Profile p = mConfig.profileList.at(ui->mainProfileList->currentRow());
109     qDebug() << "Profile to be Edited: " << endl << Xmlutil::generateProfileXML(p);
110     mFrmAddProfile.setParent(this, Qt::Window);
111     mFrmAddProfile.setAttribute(Qt::WA_Maemo5StackedWindow);
112     mFrmAddProfile.clear();
113     mFrmAddProfile.showProfile(p);
114 }
115
116 void MainWindow::on_mainPBQuit_clicked()
117 {
118     mConfig.writeAllProfiles();
119     mConfig.closeConfig();
120     close();
121 }
122
123 void MainWindow::on_actionAbout_triggered()
124 {
125     AboutDialog abtdlg;
126     abtdlg.exec();
127 }
128
129 void MainWindow::on_actionAdd_Templated_Profile_triggered()
130 {
131     QMessageBox msg;
132     msg.setText("Placeholder for a nice function yet to be implemented!");
133     msg.exec();
134     return;
135 }