diff --git a/sources/configdialog.cpp b/sources/configdialog.cpp index 12f6f0ea9..e5963dd7e 100644 --- a/sources/configdialog.cpp +++ b/sources/configdialog.cpp @@ -19,15 +19,22 @@ #include "configpages.h" #include "qetapp.h" +#include "machine_info.h" + /** Constructeur @param parent QWidget parent */ ConfigDialog::ConfigDialog(QWidget *parent) : QDialog(parent) { + Machine_info *mymachineinfo= new Machine_info(this); // liste des pages pages_list = new QListWidget(); pages_list -> setViewMode(QListView::IconMode); - pages_list -> setIconSize(QSize(128, 128)); + if(mymachineinfo->get_max_screen_height()<1000){ + pages_list -> setIconSize(QSize(64, 64)); + } else { + pages_list -> setIconSize(QSize(128, 128)); + } pages_list -> setMovement(QListView::Static); pages_list -> setMinimumWidth(168); pages_list -> setMaximumWidth(168); diff --git a/sources/machine_info.cpp b/sources/machine_info.cpp new file mode 100644 index 000000000..0bb9ba2a1 --- /dev/null +++ b/sources/machine_info.cpp @@ -0,0 +1,68 @@ +#include "machine_info.h" +#include +#include + +/** + @brief Machine_info::Machine_info + @param parent +*/ +Machine_info::Machine_info(QObject *parent) : QObject(parent) +{ + init_get_Screen_info(); +} + +/** + @brief Machine_info::init_get_Screen_info + Finds the largest screen and saves the values +*/ +void Machine_info::init_get_Screen_info() +{ + const auto screens = qApp->screens(); + for (int ii = 0; ii < screens.count(); ++ii) + { + if( + Max_screen_width + < + screens[ii]->geometry().width() + * + screens[ii]->devicePixelRatio() + ) + { + Max_screen_width = + screens[ii]->geometry().width() + * + screens[ii]->devicePixelRatio(); + } + if( + Max_screen_height + < + screens[ii]->geometry().height() + * + screens[ii]->devicePixelRatio() + ) + { + Max_screen_height = + screens[ii]->geometry().height() + * + screens[ii]->devicePixelRatio(); + } + } +} + +/** + @brief Machine_info::get_max_screen_width + @return max screen width + */ +int32_t Machine_info::get_max_screen_width() +{ + return Max_screen_width; +} + +/** + @brief Machine_info::get_max_screen_height + @return max screen height +*/ +int32_t Machine_info::get_max_screen_height() +{ + return Max_screen_height; +} diff --git a/sources/machine_info.h b/sources/machine_info.h new file mode 100644 index 000000000..4bcfaff13 --- /dev/null +++ b/sources/machine_info.h @@ -0,0 +1,28 @@ +#ifndef MACHINE_INFO_H +#define MACHINE_INFO_H + +#include + +/** + @brief The Machine_info class + This class hold information from your PC. +*/ +class Machine_info : public QObject +{ + Q_OBJECT +public: + explicit Machine_info(QObject *parent = nullptr); + int32_t get_max_screen_width(); + int32_t get_max_screen_height(); + +signals: + +private: + void init_get_Screen_info(); + int32_t Max_screen_width; + int32_t Max_screen_height; + + +}; + +#endif // MACHINE_INFO_H