-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathsendingprogram.cpp
More file actions
70 lines (59 loc) · 2.16 KB
/
sendingprogram.cpp
File metadata and controls
70 lines (59 loc) · 2.16 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
#include "sendingprogram.h"
#include "DataStruct/usersingleton.h"
#include "define.h"
#include <string>
#include <cstdlib>
#include <QMessageBox>
#include <QTextStream>
#include <QFile>
#include <QApplication>
using namespace std;
SendingProgram::SendingProgram(const char* t_path, QObject *parent) : QObject(parent){
m_chooseDestinationUI = nullptr;
m_fileTransfering = nullptr;
if (!UserSingleton::get_instance().open()){
showError("ERRORE GRAVE: Impossibile aprire la memoria condivisa!");
exit(EXIT_FAILURE);
}
QFile f(":/style/better/Style/better.stylesheet");
if (!f.exists()) {
showError("Impossibile settare lo stile, il file non esiste");
}
else {
f.open(QFile::ReadOnly | QFile::Text);
QTextStream ts(&f);
qApp->setStyleSheet(ts.readAll());
}
try{
m_userVector = UserSingleton::get_instance().getList();
}catch(runtime_error error){
showError("Errore nell'apertura della lista utenti condivisa,\nil programma verrà chiuso");
exit(EXIT_FAILURE);
}
m_chooseDestinationUI = new ShowUsers(false, t_path);
wstring filePath = convertCharToWString(t_path);
m_fileTransfering = new SenderManager(filePath);
QObject::connect(m_chooseDestinationUI, SIGNAL(sendToUsers(std::vector<User>)), m_fileTransfering, SLOT(sendToUsers(std::vector<User>)));
QObject::connect(m_fileTransfering, SIGNAL(error(QString)), this, SLOT(showError(QString)), Qt::DirectConnection);
m_chooseDestinationUI->createList(m_userVector);
m_chooseDestinationUI->show();
}
SendingProgram::~SendingProgram(){
safeDelete(m_chooseDestinationUI);
safeDelete(m_fileTransfering);
}
void SendingProgram::showError(QString errorText){
QMessageBox errorBox;
errorBox.setText(errorText);
errorBox.exec();
}
//converte la stringa di caratteri in wstring
wstring SendingProgram::convertCharToWString(const char* t_charString){
const size_t stringSize = strlen(t_charString);
wstring returnWString;
if (stringSize > 0){
returnWString.resize(stringSize);
mbstowcs(&returnWString[0], t_charString, stringSize);
}
return returnWString;
}