Merge pull request #1388 from waddlesplash/dolphin-qt
DolphinQt: About dialog fixes, SystemInfo dialog
This commit is contained in:
commit
5f21683343
|
@ -20,8 +20,8 @@ struct CPUInfo
|
|||
{
|
||||
CPUVendor vendor;
|
||||
|
||||
char cpu_string[0x21];
|
||||
char brand_string[0x41];
|
||||
char cpu_string[0x41];
|
||||
char brand_string[0x21];
|
||||
bool OS64bit;
|
||||
bool CPU64bit;
|
||||
bool Mode64bit;
|
||||
|
|
|
@ -102,25 +102,25 @@ void CPUInfo::Detect()
|
|||
// Assume CPU supports the CPUID instruction. Those that don't can barely
|
||||
// boot modern OS:es anyway.
|
||||
int cpu_id[4];
|
||||
memset(cpu_string, 0, sizeof(cpu_string));
|
||||
memset(brand_string, 0, sizeof(brand_string));
|
||||
|
||||
// Detect CPU's CPUID capabilities, and grab cpu string
|
||||
__cpuid(cpu_id, 0x00000000);
|
||||
u32 max_std_fn = cpu_id[0]; // EAX
|
||||
*((int *)cpu_string) = cpu_id[1];
|
||||
*((int *)(cpu_string + 4)) = cpu_id[3];
|
||||
*((int *)(cpu_string + 8)) = cpu_id[2];
|
||||
*((int *)brand_string) = cpu_id[1];
|
||||
*((int *)(brand_string + 4)) = cpu_id[3];
|
||||
*((int *)(brand_string + 8)) = cpu_id[2];
|
||||
__cpuid(cpu_id, 0x80000000);
|
||||
u32 max_ex_fn = cpu_id[0];
|
||||
if (!strcmp(cpu_string, "GenuineIntel"))
|
||||
if (!strcmp(brand_string, "GenuineIntel"))
|
||||
vendor = VENDOR_INTEL;
|
||||
else if (!strcmp(cpu_string, "AuthenticAMD"))
|
||||
else if (!strcmp(brand_string, "AuthenticAMD"))
|
||||
vendor = VENDOR_AMD;
|
||||
else
|
||||
vendor = VENDOR_OTHER;
|
||||
|
||||
// Set reasonable default brand string even if brand string not available.
|
||||
strcpy(brand_string, cpu_string);
|
||||
strcpy(cpu_string, brand_string);
|
||||
|
||||
// Detect family and other misc stuff.
|
||||
bool ht = false;
|
||||
|
@ -178,13 +178,13 @@ void CPUInfo::Detect()
|
|||
|
||||
if (max_ex_fn >= 0x80000004)
|
||||
{
|
||||
// Extract brand string
|
||||
// Extract CPU model string
|
||||
__cpuid(cpu_id, 0x80000002);
|
||||
memcpy(brand_string, cpu_id, sizeof(cpu_id));
|
||||
memcpy(cpu_string, cpu_id, sizeof(cpu_id));
|
||||
__cpuid(cpu_id, 0x80000003);
|
||||
memcpy(brand_string + 16, cpu_id, sizeof(cpu_id));
|
||||
memcpy(cpu_string + 16, cpu_id, sizeof(cpu_id));
|
||||
__cpuid(cpu_id, 0x80000004);
|
||||
memcpy(brand_string + 32, cpu_id, sizeof(cpu_id));
|
||||
memcpy(cpu_string + 32, cpu_id, sizeof(cpu_id));
|
||||
}
|
||||
if (max_ex_fn >= 0x80000001)
|
||||
{
|
||||
|
@ -229,6 +229,10 @@ void CPUInfo::Detect()
|
|||
std::string CPUInfo::Summarize()
|
||||
{
|
||||
std::string sum(cpu_string);
|
||||
sum += " (";
|
||||
sum += brand_string;
|
||||
sum += ")";
|
||||
|
||||
if (bSSE) sum += ", SSE";
|
||||
if (bSSE2)
|
||||
{
|
||||
|
|
|
@ -5,29 +5,27 @@
|
|||
#include <QDesktopServices>
|
||||
#include <QUrl>
|
||||
|
||||
#include "AboutDialog.h"
|
||||
#include "ui_AboutDialog.h"
|
||||
|
||||
#include "Common/Common.h"
|
||||
#include "Common/StdMakeUnique.h"
|
||||
|
||||
DAboutDialog::DAboutDialog(QWidget* p)
|
||||
: QDialog(p)
|
||||
#include "DolphinQt/AboutDialog.h"
|
||||
#include "DolphinQt/Utils/Utils.h"
|
||||
|
||||
DAboutDialog::DAboutDialog(QWidget* parent_widget)
|
||||
: QDialog(parent_widget)
|
||||
{
|
||||
ui = std::make_unique<Ui::DAboutDialog>();
|
||||
ui->setupUi(this);
|
||||
ui->label->setText(ui->label->text().arg(QLatin1String(scm_desc_str),
|
||||
QStringLiteral("2014"),
|
||||
QLatin1String(scm_branch_str),
|
||||
QLatin1String(scm_rev_git_str),
|
||||
QStringLiteral(__DATE__),
|
||||
QStringLiteral(__TIME__)));
|
||||
setWindowModality(Qt::WindowModal);
|
||||
setAttribute(Qt::WA_DeleteOnClose);
|
||||
|
||||
m_ui = std::make_unique<Ui::DAboutDialog>();
|
||||
m_ui->setupUi(this);
|
||||
m_ui->label->setText(m_ui->label->text().arg(SC(scm_desc_str),
|
||||
SL("2014"), SC(scm_branch_str), SC(scm_rev_git_str),
|
||||
SL(__DATE__), SL(__TIME__)));
|
||||
}
|
||||
|
||||
DAboutDialog::~DAboutDialog()
|
||||
{
|
||||
}
|
||||
|
||||
void DAboutDialog::on_label_linkActivated(const QString &link)
|
||||
{
|
||||
QDesktopServices::openUrl(QUrl(link));
|
||||
}
|
||||
|
|
|
@ -17,12 +17,9 @@ class DAboutDialog : public QDialog
|
|||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit DAboutDialog(QWidget* p = nullptr);
|
||||
explicit DAboutDialog(QWidget* parent_widget = nullptr);
|
||||
~DAboutDialog();
|
||||
|
||||
private slots:
|
||||
void on_label_linkActivated(const QString& link);
|
||||
|
||||
private:
|
||||
std::unique_ptr<Ui::DAboutDialog> ui;
|
||||
std::unique_ptr<Ui::DAboutDialog> m_ui;
|
||||
};
|
||||
|
|
|
@ -6,57 +6,39 @@
|
|||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>375</width>
|
||||
<height>534</height>
|
||||
<width>504</width>
|
||||
<height>458</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
|
||||
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>375</width>
|
||||
<height>0</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>375</width>
|
||||
<height>16777215</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>About Dolphin</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<item row="0" column="0">
|
||||
<layout class="QVBoxLayout" name="verticalLayout">
|
||||
<item>
|
||||
<widget class="QLabel" name="label">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="MinimumExpanding">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string><big><b>Dolphin</b></big> %1<br>
|
||||
© 2003-%2 Dolphin Team<br>
|
||||
Branch: %3<br>
|
||||
Revision: %4<br>
|
||||
Compiled: %5 @ %6<br>
|
||||
Dolphin is a GameCube/Wii emulator, which was originally written by F|RES and ector. Today Dolphin is an open source project with many contributors, too many to list. If interested, just go check out <a href="https://github.com/dolphin-emu/dolphin">the project page</a>.<br>
|
||||
Dolphin is a GameCube/Wii emulator, which was originally written by<br>F|RES and ector. Today Dolphin is an open source project with many<br> contributors, too many to list. If interested, just go check out <a href="https://github.com/dolphin-emu/dolphin">the project<br>page</a>.<br>
|
||||
<br>
|
||||
Special thanks to Bushing, Costis, CrowTRobo, Marcan, Segher, Titanik, or9, and Hotquik for their reverse engineering and docs/demos.<br>
|
||||
Special thanks to Bushing, Costis, CrowTRobo, Marcan, Segher, Titanik,<br>or9, and Hotquik for their reverse engineering and docs/demos.<br>
|
||||
<br>
|
||||
Big thanks to Gilles Mouchard whose Microlib PPC emulator gave our development a kickstart.<br>
|
||||
Big thanks to Gilles Mouchard whose Microlib PPC emulator gave our<br> development a kickstart.<br>
|
||||
<br>
|
||||
Thanks to Frank Wille for his PowerPC disassembler, which or9 and we modified to include Gekko specifics.<br>
|
||||
Thanks to Frank Wille for his PowerPC disassembler, which or9 and we<br> modified to include Gekko specifics.<br>
|
||||
<br>
|
||||
Thanks to hcs/destop for their GC ADPCM decoder.<br>
|
||||
<br>
|
||||
We are not affiliated with Nintendo in any way. GameCube and Wii are trademarks of Nintendo. This emulator should not be used to play games you do not legally own.</string>
|
||||
We are not affiliated with Nintendo in any way. GameCube and Wii are<br> trademarks of Nintendo. This emulator should not be used to play games<br>you do not legally own.</string>
|
||||
</property>
|
||||
<property name="textFormat">
|
||||
<enum>Qt::RichText</enum>
|
||||
|
@ -64,12 +46,12 @@ We are not affiliated with Nintendo in any way. GameCube and Wii are trademarks
|
|||
<property name="alignment">
|
||||
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
|
||||
</property>
|
||||
<property name="wordWrap">
|
||||
<property name="openExternalLinks">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<item>
|
||||
<widget class="QDialogButtonBox" name="buttonBox">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
|
|
|
@ -7,21 +7,35 @@ set(CMAKE_AUTOMOC ON)
|
|||
set(SRCS
|
||||
AboutDialog.cpp
|
||||
AboutDialog.h
|
||||
Host.cpp
|
||||
Main.cpp
|
||||
MainWindow.cpp
|
||||
MainWindow.h
|
||||
Host.cpp
|
||||
SystemInfo.cpp
|
||||
Utils/Resources.cpp
|
||||
Utils/Utils.cpp
|
||||
VideoInterface/VideoInterface.cpp)
|
||||
VideoInterface/VideoInterface.cpp
|
||||
)
|
||||
|
||||
set(UIS
|
||||
AboutDialog.ui
|
||||
MainWindow.ui)
|
||||
MainWindow.ui
|
||||
SystemInfo.ui
|
||||
)
|
||||
|
||||
set(LIBS core uicommon)
|
||||
|
||||
if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
|
||||
# Link against OS X system frameworks.
|
||||
list(APPEND LIBS
|
||||
${APPKIT_LIBRARY}
|
||||
${AU_LIBRARY}
|
||||
${COREAUDIO_LIBRARY}
|
||||
${COREFUND_LIBRARY}
|
||||
${CORESERV_LIBRARY}
|
||||
${IOK_LIBRARY}
|
||||
${FORCEFEEDBACK}
|
||||
)
|
||||
set(DOLPHINQT_BINARY DolphinQt)
|
||||
else()
|
||||
set(DOLPHINQT_BINARY dolphin-emu-qt)
|
||||
|
@ -31,3 +45,46 @@ qt5_wrap_ui(UI_HEADERS ${UIS})
|
|||
add_executable(${DOLPHINQT_BINARY} ${SRCS} ${UI_HEADERS})
|
||||
target_link_libraries(${DOLPHINQT_BINARY} ${LIBS})
|
||||
qt5_use_modules(${DOLPHINQT_BINARY} Widgets)
|
||||
|
||||
if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
|
||||
# Note: This is based on the DolphinWX version.
|
||||
|
||||
include(BundleUtilities)
|
||||
set(BUNDLE_PATH ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${DOLPHINQT_BINARY}.app)
|
||||
|
||||
# Ask for an application bundle.
|
||||
set_target_properties(${DOLPHINQT_BINARY} PROPERTIES
|
||||
MACOSX_BUNDLE true
|
||||
MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_SOURCE_DIR}/Info.plist.in
|
||||
)
|
||||
|
||||
# get rid of any old copies
|
||||
file (REMOVE_RECURSE ${BUNDLE_PATH}/Contents/Resources/Sys)
|
||||
if(NOT SKIP_POSTPROCESS_BUNDLE)
|
||||
# Fix up the bundle after it is finished.
|
||||
# There does not seem to be an easy way to run CMake commands post-build,
|
||||
# so we invoke CMake again on a generated script.
|
||||
file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/postprocess_bundle.cmake "
|
||||
include(BundleUtilities)
|
||||
message(\"Fixing up application bundle: ${BUNDLE_PATH}\")
|
||||
message(\"(Note: This is only necessary to produce a redistributable binary.\")
|
||||
message(\"To skip, pass -DSKIP_POSTPROCESS_BUNDLE=1 to cmake.)\")
|
||||
set(BU_CHMOD_BUNDLE_ITEMS ON)
|
||||
fixup_bundle(\"${BUNDLE_PATH}\" \"\" \"\")
|
||||
file(INSTALL ${CMAKE_SOURCE_DIR}/Data/Sys
|
||||
DESTINATION ${BUNDLE_PATH}/Contents/Resources
|
||||
)
|
||||
")
|
||||
add_custom_command(TARGET ${DOLPHINQT_BINARY} POST_BUILD
|
||||
COMMAND ${CMAKE_COMMAND} -P postprocess_bundle.cmake
|
||||
)
|
||||
else()
|
||||
add_custom_command(OUTPUT ${BUNDLE_PATH}/Contents/Resources/Sys
|
||||
COMMAND ln -nfs ${CMAKE_SOURCE_DIR}/Data/Sys ${BUNDLE_PATH}/Contents/Resources/Sys
|
||||
VERBATIM
|
||||
)
|
||||
add_custom_target(CopyDataIntoBundle ALL
|
||||
DEPENDS ${BUNDLE_PATH}/Contents/Resources/Sys
|
||||
)
|
||||
endif()
|
||||
endif()
|
||||
|
|
|
@ -61,11 +61,14 @@
|
|||
<ItemGroup>
|
||||
<QtMoc Include="AboutDialog.h" />
|
||||
<QtMoc Include="MainWindow.h" />
|
||||
<QtMoc Include="SystemInfo.h" />
|
||||
</ItemGroup>
|
||||
<!--TODO figure out how to get QtMoc to add outputs to ClCompile's inputs...-->
|
||||
<ItemGroup>
|
||||
<ClCompile Include="$(QtMocOutPrefix)AboutDialog.cpp" />
|
||||
<ClCompile Include="$(QtMocOutPrefix)MainWindow.cpp" />
|
||||
<ClCompile Include="$(QtMocOutPrefix)SystemInfo.cpp" />
|
||||
<ClCompile Include="SystemInfo.cpp" />
|
||||
<ClCompile Include="Utils\Resources.cpp" />
|
||||
<ClCompile Include="Utils\Utils.cpp" />
|
||||
<ClCompile Include="VideoInterface\VideoInterface.cpp" />
|
||||
|
|
|
@ -14,10 +14,12 @@
|
|||
<ClCompile Include="Utils\Utils.cpp">
|
||||
<Filter>Utils</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="SystemInfo.cpp" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<QtMoc Include="AboutDialog.h" />
|
||||
<QtMoc Include="MainWindow.h" />
|
||||
<QtMoc Include="SystemInfo.h" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<QtUi Include="*.ui" />
|
||||
|
|
|
@ -0,0 +1,80 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>CFBundleDocumentTypes</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>CFBundleTypeExtensions</key>
|
||||
<array>
|
||||
<string>ciso</string>
|
||||
<string>dol</string>
|
||||
<string>elf</string>
|
||||
<string>gcm</string>
|
||||
<string>gcz</string>
|
||||
<string>iso</string>
|
||||
<string>wad</string>
|
||||
<string>wbfs</string>
|
||||
</array>
|
||||
<key>CFBundleTypeIconFile</key>
|
||||
<string>Dolphin.icns</string>
|
||||
<key>CFBundleTypeName</key>
|
||||
<string>Nintendo GC/Wii file</string>
|
||||
<key>CFBundleTypeRole</key>
|
||||
<string>Viewer</string>
|
||||
</dict>
|
||||
</array>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>DolphinQt</string>
|
||||
<key>CFBundleIconFile</key>
|
||||
<string>Resources/Dolphin.icns</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>org.dolphin-emu.dolphin</string>
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
<string>English</string>
|
||||
<key>CFBundleLocalizations</key>
|
||||
<array>
|
||||
<string>ar</string>
|
||||
<string>ca</string>
|
||||
<string>cs</string>
|
||||
<string>de</string>
|
||||
<string>el</string>
|
||||
<string>en</string>
|
||||
<string>es</string>
|
||||
<string>fa</string>
|
||||
<string>fr</string>
|
||||
<string>he</string>
|
||||
<string>hu</string>
|
||||
<string>it</string>
|
||||
<string>ja</string>
|
||||
<string>ko</string>
|
||||
<string>nb</string>
|
||||
<string>nl</string>
|
||||
<string>pl</string>
|
||||
<string>pt</string>
|
||||
<string>pt_BR</string>
|
||||
<string>ru</string>
|
||||
<string>sr</string>
|
||||
<string>sv</string>
|
||||
<string>tr</string>
|
||||
<string>zh_CN</string>
|
||||
<string>zh_TW</string>
|
||||
</array>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>APPL</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>${DOLPHIN_WC_DESCRIBE}</string>
|
||||
<key>CFBundleLongVersionString</key>
|
||||
<string>${DOLPHIN_WC_REVISION}</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>${DOLPHIN_VERSION_MAJOR}.${DOLPHIN_VERSION_MINOR}</string>
|
||||
<key>NSHumanReadableCopyright</key>
|
||||
<string>Licensed under GPL version 2</string>
|
||||
<key>LSMinimumSystemVersion</key>
|
||||
<string>${OSX_MIN_VERSION}</string>
|
||||
<key>NSHighResolutionCapable</key>
|
||||
<true/>
|
||||
<key>CSResourcesFileMapped</key>
|
||||
<true/>
|
||||
</dict>
|
||||
</plist>
|
|
@ -11,17 +11,22 @@
|
|||
|
||||
#include "DolphinQt/AboutDialog.h"
|
||||
#include "DolphinQt/MainWindow.h"
|
||||
#include "DolphinQt/SystemInfo.h"
|
||||
#include "DolphinQt/Utils/Resources.h"
|
||||
#include "DolphinQt/Utils/Utils.h"
|
||||
|
||||
DMainWindow::DMainWindow(QWidget* parent_widget)
|
||||
: QMainWindow(parent_widget)
|
||||
{
|
||||
ui = std::make_unique<Ui::DMainWindow>();
|
||||
ui->setupUi(this);
|
||||
m_ui = std::make_unique<Ui::DMainWindow>();
|
||||
m_ui->setupUi(this);
|
||||
|
||||
Resources::Init();
|
||||
ui->actOpen->setIcon(Resources::GetIcon(Resources::TOOLBAR_OPEN));
|
||||
m_ui->actOpen->setIcon(Resources::GetIcon(Resources::TOOLBAR_OPEN));
|
||||
|
||||
#ifdef Q_OS_MACX
|
||||
m_ui->toolbar->setMovable(false);
|
||||
#endif
|
||||
}
|
||||
|
||||
DMainWindow::~DMainWindow()
|
||||
|
@ -43,8 +48,14 @@ void DMainWindow::on_actGitHub_triggered()
|
|||
QDesktopServices::openUrl(QUrl(SL("https://github.com/dolphin-emu/dolphin/")));
|
||||
}
|
||||
|
||||
void DMainWindow::on_actSystemInfo_triggered()
|
||||
{
|
||||
DSystemInfo* dlg = new DSystemInfo(this);
|
||||
dlg->open();
|
||||
}
|
||||
|
||||
void DMainWindow::on_actAbout_triggered()
|
||||
{
|
||||
DAboutDialog dlg;
|
||||
dlg.exec();
|
||||
DAboutDialog* dlg = new DAboutDialog(this);
|
||||
dlg->open();
|
||||
}
|
||||
|
|
|
@ -26,8 +26,9 @@ private slots:
|
|||
void on_actWebsite_triggered();
|
||||
void on_actOnlineDocs_triggered();
|
||||
void on_actGitHub_triggered();
|
||||
void on_actSystemInfo_triggered();
|
||||
void on_actAbout_triggered();
|
||||
|
||||
private:
|
||||
std::unique_ptr<Ui::DMainWindow> ui;
|
||||
std::unique_ptr<Ui::DMainWindow> m_ui;
|
||||
};
|
||||
|
|
|
@ -6,8 +6,8 @@
|
|||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>996</width>
|
||||
<height>596</height>
|
||||
<width>992</width>
|
||||
<height>592</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
|
@ -31,8 +31,8 @@
|
|||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>996</width>
|
||||
<height>21</height>
|
||||
<width>992</width>
|
||||
<height>24</height>
|
||||
</rect>
|
||||
</property>
|
||||
<widget class="QMenu" name="mnuFile">
|
||||
|
@ -69,6 +69,7 @@
|
|||
<addaction name="actOnlineDocs"/>
|
||||
<addaction name="actGitHub"/>
|
||||
<addaction name="separator"/>
|
||||
<addaction name="actSystemInfo"/>
|
||||
<addaction name="actAbout"/>
|
||||
</widget>
|
||||
<widget class="QMenu" name="mnuMovie">
|
||||
|
@ -87,7 +88,7 @@
|
|||
<widget class="QStatusBar" name="statusbar"/>
|
||||
<widget class="QToolBar" name="toolbar">
|
||||
<property name="windowTitle">
|
||||
<string>toolBar</string>
|
||||
<string>Toolbar</string>
|
||||
</property>
|
||||
<attribute name="toolBarArea">
|
||||
<enum>TopToolBarArea</enum>
|
||||
|
@ -119,11 +120,19 @@
|
|||
</action>
|
||||
<action name="actOpen">
|
||||
<property name="text">
|
||||
<string>Open</string>
|
||||
<string>&Open</string>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string>Open file...</string>
|
||||
</property>
|
||||
<property name="shortcut">
|
||||
<string>Ctrl+O</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actSystemInfo">
|
||||
<property name="text">
|
||||
<string>&System Information</string>
|
||||
</property>
|
||||
</action>
|
||||
</widget>
|
||||
<resources/>
|
||||
|
|
Binary file not shown.
|
@ -0,0 +1,106 @@
|
|||
// Copyright 2014 Dolphin Emulator Project
|
||||
// Licensed under GPLv2
|
||||
// Refer to the license.txt file included.
|
||||
|
||||
#include <QClipboard>
|
||||
#include <QPushButton>
|
||||
#include <QThread>
|
||||
|
||||
#include "ui_SystemInfo.h"
|
||||
|
||||
#include "Common/Common.h"
|
||||
#include "Common/CPUDetect.h"
|
||||
#include "Common/StdMakeUnique.h"
|
||||
|
||||
#include "DolphinQt/SystemInfo.h"
|
||||
#include "DolphinQt/Utils/Utils.h"
|
||||
|
||||
DSystemInfo::DSystemInfo(QWidget* parent_widget) :
|
||||
QDialog(parent_widget)
|
||||
{
|
||||
setWindowModality(Qt::WindowModal);
|
||||
setAttribute(Qt::WA_DeleteOnClose);
|
||||
|
||||
m_ui = std::make_unique<Ui::DSystemInfo>();
|
||||
m_ui->setupUi(this);
|
||||
|
||||
UpdateSystemInfo();
|
||||
|
||||
QPushButton* btn = m_ui->buttonBox->addButton(tr("Copy"), QDialogButtonBox::ActionRole);
|
||||
connect(btn, SIGNAL(pressed()), this, SLOT(btnCopy_pressed()));
|
||||
}
|
||||
|
||||
DSystemInfo::~DSystemInfo()
|
||||
{
|
||||
}
|
||||
|
||||
void DSystemInfo::btnCopy_pressed()
|
||||
{
|
||||
QClipboard* clipboard = QApplication::clipboard();
|
||||
clipboard->setText(m_ui->txtSysInfo->toPlainText());
|
||||
}
|
||||
|
||||
void DSystemInfo::UpdateSystemInfo()
|
||||
{
|
||||
QString sysinfo;
|
||||
|
||||
sysinfo += SL("System\n===========================\n");
|
||||
sysinfo += SL("OS: %1\n").arg(GetOS());
|
||||
sysinfo += SL("CPU: %1, %2 cores\n").arg(QString::fromStdString(cpu_info.Summarize()))
|
||||
.arg(QThread::idealThreadCount());
|
||||
|
||||
sysinfo += SL("\nDolphin\n===========================\n");
|
||||
sysinfo += SL("SCM: branch %1, rev %2\n").arg(SC(scm_branch_str)).arg(SC(scm_rev_git_str));
|
||||
sysinfo += SL("Compiled: %1, %2\n").arg(SL(__DATE__)).arg(SL(__TIME__));
|
||||
|
||||
sysinfo += SL("\nGUI\n===========================\n");
|
||||
sysinfo += SL("Compiled for Qt: %1\n").arg(SL(QT_VERSION_STR));
|
||||
sysinfo += SL("Running on Qt: %1").arg(SC(qVersion()));
|
||||
|
||||
m_ui->txtSysInfo->setPlainText(sysinfo);
|
||||
}
|
||||
|
||||
QString DSystemInfo::GetOS()
|
||||
{
|
||||
QString ret;
|
||||
/* DON'T REORDER WITHOUT READING Qt DOCS! */
|
||||
#if defined(Q_OS_WIN)
|
||||
ret += SL("Windows ");
|
||||
switch (QSysInfo::WindowsVersion) {
|
||||
case QSysInfo::WV_VISTA: ret += SL("Vista"); break;
|
||||
case QSysInfo::WV_WINDOWS7: ret += SL("7"); break;
|
||||
case QSysInfo::WV_WINDOWS8: ret += SL("8"); break;
|
||||
default: ret += SL("(unknown)"); break;
|
||||
}
|
||||
#elif defined(Q_OS_MAC)
|
||||
ret += SL("Mac OS X ");
|
||||
switch (QSysInfo::MacintoshVersion) {
|
||||
case QSysInfo::MV_10_7: ret += SL("10.7"); break;
|
||||
case QSysInfo::MV_10_8: ret += SL("10.8"); break;
|
||||
case QSysInfo::MV_10_9: ret += SL("10.9"); break;
|
||||
default: ret += SL("(unknown)"); break;
|
||||
}
|
||||
#elif defined(Q_OS_LINUX)
|
||||
ret += SL("Linux");
|
||||
#elif defined(Q_OS_FREEBSD)
|
||||
ret += SL("FreeBSD");
|
||||
#elif defined(Q_OS_OPENBSD)
|
||||
ret += SL("OpenBSD");
|
||||
#elif defined(Q_OS_NETBSD)
|
||||
ret += SL("NetBSD");
|
||||
#elif defined(Q_OS_BSD4)
|
||||
ret += SL("Other BSD");
|
||||
#elif defined(Q_OS_UNIX)
|
||||
ret += SL("Unix");
|
||||
#else
|
||||
ret += SL("Unknown");
|
||||
#endif
|
||||
|
||||
#if defined(Q_WS_X11) || defined(Q_OS_X11)
|
||||
ret += SL(" X11");
|
||||
#elif defined(Q_WS_WAYLAND)
|
||||
ret += SL(" Wayland");
|
||||
#endif
|
||||
|
||||
return ret;
|
||||
}
|
|
@ -0,0 +1,31 @@
|
|||
// Copyright 2014 Dolphin Emulator Project
|
||||
// Licensed under GPLv2
|
||||
// Refer to the license.txt file included.
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <memory>
|
||||
#include <QDialog>
|
||||
|
||||
namespace Ui
|
||||
{
|
||||
class DSystemInfo;
|
||||
}
|
||||
|
||||
class DSystemInfo : public QDialog
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit DSystemInfo(QWidget* parent_widget = nullptr);
|
||||
~DSystemInfo();
|
||||
|
||||
private slots:
|
||||
void btnCopy_pressed();
|
||||
|
||||
private:
|
||||
std::unique_ptr<Ui::DSystemInfo> m_ui;
|
||||
|
||||
void UpdateSystemInfo();
|
||||
QString GetOS();
|
||||
};
|
|
@ -0,0 +1,71 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>DSystemInfo</class>
|
||||
<widget class="QDialog" name="DSystemInfo">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>446</width>
|
||||
<height>298</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>System Information</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<item row="0" column="0" colspan="2">
|
||||
<widget class="QPlainTextEdit" name="txtSysInfo">
|
||||
<property name="readOnly">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QDialogButtonBox" name="buttonBox">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="standardButtons">
|
||||
<set>QDialogButtonBox::Close</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections>
|
||||
<connection>
|
||||
<sender>buttonBox</sender>
|
||||
<signal>accepted()</signal>
|
||||
<receiver>DSystemInfo</receiver>
|
||||
<slot>accept()</slot>
|
||||
<hints>
|
||||
<hint type="sourcelabel">
|
||||
<x>248</x>
|
||||
<y>254</y>
|
||||
</hint>
|
||||
<hint type="destinationlabel">
|
||||
<x>157</x>
|
||||
<y>274</y>
|
||||
</hint>
|
||||
</hints>
|
||||
</connection>
|
||||
<connection>
|
||||
<sender>buttonBox</sender>
|
||||
<signal>rejected()</signal>
|
||||
<receiver>DSystemInfo</receiver>
|
||||
<slot>reject()</slot>
|
||||
<hints>
|
||||
<hint type="sourcelabel">
|
||||
<x>316</x>
|
||||
<y>260</y>
|
||||
</hint>
|
||||
<hint type="destinationlabel">
|
||||
<x>286</x>
|
||||
<y>274</y>
|
||||
</hint>
|
||||
</hints>
|
||||
</connection>
|
||||
</connections>
|
||||
</ui>
|
|
@ -8,7 +8,11 @@
|
|||
|
||||
#include "Common/CommonTypes.h"
|
||||
|
||||
// Shorter version of QStringLiteral(str)
|
||||
// Use this to encapsulate ASCII string literals
|
||||
#define SL(str) QStringLiteral(str)
|
||||
|
||||
// Use this to encapsulate string constants and functions that
|
||||
// return "char*"s
|
||||
#define SC(str) QString::fromLatin1(str)
|
||||
|
||||
QString NiceSizeFormat(s64 size);
|
||||
|
|
Loading…
Reference in New Issue