OSDN Git Service

[UI][Qt][OSD] Adjust font size.
authorK.Ohta <whatisthis.sowhat@gmail.com>
Sun, 30 Jul 2017 09:21:27 +0000 (18:21 +0900)
committerK.Ohta <whatisthis.sowhat@gmail.com>
Sun, 30 Jul 2017 09:21:27 +0000 (18:21 +0900)
[UI][Qt][OSD] Use two columns too manuy virtual medias.

13 files changed:
source/src/qt/common/emu_thread.cpp
source/src/qt/common/mainwidget.h
source/src/qt/common/qt_utils.cpp
source/src/qt/common/util_main.cpp
source/src/qt/gui/dock_disks.cpp
source/src/qt/gui/dock_disks.h
source/src/qt/gui/emu_thread_tmpl.cpp
source/src/qt/gui/emu_thread_tmpl.h
source/src/qt/gui/mainwidget_base.h
source/src/qt/gui/mainwindow_utils.cpp
source/src/qt/gui/menu_main.cpp
source/src/qt/gui/qt_gldraw.cpp
source/src/qt/gui/qt_gldraw.h

index 89e051d..3da2f82 100644 (file)
@@ -543,7 +543,6 @@ _exit:
 void EmuThreadClass::do_set_display_size(int w, int h, int ww, int wh)
 {
        p_emu->suspend();
-       //p_emu->set_vm_screen_size(w, h, -1, -1, ww, wh);
        p_emu->set_host_window_size(w, h, true);
 }
 
index 3c1a34d..c120416 100644 (file)
@@ -39,7 +39,6 @@ public:
        void StopJoyThread(void);
        void LaunchJoyThread(void);
        // Screen
-       //void OnWindowResize(void);
        void OnWindowMove(void);
        void OnWindowRedraw(void);
        void OnMainWindowClosed(void);
index d10d29f..0d5efa6 100644 (file)
@@ -294,6 +294,7 @@ void Ui_MainWindow::LaunchEmuThread(void)
 #endif
        connect(hRunEmu, SIGNAL(sig_resize_screen(int, int)),
                        glv, SLOT(resizeGL(int, int)));
+       connect(hRunEmu, SIGNAL(sig_resize_osd(int)), driveData, SLOT(setScreenWidth(int)));
        
        connect(glv, SIGNAL(sig_resize_uibar(int, int)),
                        this, SLOT(resize_statusbar(int, int)));
index d33bda0..7f4b90f 100644 (file)
@@ -62,7 +62,7 @@ void Ui_MainWindow::set_window(int mode)
                
                // set screen size to emu class
                emit sig_emu_set_display_size(width, height, width, height);
-               //emit sig_resize_screen(width, height);
+               emit sig_resize_osd(width);
                this->resize_statusbar(width, height);
        } else if(!now_fullscreen) {
                // fullscreen
@@ -88,7 +88,7 @@ void Ui_MainWindow::set_window(int mode)
                }
                p_config->window_mode = mode;
                emit sig_emu_set_display_size(using_flags->get_screen_width(), using_flags->get_screen_height(), width, height);
-               //emit sig_resize_screen(width, height);
+               emit sig_resize_osd(width);
                this->resize_statusbar(width, height);
        }
 }
index 1ce4284..951d37c 100644 (file)
@@ -3,7 +3,7 @@
 #include <QLabel>
 #include <QPixmap>
 #include <QHBoxLayout>
-#include <QVBoxLayout>
+#include <QGridLayout>
 #include <math.h>
 #include "dock_disks.h"
 #include "menu_flags.h"
@@ -120,7 +120,7 @@ void CSP_LabelVirtualDevice::setScreenWidth(int width, int basewidth)
        _mul = _w / _bw;
        _now_width = (int)((float)_width * _mul);
        _now_height = (int)((float)_height * _mul);
-       _now_pt = round(_base_pt * 100.0) / 100.0;
+       _now_pt = round((_base_pt * _mul) * 100.0) / 100.0;
 
        Message->setMinimumSize(_now_width, _now_height);
        Message->setMaximumSize(_now_width, _now_height);
@@ -129,7 +129,7 @@ void CSP_LabelVirtualDevice::setScreenWidth(int width, int basewidth)
        Indicator->setMaximumSize((int)(_now_pt * 1.2f), _now_height);
        
        cssstr = QString::fromUtf8("font: ");
-       ptstr.setNum(_base_pt);
+       ptstr.setNum(_now_pt);
        cssstr = cssstr + ptstr + QString::fromUtf8("pt \"Sans\"; ");
        
        Message->setStyleSheet(cssstr);
@@ -139,12 +139,16 @@ void CSP_LabelVirtualDevice::setScreenWidth(int width, int basewidth)
 CSP_DockDisks::CSP_DockDisks(QWidget *parent, USING_FLAGS *p) :  QWidget(parent)
 {
        QString ns, ms;
-       const float font_pt = 12.0f;
+       const float font_pt = 14.0f;
        using_flags = p;
-       HBox = new QHBoxLayout(this);
-       VBox = new QVBoxLayout(this);
-       HBox->setAlignment(Qt::AlignRight);
-       VBox->setAlignment(Qt::AlignTop);
+       int _x, _y;
+       int _wlots;
+       int _wmod;
+       two_rows = false;
+       _x = 0;
+       _y = 0;
+       HVBox = new QGridLayout(this);
+       HVBox->setAlignment(Qt::AlignRight);
 
        
        for(int i = 0; i < 8; i++) {
@@ -162,63 +166,151 @@ CSP_DockDisks::CSP_DockDisks(QWidget *parent, USING_FLAGS *p) :  QWidget(parent)
        }
        if(using_flags->is_use_laser_disc()) {
                        pLaserDisc[0] = new CSP_LabelVirtualDevice(this, 4, font_pt, QString::fromUtf8("CD"), 0);
-                       HBox->addWidget(pLaserDisc[0]);
+                       HVBox->addWidget(pLaserDisc[0], 0, _x);
                        pLaserDisc[0]->setVisible(true);
+                       _x++;
        }
        if(using_flags->is_use_compact_disc()) {
                        pCompactDisc[0] = new CSP_LabelVirtualDevice(this, 4, font_pt, QString::fromUtf8("CD"), 0);
-                       HBox->addWidget(pCompactDisc[0]);
+                       HVBox->addWidget(pCompactDisc[0], 0, _x);
                        pCompactDisc[0]->setVisible(true);
+                       _x++;
        }
        
        if(using_flags->is_use_cart()) {
+               if(using_flags->get_max_cart() >= 4) {
+                       _wlots = 4;
+                       _wmod = using_flags->get_max_cart() - 4;
+                       two_rows = true;
+               } else {
+                       _wlots = using_flags->get_max_cart();
+                       _wmod = 0;
+               }
                for(int i = 0; i < using_flags->get_max_cart(); i++) {
                        pCart[i] = new CSP_LabelVirtualDevice(this, 6, font_pt, QString::fromUtf8("CART"), i);
-                       HBox->addWidget(pCart[i]);
                        pCart[i]->setVisible(true);
                }
+               int _xtmp = _x;
+               for(int i = 0; i < _wlots; i++) {
+                       HVBox->addWidget(pCart[i], 0, _x);
+                       _x++;
+               }
+               for(int i = 0; i < _wmod; i++) {
+                       HVBox->addWidget(pCart[i + 4], 1, _xtmp);
+                       _xtmp++;
+               }
        }
        if(using_flags->is_use_binary_file()) {
+               if(using_flags->get_max_binary() >= 4) {
+                       _wlots = 4;
+                       _wmod = using_flags->get_max_binary() - 4;
+                       two_rows = true;
+               } else {
+                       _wlots = using_flags->get_max_binary();
+                       _wmod = 0;
+               }
                for(int i = 0; i < using_flags->get_max_binary(); i++) {
                        pBinary[i] = new CSP_LabelVirtualDevice(this, 6, font_pt, QString::fromUtf8("BIN"), i);
-                       HBox->addWidget(pBinary[i]);
                        pBinary[i]->setVisible(true);
                }
+               int _xtmp = _x;
+               for(int i = 0; i < _wlots; i++) {
+                       HVBox->addWidget(pBinary[i], 0, _x);
+                       _x++;
+               }
+               for(int i = 0; i < _wmod; i++) {
+                       HVBox->addWidget(pBinary[i + 4], 1, _xtmp);
+                       _xtmp++;
+               }
        }
        if(using_flags->is_use_bubble()) {
+               if(using_flags->get_max_bubble() >= 4) {
+                       _wlots = 4;
+                       _wmod = using_flags->get_max_bubble() - 4;
+                       two_rows = true;
+               } else {
+                       _wlots = using_flags->get_max_bubble();
+                       _wmod = 0;
+               }
                for(int i = 0; i < using_flags->get_max_bubble(); i++) {
                        pBubble[i] = new CSP_LabelVirtualDevice(this, 6, font_pt, QString::fromUtf8("BUB"), i);
-                       HBox->addWidget(pBubble[i]);
                        pBubble[i]->setVisible(true);
                }
+               int _xtmp = _x;
+               for(int i = 0; i < _wlots; i++) {
+                       HVBox->addWidget(pBubble[i], 0, _x);
+                       _x++;
+               }
+               for(int i = 0; i < _wmod; i++) {
+                       HVBox->addWidget(pBubble[i + 4], 1, _xtmp);
+                       _xtmp++;
+               }
        }
        if(using_flags->is_use_fd()) {
+               if(using_flags->get_max_drive() >= 4) {
+                       _wlots = 4;
+                       _wmod = using_flags->get_max_drive() - 4;
+                       two_rows = true;
+               } else {
+                       _wlots = using_flags->get_max_drive();
+                       _wmod = 0;
+               }
                for(int i = 0; i < using_flags->get_max_drive(); i++) {
                        pFloppyDisk[i] = new CSP_LabelVirtualDevice(this, 12, font_pt, QString::fromUtf8("FD"), i);
-                       HBox->addWidget(pFloppyDisk[i]);
                        pFloppyDisk[i]->setVisible(true);
                }
+               int _xtmp = _x;
+               for(int i = 0; i < _wlots; i++) {
+                       HVBox->addWidget(pFloppyDisk[i], 0, _x);
+                       _x++;
+               }
+               for(int i = 0; i < _wmod; i++) {
+                       HVBox->addWidget(pFloppyDisk[i + 4], 1, _xtmp);
+                       _xtmp++;
+               }
        }
        if(using_flags->is_use_qd()) {
+               if(using_flags->get_max_qd() >= 4) {
+                       _wlots = 4;
+                       _wmod = using_flags->get_max_qd() - 4;
+                       two_rows = true;
+               } else {
+                       _wlots = using_flags->get_max_qd();
+                       _wmod = 0;
+               }
                for(int i = 0; i < using_flags->get_max_qd(); i++) {
                        pQuickDisk[i] = new CSP_LabelVirtualDevice(this, 4, font_pt, QString::fromUtf8("QD"), i);
-                       HBox->addWidget(pQuickDisk[i]);
                        pQuickDisk[i]->setVisible(true);
                }
+               int _xtmp = _x;
+               for(int i = 0; i < _wlots; i++) {
+                       HVBox->addWidget(pQuickDisk[i], 0, _x);
+                       _x++;
+               }
+               for(int i = 0; i < _wmod; i++) {
+                       HVBox->addWidget(pQuickDisk[i + 4], 1, _xtmp);
+                       _xtmp++;
+               }
+
        }
        if(using_flags->is_use_tape()) {
                for(int i = 0; i < using_flags->get_max_tape(); i++) {
                        pCMT[i] = new CSP_LabelVirtualDevice(this, 12, font_pt, QString::fromUtf8("CMT"), i);
-                       HBox->addWidget(pCMT[i]);
+                       //HBox->addWidget(pCMT[i]);
+                       HVBox->addWidget(pCMT[i], 0, _x);
                        pCMT[i]->setVisible(true);
+                       _x++;
                }
        }
        {
                // ToDo: HDD.
        }
-       HBox->setContentsMargins(0, 0, 0, 0);
-       this->setLayout(HBox);
-       this->setGeometry(0, 0, this->width(), (int)(font_pt * 1.5));
+       HVBox->setContentsMargins(0, 0, 0, 0);
+       initial_width = this->width();
+       initial_height = (two_rows) ? (int)(font_pt * 3.0) : (int)(font_pt * 1.5);
+       base_width = 1280;
+       this->setLayout(HVBox);
+       this->setGeometry(0, 0, initial_width, initial_height);
 }
 
                        
@@ -462,3 +554,35 @@ void CSP_DockDisks::setOrientation(int loc)
        }
 #endif
 }
+
+void CSP_DockDisks::setScreenWidth(int width)
+{
+       float _mul = (float)width / (float)base_width;
+       int now_width = (int)((float)initial_width * _mul);
+       int now_height = (int)((float)initial_height * _mul);
+       for(int i = 0; i < 8; i++) {
+               if(pBinary[i] != NULL) pBinary[i]->setScreenWidth(width, -1);
+       }
+       for(int i = 0; i < 8; i++) {
+               if(pCart[i] != NULL) pCart[i]->setScreenWidth(width, -1);
+       }
+       for(int i = 0; i < 8; i++) {
+               if(pFloppyDisk[i] != NULL) pFloppyDisk[i]->setScreenWidth(width, -1);
+       }
+       for(int i = 0; i < 8; i++) {
+               if(pBubble[i] != NULL) pBubble[i]->setScreenWidth(width, -1);
+       }
+       for(int i = 0; i < 2; i++) {
+               if(pCMT[i] != NULL) pCMT[i]->setScreenWidth(width, -1);
+       }
+       for(int i = 0; i < 2; i++) {
+               if(pCompactDisc[i] != NULL) pCompactDisc[i]->setScreenWidth(width, -1);
+       }
+       for(int i = 0; i < 2; i++) {
+               if(pLaserDisc[i] != NULL) pLaserDisc[i]->setScreenWidth(width, -1);
+       }
+       for(int i = 0; i < 2; i++) {
+               if(pQuickDisk[i] != NULL) pQuickDisk[i]->setScreenWidth(width, -1);
+       }
+       this->setGeometry(0, 0, now_width, now_height);
+}
index a27cc1a..0521737 100644 (file)
@@ -72,8 +72,8 @@ class CSP_DockDisks : public QWidget {
        Q_OBJECT
 private:
        USING_FLAGS *using_flags;
-       QHBoxLayout *HBox;
-       QVBoxLayout *VBox;
+       //QHBoxLayout *HBox;
+       QGridLayout *HVBox;
        CSP_LabelVirtualDevice *pBinary[8];
        CSP_LabelVirtualDevice *pBubble[8];
        CSP_LabelVirtualDevice *pCart[8];
@@ -83,7 +83,11 @@ private:
        CSP_LabelVirtualDevice *pHardDisk[8];
        CSP_LabelVirtualDevice *pLaserDisc[2];
        CSP_LabelVirtualDevice *pQuickDisk[2];
-       
+
+       bool two_rows;
+       int initial_width;
+       int initial_height;
+       int base_width;
 public:
        CSP_DockDisks(QWidget *parent, USING_FLAGS *p);
        ~CSP_DockDisks();
@@ -94,6 +98,7 @@ public slots:
        void setVisibleLabel(int dom, int localNum, bool enabled);
        void setPixmap(int dom, int localNum, const QPixmap &);
        void setOrientation(int loc);
+       void setScreenWidth(int width);
 };
 QT_END_NAMESPACE
 
index 36879e0..7e4f70b 100644 (file)
@@ -220,6 +220,7 @@ void EmuThreadClassBase::set_tape_play(bool flag)
 void EmuThreadClassBase::resize_screen(int screen_width, int screen_height, int stretched_width, int stretched_height)
 {
        emit sig_resize_screen(screen_width, screen_height);
+       emit sig_resize_osd(screen_width);
 }
 
 void EmuThreadClassBase::sample_access_drv(void)
index 5b55916..e0ed313 100644 (file)
@@ -220,6 +220,7 @@ signals:
        int sig_send_data_led(quint32);
        int sig_resize_screen(int, int);
        int sig_resize_uibar(int, int);
+       int sig_resize_osd(int);
        int sig_is_enable_mouse(bool);
        int sig_debugger_input(QString);
        int sig_quit_debugger();
index e47fec0..387ffa3 100644 (file)
@@ -466,7 +466,6 @@ public:
        virtual void StopJoyThread(void);
        virtual void LaunchJoyThread(void);
        // Screen
-       virtual void OnWindowResize(void);
        virtual void OnWindowMove(void);
        virtual void OnWindowRedraw(void);
    
@@ -660,6 +659,8 @@ signals:
        int sig_emu_set_display_size(int, int, int, int);
        int sig_emu_update_volume_level(int, int);
        int sig_emu_update_volume_balance(int, int);
+
+       int sig_resize_osd(int);
        
        int sig_write_protect_disk(int drv, bool flag);
        int sig_open_disk(int, QString, int);
index 32c6873..72a485e 100644 (file)
@@ -134,13 +134,16 @@ void Ui_MainWindowBase::set_screen_size(int w, int h)
                if(using_flags->get_config_ptr()->rotate_type) {
                        this->graphicsView->setFixedSize(h, w);
                        this->resize_statusbar(h, w);
+                       //emit sig_resize_osd(h);
                } else {
                        this->graphicsView->setFixedSize(w, h);
                        this->resize_statusbar(w, h);
+                       //emit sig_resize_osd(w);
                }
        } else  {
                this->graphicsView->setFixedSize(w, h);
                this->resize_statusbar(w, h);
+               //emit sig_resize_osd(w);
        }
    
        MainWindow->centralWidget()->adjustSize();
index 320c222..5c4ebe9 100644 (file)
@@ -367,6 +367,8 @@ void Ui_MainWindowBase::setupUi(void)
        }       
        driveData->setOrientation(using_flags->get_config_ptr()->virtual_media_position);
        connect(this, SIGNAL(sig_set_orientation_osd(int)), driveData, SLOT(setOrientation(int)));
+       //connect(this, SIGNAL(sig_resize_osd(int)), driveData, SLOT(setScreenWidth(int)));
+       connect(graphicsView, SIGNAL(sig_resize_osd(int)), driveData, SLOT(setScreenWidth(int)));
 
        MainWindow->setFocusProxy(graphicsView);
        //driveData->setAllowedAreas(Qt::RightToolBarArea | Qt::BottomToolBarArea);
@@ -1290,12 +1292,6 @@ void Ui_MainWindowBase::OnWindowMove(void)
 {
 }
 
-void Ui_MainWindowBase::OnWindowResize(void)
-{
-       if(using_flags->get_emu()) {
-               set_window(using_flags->get_config_ptr()->window_mode);
-       }
-}
 
 void Ui_MainWindowBase::OnWindowRedraw(void)
 {
index a70f746..a28992a 100644 (file)
@@ -78,6 +78,7 @@ void GLDrawClass::resizeGL(int width, int height)
        //do_set_texture_size(imgptr, screen_texture_width, screen_texture_height);
        csp_logger->debug_log(CSP_LOG_DEBUG, CSP_LOG_TYPE_GENERAL, "ResizeGL: %dx%d", width , height);
        emit sig_resize_uibar(width, height);
+       emit sig_resize_osd(width);
 }
 
 
index 1d2967a..9ddab64 100644 (file)
@@ -158,6 +158,7 @@ signals:
        int sig_key_up(uint32_t, uint32_t);
        int sig_set_display_osd(bool);
        int sig_display_osd_leds(int,bool);
+       int sig_resize_osd(int);
 };
 
 #endif // End.