diff --git a/Code/Mantid/Framework/Kernel/inc/MantidKernel/MantidVersion.h b/Code/Mantid/Framework/Kernel/inc/MantidKernel/MantidVersion.h index 365382ae08097af63a0c672504a5f6a09a31f0b5..12148d50a48d25463077c20d8b771e1a3b52f168 100644 --- a/Code/Mantid/Framework/Kernel/inc/MantidKernel/MantidVersion.h +++ b/Code/Mantid/Framework/Kernel/inc/MantidKernel/MantidVersion.h @@ -38,6 +38,7 @@ class MANTID_KERNEL_DLL MantidVersion { public: static const char* version(); ///< The full version number + static std::string releaseNotes(); ///< The url to the most applicable release notes static const char* revision(); ///< The abbreviated SHA-1 of the last commit static const char* revisionFull(); ///< The full SHA-1 of the last commit static const char* releaseDate(); ///< The date of the last commit diff --git a/Code/Mantid/Framework/Kernel/src/MantidVersion.cpp.in b/Code/Mantid/Framework/Kernel/src/MantidVersion.cpp.in index f013ac33e0c5fbf09cda19169e1e6df89054f5ff..5ef3da09d35e7b7ec2c5e40cb366898e9c371e96 100644 --- a/Code/Mantid/Framework/Kernel/src/MantidVersion.cpp.in +++ b/Code/Mantid/Framework/Kernel/src/MantidVersion.cpp.in @@ -17,6 +17,26 @@ const char* MantidVersion::version() return "@VERSION_MAJOR@.@VERSION_MINOR@.@VERSION_PATCH@"; } +std::string MantidVersion::releaseNotes() +{ + const std::string STEM = "http://www.mantidproject.org/Release_Notes_"; + // Cast here in those cases where patch number is of the form 20131022.1356. + const unsigned int patchVersion = static_cast<unsigned int>(@VERSION_PATCH@); + + // For major/minor/patch releases we point users to a specific release-notes, for + // dev versions we just point to the last main release notes. A simple way to see whether or not + // we're currently in a dev version is to check if the patch version is larger than + // some arbitrarily low value. + + std::stringstream url; + url << STEM << @VERSION_MAJOR@ << "." << @VERSION_MINOR@; + + if(( patchVersion < 100 ) && ( patchVersion != 0 )) + url << "." << patchVersion; + + return url.str(); +} + const char* MantidVersion::revision() { return "@MtdVersion_WC_LAST_CHANGED_SHA@"; @@ -42,7 +62,7 @@ std::string MantidVersion::doi() // dev versions we just point to the main DOI. A simple way to see whether or not // we're currently in a dev version is to check if the patch version is larger than // some arbitrarily low value. - if( patchVersion > 10 ) + if( patchVersion > 100 ) return MAIN; std::stringstream doi; diff --git a/Code/Mantid/Images/Misc-Tutorial-icon-32x32.png b/Code/Mantid/Images/Misc-Tutorial-icon-32x32.png new file mode 100644 index 0000000000000000000000000000000000000000..0d42946a7210420213f5dc140c6e496c2dd766f3 Binary files /dev/null and b/Code/Mantid/Images/Misc-Tutorial-icon-32x32.png differ diff --git a/Code/Mantid/Images/Misc-Tutorial-icon-48x48.png b/Code/Mantid/Images/Misc-Tutorial-icon-48x48.png new file mode 100644 index 0000000000000000000000000000000000000000..aaf49c9cd3118185be67de01b0850075cd0130bb Binary files /dev/null and b/Code/Mantid/Images/Misc-Tutorial-icon-48x48.png differ diff --git a/Code/Mantid/Images/Notepad-Bloc-notes-icon-32x32.png b/Code/Mantid/Images/Notepad-Bloc-notes-icon-32x32.png new file mode 100644 index 0000000000000000000000000000000000000000..ea21321a26795a770ac11b0be65220f895ae05bc Binary files /dev/null and b/Code/Mantid/Images/Notepad-Bloc-notes-icon-32x32.png differ diff --git a/Code/Mantid/Images/Notepad-Bloc-notes-icon-48x48.png b/Code/Mantid/Images/Notepad-Bloc-notes-icon-48x48.png new file mode 100644 index 0000000000000000000000000000000000000000..d2848f994c8d50ff36985d2f3e3c4a463ebf4e46 Binary files /dev/null and b/Code/Mantid/Images/Notepad-Bloc-notes-icon-48x48.png differ diff --git a/Code/Mantid/Images/Plugin-Python-icon-32x32.png b/Code/Mantid/Images/Plugin-Python-icon-32x32.png new file mode 100644 index 0000000000000000000000000000000000000000..9fc042dc3ee55ff1a2150a009625da5567c8dc54 Binary files /dev/null and b/Code/Mantid/Images/Plugin-Python-icon-32x32.png differ diff --git a/Code/Mantid/Images/Plugin-icon-32x32.png b/Code/Mantid/Images/Plugin-icon-32x32.png new file mode 100644 index 0000000000000000000000000000000000000000..770d695ebd6b609c9cd214fe4db0b90c81032fe3 Binary files /dev/null and b/Code/Mantid/Images/Plugin-icon-32x32.png differ diff --git a/Code/Mantid/Images/Python-icon-16x16.png b/Code/Mantid/Images/Python-icon-16x16.png new file mode 100644 index 0000000000000000000000000000000000000000..8b826f3c901e5dc0709d7fa3d7eb25ef3f5b64d8 Binary files /dev/null and b/Code/Mantid/Images/Python-icon-16x16.png differ diff --git a/Code/Mantid/Images/Python-icon-32x32.png b/Code/Mantid/Images/Python-icon-32x32.png new file mode 100644 index 0000000000000000000000000000000000000000..aea7dc1d15e70cee5a5843da94fab244fb084a5c Binary files /dev/null and b/Code/Mantid/Images/Python-icon-32x32.png differ diff --git a/Code/Mantid/Images/Python-icon-48x48.png b/Code/Mantid/Images/Python-icon-48x48.png new file mode 100644 index 0000000000000000000000000000000000000000..7aa33433e786277195c87e6bcdd0d2ddb6ae3251 Binary files /dev/null and b/Code/Mantid/Images/Python-icon-48x48.png differ diff --git a/Code/Mantid/Images/download-icon-32x32.png b/Code/Mantid/Images/download-icon-32x32.png new file mode 100644 index 0000000000000000000000000000000000000000..f06cba9da1340586b35853e8bc8686c16ce9ed8b Binary files /dev/null and b/Code/Mantid/Images/download-icon-32x32.png differ diff --git a/Code/Mantid/Images/download-icon-48x48.png b/Code/Mantid/Images/download-icon-48x48.png new file mode 100644 index 0000000000000000000000000000000000000000..029a5074bfcbd25d92f8ed298e2e073dcf3ba2e7 Binary files /dev/null and b/Code/Mantid/Images/download-icon-48x48.png differ diff --git a/Code/Mantid/Images/images.qrc b/Code/Mantid/Images/images.qrc index 9dc7a7d883417faca80c1104b5966c985f3af0ad..2c24bc7433946fb9ee68dd3aa15ebb0ce0261361 100644 --- a/Code/Mantid/Images/images.qrc +++ b/Code/Mantid/Images/images.qrc @@ -37,6 +37,17 @@ </qresource> <qresource prefix="/Icons"> <file>LoadFile.png</file> + <file>Notepad-Bloc-notes-icon-48x48.png</file> + <file>Notepad-Bloc-notes-icon-32x32.png</file> + <file>download-icon-48x48.png</file> + <file>download-icon-32x32.png</file> + <file>Python-icon-48x48.png</file> + <file>Python-icon-32x32.png</file> + <file>Python-icon-16x16.png</file> + <file>Plugin-icon-32x32.png</file> + <file>Plugin-Python-icon-32x32.png</file> + <file>Misc-Tutorial-icon-48x48.png</file> + <file>Misc-Tutorial-icon-32x32.png</file> </qresource> <qresource prefix="/PickTools"> <file>zoom.png</file> diff --git a/Code/Mantid/MantidPlot/src/ApplicationWindow.cpp b/Code/Mantid/MantidPlot/src/ApplicationWindow.cpp index d731de22c1720c5e3f795ac1f2d093a4237ad518..9f882a85b5eef90fc3450f26be2fc1f62e442e70 100644 --- a/Code/Mantid/MantidPlot/src/ApplicationWindow.cpp +++ b/Code/Mantid/MantidPlot/src/ApplicationWindow.cpp @@ -585,12 +585,35 @@ void ApplicationWindow::init(bool factorySettings, const QStringList& args) g_log.warning("The scripting language is set to muParser. This is probably not what you want! Change the default in View->Preferences."); } - // Need to show first time setup dialog? + // Need to show first time setup dialog?# + if (shouldWeShowFirstTimeSetup()) + { + showFirstTimeSetup(); + } + + using namespace Mantid::API; + // Do this as late as possible to avoid unnecessary updates + AlgorithmFactory::Instance().enableNotifications(); + AlgorithmFactory::Instance().notificationCenter.postNotification(new AlgorithmFactoryUpdateNotification); + + /* + The scripting enironment call setScriptingLanguage is trampling over the PATH, so we have to set it again. + Here we do not off the setup dialog. + */ + const bool skipDialog = true; + trySetParaviewPath(args, skipDialog); +} + +bool ApplicationWindow::shouldWeShowFirstTimeSetup() +{ + //first check the facility and instrument + using Mantid::Kernel::ConfigService; + auto & config = ConfigService::Instance(); std::string facility = config.getString("default.facility"); std::string instrument = config.getString("default.instrument"); if ( facility.empty() || instrument.empty() ) { - showFirstTimeSetup(); + return true; } else { @@ -607,20 +630,29 @@ void ApplicationWindow::init(bool factorySettings, const QStringList& args) //failed to find the facility or instrument g_log.error()<<"Could not find your default facility '" << facility <<"' or instrument '" << instrument << "' in facilities.xml, showing please select again." << std::endl; - showFirstTimeSetup(); + return true; } } - using namespace Mantid::API; - // Do this as late as possible to avoid unnecessary updates - AlgorithmFactory::Instance().enableNotifications(); - AlgorithmFactory::Instance().notificationCenter.postNotification(new AlgorithmFactoryUpdateNotification); - /* - The scripting enironment call setScriptingLanguage is trampling over the PATH, so we have to set it again. - Here we do not off the setup dialog. - */ - const bool skipDialog = true; - trySetParaviewPath(args, skipDialog); + QSettings settings; + settings.beginGroup("Mantid/FirstUse"); + const bool doNotShowUntilNextRelease = settings.value("DoNotShowUntilNextRelease", 0).toInt(); + const QString lastVersion = settings.value("LastVersion", "").toString(); + settings.endGroup(); + + if (!doNotShowUntilNextRelease) + { + return true; + } + + //Now check if the version has changed since last time + const QString version = QString::fromStdString(Mantid::Kernel::MantidVersion::releaseNotes()); + if (version != lastVersion) + { + return true; + } + + return false; } /* diff --git a/Code/Mantid/MantidPlot/src/ApplicationWindow.h b/Code/Mantid/MantidPlot/src/ApplicationWindow.h index c262317bdc0ced491fd9807e5ecc0af6773a13e4..c4767a4fc72937a0e069dea51ee14a4632f57c81 100644 --- a/Code/Mantid/MantidPlot/src/ApplicationWindow.h +++ b/Code/Mantid/MantidPlot/src/ApplicationWindow.h @@ -1208,6 +1208,8 @@ private: /// void showalgorithmDescriptions(); + /// Contains the rules of when to show the FirstTimeSetup UI. + bool shouldWeShowFirstTimeSetup(); /// Open up the FirstRunSetup dialog void showFirstTimeSetup(); diff --git a/Code/Mantid/MantidPlot/src/Mantid/FirstTimeSetup.cpp b/Code/Mantid/MantidPlot/src/Mantid/FirstTimeSetup.cpp index fad72df740c812ee0dd9b869c52ef5a453351455..934fddbdf9107e3da19e1f691f97e3e7d9bf3fa6 100644 --- a/Code/Mantid/MantidPlot/src/Mantid/FirstTimeSetup.cpp +++ b/Code/Mantid/MantidPlot/src/Mantid/FirstTimeSetup.cpp @@ -1,8 +1,13 @@ #include "FirstTimeSetup.h" #include "MantidKernel/ConfigService.h" +#include "MantidKernel/MantidVersion.h" #include "MantidQtAPI/ManageUserDirectories.h" -FirstTimeSetup::FirstTimeSetup(QWidget *parent) : QDialog(parent,Qt::WindowStaysOnTopHint) +#include <QDesktopServices> +#include <QSettings> +#include <QUrl> + +FirstTimeSetup::FirstTimeSetup(QWidget *parent) : QDialog(parent) { m_uiForm.setupUi(this); initLayout(); @@ -14,11 +19,26 @@ FirstTimeSetup::~FirstTimeSetup() void FirstTimeSetup::initLayout() { + this->setWindowTitle(this->windowTitle() + " " + Mantid::Kernel::MantidVersion::version()); + connect(m_uiForm.pbConfirm, SIGNAL(clicked()), this, SLOT(confirm())); connect(m_uiForm.pbCancel, SIGNAL(clicked()), this, SLOT(cancel())); connect(m_uiForm.cbFacility, SIGNAL(currentIndexChanged(const QString&)), this, SLOT(facilitySelected(const QString &))); connect(m_uiForm.pbMUD, SIGNAL(clicked()), this, SLOT(openManageUserDirectories())); + connect(m_uiForm.clbReleaseNotes, SIGNAL(clicked()), this, SLOT(openReleaseNotes())); + connect(m_uiForm.clbSampleDatasets, SIGNAL(clicked()), this, SLOT(openSampleDatasets())); + connect(m_uiForm.clbMantidIntroduction, SIGNAL(clicked()), this, SLOT(openMantidIntroduction())); + connect(m_uiForm.clbPythonIntroduction, SIGNAL(clicked()), this, SLOT(openPythonIntroduction())); + connect(m_uiForm.clbPythonInMantid, SIGNAL(clicked()), this, SLOT(openPythonInMantid())); + connect(m_uiForm.clbExtendingMantid, SIGNAL(clicked()), this, SLOT(openExtendingMantid())); + + QSettings settings; + settings.beginGroup("Mantid/FirstUse"); + const bool doNotShowUntilNextRelease = settings.value("DoNotShowUntilNextRelease", 0).toInt(); + settings.endGroup(); + m_uiForm.chkDoNotShowUntilNextRelease->setChecked(doNotShowUntilNextRelease); + // Populate list of facilities m_uiForm.cbFacility->clear(); auto faclist = Mantid::Kernel::ConfigService::Instance().getFacilityNames(); @@ -36,6 +56,12 @@ void FirstTimeSetup::confirm() config.setString("default.instrument", m_uiForm.cbInstrument->currentText().toStdString()); config.saveConfig(filename); + QSettings settings; + settings.beginGroup("Mantid/FirstUse"); + settings.setValue("DoNotShowUntilNextRelease", (m_uiForm.chkDoNotShowUntilNextRelease->isChecked()? 1 : 0)); + settings.setValue("LastVersion", QString::fromStdString(Mantid::Kernel::MantidVersion::releaseNotes())); + settings.endGroup(); + // Close the dialog this->close(); } @@ -58,3 +84,29 @@ void FirstTimeSetup::openManageUserDirectories() ad->show(); ad->setFocus(); } + +void FirstTimeSetup::openReleaseNotes() +{ + QDesktopServices::openUrl(QUrl(QString::fromStdString(Mantid::Kernel::MantidVersion::releaseNotes()))); +} + +void FirstTimeSetup::openSampleDatasets() +{ + QDesktopServices::openUrl(QUrl("http://download.mantidproject.org")); +} +void FirstTimeSetup::openMantidIntroduction() +{ + QDesktopServices::openUrl(QUrl("http://www.mantidproject.org/Mantid_Basic_Course")); +} +void FirstTimeSetup::openPythonIntroduction() +{ + QDesktopServices::openUrl(QUrl("http://www.mantidproject.org/Introduction_To_Python")); +} +void FirstTimeSetup::openPythonInMantid() +{ + QDesktopServices::openUrl(QUrl("http://www.mantidproject.org/Python_In_Mantid")); +} +void FirstTimeSetup::openExtendingMantid() +{ + QDesktopServices::openUrl(QUrl("http://www.mantidproject.org/Extending_Mantid_With_Python")); +} diff --git a/Code/Mantid/MantidPlot/src/Mantid/FirstTimeSetup.h b/Code/Mantid/MantidPlot/src/Mantid/FirstTimeSetup.h index d4309388f3a8fba8dc4da56bfe4e954f08284277..52e7af4405720b63491ba7e175dba5ffd8dde1bd 100644 --- a/Code/Mantid/MantidPlot/src/Mantid/FirstTimeSetup.h +++ b/Code/Mantid/MantidPlot/src/Mantid/FirstTimeSetup.h @@ -24,6 +24,13 @@ private slots: void confirm(); void cancel(); + void openReleaseNotes(); + void openSampleDatasets(); + void openMantidIntroduction(); + void openPythonIntroduction(); + void openPythonInMantid(); + void openExtendingMantid(); + void facilitySelected(const QString& facility); void openManageUserDirectories(); diff --git a/Code/Mantid/MantidPlot/src/Mantid/FirstTimeSetup.ui b/Code/Mantid/MantidPlot/src/Mantid/FirstTimeSetup.ui index 02744a27690feddbac531f75ce05cc2addd97def..3c90dc45c6f3fca4bd4f956320952104dced413b 100644 --- a/Code/Mantid/MantidPlot/src/Mantid/FirstTimeSetup.ui +++ b/Code/Mantid/MantidPlot/src/Mantid/FirstTimeSetup.ui @@ -6,7 +6,7 @@ <rect> <x>0</x> <y>0</y> - <width>1002</width> + <width>998</width> <height>567</height> </rect> </property> @@ -20,42 +20,68 @@ <string>Welcome to Mantid</string> </property> <property name="styleSheet"> - <string notr="true">QDialog{background-image: url(:/First_use_Background.png);} + <string notr="true">QDialog#FirstTimeSetup{background-image: url(:/First_use_Background.png);} color: rgb(255, 255, 255);</string> </property> - <widget class="QLabel" name="lbUpdate"> + <widget class="QWidget" name="layoutWidget4"> <property name="geometry"> <rect> - <x>430</x> - <y>530</y> - <width>361</width> - <height>31</height> + <x>10</x> + <y>540</y> + <width>981</width> + <height>25</height> </rect> </property> - <property name="styleSheet"> - <string notr="true">color: rgb(255, 255, 255);</string> - </property> - <property name="text"> - <string><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> + <layout class="QHBoxLayout" name="horizontalLayout"> + <item> + <widget class="QCheckBox" name="chkDoNotShowUntilNextRelease"> + <property name="styleSheet"> + <string notr="true">color: rgb(255, 255, 255);</string> + </property> + <property name="text"> + <string>Do not show again until next release</string> + </property> + <property name="checked"> + <bool>false</bool> + </property> + </widget> + </item> + <item> + <spacer name="horizontalSpacer"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>40</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + <item> + <widget class="QLabel" name="lbUpdate"> + <property name="minimumSize"> + <size> + <width>370</width> + <height>0</height> + </size> + </property> + <property name="styleSheet"> + <string notr="true">color: rgb(255, 255, 255);</string> + </property> + <property name="text"> + <string><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } </style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8pt; font-weight:400; font-style:normal;"> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">You can revisit this dialog by selecting &quot;First Time Setup&quot; on the Help menu.</p></body></html></string> - </property> - <property name="wordWrap"> - <bool>true</bool> - </property> - </widget> - <widget class="QWidget" name="layoutWidget"> - <property name="geometry"> - <rect> - <x>797</x> - <y>530</y> - <width>191</width> - <height>25</height> - </rect> - </property> - <layout class="QHBoxLayout" name="horizontalLayout"> + </property> + <property name="wordWrap"> + <bool>true</bool> + </property> + </widget> + </item> <item> <widget class="QPushButton" name="pbCancel"> <property name="text"> @@ -81,10 +107,10 @@ p, li { white-space: pre-wrap; } <widget class="QGroupBox" name="grpPersonalSetup"> <property name="geometry"> <rect> - <x>800</x> - <y>400</y> - <width>191</width> - <height>121</height> + <x>740</x> + <y>410</y> + <width>251</width> + <height>111</height> </rect> </property> <property name="styleSheet"> @@ -93,128 +119,93 @@ p, li { white-space: pre-wrap; } <property name="title"> <string>Personal Setup</string> </property> - <widget class="QWidget" name="layoutWidget"> - <property name="geometry"> - <rect> - <x>100</x> - <y>20</y> - <width>71</width> - <height>48</height> - </rect> - </property> - <layout class="QGridLayout" name="gridLayout"/> - </widget> - <widget class="QLabel" name="label"> - <property name="geometry"> - <rect> - <x>11</x> - <y>21</y> - <width>91</width> - <height>20</height> - </rect> - </property> - <property name="autoFillBackground"> - <bool>false</bool> - </property> - <property name="styleSheet"> - <string notr="true">color: rgb(255, 255, 255);</string> - </property> - <property name="text"> - <string>Default Facility</string> - </property> - </widget> - <widget class="QComboBox" name="cbFacility"> - <property name="geometry"> - <rect> - <x>108</x> - <y>21</y> - <width>69</width> - <height>20</height> - </rect> - </property> - <property name="styleSheet"> - <string notr="true">color: rgb(0, 0, 0);</string> - </property> - </widget> - <widget class="QLabel" name="label_2"> - <property name="geometry"> - <rect> - <x>11</x> - <y>47</y> - <width>91</width> - <height>20</height> - </rect> - </property> - <property name="styleSheet"> - <string notr="true">color: rgb(255, 255, 255);</string> - </property> - <property name="text"> - <string>Default Instrument</string> - </property> - </widget> - <widget class="MantidQt::MantidWidgets::InstrumentSelector" name="cbInstrument"> - <property name="geometry"> - <rect> - <x>108</x> - <y>47</y> - <width>69</width> - <height>20</height> - </rect> - </property> - <property name="styleSheet"> - <string notr="true">color: rgb(0, 0, 0);</string> - </property> - </widget> - <widget class="QLabel" name="lbMUD"> + <widget class="QWidget" name="layoutWidget1"> <property name="geometry"> <rect> <x>10</x> - <y>70</y> - <width>131</width> - <height>26</height> + <y>20</y> + <width>231</width> + <height>80</height> </rect> </property> - <property name="styleSheet"> - <string notr="true">color: rgb(255, 255, 255);</string> - </property> - <property name="text"> - <string><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> + <layout class="QFormLayout" name="formLayout"> + <item row="0" column="0"> + <widget class="QLabel" name="label"> + <property name="autoFillBackground"> + <bool>false</bool> + </property> + <property name="styleSheet"> + <string notr="true">color: rgb(255, 255, 255);</string> + </property> + <property name="text"> + <string>Default Facility</string> + </property> + </widget> + </item> + <item row="0" column="1"> + <widget class="QComboBox" name="cbFacility"> + <property name="styleSheet"> + <string notr="true">color: rgb(0, 0, 0);</string> + </property> + </widget> + </item> + <item row="1" column="0"> + <widget class="QLabel" name="label_2"> + <property name="styleSheet"> + <string notr="true">color: rgb(255, 255, 255);</string> + </property> + <property name="text"> + <string>Default Instrument</string> + </property> + </widget> + </item> + <item row="1" column="1"> + <widget class="MantidQt::MantidWidgets::InstrumentSelector" name="cbInstrument"> + <property name="styleSheet"> + <string notr="true">color: rgb(0, 0, 0);</string> + </property> + </widget> + </item> + <item row="2" column="0"> + <widget class="QLabel" name="lbMUD"> + <property name="styleSheet"> + <string notr="true">color: rgb(255, 255, 255);</string> + </property> + <property name="text"> + <string><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } </style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Set local data directories:</p></body></html></string> - </property> - <property name="wordWrap"> - <bool>true</bool> - </property> - </widget> - <widget class="QPushButton" name="pbMUD"> - <property name="geometry"> - <rect> - <x>50</x> - <y>90</y> - <width>125</width> - <height>23</height> - </rect> - </property> - <property name="styleSheet"> - <string notr="true">color: rgb(0, 0, 0);</string> - </property> - <property name="text"> - <string>Manage User Directories</string> - </property> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Set local data directories</p></body></html></string> + </property> + <property name="wordWrap"> + <bool>true</bool> + </property> + </widget> + </item> + <item row="2" column="1"> + <widget class="QPushButton" name="pbMUD"> + <property name="styleSheet"> + <string notr="true">color: rgb(0, 0, 0);</string> + </property> + <property name="text"> + <string>Manage User Directories</string> + </property> + </widget> + </item> + </layout> </widget> </widget> - <widget class="QWidget" name=""> + <widget class="QWidget" name="layoutWidget2"> <property name="geometry"> <rect> <x>80</x> <y>200</y> - <width>307</width> + <width>313</width> <height>138</height> </rect> </property> - <layout class="QVBoxLayout" name="verticalLayout"> + <layout class="QVBoxLayout" name="verticalLayout1"> <item> <widget class="QCommandLinkButton" name="clbReleaseNotes"> <property name="font"> @@ -236,12 +227,12 @@ p, li { white-space: pre-wrap; } </property> <property name="icon"> <iconset resource="../../../Images/images.qrc"> - <normaloff>:/win/running_process.png</normaloff>:/win/running_process.png</iconset> + <normaloff>:/Icons/Notepad-Bloc-notes-icon-48x48.png</normaloff>:/Icons/Notepad-Bloc-notes-icon-48x48.png</iconset> </property> <property name="iconSize"> <size> - <width>40</width> - <height>40</height> + <width>48</width> + <height>48</height> </size> </property> <property name="checkable"> @@ -270,12 +261,12 @@ p, li { white-space: pre-wrap; } </property> <property name="icon"> <iconset resource="../../../Images/images.qrc"> - <normaloff>:/win/running_process.png</normaloff>:/win/running_process.png</iconset> + <normaloff>:/Icons/download-icon-48x48.png</normaloff>:/Icons/download-icon-48x48.png</iconset> </property> <property name="iconSize"> <size> - <width>40</width> - <height>40</height> + <width>48</width> + <height>48</height> </size> </property> <property name="checkable"> @@ -285,7 +276,7 @@ p, li { white-space: pre-wrap; } </item> </layout> </widget> - <widget class="QWidget" name=""> + <widget class="QWidget" name="layoutWidget3"> <property name="geometry"> <rect> <x>540</x> @@ -294,7 +285,7 @@ p, li { white-space: pre-wrap; } <height>311</height> </rect> </property> - <layout class="QVBoxLayout" name="verticalLayout_2"> + <layout class="QVBoxLayout" name="verticalLayout2"> <item> <widget class="QLabel" name="lblTutorials"> <property name="font"> @@ -334,12 +325,12 @@ p, li { white-space: pre-wrap; } </property> <property name="icon"> <iconset resource="../../../Images/images.qrc"> - <normaloff>:/win/running_process.png</normaloff>:/win/running_process.png</iconset> + <normaloff>:/Icons/Misc-Tutorial-icon-32x32.png</normaloff>:/Icons/Misc-Tutorial-icon-32x32.png</iconset> </property> <property name="iconSize"> <size> - <width>40</width> - <height>40</height> + <width>32</width> + <height>32</height> </size> </property> <property name="checkable"> @@ -368,12 +359,12 @@ p, li { white-space: pre-wrap; } </property> <property name="icon"> <iconset resource="../../../Images/images.qrc"> - <normaloff>:/win/running_process.png</normaloff>:/win/running_process.png</iconset> + <normaloff>:/Icons/Python-icon-32x32.png</normaloff>:/Icons/Python-icon-32x32.png</iconset> </property> <property name="iconSize"> <size> - <width>40</width> - <height>40</height> + <width>32</width> + <height>32</height> </size> </property> <property name="checkable"> @@ -406,8 +397,8 @@ p, li { white-space: pre-wrap; } </property> <property name="iconSize"> <size> - <width>40</width> - <height>40</height> + <width>32</width> + <height>32</height> </size> </property> <property name="checkable"> @@ -436,12 +427,12 @@ p, li { white-space: pre-wrap; } </property> <property name="icon"> <iconset resource="../../../Images/images.qrc"> - <normaloff>:/win/running_process.png</normaloff>:/win/running_process.png</iconset> + <normaloff>:/Icons/Plugin-Python-icon-32x32.png</normaloff>:/Icons/Plugin-Python-icon-32x32.png</iconset> </property> <property name="iconSize"> <size> - <width>40</width> - <height>40</height> + <width>32</width> + <height>32</height> </size> </property> <property name="checkable">