-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathexerciseinfowindow.cpp
38 lines (32 loc) · 1.21 KB
/
exerciseinfowindow.cpp
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
#include "exerciseinfowindow.h"
#include "ui_exerciseinfowindow.h"
ExerciseInfoWindow::ExerciseInfoWindow(const ExerciseInfo &info,
QWidget *parent) :
QDialog(parent),
ui(new Ui::ExerciseInfoWindow),
info(QSharedPointer<ExerciseInfo>::create()){
ui->setupUi(this);
updateUiContent(info);
setExerciseInfo(info);
// При изменении информации обновляем контент окна this
connect(this,
SIGNAL(changeInfo(ExerciseInfo)),
SLOT(updateUiContent(ExerciseInfo)));
}
ExerciseInfoWindow::~ExerciseInfoWindow(){
delete ui;
}
void ExerciseInfoWindow::setExerciseInfo(const ExerciseInfo &info){
auto internalInfo = this->info.data();
*internalInfo = info;
emit changeInfo(info);
}
/* Обновляет графический интерфейс новой информацией об упражнении
* info.
*/
void ExerciseInfoWindow::updateUiContent(const ExerciseInfo& info){
setWindowTitle(info.getName());
auto&& image =QPixmap::fromImage(QImage(info.getPathToImage()));
ui->imageExercise->setPixmap(std::move(image));
ui->describtion->setText(info.getDescribtion());
}