Work on updating...

This commit is contained in:
Martin Rotter 2014-02-19 22:49:36 +01:00
parent 50dd668481
commit 843b349007
5 changed files with 53 additions and 10 deletions

View file

@ -11,7 +11,12 @@
[#] Saving of webbrowser progressbar color. [#] Saving of webbrowser progressbar color.
[~] Usability of some GUI elements. [~] Usability of some GUI elements.
[@] Completely switched to new website. [@] Completely switched to new website.
[+] Some missing shortcuts.]]> [+] Some missing shortcuts.
[+] added
[#] fixed
[~] changed
[@] other action]]>
</changes> </changes>
</release> </release>
</releases> </releases>

View file

@ -161,9 +161,20 @@ QList<UpdateInfo> SystemFactory::parseUpdatesFile(const QByteArray &updates_file
info.m_availableVersion = rel_elem.attributes().namedItem("version").toAttr().value(); info.m_availableVersion = rel_elem.attributes().namedItem("version").toAttr().value();
info.m_changes = rel_elem.namedItem("changes").toElement().text(); info.m_changes = rel_elem.namedItem("changes").toElement().text();
info.m_fileUrl = rel_elem.namedItem("url").toElement().text();
info.m_os = rel_elem.attributes().namedItem("os").toAttr().value(); QDomNodeList urls = rel_elem.elementsByTagName("url");
info.m_platform = rel_elem.attributes().namedItem("platform").toAttr().value();
for (int j = 0; j < urls.size(); j++) {
UpdateUrl url;
QDomElement url_elem = urls.at(j).toElement();
url.m_fileUrl = url_elem.text();
url.m_os = url_elem.attributes().namedItem("os").toAttr().value();
url.m_platform = url_elem.attributes().namedItem("platform").toAttr().value();
info.m_urls.insert(url.m_os,
url);
}
if (type == "maintenance") { if (type == "maintenance") {
info.m_type = UpdateInfo::Maintenance; info.m_type = UpdateInfo::Maintenance;

View file

@ -5,8 +5,16 @@
#include <QPointer> #include <QPointer>
#include <QMutex> #include <QMutex>
#include <QMetaType> #include <QMetaType>
#include <QHash>
class UpdateUrl {
public:
QString m_fileUrl;
QString m_platform;
QString m_os;
};
class UpdateInfo { class UpdateInfo {
public: public:
enum UpdateType { enum UpdateType {
@ -17,11 +25,9 @@ class UpdateInfo {
}; };
QString m_availableVersion; QString m_availableVersion;
QString m_fileUrl;
QString m_platform;
QString m_os;
UpdateType m_type;
QString m_changes; QString m_changes;
UpdateType m_type;
QHash<QString, UpdateUrl> m_urls;
}; };
Q_DECLARE_METATYPE(UpdateInfo) Q_DECLARE_METATYPE(UpdateInfo)

View file

@ -36,6 +36,13 @@ FormUpdate::~FormUpdate() {
delete m_ui; delete m_ui;
} }
// TODO: tady v update nacist do m_lblSupportedPlatforms
// seznam platform ktery danej release podporuje oddelenej carkama
// treba "Windows, OS2" atp atp.
// ten combobox se statusem previst na normalni combobox
// asi. jednotlivy URL souborů pro danej release
// sou dostupny v qhashi podle klice podle OS.
void FormUpdate::updateChanges(int new_release_index) { void FormUpdate::updateChanges(int new_release_index) {
if (new_release_index >= 0) { if (new_release_index >= 0) {
UpdateInfo info = m_ui->m_cmbAvailableRelease->comboBox()->itemData(new_release_index).value<UpdateInfo>(); UpdateInfo info = m_ui->m_cmbAvailableRelease->comboBox()->itemData(new_release_index).value<UpdateInfo>();

View file

@ -43,14 +43,14 @@
<item row="1" column="1"> <item row="1" column="1">
<widget class="ComboBoxWithStatus" name="m_cmbAvailableRelease" native="true"/> <widget class="ComboBoxWithStatus" name="m_cmbAvailableRelease" native="true"/>
</item> </item>
<item row="2" column="0"> <item row="3" column="0">
<widget class="QLabel" name="label_4"> <widget class="QLabel" name="label_4">
<property name="text"> <property name="text">
<string>Changes</string> <string>Changes</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="2" column="1"> <item row="3" column="1">
<widget class="QTextEdit" name="m_txtChanges"> <widget class="QTextEdit" name="m_txtChanges">
<property name="readOnly"> <property name="readOnly">
<bool>true</bool> <bool>true</bool>
@ -67,6 +67,20 @@ p, li { white-space: pre-wrap; }
</property> </property>
</widget> </widget>
</item> </item>
<item row="2" column="0">
<widget class="QLabel" name="label_2">
<property name="text">
<string>Supported platforms</string>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QLabel" name="m_lblSupportedPlatforms">
<property name="text">
<string/>
</property>
</widget>
</item>
</layout> </layout>
</item> </item>
<item> <item>