From 8b46ee25ac1409929f9a11efb254525e19b9b0bf Mon Sep 17 00:00:00 2001 From: Adrien Destugues Date: Tue, 2 Dec 2014 11:17:58 +0100 Subject: [PATCH] Screen prefs: move driver info to main window * Fixes relevant part of #5125 * The remaining information (serial number, frequency ranges) is "advanced" and can be hidden in the tooltip. However, the video driver used may be important important information, if you want to know if you are using VESA, or if you have multiple video cards (Optimus for example). --- src/preferences/screen/ScreenWindow.cpp | 41 +++++++++++++++---------- src/preferences/screen/ScreenWindow.h | 1 + 2 files changed, 25 insertions(+), 17 deletions(-) diff --git a/src/preferences/screen/ScreenWindow.cpp b/src/preferences/screen/ScreenWindow.cpp index 76e317d826..ed840f7f18 100644 --- a/src/preferences/screen/ScreenWindow.cpp +++ b/src/preferences/screen/ScreenWindow.cpp @@ -221,6 +221,10 @@ ScreenWindow::ScreenWindow(ScreenSettings* settings) fMonitorInfo->SetAlignment(B_ALIGN_CENTER); screenBox->AddChild(fMonitorInfo); + fDeviceInfo = new BStringView("monitor info", ""); + fDeviceInfo->SetAlignment(B_ALIGN_CENTER); + screenBox->AddChild(fDeviceInfo); + fMonitorView = new MonitorView(BRect(0.0, 0.0, 80.0, 80.0), "monitor", screen.Frame().IntegerWidth() + 1, screen.Frame().IntegerHeight() + 1); @@ -1255,6 +1259,25 @@ ScreenWindow::_UpdateMonitor() fMonitorInfo->Hide(); } + // Add info about the graphics device + + accelerant_device_info deviceInfo; + + if (fScreenMode.GetDeviceInfo(deviceInfo) == B_OK) { + BString deviceString; + + if (deviceInfo.name[0] && deviceInfo.chipset[0]) { + deviceString.SetToFormat("%s (%s)", deviceInfo.name, + deviceInfo.chipset); + } else if (deviceInfo.name[0] || deviceInfo.chipset[0]) { + deviceString + = deviceInfo.name[0] ? deviceInfo.name : deviceInfo.chipset; + } + + fDeviceInfo->SetText(deviceString); + } + + char text[512]; size_t length = 0; text[0] = 0; @@ -1279,23 +1302,7 @@ ScreenWindow::_UpdateMonitor() && length < sizeof(text)) { length += snprintf(text + length, sizeof(text) - length, " (%u/%u)", info.produced.week, info.produced.year); - } - } - } - - // Add info about the graphics device - - accelerant_device_info deviceInfo; - if (fScreenMode.GetDeviceInfo(deviceInfo) == B_OK - && length < sizeof(text)) { - if (deviceInfo.name[0] && deviceInfo.chipset[0]) { - length += snprintf(text + length, sizeof(text) - length, - "%s%s (%s)", length != 0 ? "\n\n" : "", deviceInfo.name, - deviceInfo.chipset); - } else if (deviceInfo.name[0] || deviceInfo.chipset[0]) { - length += snprintf(text + length, sizeof(text) - length, - "%s%s", length != 0 ? "\n\n" : "", deviceInfo.name[0] - ? deviceInfo.name : deviceInfo.chipset); + } } } diff --git a/src/preferences/screen/ScreenWindow.h b/src/preferences/screen/ScreenWindow.h index aa905425ba..1d24134b1e 100644 --- a/src/preferences/screen/ScreenWindow.h +++ b/src/preferences/screen/ScreenWindow.h @@ -70,6 +70,7 @@ private: bool fBootWorkspaceApplied; BStringView* fMonitorInfo; + BStringView* fDeviceInfo; MonitorView* fMonitorView; BMenuItem* fAllWorkspacesItem;