Add capability to list tools (#235)

* Add html scraping capability to helper.py

The function scrape_html_for_folders() reads an html file at
`https://download.qt.io/online/qtsdkrepository/<os>/<target>/` and
extracts a list of all the folders within that directory.
It separates the folders by category, so that 'tools' are not
mixed in with 'qt5' or 'qt6'.

This commit also adds a function that prints the available folders,
allowing the caller to filter the output by category.

* Add interface for accessing scrape_html_for_folders

I'm sure this isn't exactly what is needed, and that this functionality
should probably be folded into `aqt list`, but it does demonstrate that
aqt can list all the tools available at downloads.qt.io by scraping html.

This allows you to type `aqt list2 tools linux desktop`, and get a list
of all the tools on the server.
There are more options; type `aqt list2 -h` to see them all.

* Add failing tests for `aqt list`

* Add passing implementation of `aqt list`

* Remove old implementation of `aqt list`

This removes `Cli.run_list_old`, as well as any commented-out code in
installer.py that was related to the old implementation of `run_list`.

This also restores some code that was commented out erroneously.

* Fix misuse of semantic_version

In an earlier commit, I used the parameter `partial=True` for the
preview builds of Qt, since they do not include a patch number. I did
not recognize this as a misuse of semantic_version until I ran the tox
linter. `partial` is meant for 'partial specification', as in, 'this
program requires version 6.2, and the patch is unimportant`.

This change removes the `partial=True` parameter, adds a `0` for the
patch number, and uses a format string to print preview versions without
the patch.

* Use semantic version in interfaces instead of str

This updates all functions that accept a Qt version as a string, so that
they now accept a semantic version object instead. This forces the
caller to do some input validation, and moves the responsibility of
string-to-version conversions out of functions where it does not belong.

* Improve `aqt list` interface as discussed

This adds several new options to `aqt list`, and renames the ambiguous
`packages` to `modules`. New options include the ability to list
targets, extensions, and architectures for a particular (host, target,
Qt version) tuple. The goal is to provide sufficient information to the
user, such that the user can use all the other features of aqt without
having to look them up somewhere else.

* Cleanup `targets` dictionary

* Add `list architectures` feature

* Add tests for `list architectures` feature

* Add documentation for new list feature.

* Fix url bugs related to BASE_URL change

* Add stub for `list --extensions`

* Implement `list --extensions`

* Cleanup imports

* Add basic tests of `aqt list` to azure pipeline

* Fix failed merge with upstream

* Simplify string-to-version code

An earlier commit introduced `cli_2_semantic_version`, which calls
`get_semantic_version_with_dots`, which will never be called by any
other code. I think that this should really just be one function, and
splitting it in two is just needlessly complex.

* Revert dd41e653 - changes to azure-pipelines.yml

* CI: change test case for list command

Signed-off-by: Hiroshi Miura <miurahr@linux.com>

* Update MANIFEST

Signed-off-by: Hiroshi Miura <miurahr@linux.com>

* Fix errors reported by flake8

This commit fixes some unused imports, missing imports, and formatting
errors.

* Run isort

* Add three more build jobs to azure pipelines

This adds three more combinations of `qt version/host/target` to the
`aqt list` command tests on the azure pipelines. This is pretty far from
exhaustive, but I think it's worth it to add these: they execute
slightly different code paths than the standard `linux/desktop`
variants. I don't want to add a whole lot more than this; `aqt list` is
slower than I'd like it to be, and I don't want to waste CI time.

* Fix bug where empty extensions returns success

Prior to this commit, if you ran `aqt list` to list possible extensions,
it could print a blank line and return 0. This is because the
get_extensions_for_version function was accepting empty strings as a
valid extension, and returning a list consisting of one empty string.
This commit filters out those empty strings.

* Attempt to fix ci bug when listing android exts

Android extensions for Qt6 follow different rules than Qt5; this
attempts to account for that.

* remove invalid ArchiveId objects from tests

* Add author

* Use Python for test logic instead of bash

* Remove 'build accelbubble' step from 'list' test

This commit attempts to separate the 'build accelbubble example' test
from the 'aqt list' test.

In this case, the test for `aqt list qt5 linux android` was running the
"build accelbubble example" test in addition to the intended test. If
the "build accelbubble example" test fails, then it looks like the `aqt
list` test failed, until you look to see why it failed.

* Remove dead code

* Accept `latest` keyword instead of qt version

This commit modifies the interface of `aqt list`, so that the flags
`--modules`, `--extensions`, and `--arch` will accept either a Qt
version or the word `latest`. If the user specifies a version of Qt,
the command works as before. If the user specifies `--modules latest`,
`aqt list` will determine the latest version of Qt, given the filters
specified, and return the modules for that version.

This commit removes the flag `--latest-modules`, because that flag is no
longer necessary. The `latest` keyword serves the same function, and it
works for the `--extensions`, and `--arch` flags as well. This prevents
the need for flags such as `--latest-extensions` and `--latest-arch`,
which otherwise would have been necessary to provide this functionality
to the other list features.

* remove unused import

* Update azure pipeline to reflect `latest` feature

* WIP refactor helper methods into ListCommand

* Refactor helper methods into ListCommand

This PR adds many helper methods to helper.py that are closely related
to each other, and which are only useful to the ListCommand object. This
commit moves the majority of these into the ListCommand object, so that
they don't confuse future readers who are looking for something else.

* Fix imports after merge

* Fix unused import

* Add test and impl for list tool modules

This adds code that parses an 'Updates.xml' file for the names of tool
modules, which a user can use to install tools. This does not have any
cli-facing code yet, since the current interface does not make sense for
this purpose.

* Add CLI command to list tool variant names

This exposes `ListCommand.fetch_tool_modules` to the CLI.
Accordingly, it adds a test to the Azure Pipelines for every `aqt list`
job, and it adds documentation to docs/cli.rst.

Since this feature is meant to print values you can feed into the `aqt
tool` command, the documentation for the `aqt tool` command was changed
as well.

* Use monkeypatch for http_fetcher

This removes the http_fetcher parameter for ListCommand in favor of
monkeypatching.

* Remove dataclasses

Dataclasses were new in Python 3.7, and don't exist in the minimum
supported Python 3.6.

* black

* Fix ci test for `aqt list tools --tool`

* Add default timeout to request_http_with_failover

* fix monkeypatched http fetcher

* Fix 'aqt list tools' command on Azure Pipeline

Currently, the `tools_qt3dstudio_runtime_240` appears to be the only
tool available on all host/target combinations, so we will check that
one in Azure Pipelines.

* Move helper classes specific to ListCommand into ListCommand

* Fix use of new global Settings object

* Fix sphinx docstring syntax

* Swap `request_http_with_failover` for `getUrl`

* Add additional follow-up suggestion on error

* Fix exceptions import

* Prevent repeated 'suggested follow up' actions

This change uses exclusive branches to prevent `aqt list` from repeating
the same/similar recommended actions.

* Fix bugs related to updated getUrl error messages

* run black

* docs: add auto section link label extension

Signed-off-by: Hiroshi Miura <miurahr@linux.com>

* docs: add more list command examples

Signed-off-by: Hiroshi Miura <miurahr@linux.com>

* Fix typo in docs

* remove duplicate `semantic_version`

* Add expected outputs and arch example to docs

This change adds some expected output to the documentation. For any
user who is confused about what the documentation means when it
mentions `tools` and `modules`, and is unsure which is which, this
change should help that user figure that out.

This also adds an example for listing architectures.

* Remove `logger` from `getUrl` parameter list

* helper: getLogger("aqt.helper") in helper functions

Signed-off-by: Hiroshi Miura <miurahr@linux.com>

* Use `pretty_print` instead of `str()` for output

* test_list.py use pretty_print instead of str

* fix Versions constructor

* black

Co-authored-by: Hiroshi Miura <miurahr@linux.com>
This commit is contained in:
David Dalcino
2021-07-05 15:58:18 -07:00
committed by GitHub
parent 4c16bc6fd0
commit 705c6225e2
39 changed files with 2738 additions and 67 deletions

View File

@@ -16,6 +16,8 @@ recursive-include docs *.svg
recursive-include docs *.html
recursive-include docs *.txt
recursive-include docs Makefile
recursive-include tests *.html
recursive-include tests *.ini
recursive-include tests *.json
recursive-include tests *.py
recursive-include tests *.xml

View File

@@ -19,15 +19,26 @@
# COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
# IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
import itertools
import posixpath
import random
import re
import xml.etree.ElementTree as ElementTree
from logging import getLogger
from typing import Callable, Generator, Iterable, Iterator, List, Optional, Tuple, Union
import bs4
from semantic_version import SimpleSpec, Version
from aqt.exceptions import ArchiveListError, NoPackageFound
from aqt.helper import Settings, getUrl
from aqt import helper
from aqt.exceptions import (
ArchiveConnectionError,
ArchiveDownloadError,
ArchiveListError,
CliInputError,
NoPackageFound,
)
from aqt.helper import ArchiveId, Settings, getUrl, xml_to_modules
class TargetConfig:
@@ -38,6 +49,371 @@ class TargetConfig:
self.os_name = os_name
class ListCommand:
"""Encapsulate all parts of the `aqt list` command"""
# Inner helper classes
class Versions:
def __init__(
self,
versions: Union[None, Version, Iterable[Tuple[int, Iterable[Version]]]],
):
if versions is None:
self.versions = list()
elif isinstance(versions, Version):
self.versions = [[versions]]
else:
self.versions: List[List[Version]] = [
list(versions_iterator) for _, versions_iterator in versions
]
def __str__(self) -> str:
return str(self.versions)
def pretty_print(self) -> str:
return "\n".join(
" ".join(
ListCommand.Versions.stringify_ver(version)
for version in minor_list
)
for minor_list in self.versions
)
def __bool__(self):
return len(self.versions) > 0 and len(self.versions[0]) > 0
def latest(self) -> Optional[Version]:
if not self:
return None
return self.versions[-1][-1]
@staticmethod
def stringify_ver(version: Version) -> str:
if version.prerelease:
return "{}.{}-preview".format(version.major, version.minor)
return str(version)
class ListOfStr:
def __init__(self, strings: List[str]):
self.strings = strings
def __str__(self):
return str(self.strings)
def pretty_print(self) -> str:
return " ".join(self.strings)
def __bool__(self):
return len(self.strings) > 0 and len(self.strings[0]) > 0
class Tools(ListOfStr):
def pretty_print(self) -> str:
return "\n".join(self.strings)
def __init__(
self,
archive_id: ArchiveId,
*,
filter_minor: Optional[int] = None,
is_latest_version: bool = False,
modules_ver: Optional[str] = None,
extensions_ver: Optional[str] = None,
architectures_ver: Optional[str] = None,
tool_name: Optional[str] = None,
):
"""
Construct ListCommand.
:param filter_minor: When set, the ListCommand will filter out all versions of
Qt that don't match this minor version.
:param is_latest_version: When True, the ListCommand will find all versions of Qt
matching filters, and only print the most recent version
:param modules_ver: Version of Qt for which to list modules
:param extensions_ver: Version of Qt for which to list extensions
:param architectures_ver: Version of Qt for which to list architectures
"""
self.logger = getLogger("aqt.archives")
self.archive_id = archive_id
self.filter_minor = filter_minor
if archive_id.is_tools():
if tool_name:
self.request_type = "tool variant names"
self._action = lambda: self.fetch_tool_modules(tool_name)
else:
self.request_type = "tools"
self._action = self.fetch_tools
elif is_latest_version:
self.request_type = "latest version"
self._action = lambda: ListCommand.Versions(self.fetch_latest_version())
elif modules_ver:
self.request_type = "modules"
self._action = lambda: self.fetch_modules(self._to_version(modules_ver))
elif extensions_ver:
self.request_type = "extensions"
self._action = lambda: self.fetch_extensions(
self._to_version(extensions_ver)
)
elif architectures_ver:
self.request_type = "architectures"
self._action = lambda: self.fetch_arches(
self._to_version(architectures_ver)
)
else:
self.request_type = "versions"
self._action = self.fetch_versions
def action(self) -> Union[ListOfStr, Tools, Versions]:
return self._action()
def run(self) -> int:
try:
output = self.action()
if not output:
self.logger.info(
"No {} available for this request.".format(self.request_type)
)
self.print_suggested_follow_up(self.logger.info)
return 1
print(output.pretty_print())
return 0
except CliInputError as e:
self.logger.error("Command line input error: {}".format(e))
exit(1)
except (ArchiveConnectionError, ArchiveDownloadError) as e:
self.logger.error("{}".format(e))
self.print_suggested_follow_up(self.logger.error)
return 1
def fetch_modules(self, version: Version) -> ListOfStr:
return self.get_modules_architectures_for_version(version=version)[0]
def fetch_arches(self, version: Version) -> ListOfStr:
return self.get_modules_architectures_for_version(version=version)[1]
def fetch_extensions(self, version: Version) -> ListOfStr:
versions_extensions = ListCommand.get_versions_extensions(
self.fetch_http(self.archive_id.to_url()), self.archive_id.category
)
filtered = filter(
lambda ver_ext: ver_ext[0] == version and ver_ext[1],
versions_extensions,
)
return ListCommand.ListOfStr(
strings=list(map(lambda ver_ext: ver_ext[1], filtered))
)
def fetch_versions(self) -> Versions:
def filter_by(ver_ext: Tuple[Optional[Version], str]) -> bool:
version, extension = ver_ext
return (
version
and (self.filter_minor is None or self.filter_minor == version.minor)
and (self.archive_id.extension == extension)
)
def get_version(ver_ext: Tuple[Version, str]):
return ver_ext[0]
versions_extensions = ListCommand.get_versions_extensions(
self.fetch_http(self.archive_id.to_url()), self.archive_id.category
)
versions = sorted(
filter(None, map(get_version, filter(filter_by, versions_extensions)))
)
iterables = itertools.groupby(versions, lambda version: version.minor)
return ListCommand.Versions(iterables)
def fetch_latest_version(self) -> Optional[Version]:
return self.fetch_versions().latest()
def fetch_tools(self) -> Tools:
html_doc = self.fetch_http(self.archive_id.to_url())
return ListCommand.Tools(list(ListCommand.iterate_folders(html_doc, "tools")))
def fetch_tool_modules(self, tool_name: str) -> ListOfStr:
rest_of_url = self.archive_id.to_url() + tool_name + "/Updates.xml"
xml = self.fetch_http(rest_of_url) # raises RequestException
modules = xml_to_modules(
xml,
predicate=ListCommand._has_nonempty_downloads,
keys_to_keep=(), # Just want names
)
return ListCommand.ListOfStr(strings=list(modules.keys()))
def _to_version(self, qt_ver: str) -> Version:
"""
Turns a string in the form of `5.X.Y | latest` into a semantic version.
If the string does not fit either of these forms, CliInputError will be raised.
If qt_ver == latest, and no versions exist corresponding to the filters specified,
then CliInputError will be raised.
If qt_ver == latest, and an HTTP error occurs, requests.RequestException will be raised.
:param qt_ver: Either the literal string `latest`, or a semantic version
with each part separated with dots.
"""
assert qt_ver
if qt_ver == "latest":
latest_version = self.fetch_latest_version()
if not latest_version:
msg = "There is no latest version of Qt with the criteria '{}'".format(
self.describe_filters()
)
raise CliInputError(msg)
return latest_version
version = helper.to_version(qt_ver)
if self.archive_id.is_major_ver_mismatch(version):
msg = "Major version mismatch between {} and {}".format(
self.archive_id.category, version
)
raise CliInputError(msg)
return version
@staticmethod
def fetch_http(rest_of_url: str) -> str:
base_urls = Settings.baseurl, random.choice(Settings.fallbacks)
for i, base_url in enumerate(base_urls):
try:
url = posixpath.join(base_url, rest_of_url)
return getUrl(
url=url,
timeout=(Settings.connection_timeout, Settings.response_timeout),
)
except (ArchiveDownloadError, ArchiveConnectionError) as e:
if i == len(base_urls) - 1:
raise e
@staticmethod
def iterate_folders(
html_doc: str, filter_category: str = ""
) -> Generator[str, None, None]:
def table_row_to_folder(tr: bs4.element.Tag) -> str:
try:
return tr.find_all("td")[1].a.contents[0].rstrip("/")
except (AttributeError, IndexError):
return ""
soup: bs4.BeautifulSoup = bs4.BeautifulSoup(html_doc, "html.parser")
for row in soup.body.table.find_all("tr"):
content: str = table_row_to_folder(row)
if not content or content == "Parent Directory":
continue
if content.startswith(filter_category):
yield content
@staticmethod
def get_versions_extensions(
html_doc: str, category: str
) -> Iterator[Tuple[Optional[Version], str]]:
def folder_to_version_extension(folder: str) -> Tuple[Optional[Version], str]:
components = folder.split("_", maxsplit=2)
ext = "" if len(components) < 3 else components[2]
ver = "" if len(components) < 2 else components[1]
return (
helper.get_semantic_version(qt_ver=ver, is_preview="preview" in ext),
ext,
)
return map(
folder_to_version_extension, ListCommand.iterate_folders(html_doc, category)
)
@staticmethod
def _has_nonempty_downloads(element: ElementTree.Element) -> bool:
"""Returns True if the element has an empty '<DownloadableArchives/>' tag"""
downloads = element.find("DownloadableArchives")
return downloads is not None and downloads.text
def get_modules_architectures_for_version(
self, version: Version
) -> Tuple[ListOfStr, ListOfStr]:
"""Returns [list of modules, list of architectures]"""
patch = (
""
if version.prerelease or self.archive_id.is_preview()
else str(version.patch)
)
qt_ver_str = "{}{}{}".format(version.major, version.minor, patch)
# Example: re.compile(r"^(preview\.)?qt\.(qt5\.)?590\.(.+)$")
pattern = re.compile(
r"^(preview\.)?qt\.(qt"
+ str(version.major)
+ r"\.)?"
+ qt_ver_str
+ r"\.(.+)$"
)
def to_module_arch(name: str) -> Tuple[Optional[str], Optional[str]]:
_match = pattern.match(name)
if not _match:
return None, None
module_with_arch = _match.group(3)
if self.archive_id.is_no_arch() or "." not in module_with_arch:
return module_with_arch, None
module, arch = module_with_arch.rsplit(".", 1)
return module, arch
rest_of_url = self.archive_id.to_url(
qt_version_no_dots=qt_ver_str, file="Updates.xml"
)
xml = self.fetch_http(rest_of_url) # raises RequestException
# We want the names of modules, regardless of architecture:
modules = xml_to_modules(
xml,
predicate=ListCommand._has_nonempty_downloads,
keys_to_keep=(), # Just want names
)
def naive_modules_arches(
names: Iterable[str],
) -> Tuple[ListCommand.ListOfStr, ListCommand.ListOfStr]:
modules_and_arches, _modules, arches = set(), set(), set()
for name in names:
# First term could be a module name or an architecture
first_term, arch = to_module_arch(name)
if first_term:
modules_and_arches.add(first_term)
if arch:
arches.add(arch)
for first_term in modules_and_arches:
if first_term not in arches:
_modules.add(first_term)
return (
ListCommand.ListOfStr(strings=sorted(_modules)),
ListCommand.ListOfStr(strings=sorted(arches)),
)
return naive_modules_arches(modules.keys())
def describe_filters(self) -> str:
if self.filter_minor is None:
return str(self.archive_id)
return "{} with minor version {}".format(self.archive_id, self.filter_minor)
def print_suggested_follow_up(self, printer: Callable[[str], None]) -> None:
"""Makes an informed guess at what the user got wrong, in the event of an error."""
base_cmd = "aqt {0.category} {0.host} {0.target}".format(self.archive_id)
if self.archive_id.extension:
msg = "Please use '{} --extensions <QT_VERSION>' to list valid extensions.".format(
base_cmd
)
printer(msg)
if self.archive_id.is_tools() and self.request_type == "tool variant names":
msg = "Please use '{}' to check what tools are available.".format(base_cmd)
printer(msg)
elif self.filter_minor is not None:
msg = "Please use '{}' to check that versions of {} exist with the minor version '{}'".format(
base_cmd, self.archive_id.category, self.filter_minor
)
printer(msg)
elif self.request_type in ("architectures", "modules", "extensions"):
msg = "Please use '{}' to show versions of Qt available".format(base_cmd)
printer(msg)
class QtPackage:
"""
Hold package information.
@@ -97,7 +473,7 @@ class PackagesList:
ext,
)
update_xml_url = posixpath.join(self.base, archive_path, "Updates.xml")
xml_text = getUrl(update_xml_url, self.timeout, self.logger)
xml_text = getUrl(update_xml_url, self.timeout)
self.update_xml = ElementTree.fromstring(xml_text)
for packageupdate in self.update_xml.iter("PackageUpdate"):
name = packageupdate.find("Name").text
@@ -215,7 +591,7 @@ class QtArchives:
def _download_update_xml(self, update_xml_url):
"""Hook for unit test."""
self.update_xml_text = getUrl(update_xml_url, self.timeout, self.logger)
self.update_xml_text = getUrl(update_xml_url, self.timeout)
def _parse_update_xml(self, archive_url, target_packages):
try:

View File

@@ -34,3 +34,7 @@ class ArchiveListError(Exception):
class NoPackageFound(Exception):
pass
class CliInputError(Exception):
pass

View File

@@ -22,19 +22,94 @@
import configparser
import hashlib
import json
import logging
import logging.config
import os
import re
import sys
import xml.etree.ElementTree as ElementTree
from logging import getLogger
from logging.handlers import QueueListener
from typing import List
from typing import Callable, Dict, Iterable, List, Optional
from urllib.parse import urlparse
import requests
import requests.adapters
from semantic_version import Version
from aqt.exceptions import ArchiveConnectionError, ArchiveDownloadError
from aqt.exceptions import ArchiveConnectionError, ArchiveDownloadError, CliInputError
class ArchiveId:
CATEGORIES = ("tools", "qt5", "qt6")
HOSTS = ("windows", "mac", "linux")
TARGETS_FOR_HOST = {
"windows": ["android", "desktop", "winrt"],
"mac": ["android", "desktop", "ios"],
"linux": ["android", "desktop"],
}
ALL_EXTENSIONS = (
"wasm",
"src_doc_examples",
"preview",
"wasm_preview",
"x86_64",
"x86",
"armv7",
"arm64_v8a",
)
def __init__(self, category: str, host: str, target: str, extension: str = ""):
if category not in ArchiveId.CATEGORIES:
raise ValueError("Category '{}' is invalid".format(category))
if host not in ArchiveId.HOSTS:
raise ValueError("Host '{}' is invalid".format(host))
if target not in ArchiveId.TARGETS_FOR_HOST[host]:
raise ValueError("Target '{}' is invalid".format(target))
if extension and extension not in ArchiveId.ALL_EXTENSIONS:
raise ValueError("Extension '{}' is invalid".format(extension))
self.category: str = category
self.host: str = host
self.target: str = target
self.extension: str = extension
def is_preview(self) -> bool:
return "preview" in self.extension if self.extension else False
def is_qt(self) -> bool:
return self.category.startswith("qt")
def is_tools(self) -> bool:
return self.category == "tools"
def is_no_arch(self) -> bool:
"""Returns True if there should be no arch attached to the module names"""
return self.extension in ("src_doc_examples",)
def is_major_ver_mismatch(self, qt_version: Version) -> bool:
"""Returns True if the version specifies a version different from the specified category"""
return self.is_qt() and int(self.category[-1]) != qt_version.major
def to_url(self, qt_version_no_dots: Optional[str] = None, file: str = "") -> str:
base = "online/qtsdkrepository/{os}{arch}/{target}/".format(
os=self.host,
arch="_x86" if self.host == "windows" else "_x64",
target=self.target,
)
if not qt_version_no_dots:
return base
folder = "{category}_{ver}{ext}/".format(
category=self.category,
ver=qt_version_no_dots,
ext="_" + self.extension if self.extension else "",
)
return base + folder + file
def __str__(self) -> str:
return "{cat}/{host}/{target}{ext}".format(
cat=self.category,
host=self.host,
target=self.target,
ext="" if not self.extension else "/" + self.extension,
)
def _get_meta(url: str):
@@ -46,7 +121,8 @@ def _check_content_type(ct: str) -> bool:
return any(ct.startswith(t) for t in candidate)
def getUrl(url: str, timeout, logger) -> str:
def getUrl(url: str, timeout) -> str:
logger = getLogger("aqt.helper")
with requests.Session() as session:
adapter = requests.adapters.HTTPAdapter()
session.mount("http://", adapter)
@@ -69,7 +145,7 @@ def getUrl(url: str, timeout, logger) -> str:
requests.exceptions.ConnectionError,
requests.exceptions.Timeout,
):
raise ArchiveConnectionError()
raise ArchiveConnectionError("Failure to connect to {}".format(url))
else:
if r.status_code != 200:
logger.error(
@@ -78,12 +154,13 @@ def getUrl(url: str, timeout, logger) -> str:
url, r.status_code, r.reason
)
)
raise ArchiveDownloadError("Download error!")
raise ArchiveDownloadError("Failure to retrieve {}".format(url))
result = r.text
return result
def downloadBinaryFile(url: str, out: str, hash_algo: str, exp: str, timeout, logger):
def downloadBinaryFile(url: str, out: str, hash_algo: str, exp: str, timeout):
logger = getLogger("aqt.helper")
with requests.Session() as session:
adapter = requests.adapters.HTTPAdapter()
session.mount("http://", adapter)
@@ -130,7 +207,7 @@ def altlink(url: str, alt: str):
"""Blacklisting redirected(alt) location based on Settings.blacklist configuration.
When found black url, then try download a url + .meta4 that is a metalink version4
xml file, parse it and retrieve best alternative url."""
logger = logging.getLogger("aqt.helper")
logger = getLogger("aqt.helper")
if not any(alt.startswith(b) for b in Settings.blacklist):
return alt
try:
@@ -202,11 +279,88 @@ class MyQueueListener(QueueListener):
Override logger name then handle at proper logger.
"""
record = self.prepare(record)
logger = logging.getLogger("aqt.installer")
logger = getLogger("aqt.installer")
record.name = "aqt.installer"
logger.handle(record)
def to_version(qt_ver: str) -> Version:
"""Converts a Qt version string with dots (5.X.Y, etc) into a semantic version.
If the version ends in `-preview`, the version is treated as a preview release.
If the patch value is missing, patch is assumed to be zero.
If the version cannot be converted to a Version, a CliInputError is raised.
"""
match = re.match(r"^(\d+)\.(\d+)(\.(\d+)|-preview)$", qt_ver)
if not match:
raise CliInputError(
"Invalid version: '{}'! Please use the form '5.X.Y'.".format(qt_ver)
)
major, minor, end, patch = match.groups()
is_preview = end == "-preview"
return Version(
major=int(major),
minor=int(minor),
patch=int(patch) if patch else 0,
prerelease=("preview",) if is_preview else None,
)
def get_semantic_version(qt_ver: str, is_preview: bool) -> Optional[Version]:
"""Converts a Qt version string (596, 512, 5132, etc) into a semantic version.
This makes a lot of assumptions based on established patterns:
If is_preview is True, the number is interpreted as ver[0].ver[1:], with no patch.
If the version is 3 digits, then major, minor, and patch each get 1 digit.
If the version is 4 or more digits, then major gets 1 digit, minor gets 2 digits
and patch gets all the rest.
As of May 2021, the version strings at https://download.qt.io/online/qtsdkrepository
conform to this pattern; they are not guaranteed to do so in the future.
"""
if not qt_ver or any(not ch.isdigit() for ch in qt_ver):
return None
if is_preview:
return Version(
major=int(qt_ver[:1]),
minor=int(qt_ver[1:]),
patch=0,
prerelease=("preview",),
)
elif len(qt_ver) >= 4:
return Version(
major=int(qt_ver[:1]), minor=int(qt_ver[1:3]), patch=int(qt_ver[3:])
)
elif len(qt_ver) == 3:
return Version(
major=int(qt_ver[:1]), minor=int(qt_ver[1:2]), patch=int(qt_ver[2:])
)
elif len(qt_ver) == 2:
return Version(major=int(qt_ver[:1]), minor=int(qt_ver[1:2]), patch=0)
raise ValueError("Invalid version string '{}'".format(qt_ver))
def xml_to_modules(
xml_text: str,
predicate: Callable[[ElementTree.Element], bool],
keys_to_keep: Iterable[str],
) -> Dict[str, Dict[str, str]]:
"""Converts an XML document to a dict of `PackageUpdate` dicts, indexed by `Name` attribute.
Only report elements that satisfy `predicate(element)`.
Only report keys in the list `keys_to_keep`.
"""
try:
parsed_xml = ElementTree.fromstring(xml_text)
except ElementTree.ParseError:
return {}
packages = {}
for packageupdate in parsed_xml.iter("PackageUpdate"):
if predicate and not predicate(packageupdate):
continue
name = packageupdate.find("Name").text
packages[name] = {}
for key in keys_to_keep:
packages[name][key] = getattr(packageupdate.find(key), "text", None)
return packages
class Settings:
"""Class to hold configuration and settings.
Actual values are stored in 'settings.ini' file.

View File

@@ -33,10 +33,9 @@ from logging import getLogger
from logging.handlers import QueueHandler
from semantic_version import Version
from texttable import Texttable
import aqt
from aqt.archives import PackagesList, QtArchives, SrcDocExamplesArchives, ToolArchives
from aqt.archives import ListCommand, QtArchives, SrcDocExamplesArchives, ToolArchives
from aqt.exceptions import (
ArchiveConnectionError,
ArchiveDownloadError,
@@ -44,6 +43,7 @@ from aqt.exceptions import (
NoPackageFound,
)
from aqt.helper import (
ArchiveId,
MyQueueListener,
Settings,
downloadBinaryFile,
@@ -464,30 +464,121 @@ class Cli:
)
)
def run_list(self, args):
"""Run list subcommand"""
self.show_aqt_version()
qt_version = args.qt_version
self._validate_version_str(qt_version)
host = args.host
target = args.target
try:
pl = PackagesList(qt_version, host, target, Settings.baseurl)
except (ArchiveConnectionError, ArchiveDownloadError):
pl = PackagesList(
qt_version, host, target, random.choice(Settings.fallbacks)
def run_list(self, args: argparse.ArgumentParser) -> int:
"""Print tools, versions of Qt, extensions, modules, architectures"""
if not args.target:
print(" ".join(ArchiveId.TARGETS_FOR_HOST[args.host]))
return 0
if args.target not in ArchiveId.TARGETS_FOR_HOST[args.host]:
self.logger.error(
"'{0.target}' is not a valid target for host '{0.host}'".format(args)
)
print("List Qt packages in %s for %s" % (args.qt_version, args.host))
table = Texttable()
table.set_deco(Texttable.HEADER)
table.set_cols_dtype(["t", "t", "t"])
table.set_cols_align(["l", "l", "l"])
table.header(["target", "arch", "description"])
for entry in pl.get_list():
if qt_version[0:1] == "6" or not entry.virtual:
archid = entry.name.split(".")[-1]
table.add_row([entry.display_name, archid, entry.desc])
print(table.draw())
return 1
command = ListCommand(
archive_id=ArchiveId(
args.category,
args.host,
args.target,
args.extension if args.extension else "",
),
filter_minor=args.filter_minor,
is_latest_version=args.latest_version,
modules_ver=args.modules,
extensions_ver=args.extensions,
architectures_ver=args.arch,
tool_name=args.tool,
)
return command.run()
def _make_list_parser(self, subparsers: argparse._SubParsersAction):
"""Creates a subparser that works with the ListCommand, and adds it to the `subparsers` parameter"""
list_parser: argparse.ArgumentParser = subparsers.add_parser(
"list",
formatter_class=argparse.RawDescriptionHelpFormatter,
epilog="Examples:\n"
"$ aqt list qt5 mac # print all targets for Mac OS\n"
"$ aqt list tools mac desktop # print all tools for mac desktop\n"
"$ aqt list tools mac desktop --tool tools_ifw # print all tool variant names for QtIFW\n"
"$ aqt list qt5 mac desktop # print all versions of Qt 5\n"
"$ aqt list qt5 mac desktop --extension wasm # print all wasm versions of Qt 5\n"
"$ aqt list qt5 mac desktop --filter-minor 9 # print all versions of Qt 5.9\n"
"$ aqt list qt5 mac desktop --filter-minor 9 --latest-version # print latest Qt 5.9\n"
"$ aqt list qt5 mac desktop --modules 5.12.0 # print modules for 5.12.0\n"
"$ aqt list qt5 mac desktop --filter-minor 9 --modules latest # print modules for latest 5.9\n"
"$ aqt list qt5 mac desktop --extensions 5.9.0 # print choices for --extension flag\n"
"$ aqt list qt5 mac desktop --arch 5.9.9 "
"# print architectures for 5.9.9/mac/desktop\n"
"$ aqt list qt5 mac desktop --arch latest "
"# print architectures for the latest Qt 5\n",
)
list_parser.add_argument(
"category",
choices=["tools", "qt5", "qt6"],
help="category of packages to list",
)
list_parser.add_argument(
"host", choices=["linux", "mac", "windows"], help="host os name"
)
list_parser.add_argument(
"target",
nargs="?",
default=None,
choices=["desktop", "winrt", "android", "ios"],
help="Target SDK. When omitted, this prints all the targets available for a host OS.",
)
list_parser.add_argument(
"--extension",
choices=ArchiveId.ALL_EXTENSIONS,
help="Extension of packages to list. "
"Use the `--extensions` flag to list all relevant options for a host/target.",
)
list_parser.add_argument(
"--filter-minor",
type=int,
metavar="MINOR_VERSION",
help="print versions for a particular minor version. "
"IE: `aqt list qt5 windows desktop --filter-minor 12` prints all versions beginning with 5.12",
)
output_modifier_exclusive_group = list_parser.add_mutually_exclusive_group()
output_modifier_exclusive_group.add_argument(
"--modules",
type=str,
metavar="(VERSION | latest)",
help='Qt version in the format of "5.X.Y", or the keyword "latest". '
"When set, this prints all the modules available for either Qt 5.X.Y or the latest version of Qt.",
)
output_modifier_exclusive_group.add_argument(
"--extensions",
type=str,
metavar="(VERSION | latest)",
help='Qt version in the format of "5.X.Y", or the keyword "latest". '
"When set, this prints all valid arguments for the `--extension` flag "
"for either Qt 5.X.Y or the latest version of Qt.",
)
output_modifier_exclusive_group.add_argument(
"--arch",
type=str,
metavar="(VERSION | latest)",
help='Qt version in the format of "5.X.Y", or the keyword "latest". '
"When set, this prints all architectures available for either Qt 5.X.Y or the latest version of Qt.",
)
output_modifier_exclusive_group.add_argument(
"--latest-version",
action="store_true",
help="print only the newest version available",
)
output_modifier_exclusive_group.add_argument(
"--tool",
type=str,
metavar="TOOL_NAME",
help="The name of a tool. Use 'aqt list tools <host> <target>' to see accepted values. "
"This flag only works with the 'tools' category, and cannot be combined with any other flags. "
"When set, this prints all 'tool variant names' available. "
# TODO: find a better word ^^^^^^^^^^^^^^^^^^^^; this is a mysterious help message
"The output of this command is intended to be used with `aqt tool`.",
)
list_parser.set_defaults(func=self.run_list)
def show_help(self, args=None):
"""Display help message"""
@@ -641,13 +732,13 @@ class Cli:
"version", help='Tool version in the format of "4.1.2"'
)
tools_parser.add_argument(
"arch", help="Name of full tool name such as qt.tools.ifw.31"
"arch",
help="Name of full tool name such as qt.tools.ifw.31. "
"Please use 'aqt list --tool' to list acceptable values for this parameter.",
)
self._set_common_options(tools_parser)
#
list_parser = subparsers.add_parser("list")
list_parser.set_defaults(func=self.run_list)
self._set_common_argument(list_parser)
self._make_list_parser(subparsers)
#
help_parser = subparsers.add_parser("help")
help_parser.set_defaults(func=self.show_help)
@@ -735,8 +826,8 @@ def installer(qt_archive, base_dir, command, queue, keep=False, response_timeout
timeout = (Settings.connection_timeout, Settings.response_timeout)
else:
timeout = (Settings.connection_timeout, response_timeout)
hash = binascii.unhexlify(getUrl(hashurl, timeout, logger))
downloadBinaryFile(url, archive, "sha1", hash, timeout, logger)
hash = binascii.unhexlify(getUrl(hashurl, timeout))
downloadBinaryFile(url, archive, "sha1", hash, timeout)
if command is None:
with py7zr.SevenZipFile(archive, "r") as szf:
szf.extractall(path=base_dir)

View File

@@ -27,6 +27,7 @@ class BuildJob:
mirror=None,
subarchives=None,
output_dir=None,
list_options=None,
):
self.command = command
self.qt_version = qt_version
@@ -37,6 +38,7 @@ class BuildJob:
self.module = module
self.mirror = mirror
self.subarchives = subarchives
self.list_options = list_options if list_options else {}
self.output_dir = output_dir
@@ -159,7 +161,17 @@ linux_build_jobs.extend(
"doc", "6.1.0", "linux", "desktop", "gcc_64", "gcc_64", subarchives="qtdoc"
),
# test for list commands
BuildJob("list", "6.1.0", "linux", "desktop", "", ""),
BuildJob('list', '5.15.2', 'linux', 'desktop', '', '', list_options={
'HAS_WASM_EXTENSION': "True",
'HAS_EXTENSIONS': "True",
}),
BuildJob('list', '6.1.0', 'linux', 'android', '', '', list_options={
'HAS_EXTENSIONS': "True",
'USE_EXTENSION': "armv7",
}),
# tests run on linux but query data about other platforms
BuildJob('list', '5.14.1', 'mac', 'ios', '', '', list_options={}),
BuildJob('list', '5.13.1', 'windows', 'winrt', '', '', list_options={}),
]
)
mac_build_jobs.extend(
@@ -262,6 +274,9 @@ for platform_build_job in all_platform_build_jobs:
("MODULE", build_job.module if build_job.module else ""),
("QT_BASE_MIRROR", build_job.mirror if build_job.mirror else ""),
("SUBARCHIVES", build_job.subarchives if build_job.subarchives else ""),
("HAS_WASM_EXTENSION", build_job.list_options.get("HAS_WASM_EXTENSION", "False")),
("HAS_EXTENSIONS", build_job.list_options.get("HAS_EXTENSIONS", "False")),
("USE_EXTENSION", build_job.list_options.get("USE_EXTENSION", "None")),
("OUTPUT_DIR", build_job.output_dir if build_job.output_dir else ""),
(
"QT_BINDIR",

View File

@@ -65,7 +65,36 @@ steps:
fi
fi
if [[ "$(SUBCOMMAND)" == "list" ]]; then
echo implement me.
qtversion=$(QT_VERSION)
MAJORMINOR=${qtversion%.*}
qtmajor="qt${MAJORMINOR%.*}"
qtminor=${MAJORMINOR##*.}
if [[ $(USE_EXTENSION) != "None" ]]; then
# In this case, if you don't specify an extension, Updates.xml just shows dependencies
ext="--extension $(USE_EXTENSION)"
fi
aqt list $qtmajor $(HOST) # print all targets for host
aqt list tools $(HOST) $(TARGET) # print all tools for host/target
aqt list tools $(HOST) $(TARGET) --tool tools_qt3dstudio_runtime_240 # print all tool variant names for qt3dstudio
aqt list $qtmajor $(HOST) $(TARGET) # print all versions of Qt
if [[ $(HAS_WASM_EXTENSION) == "True" ]]; then
aqt list $qtmajor $(HOST) $(TARGET) --extension wasm # print all wasm versions of Qt5
else
! aqt list $qtmajor $(HOST) $(TARGET) --extension wasm # Only Qt5 desktop provides wasm extension
fi
aqt list $qtmajor $(HOST) $(TARGET) $ext --filter-minor $qtminor # print all versions of Qt major/minor
aqt list $qtmajor $(HOST) $(TARGET) $ext --filter-minor $qtminor --latest-version # print latest Qt major/minor
aqt list $qtmajor $(HOST) $(TARGET) $ext --filter-minor $qtminor --modules latest # print modules for latest major/minor
aqt list $qtmajor $(HOST) $(TARGET) $ext --modules $(QT_VERSION) # print modules for version/host/target
if [[ $(HAS_EXTENSIONS) == "True" ]]; then
aqt list $qtmajor $(HOST) $(TARGET) --extensions $(QT_VERSION) # print choices for --extension flag
aqt list $qtmajor $(HOST) $(TARGET) --filter-minor $qtminor --extensions latest
else
! aqt list $qtmajor $(HOST) $(TARGET) --extensions $(QT_VERSION)
! aqt list $qtmajor $(HOST) $(TARGET) --filter-minor $qtminor --extensions latest
fi
aqt list $qtmajor $(HOST) $(TARGET) $ext --arch $(QT_VERSION) # print architectures for version/host/target
aqt list $qtmajor $(HOST) $(TARGET) $ext --filter-minor $qtminor --arch latest
fi
if [[ "$(SUBCOMMAND)" == "src" ]]; then
python -m aqt $(SUBCOMMAND) $(QT_VERSION) $(HOST) $(TARGET) --archives $(SUBARCHIVES)
@@ -97,7 +126,7 @@ steps:
export PATH=$(QT_BINDIR):$PATH
qmake $(Build.BinariesDirectory)/tests/accelbubble
make
condition: and(eq(variables['TARGET'], 'android'), or(eq(variables['Agent.OS'], 'Linux'), eq(variables['Agent.OS'], 'Darwin')))
condition: and(eq(variables['TARGET'], 'android'), or(eq(variables['Agent.OS'], 'Linux'), eq(variables['Agent.OS'], 'Darwin')), ne(variables['SUBCOMMAND'], 'list'))
displayName: Build accelbubble example application to test for android
- script: |

View File

@@ -14,7 +14,7 @@ Contributors, listed alphabetically, are:
* Andrei Yankovich (tools ifw installation)
* Aurélien Gâteau (patching to qmake)
* Benjamin O (Github Actions and more)
* David Dalcino (Improve tests and fix patching to qmake)
* David Dalcino (List command, improve tests and fix patching to qmake)
* Felix Barz (Android, Explicit extra module installation)
* Gamso (improve parsing of update.xml)
* Kyle Altendorf (7z binary path search)

View File

@@ -15,13 +15,81 @@ Generic commands
show generic help
.. option:: list <Qt version> <target OS>
list available variations.
positional arguments:
qt_version Qt version in the format of "5.X.Y"
{linux,mac,windows} host os name
{desktop,winrt,android,ios} target sdk
List command
------------------
.. program:: aqt
.. option:: list [-h | --help] [--extension <extension>] [--filter-minor <Qt minor version>]
[--modules (<Qt version> | latest) | --extensions (<Qt version> | latest) |
--arch (<Qt version> | latest) | --latest-version | --tool <tool name>]
<category> <target OS> [<target variant>]
list available tools, versions of Qt, targets, extensions, modules, and architectures.
.. describe:: category
tools, qt5 or qt6
.. describe:: target OS (aka host in code/help text)
linux, windows or mac
.. describe:: target variant (aka target in code/help text)
desktop, winrt, ios or android. When omitted, the command prints all the targets available for a host OS.
.. option:: --help, -h
Display help text
.. option:: --extension {wasm,src_doc_examples,preview,wasm_preview,x86_64,x86,armv7,arm64_v8a}
Extension of packages to list.
Use the `--extensions` flag to list all relevant options for a host/target.
Incompatible with the `--extensions` flag, but may be combined with any other flag.
.. option:: --extensions (<Qt version> | latest)
Qt version in the format of "5.X.Y", or the keyword `latest`.
When set, this prints all valid arguments for the `--extension` flag for
Qt 5.X.Y, or the latest version of Qt if `latest` is specified.
Incompatible with the `--extension` flag.
.. option:: --filter-minor <Qt minor version>
Print versions of Qt that have a particular minor version.
For example, `aqt list qt5 windows desktop --filter-minor 12` would print
all versions of Qt for Windows Desktop beginning with 5.12.
May be combined with any other flag to filter the output of that flag.
.. option:: --modules (<Qt version> | latest)
Qt version in the format of "5.X.Y". When set, this lists all the modules
available for Qt 5.X.Y with a host/target/extension, or the latest version
of Qt if `latest` is specified.
.. option:: --arch (<Qt version> | latest)
Qt version in the format of "5.X.Y". When set, this prints all architectures
available for Qt 5.X.Y with a host/target/extension, or the latest version
of Qt if `latest` is specified.
.. option:: --latest-version
Print only the newest version available
May be combined with the `--extension` and/or `--filter-minor` flags.
.. option:: --tool <tool name>
The name of a tool. Use `aqt list tools <host> <target>` to see accepted values.
This flag only works with the 'tools' category, and may noy be combined with
any other flags.
When set, this prints all 'tool variant names' available.
The output of this command is meant to be used with the `aqt tool` command:
See the :ref:`Tool installation commands` below.
Installation command
--------------------
@@ -123,6 +191,7 @@ Tool installation commands
install tools specified. tool name may be 'tools_openssl_x64', 'tools_ninja', 'tools_ifw', 'tools_cmake'
and tool variants name may be 'qt.tools.openssl.gcc_64', 'qt.tools.ninja', 'qt.tools.ifw.32', 'qt.tools.cmake'.
You may use the :ref:`List command` with the `--tool` flag to display what tool variant names are available.
You may need to looking for version number at https://download.qt.io/online/qtsdkrepository/
@@ -161,11 +230,53 @@ Example: Install Web Assembly
aqt install 5.15.0 linux desktop wasm_32
Example: List available versions for Qt5 on Linux
.. code-block:: bash
aqt list qt5 linux desktop
Example: List available versions for Qt6 on macOS
.. code-block:: bash
aqt list qt6 mac desktop
Example: List available modules for latest version of Qt6 on macOS
.. code-block:: bash
aqt list qt6 mac desktop --modules latest # prints 'qtquick3d qtshadertools', etc
Example: List available architectures for Qt 6.1.2 on windows
.. code-block:: bash
aqt list qt6 windows desktop --arch 6.1.2 # prints 'win64_mingw81 win64_msvc2019_64', etc
Example: List available tools on windows
.. code-block:: bash
aqt list tools windows desktop # prints 'tools_ifw tools_qtcreator', etc
Example: List the variants of IFW available:
.. code-block:: bash
aqt list tools linux desktop --tool tools_ifw # prints 'qt.tools.ifw.41'
Example: Install an Install FrameWork (IFW):
.. code-block:: bash
aqt tool linux tools_ifw 4.0 qt.tools.ifw.40
aqt tool linux tools_ifw 4.1 qt.tools.ifw.41
Example: Install vcredist:

View File

@@ -35,6 +35,7 @@ extensions = [
'sphinx.ext.coverage',
'sphinx.ext.extlinks',
'sphinx.ext.viewcode',
'sphinx.ext.autosectionlabel',
]
# Add any paths that contain templates here, relative to this directory.

View File

@@ -37,6 +37,7 @@ install_requires =
patch>=1.16
py7zr>=0.15.1
texttable
bs4
setup_requires =
setuptools-scm[toml]>=6.0.1
setuptools>=45.0

View File

@@ -0,0 +1,66 @@
{
"qt5": {
"qt": [
"5.9.0 5.9.1 5.9.2 5.9.3 5.9.4 5.9.5 5.9.6 5.9.7 5.9.8 5.9.9",
"5.10.0 5.10.1",
"5.11.0 5.11.1 5.11.2 5.11.3",
"5.12.0 5.12.1 5.12.2 5.12.3 5.12.4 5.12.5 5.12.6 5.12.7 5.12.8 5.12.9 5.12.10",
"5.13.0 5.13.1 5.13.2",
"5.14.0 5.14.1 5.14.2",
"5.15.0 5.15.1 5.15.2"
],
"preview": [
"5.9-preview",
"5.10-preview",
"5.11-preview",
"5.12-preview",
"5.13-preview",
"5.14-preview",
"5.15-preview"
],
"wasm": [],
"wasm_preview": [],
"src_doc_examples": []
},
"qt6": {
"qt": [
"6.0.0 6.0.1 6.0.2 6.0.3",
"6.1.0"
],
"preview": [
"6.0-preview",
"6.1-preview"
],
"src_doc_examples": [],
"x86_64": [
"6.0.0 6.0.1 6.0.2 6.0.3",
"6.1.0"
],
"x86": [
"6.0.0 6.0.1 6.0.2 6.0.3",
"6.1.0"
],
"armv7": [
"6.0.0 6.0.1 6.0.2 6.0.3",
"6.1.0"
],
"arm64_v8a": [
"6.0.0 6.0.1 6.0.2 6.0.3",
"6.1.0"
]
},
"tools": [
"tools_qt3dstudio_runtime_preview",
"tools_qt3dstudio_runtime_240",
"tools_qt3dstudio_runtime_230",
"tools_qt3dstudio_runtime_220",
"tools_qt3dstudio_openglruntime_preview",
"tools_qt3dstudio_openglruntime_280_5151",
"tools_qt3dstudio_openglruntime_280",
"tools_qt3dstudio_openglruntime_270_5150",
"tools_qt3dstudio_openglruntime_270",
"tools_qt3dstudio_openglruntime_260",
"tools_qt3dstudio_openglruntime_250",
"tools_qt3dstudio_openglruntime_240"
]
}

View File

@@ -0,0 +1,106 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Index of /online/qtsdkrepository/linux_x64/android</title>
<meta name="viewport" content="width=device-width, initial-scale=1"><link rel="stylesheet" type="text/css" href="/static/normalize.css"><link rel="stylesheet" type="text/css" href="/static/style.css"><link rel="stylesheet" href="/static/bootstrap.css" type="text/css"><link rel="stylesheet" href="/static/bootstrap-download-index.css" type="text/css"><script type="text/javascript" src="/static/jquery.js"></script> <script type="text/javascript" src="/static/javascript-index.js"></script> <script type="text/javascript" src="/static/javascript- mirrorlist.js"></script> </head>
<body>
<h1>Index of /online/qtsdkrepository/linux_x64/android</h1>
<table><tr><th>&nbsp;</th><th><a href="?C=N;O=A">Name</a></th><th><a href="?C=M;O=A">Last modified</a></th><th><a href="?C=S;O=A">Size</a></th><th>Metadata</th></tr><tr><th colspan="5"><hr /></th></tr>
<tr><td valign="top">&nbsp;</td><td><a href="/online/qtsdkrepository/linux_x64/">Parent Directory</a></td><td>&nbsp;</td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_qt3dstudio_runtime_preview/">tools_qt3dstudio_runtime_preview/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_qt3dstudio_runtime_240/">tools_qt3dstudio_runtime_240/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_qt3dstudio_runtime_230/">tools_qt3dstudio_runtime_230/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_qt3dstudio_runtime_220/">tools_qt3dstudio_runtime_220/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_qt3dstudio_openglruntime_preview/">tools_qt3dstudio_openglruntime_preview/</a></td><td align="right">20-Oct-2020 08:54 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_qt3dstudio_openglruntime_280_5151/">tools_qt3dstudio_openglruntime_280_5151/</a></td><td align="right">16-Nov-2020 10:16 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_qt3dstudio_openglruntime_280/">tools_qt3dstudio_openglruntime_280/</a></td><td align="right">28-Oct-2020 14:22 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_qt3dstudio_openglruntime_270_5150/">tools_qt3dstudio_openglruntime_270_5150/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_qt3dstudio_openglruntime_270/">tools_qt3dstudio_openglruntime_270/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_qt3dstudio_openglruntime_260/">tools_qt3dstudio_openglruntime_260/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_qt3dstudio_openglruntime_250/">tools_qt3dstudio_openglruntime_250/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_qt3dstudio_openglruntime_240/">tools_qt3dstudio_openglruntime_240/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt6_610_x86_64/">qt6_610_x86_64/</a></td><td align="right">30-Apr-2021 08:10 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt6_610_x86/">qt6_610_x86/</a></td><td align="right">30-Apr-2021 08:10 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt6_610_armv7/">qt6_610_armv7/</a></td><td align="right">30-Apr-2021 08:09 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt6_610_arm64_v8a/">qt6_610_arm64_v8a/</a></td><td align="right">30-Apr-2021 08:09 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt6_610/">qt6_610/</a></td><td align="right">30-Apr-2021 08:09 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt6_603_x86_64/">qt6_603_x86_64/</a></td><td align="right">31-Mar-2021 07:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt6_603_x86/">qt6_603_x86/</a></td><td align="right">31-Mar-2021 07:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt6_603_armv7/">qt6_603_armv7/</a></td><td align="right">31-Mar-2021 07:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt6_603_arm64_v8a/">qt6_603_arm64_v8a/</a></td><td align="right">31-Mar-2021 07:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt6_603/">qt6_603/</a></td><td align="right">31-Mar-2021 07:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt6_602_x86_64/">qt6_602_x86_64/</a></td><td align="right">03-Mar-2021 07:41 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt6_602_x86/">qt6_602_x86/</a></td><td align="right">03-Mar-2021 07:41 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt6_602_armv7/">qt6_602_armv7/</a></td><td align="right">03-Mar-2021 07:41 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt6_602_arm64_v8a/">qt6_602_arm64_v8a/</a></td><td align="right">03-Mar-2021 07:41 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt6_602/">qt6_602/</a></td><td align="right">03-Mar-2021 07:41 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt6_601_x86_64/">qt6_601_x86_64/</a></td><td align="right">03-Feb-2021 07:45 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt6_601_x86/">qt6_601_x86/</a></td><td align="right">03-Feb-2021 07:45 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt6_601_armv7/">qt6_601_armv7/</a></td><td align="right">03-Feb-2021 07:45 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt6_601_arm64_v8a/">qt6_601_arm64_v8a/</a></td><td align="right">03-Feb-2021 07:45 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt6_601/">qt6_601/</a></td><td align="right">03-Feb-2021 07:45 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt6_600_x86_64/">qt6_600_x86_64/</a></td><td align="right">07-Dec-2020 15:30 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt6_600_x86/">qt6_600_x86/</a></td><td align="right">07-Dec-2020 15:30 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt6_600_armv7/">qt6_600_armv7/</a></td><td align="right">07-Dec-2020 15:30 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt6_600_arm64_v8a/">qt6_600_arm64_v8a/</a></td><td align="right">07-Dec-2020 15:30 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt6_600/">qt6_600/</a></td><td align="right">07-Dec-2020 15:30 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt6_61_preview/">qt6_61_preview/</a></td><td align="right">30-Apr-2021 08:10 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt6_60_preview/">qt6_60_preview/</a></td><td align="right">31-Mar-2021 07:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_51210/">qt5_51210/</a></td><td align="right">09-Nov-2020 09:28 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5152/">qt5_5152/</a></td><td align="right">19-Nov-2020 12:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5151/">qt5_5151/</a></td><td align="right">07-Sep-2020 14:44 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5150/">qt5_5150/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5142/">qt5_5142/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5141/">qt5_5141/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5140/">qt5_5140/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5132/">qt5_5132/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5131/">qt5_5131/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5130/">qt5_5130/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5129/">qt5_5129/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="./qt5_5129-backup-2020-04-23--08:59:03/">qt5_5129-backup-2020-04-23--08:59:03/</a></td><td align="right">23-Apr-2020 09:22 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="./qt5_5129-backup-2020-04-22--11:51:53/">qt5_5129-backup-2020-04-22--11:51:53/</a></td><td align="right">22-Apr-2020 15:10 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="./qt5_5129-backup-2020-04-22--11:51:50/">qt5_5129-backup-2020-04-22--11:51:50/</a></td><td align="right">22-Apr-2020 13:02 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="./qt5_5129-backup-2020-04-22--07:40:31/">qt5_5129-backup-2020-04-22--07:40:31/</a></td><td align="right">22-Apr-2020 08:13 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5128/">qt5_5128/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5127/">qt5_5127/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5126/">qt5_5126/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5125/">qt5_5125/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5124/">qt5_5124/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5123/">qt5_5123/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5122/">qt5_5122/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5121/">qt5_5121/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5120/">qt5_5120/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5113/">qt5_5113/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5112/">qt5_5112/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5111/">qt5_5111/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5110/">qt5_5110/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5101/">qt5_5101/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5100/">qt5_5100/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_599/">qt5_599/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_598/">qt5_598/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_597/">qt5_597/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_596/">qt5_596/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_595/">qt5_595/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_594/">qt5_594/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_593/">qt5_593/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_592/">qt5_592/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_591/">qt5_591/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_515_preview/">qt5_515_preview/</a></td><td align="right">19-Nov-2020 12:33 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_514_preview/">qt5_514_preview/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_513_preview/">qt5_513_preview/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_512_preview_backup/">qt5_512_preview_backup/</a></td><td align="right">12-Jun-2020 12:54 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_512_preview/">qt5_512_preview/</a></td><td align="right">09-Nov-2020 09:28 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="./qt5_512_preview-backup-2020-04-23--08:59:03/">qt5_512_preview-backup-2020-04-23--08:59:03/</a></td><td align="right">23-Apr-2020 09:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="./qt5_512_preview-backup-2020-04-22--11:51:53/">qt5_512_preview-backup-2020-04-22--11:51:53/</a></td><td align="right">22-Apr-2020 15:11 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="./qt5_512_preview-backup-2020-04-22--11:51:50/">qt5_512_preview-backup-2020-04-22--11:51:50/</a></td><td align="right">22-Apr-2020 13:03 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="./qt5_512_preview-backup-2020-04-22--07:40:31/">qt5_512_preview-backup-2020-04-22--07:40:31/</a></td><td align="right">22-Apr-2020 08:14 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="./qt5_512_preview-backup-2020-04-21--14:48:40/">qt5_512_preview-backup-2020-04-21--14:48:40/</a></td><td align="right">21-Apr-2020 15:16 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_511_preview/">qt5_511_preview/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_510_preview/">qt5_510_preview/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_59_preview/">qt5_59_preview/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_59/">qt5_59/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><th colspan="5"><hr /></th></tr>
</table>
<br/><address><a href="http://mirrorbrain.org/">MirrorBrain</a> powered by <a href="http://httpd.apache.org/">Apache</a></address>
</body></html>

View File

@@ -0,0 +1,87 @@
{
"qt5": {
"qt": [
"5.9.0 5.9.1 5.9.2 5.9.3 5.9.4 5.9.5 5.9.6 5.9.7 5.9.8 5.9.9",
"5.10.0 5.10.1",
"5.11.0 5.11.1 5.11.2 5.11.3",
"5.12.0 5.12.1 5.12.2 5.12.3 5.12.4 5.12.5 5.12.6 5.12.7 5.12.8 5.12.9 5.12.10",
"5.13.0 5.13.1 5.13.2",
"5.14.0 5.14.1 5.14.2",
"5.15.0 5.15.1 5.15.2"
],
"preview": [
"5.9-preview",
"5.10-preview",
"5.11-preview",
"5.12-preview",
"5.13-preview",
"5.14-preview",
"5.15-preview"
],
"wasm": [
"5.13.0 5.13.1 5.13.2",
"5.14.0 5.14.1 5.14.2",
"5.15.0 5.15.1 5.15.2"
],
"wasm_preview": [
"5.13-preview",
"5.14-preview",
"5.15-preview"
],
"src_doc_examples": [
"5.9.0 5.9.1 5.9.2 5.9.3 5.9.4 5.9.5 5.9.6 5.9.7 5.9.8 5.9.9",
"5.10.0 5.10.1",
"5.11.0 5.11.1 5.11.2 5.11.3",
"5.12.0 5.12.1 5.12.2 5.12.3 5.12.4 5.12.5 5.12.6 5.12.7 5.12.8 5.12.9 5.12.10",
"5.13.0 5.13.1 5.13.2",
"5.14.0 5.14.1 5.14.2",
"5.15.0 5.15.1 5.15.2"
]
},
"qt6": {
"qt": [
"6.0.0 6.0.1 6.0.2 6.0.3",
"6.1.0"
],
"preview": [
"6.0-preview",
"6.1-preview"
],
"src_doc_examples": [
"6.0.0 6.0.1 6.0.2 6.0.3",
"6.1.0"
]
},
"tools": [
"tools_telemetry_preview",
"tools_telemetry",
"tools_qtdesignstudio_preview",
"tools_qtdesignstudio",
"tools_qtcreator_preview",
"tools_qtcreator",
"tools_qt3dstudio_runtime_preview",
"tools_qt3dstudio_runtime_240",
"tools_qt3dstudio_runtime_230",
"tools_qt3dstudio_runtime_220",
"tools_qt3dstudio_preview",
"tools_qt3dstudio_openglruntime_preview",
"tools_qt3dstudio_openglruntime_280_5151",
"tools_qt3dstudio_openglruntime_280",
"tools_qt3dstudio_openglruntime_270_5150",
"tools_qt3dstudio_openglruntime_270",
"tools_qt3dstudio_openglruntime_260",
"tools_qt3dstudio_openglruntime_250",
"tools_qt3dstudio_openglruntime_240",
"tools_qt3dstudio",
"tools_openssl_x64",
"tools_openssl_src",
"tools_ninja",
"tools_maintenance_update_reminder",
"tools_maintenance_early_access",
"tools_maintenance",
"tools_ifw",
"tools_generic",
"tools_conan",
"tools_cmake"
]
}

View File

@@ -0,0 +1,163 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Index of /online/qtsdkrepository/linux_x64/desktop</title>
<meta name="viewport" content="width=device-width, initial-scale=1"><link rel="stylesheet" type="text/css" href="/static/normalize.css"><link rel="stylesheet" type="text/css" href="/static/style.css"><link rel="stylesheet" href="/static/bootstrap.css" type="text/css"><link rel="stylesheet" href="/static/bootstrap-download-index.css" type="text/css"><script type="text/javascript" src="/static/jquery.js"></script> <script type="text/javascript" src="/static/javascript-index.js"></script> <script type="text/javascript" src="/static/javascript- mirrorlist.js"></script> </head>
<body>
<h1>Index of /online/qtsdkrepository/linux_x64/desktop</h1>
<table><tr><th>&nbsp;</th><th><a href="?C=N;O=A">Name</a></th><th><a href="?C=M;O=A">Last modified</a></th><th><a href="?C=S;O=A">Size</a></th><th>Metadata</th></tr><tr><th colspan="5"><hr /></th></tr>
<tr><td valign="top">&nbsp;</td><td><a href="/online/qtsdkrepository/linux_x64/">Parent Directory</a></td><td>&nbsp;</td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_telemetry_preview/">tools_telemetry_preview/</a></td><td align="right">14-Apr-2021 10:39 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_telemetry/">tools_telemetry/</a></td><td align="right">22-Mar-2021 10:22 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_qtdesignstudio_preview/">tools_qtdesignstudio_preview/</a></td><td align="right">21-Apr-2021 10:27 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_qtdesignstudio/">tools_qtdesignstudio/</a></td><td align="right">28-Apr-2021 10:13 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_qtcreator_preview/">tools_qtcreator_preview/</a></td><td align="right">14-Apr-2021 10:37 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_qtcreator/">tools_qtcreator/</a></td><td align="right">22-Mar-2021 10:19 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_qt3dstudio_runtime_preview/">tools_qt3dstudio_runtime_preview/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_qt3dstudio_runtime_240/">tools_qt3dstudio_runtime_240/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_qt3dstudio_runtime_230/">tools_qt3dstudio_runtime_230/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_qt3dstudio_runtime_220/">tools_qt3dstudio_runtime_220/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_qt3dstudio_preview/">tools_qt3dstudio_preview/</a></td><td align="right">20-Oct-2020 08:45 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_qt3dstudio_openglruntime_preview/">tools_qt3dstudio_openglruntime_preview/</a></td><td align="right">20-Oct-2020 08:54 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_qt3dstudio_openglruntime_280_5151/">tools_qt3dstudio_openglruntime_280_5151/</a></td><td align="right">16-Nov-2020 10:16 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_qt3dstudio_openglruntime_280/">tools_qt3dstudio_openglruntime_280/</a></td><td align="right">28-Oct-2020 14:22 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_qt3dstudio_openglruntime_270_5150/">tools_qt3dstudio_openglruntime_270_5150/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_qt3dstudio_openglruntime_270/">tools_qt3dstudio_openglruntime_270/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_qt3dstudio_openglruntime_260/">tools_qt3dstudio_openglruntime_260/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_qt3dstudio_openglruntime_250/">tools_qt3dstudio_openglruntime_250/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_qt3dstudio_openglruntime_240/">tools_qt3dstudio_openglruntime_240/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_qt3dstudio/">tools_qt3dstudio/</a></td><td align="right">28-Oct-2020 14:22 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_openssl_x64/">tools_openssl_x64/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_openssl_src/">tools_openssl_src/</a></td><td align="right">26-Feb-2021 14:50 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_ninja/">tools_ninja/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_maintenance_update_reminder/">tools_maintenance_update_reminder/</a></td><td align="right">02-Feb-2018 10:00 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_maintenance_early_access/">tools_maintenance_early_access/</a></td><td align="right">30-Sep-2020 12:48 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_maintenance/">tools_maintenance/</a></td><td align="right">13-Apr-2021 14:41 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_ifw/">tools_ifw/</a></td><td align="right">13-Apr-2021 14:58 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_generic/">tools_generic/</a></td><td align="right">13-Apr-2021 14:39 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_conan/">tools_conan/</a></td><td align="right">15-Feb-2021 12:14 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_cmake/">tools_cmake/</a></td><td align="right">07-Jan-2021 14:22 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt6_610_src_doc_examples/">qt6_610_src_doc_examples/</a></td><td align="right">30-Apr-2021 08:09 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt6_610/">qt6_610/</a></td><td align="right">30-Apr-2021 08:07 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt6_603_src_doc_examples/">qt6_603_src_doc_examples/</a></td><td align="right">31-Mar-2021 07:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt6_603/">qt6_603/</a></td><td align="right">31-Mar-2021 07:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt6_602_src_doc_examples/">qt6_602_src_doc_examples/</a></td><td align="right">03-Mar-2021 07:40 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt6_602/">qt6_602/</a></td><td align="right">03-Mar-2021 07:40 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt6_601_src_doc_examples/">qt6_601_src_doc_examples/</a></td><td align="right">05-Feb-2021 10:59 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt6_601/">qt6_601/</a></td><td align="right">03-Feb-2021 07:43 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt6_600_src_doc_examples/">qt6_600_src_doc_examples/</a></td><td align="right">07-Dec-2020 15:29 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt6_600/">qt6_600/</a></td><td align="right">07-Dec-2020 15:28 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt6_61_preview/">qt6_61_preview/</a></td><td align="right">30-Apr-2021 08:10 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt6_60_preview/">qt6_60_preview/</a></td><td align="right">31-Mar-2021 07:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_51210_src_doc_examples/">qt5_51210_src_doc_examples/</a></td><td align="right">09-Nov-2020 09:21 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_51210/">qt5_51210/</a></td><td align="right">09-Nov-2020 09:20 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5152_wasm/">qt5_5152_wasm/</a></td><td align="right">19-Nov-2020 12:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5152_src_doc_examples/">qt5_5152_src_doc_examples/</a></td><td align="right">19-Nov-2020 12:29 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5152/">qt5_5152/</a></td><td align="right">19-Nov-2020 12:27 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5151_wasm/">qt5_5151_wasm/</a></td><td align="right">07-Sep-2020 14:45 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5151_src_doc_examples/">qt5_5151_src_doc_examples/</a></td><td align="right">07-Sep-2020 14:43 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5151/">qt5_5151/</a></td><td align="right">07-Sep-2020 14:43 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5150_wasm/">qt5_5150_wasm/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5150_src_doc_examples/">qt5_5150_src_doc_examples/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5150/">qt5_5150/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5142_wasm/">qt5_5142_wasm/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5142_src_doc_examples/">qt5_5142_src_doc_examples/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5142/">qt5_5142/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5141_wasm/">qt5_5141_wasm/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5141_src_doc_examples/">qt5_5141_src_doc_examples/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5141/">qt5_5141/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5140_wasm/">qt5_5140_wasm/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5140_src_doc_examples/">qt5_5140_src_doc_examples/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5140/">qt5_5140/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5132_wasm/">qt5_5132_wasm/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5132_src_doc_examples/">qt5_5132_src_doc_examples/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5132/">qt5_5132/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5131_wasm/">qt5_5131_wasm/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5131_src_doc_examples/">qt5_5131_src_doc_examples/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5131/">qt5_5131/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5130_wasm/">qt5_5130_wasm/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5130_src_doc_examples/">qt5_5130_src_doc_examples/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5130/">qt5_5130/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5129_src_doc_examples/">qt5_5129_src_doc_examples/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="./qt5_5129_src_doc_examples-backup-2020-04-23--08:59:03/">qt5_5129_src_doc_examples-backup-2020-04-23--08:59:03/</a></td><td align="right">23-Apr-2020 09:20 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="./qt5_5129_src_doc_examples-backup-2020-04-22--11:51:53/">qt5_5129_src_doc_examples-backup-2020-04-22--11:51:53/</a></td><td align="right">22-Apr-2020 15:09 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="./qt5_5129_src_doc_examples-backup-2020-04-22--11:51:50/">qt5_5129_src_doc_examples-backup-2020-04-22--11:51:50/</a></td><td align="right">22-Apr-2020 12:59 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="./qt5_5129_src_doc_examples-backup-2020-04-22--07:40:31/">qt5_5129_src_doc_examples-backup-2020-04-22--07:40:31/</a></td><td align="right">22-Apr-2020 08:10 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5129/">qt5_5129/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="./qt5_5129-backup-2020-04-23--08:59:03/">qt5_5129-backup-2020-04-23--08:59:03/</a></td><td align="right">23-Apr-2020 09:17 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="./qt5_5129-backup-2020-04-22--11:51:53/">qt5_5129-backup-2020-04-22--11:51:53/</a></td><td align="right">22-Apr-2020 15:04 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="./qt5_5129-backup-2020-04-22--11:51:50/">qt5_5129-backup-2020-04-22--11:51:50/</a></td><td align="right">22-Apr-2020 12:44 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="./qt5_5129-backup-2020-04-22--07:40:31/">qt5_5129-backup-2020-04-22--07:40:31/</a></td><td align="right">22-Apr-2020 08:03 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5128_src_doc_examples/">qt5_5128_src_doc_examples/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5128/">qt5_5128/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5127_src_doc_examples/">qt5_5127_src_doc_examples/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5127/">qt5_5127/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5126_src_doc_examples/">qt5_5126_src_doc_examples/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5126/">qt5_5126/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5125_src_doc_examples/">qt5_5125_src_doc_examples/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5125/">qt5_5125/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5124_src_doc_examples/">qt5_5124_src_doc_examples/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5124/">qt5_5124/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5123_src_doc_examples/">qt5_5123_src_doc_examples/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5123/">qt5_5123/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5122_src_doc_examples/">qt5_5122_src_doc_examples/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5122/">qt5_5122/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5121_src_doc_examples/">qt5_5121_src_doc_examples/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5121/">qt5_5121/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5120_src_doc_examples/">qt5_5120_src_doc_examples/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5120/">qt5_5120/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5113_src_doc_examples/">qt5_5113_src_doc_examples/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5113/">qt5_5113/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5112_src_doc_examples/">qt5_5112_src_doc_examples/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5112/">qt5_5112/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5111_src_doc_examples/">qt5_5111_src_doc_examples/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5111/">qt5_5111/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5110_src_doc_examples/">qt5_5110_src_doc_examples/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5110/">qt5_5110/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5101_src_doc_examples/">qt5_5101_src_doc_examples/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5101/">qt5_5101/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5100_src_doc_examples/">qt5_5100_src_doc_examples/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5100/">qt5_5100/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_599_src_doc_examples/">qt5_599_src_doc_examples/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_599/">qt5_599/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_598_src_doc_examples/">qt5_598_src_doc_examples/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_598/">qt5_598/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_597_src_doc_examples/">qt5_597_src_doc_examples/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_597/">qt5_597/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_596_src_doc_examples/">qt5_596_src_doc_examples/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_596/">qt5_596/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_595_src_doc_examples/">qt5_595_src_doc_examples/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_595/">qt5_595/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_594_src_doc_examples/">qt5_594_src_doc_examples/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_594/">qt5_594/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_593_src_doc_examples/">qt5_593_src_doc_examples/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_593/">qt5_593/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_592_src_doc_examples/">qt5_592_src_doc_examples/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_592/">qt5_592/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_591_src_doc_examples/">qt5_591_src_doc_examples/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_591/">qt5_591/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_515_wasm_preview/">qt5_515_wasm_preview/</a></td><td align="right">19-Nov-2020 12:33 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_515_preview/">qt5_515_preview/</a></td><td align="right">19-Nov-2020 12:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_514_wasm_preview/">qt5_514_wasm_preview/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_514_preview/">qt5_514_preview/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_513_wasm_preview/">qt5_513_wasm_preview/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_513_preview/">qt5_513_preview/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_512_preview/">qt5_512_preview/</a></td><td align="right">09-Nov-2020 09:28 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="./qt5_512_preview-backup-2020-04-23--08:59:03/">qt5_512_preview-backup-2020-04-23--08:59:03/</a></td><td align="right">23-Apr-2020 09:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="./qt5_512_preview-backup-2020-04-22--11:51:53/">qt5_512_preview-backup-2020-04-22--11:51:53/</a></td><td align="right">22-Apr-2020 15:10 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="./qt5_512_preview-backup-2020-04-22--11:51:50/">qt5_512_preview-backup-2020-04-22--11:51:50/</a></td><td align="right">22-Apr-2020 13:03 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="./qt5_512_preview-backup-2020-04-22--07:40:31/">qt5_512_preview-backup-2020-04-22--07:40:31/</a></td><td align="right">22-Apr-2020 08:14 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="./qt5_512_preview-backup-2020-04-21--14:48:40/">qt5_512_preview-backup-2020-04-21--14:48:40/</a></td><td align="right">21-Apr-2020 15:16 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_511_preview/">qt5_511_preview/</a></td><td align="right">24-Aug-2020 15:37 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_510_preview/">qt5_510_preview/</a></td><td align="right">24-Aug-2020 15:37 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_59_src_doc_examples/">qt5_59_src_doc_examples/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_59_preview/">qt5_59_preview/</a></td><td align="right">24-Aug-2020 15:37 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_59/">qt5_59/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="preview_main_node/">preview_main_node/</a></td><td align="right">12-Nov-2020 11:33 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="licenses/">licenses/</a></td><td align="right">24-Aug-2020 15:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="extras_src/">extras_src/</a></td><td align="right">10-Mar-2021 11:07 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><th colspan="5"><hr /></th></tr>
</table>
<br/><address><a href="http://mirrorbrain.org/">MirrorBrain</a> powered by <a href="http://httpd.apache.org/">Apache</a></address>
</body></html>

View File

@@ -0,0 +1,66 @@
{
"qt5": {
"qt": [
"5.9.0 5.9.1 5.9.2 5.9.3 5.9.4 5.9.5 5.9.6 5.9.7 5.9.8 5.9.9",
"5.10.0 5.10.1",
"5.11.0 5.11.1 5.11.2 5.11.3",
"5.12.0 5.12.1 5.12.2 5.12.3 5.12.4 5.12.5 5.12.6 5.12.7 5.12.8 5.12.9 5.12.10",
"5.13.0 5.13.1 5.13.2",
"5.14.0 5.14.1 5.14.2",
"5.15.0 5.15.1 5.15.2"
],
"preview": [
"5.9-preview",
"5.10-preview",
"5.11-preview",
"5.12-preview",
"5.13-preview",
"5.14-preview",
"5.15-preview"
],
"wasm": [],
"wasm_preview": [],
"src_doc_examples": []
},
"qt6": {
"qt": [
"6.0.0 6.0.1 6.0.2 6.0.3",
"6.1.0"
],
"preview": [
"6.0-preview",
"6.1-preview"
],
"src_doc_examples": [],
"x86_64": [
"6.0.0 6.0.1 6.0.2 6.0.3",
"6.1.0"
],
"x86": [
"6.0.0 6.0.1 6.0.2 6.0.3",
"6.1.0"
],
"armv7": [
"6.0.0 6.0.1 6.0.2 6.0.3",
"6.1.0"
],
"arm64_v8a": [
"6.0.0 6.0.1 6.0.2 6.0.3",
"6.1.0"
]
},
"tools": [
"tools_qt3dstudio_runtime_preview",
"tools_qt3dstudio_runtime_240",
"tools_qt3dstudio_runtime_230",
"tools_qt3dstudio_runtime_220",
"tools_qt3dstudio_openglruntime_preview",
"tools_qt3dstudio_openglruntime_280_5151",
"tools_qt3dstudio_openglruntime_280",
"tools_qt3dstudio_openglruntime_270_5150",
"tools_qt3dstudio_openglruntime_270",
"tools_qt3dstudio_openglruntime_260",
"tools_qt3dstudio_openglruntime_250",
"tools_qt3dstudio_openglruntime_240"
]
}

View File

@@ -0,0 +1,99 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Index of /online/qtsdkrepository/mac_x64/android</title>
<meta name="viewport" content="width=device-width, initial-scale=1"><link rel="stylesheet" type="text/css" href="/static/normalize.css"><link rel="stylesheet" type="text/css" href="/static/style.css"><link rel="stylesheet" href="/static/bootstrap.css" type="text/css"><link rel="stylesheet" href="/static/bootstrap-download-index.css" type="text/css"><script type="text/javascript" src="/static/jquery.js"></script> <script type="text/javascript" src="/static/javascript-index.js"></script> <script type="text/javascript" src="/static/javascript- mirrorlist.js"></script> </head>
<body>
<h1>Index of /online/qtsdkrepository/mac_x64/android</h1>
<table><tr><th>&nbsp;</th><th><a href="?C=N;O=A">Name</a></th><th><a href="?C=M;O=A">Last modified</a></th><th><a href="?C=S;O=A">Size</a></th><th>Metadata</th></tr><tr><th colspan="5"><hr /></th></tr>
<tr><td valign="top">&nbsp;</td><td><a href="/online/qtsdkrepository/mac_x64/">Parent Directory</a></td><td>&nbsp;</td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_qt3dstudio_runtime_preview/">tools_qt3dstudio_runtime_preview/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_qt3dstudio_runtime_240/">tools_qt3dstudio_runtime_240/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_qt3dstudio_runtime_230/">tools_qt3dstudio_runtime_230/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_qt3dstudio_runtime_220/">tools_qt3dstudio_runtime_220/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_qt3dstudio_openglruntime_preview/">tools_qt3dstudio_openglruntime_preview/</a></td><td align="right">20-Oct-2020 08:55 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_qt3dstudio_openglruntime_280_5151/">tools_qt3dstudio_openglruntime_280_5151/</a></td><td align="right">16-Nov-2020 10:16 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_qt3dstudio_openglruntime_280/">tools_qt3dstudio_openglruntime_280/</a></td><td align="right">28-Oct-2020 14:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_qt3dstudio_openglruntime_270_5150/">tools_qt3dstudio_openglruntime_270_5150/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_qt3dstudio_openglruntime_270/">tools_qt3dstudio_openglruntime_270/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_qt3dstudio_openglruntime_260/">tools_qt3dstudio_openglruntime_260/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_qt3dstudio_openglruntime_250/">tools_qt3dstudio_openglruntime_250/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_qt3dstudio_openglruntime_240/">tools_qt3dstudio_openglruntime_240/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt6_610_x86_64/">qt6_610_x86_64/</a></td><td align="right">30-Apr-2021 08:14 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt6_610_x86/">qt6_610_x86/</a></td><td align="right">30-Apr-2021 08:14 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt6_610_armv7/">qt6_610_armv7/</a></td><td align="right">30-Apr-2021 08:14 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt6_610_arm64_v8a/">qt6_610_arm64_v8a/</a></td><td align="right">30-Apr-2021 08:14 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt6_610/">qt6_610/</a></td><td align="right">30-Apr-2021 08:14 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt6_603_x86_64/">qt6_603_x86_64/</a></td><td align="right">31-Mar-2021 07:35 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt6_603_x86/">qt6_603_x86/</a></td><td align="right">31-Mar-2021 07:35 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt6_603_armv7/">qt6_603_armv7/</a></td><td align="right">31-Mar-2021 07:35 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt6_603_arm64_v8a/">qt6_603_arm64_v8a/</a></td><td align="right">31-Mar-2021 07:35 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt6_603/">qt6_603/</a></td><td align="right">31-Mar-2021 07:35 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt6_602_x86_64/">qt6_602_x86_64/</a></td><td align="right">03-Mar-2021 07:45 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt6_602_x86/">qt6_602_x86/</a></td><td align="right">03-Mar-2021 07:45 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt6_602_armv7/">qt6_602_armv7/</a></td><td align="right">03-Mar-2021 07:45 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt6_602_arm64_v8a/">qt6_602_arm64_v8a/</a></td><td align="right">03-Mar-2021 07:45 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt6_602/">qt6_602/</a></td><td align="right">03-Mar-2021 07:44 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt6_601_x86_64/">qt6_601_x86_64/</a></td><td align="right">03-Feb-2021 07:45 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt6_601_x86/">qt6_601_x86/</a></td><td align="right">03-Feb-2021 07:45 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt6_601_armv7/">qt6_601_armv7/</a></td><td align="right">03-Feb-2021 07:45 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt6_601_arm64_v8a/">qt6_601_arm64_v8a/</a></td><td align="right">03-Feb-2021 07:45 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt6_601/">qt6_601/</a></td><td align="right">03-Feb-2021 07:44 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt6_600_x86_64/">qt6_600_x86_64/</a></td><td align="right">07-Dec-2020 15:30 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt6_600_x86/">qt6_600_x86/</a></td><td align="right">07-Dec-2020 15:30 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt6_600_armv7/">qt6_600_armv7/</a></td><td align="right">07-Dec-2020 15:30 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt6_600_arm64_v8a/">qt6_600_arm64_v8a/</a></td><td align="right">07-Dec-2020 15:29 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt6_600/">qt6_600/</a></td><td align="right">07-Dec-2020 15:29 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt6_61_preview/">qt6_61_preview/</a></td><td align="right">30-Apr-2021 08:16 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt6_60_preview/">qt6_60_preview/</a></td><td align="right">31-Mar-2021 07:36 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_51210/">qt5_51210/</a></td><td align="right">09-Nov-2020 09:49 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5152/">qt5_5152/</a></td><td align="right">19-Nov-2020 12:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5151/">qt5_5151/</a></td><td align="right">07-Sep-2020 15:07 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5150/">qt5_5150/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5142/">qt5_5142/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5141/">qt5_5141/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5140/">qt5_5140/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5132/">qt5_5132/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5131/">qt5_5131/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5130/">qt5_5130/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5129/">qt5_5129/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="./qt5_5129-backup-2020-04-23--08:59:15/">qt5_5129-backup-2020-04-23--08:59:15/</a></td><td align="right">23-Apr-2020 09:49 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5128/">qt5_5128/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5127/">qt5_5127/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5126/">qt5_5126/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5125/">qt5_5125/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5124/">qt5_5124/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5123/">qt5_5123/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5122/">qt5_5122/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5121/">qt5_5121/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5120/">qt5_5120/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5113/">qt5_5113/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5112/">qt5_5112/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5111/">qt5_5111/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5110/">qt5_5110/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5101/">qt5_5101/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5100/">qt5_5100/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_599/">qt5_599/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_598/">qt5_598/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_597/">qt5_597/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_596/">qt5_596/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_595/">qt5_595/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_594/">qt5_594/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_593/">qt5_593/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_592/">qt5_592/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_591/">qt5_591/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_515_preview/">qt5_515_preview/</a></td><td align="right">19-Nov-2020 12:38 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_514_preview/">qt5_514_preview/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_513_preview/">qt5_513_preview/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_512_preview/">qt5_512_preview/</a></td><td align="right">09-Nov-2020 09:52 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="./qt5_512_preview-backup-2020-04-23--08:59:15/">qt5_512_preview-backup-2020-04-23--08:59:15/</a></td><td align="right">23-Apr-2020 09:56 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="./qt5_512_preview-backup-2020-04-22--11:51:53/">qt5_512_preview-backup-2020-04-22--11:51:53/</a></td><td align="right">22-Apr-2020 16:04 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_511_preview/">qt5_511_preview/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_510_preview/">qt5_510_preview/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_59_preview/">qt5_59_preview/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_59/">qt5_59/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><th colspan="5"><hr /></th></tr>
</table>
<br/><address><a href="http://mirrorbrain.org/">MirrorBrain</a> powered by <a href="http://httpd.apache.org/">Apache</a></address>
</body></html>

View File

@@ -0,0 +1,88 @@
{
"qt5": {
"qt": [
"5.9.0 5.9.1 5.9.2 5.9.3 5.9.4 5.9.5 5.9.6 5.9.7 5.9.8 5.9.9",
"5.10.0 5.10.1",
"5.11.0 5.11.1 5.11.2 5.11.3",
"5.12.0 5.12.1 5.12.2 5.12.3 5.12.4 5.12.5 5.12.6 5.12.7 5.12.8 5.12.9 5.12.10",
"5.13.0 5.13.1 5.13.2",
"5.14.0 5.14.1 5.14.2",
"5.15.0 5.15.1 5.15.2"
],
"preview": [
"5.6-preview",
"5.9-preview",
"5.10-preview",
"5.11-preview",
"5.12-preview",
"5.13-preview",
"5.14-preview",
"5.15-preview"
],
"wasm": [
"5.13.1 5.13.2",
"5.14.0 5.14.1 5.14.2",
"5.15.0 5.15.1 5.15.2"
],
"wasm_preview": [
"5.13-preview",
"5.14-preview",
"5.15-preview"
],
"src_doc_examples": [
"5.9.0 5.9.1 5.9.2 5.9.3 5.9.4 5.9.5 5.9.6 5.9.7 5.9.8 5.9.9",
"5.10.0 5.10.1",
"5.11.0 5.11.1 5.11.2 5.11.3",
"5.12.0 5.12.1 5.12.2 5.12.3 5.12.4 5.12.5 5.12.6 5.12.7 5.12.8 5.12.9 5.12.10",
"5.13.0 5.13.1 5.13.2",
"5.14.0 5.14.1 5.14.2",
"5.15.0 5.15.1 5.15.2"
]
},
"qt6": {
"qt": [
"6.0.0 6.0.1 6.0.2 6.0.3",
"6.1.0"
],
"preview": [
"6.0-preview",
"6.1-preview"
],
"src_doc_examples": [
"6.0.0 6.0.1 6.0.2 6.0.3",
"6.1.0"
]
},
"tools": [
"tools_telemetry_preview",
"tools_telemetry",
"tools_qtdesignstudio_preview",
"tools_qtdesignstudio",
"tools_qtcreator_preview",
"tools_qtcreator",
"tools_qt3dstudio_runtime_preview",
"tools_qt3dstudio_runtime_240",
"tools_qt3dstudio_runtime_230",
"tools_qt3dstudio_runtime_220",
"tools_qt3dstudio_runtime_210",
"tools_qt3dstudio_runtime",
"tools_qt3dstudio_preview",
"tools_qt3dstudio_openglruntime_preview",
"tools_qt3dstudio_openglruntime_280_5151",
"tools_qt3dstudio_openglruntime_280",
"tools_qt3dstudio_openglruntime_270_5150",
"tools_qt3dstudio_openglruntime_270",
"tools_qt3dstudio_openglruntime_260",
"tools_qt3dstudio_openglruntime_250",
"tools_qt3dstudio_openglruntime_240",
"tools_qt3dstudio",
"tools_ninja",
"tools_maintenance_update_reminder",
"tools_maintenance_early_access",
"tools_maintenance",
"tools_ifw",
"tools_generic",
"tools_conan",
"tools_cmake"
]
}

View File

@@ -0,0 +1,5 @@
{
"modules": [
"qt.tools.cmake"
]
}

View File

@@ -0,0 +1,24 @@
<Updates>
<ApplicationName>{AnyApplication}</ApplicationName>
<ApplicationVersion>1.0.0</ApplicationVersion>
<Checksum>true</Checksum>
<PackageUpdate>
<Name>qt.tools.cmake</Name>
<DisplayName>CMake 3.19.2</DisplayName>
<Description>CMake tools 3.19.2</Description>
<Version>3.19.2-202101071155</Version>
<ReleaseDate>2021-01-07</ReleaseDate>
<Dependencies>qt.tools.qtcreator</Dependencies>
<Script>installscript.qs</Script>
<DownloadableArchives>macos64_x86_cmake_tools.7z</DownloadableArchives>
<Default>true</Default>
<UpdateFile CompressedSize="43264131" OS="Any" UncompressedSize="165156306"/>
<UserInterfaces>licensedialog.ui</UserInterfaces>
<Licenses>
<License file="Copyright.txt" name="CMake license agreement"/>
</Licenses>
<SHA1>c514d8a496607eee80f7dae2f152b464f288319f</SHA1>
</PackageUpdate>
<SHA1>c514d8a496607eee80f7dae2f152b464f288319f</SHA1>
<MetadataName>2021-01-07-1156_meta.7z</MetadataName>
</Updates>

View File

@@ -0,0 +1,5 @@
{
"modules": [
"qt.tools.ifw.41"
]
}

View File

@@ -0,0 +1,19 @@
<Updates>
<ApplicationName>{AnyApplication}</ApplicationName>
<ApplicationVersion>1.0.0</ApplicationVersion>
<Checksum>true</Checksum>
<PackageUpdate>
<Name>qt.tools.ifw.41</Name>
<DisplayName>Qt Installer Framework 4.1</DisplayName>
<Description>The Qt Installer Framework provides a set of tools and utilities to create installers for the supported desktop Qt platforms: Linux, Microsoft Windows, and macOS.</Description>
<Version>4.1.1-202105261132</Version>
<ReleaseDate>2021-05-26</ReleaseDate>
<Default>false</Default>
<SortingPriority>410</SortingPriority>
<DownloadableArchives>ifw-mac-x64.7z</DownloadableArchives>
<UpdateFile UncompressedSize="129741860" CompressedSize="39605245" OS="Any"/>
<SHA1>ac812bbcade385c605bc1dc200be8a23ac839cbf</SHA1>
</PackageUpdate>
<SHA1>ac812bbcade385c605bc1dc200be8a23ac839cbf</SHA1>
<MetadataName>2021-05-26-1132_meta.7z</MetadataName>
</Updates>

View File

@@ -0,0 +1,7 @@
{
"modules": [
"qt.tools.qtcreator",
"qt.tools.qtcreatordbg",
"qt.tools.qtcreatordev"
]
}

View File

@@ -0,0 +1,44 @@
<Updates>
<ApplicationName>{AnyApplication}</ApplicationName>
<ApplicationVersion>1.0.0</ApplicationVersion>
<Checksum>true</Checksum>
<PackageUpdate>
<Name>qt.tools.qtcreator</Name>
<DisplayName>Qt Creator 4.15.1</DisplayName>
<Description>IDE for Qt application development</Description>
<Version>4.15.1-0-202106081242</Version>
<ReleaseDate>2021-06-08</ReleaseDate>
<Script>installscript.qs</Script>
<Dependencies/>
<SortingPriority>1000</SortingPriority>
<ForcedInstallation>true</ForcedInstallation>
<DownloadableArchives>qtcreator.7z, qtcreator_sdktool.7z</DownloadableArchives>
<UpdateFile CompressedSize="136099945" UncompressedSize="533316311" OS="Any"/>
<UserInterfaces>associatecommonfiletypesform.ui,launchqtcreatorcheckboxform.ui</UserInterfaces>
<SHA1>684ee4525e6412623167a5442b7c262cac52c9bb</SHA1>
</PackageUpdate>
<PackageUpdate>
<Name>qt.tools.qtcreatordbg</Name>
<DisplayName>Qt Creator 4.15.1 Debug Symbols</DisplayName>
<Description>Additional symbol files required to debug Qt Creator</Description>
<Version>4.15.1-0-202106081242</Version>
<ReleaseDate>2021-06-08</ReleaseDate>
<SortingPriority>994</SortingPriority>
<DownloadableArchives>qtcreator-debug.7z</DownloadableArchives>
<UpdateFile CompressedSize="235240929" UncompressedSize="1570679561" OS="Any"/>
<SHA1>c71f2e138df7232f7482e66a4cc2db5f94a3c7b4</SHA1>
</PackageUpdate>
<PackageUpdate>
<Name>qt.tools.qtcreatordev</Name>
<DisplayName>Qt Creator 4.15.1 Plugin Development</DisplayName>
<Description>Headers and libs required to develop additional plugins</Description>
<Version>4.15.1-0-202106081242</Version>
<ReleaseDate>2021-06-08</ReleaseDate>
<SortingPriority>990</SortingPriority>
<DownloadableArchives>qtcreator_dev.7z</DownloadableArchives>
<UpdateFile CompressedSize="12377799" UncompressedSize="104362249" OS="Any"/>
<SHA1>0e2127ef128a87f6bc04e0c9eccab677aac21ec0</SHA1>
</PackageUpdate>
<SHA1>593112b370156d1ef2fe365fb2b9890b175ce084</SHA1>
<MetadataName>2021-06-08-1242_meta.7z</MetadataName>
</Updates>

154
tests/data/mac-desktop.html Normal file
View File

@@ -0,0 +1,154 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Index of /online/qtsdkrepository/mac_x64/desktop</title>
<meta name="viewport" content="width=device-width, initial-scale=1"><link rel="stylesheet" type="text/css" href="/static/normalize.css"><link rel="stylesheet" type="text/css" href="/static/style.css"><link rel="stylesheet" href="/static/bootstrap.css" type="text/css"><link rel="stylesheet" href="/static/bootstrap-download-index.css" type="text/css"><script type="text/javascript" src="/static/jquery.js"></script> <script type="text/javascript" src="/static/javascript-index.js"></script> <script type="text/javascript" src="/static/javascript- mirrorlist.js"></script> </head>
<body>
<h1>Index of /online/qtsdkrepository/mac_x64/desktop</h1>
<table><tr><th>&nbsp;</th><th><a href="?C=N;O=A">Name</a></th><th><a href="?C=M;O=A">Last modified</a></th><th><a href="?C=S;O=A">Size</a></th><th>Metadata</th></tr><tr><th colspan="5"><hr /></th></tr>
<tr><td valign="top">&nbsp;</td><td><a href="/online/qtsdkrepository/mac_x64/">Parent Directory</a></td><td>&nbsp;</td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_telemetry_preview/">tools_telemetry_preview/</a></td><td align="right">14-Apr-2021 10:40 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_telemetry/">tools_telemetry/</a></td><td align="right">22-Mar-2021 10:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_qtdesignstudio_preview/">tools_qtdesignstudio_preview/</a></td><td align="right">21-Apr-2021 10:27 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_qtdesignstudio/">tools_qtdesignstudio/</a></td><td align="right">28-Apr-2021 10:14 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_qtcreator_preview/">tools_qtcreator_preview/</a></td><td align="right">14-Apr-2021 10:38 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_qtcreator/">tools_qtcreator/</a></td><td align="right">22-Mar-2021 10:21 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_qt3dstudio_runtime_preview/">tools_qt3dstudio_runtime_preview/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_qt3dstudio_runtime_240/">tools_qt3dstudio_runtime_240/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_qt3dstudio_runtime_230/">tools_qt3dstudio_runtime_230/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_qt3dstudio_runtime_220/">tools_qt3dstudio_runtime_220/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_qt3dstudio_runtime_210/">tools_qt3dstudio_runtime_210/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_qt3dstudio_runtime/">tools_qt3dstudio_runtime/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_qt3dstudio_preview/">tools_qt3dstudio_preview/</a></td><td align="right">20-Oct-2020 08:45 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_qt3dstudio_openglruntime_preview/">tools_qt3dstudio_openglruntime_preview/</a></td><td align="right">20-Oct-2020 08:55 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_qt3dstudio_openglruntime_280_5151/">tools_qt3dstudio_openglruntime_280_5151/</a></td><td align="right">16-Nov-2020 10:16 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_qt3dstudio_openglruntime_280/">tools_qt3dstudio_openglruntime_280/</a></td><td align="right">28-Oct-2020 14:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_qt3dstudio_openglruntime_270_5150/">tools_qt3dstudio_openglruntime_270_5150/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_qt3dstudio_openglruntime_270/">tools_qt3dstudio_openglruntime_270/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_qt3dstudio_openglruntime_260/">tools_qt3dstudio_openglruntime_260/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_qt3dstudio_openglruntime_250/">tools_qt3dstudio_openglruntime_250/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_qt3dstudio_openglruntime_240/">tools_qt3dstudio_openglruntime_240/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_qt3dstudio/">tools_qt3dstudio/</a></td><td align="right">28-Oct-2020 14:24 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_ninja/">tools_ninja/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_maintenance_update_reminder/">tools_maintenance_update_reminder/</a></td><td align="right">02-Feb-2018 10:00 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_maintenance_early_access/">tools_maintenance_early_access/</a></td><td align="right">30-Sep-2020 12:48 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_maintenance/">tools_maintenance/</a></td><td align="right">13-Apr-2021 14:41 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_ifw/">tools_ifw/</a></td><td align="right">13-Apr-2021 14:58 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_generic/">tools_generic/</a></td><td align="right">13-Apr-2021 14:39 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_conan/">tools_conan/</a></td><td align="right">15-Feb-2021 12:15 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_cmake/">tools_cmake/</a></td><td align="right">07-Jan-2021 14:22 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt6_610_src_doc_examples/">qt6_610_src_doc_examples/</a></td><td align="right">30-Apr-2021 08:13 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt6_610/">qt6_610/</a></td><td align="right">30-Apr-2021 08:13 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt6_603_src_doc_examples/">qt6_603_src_doc_examples/</a></td><td align="right">31-Mar-2021 07:34 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt6_603/">qt6_603/</a></td><td align="right">31-Mar-2021 07:34 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt6_602_src_doc_examples/">qt6_602_src_doc_examples/</a></td><td align="right">03-Mar-2021 07:44 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt6_602/">qt6_602/</a></td><td align="right">03-Mar-2021 07:44 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt6_601_src_doc_examples/">qt6_601_src_doc_examples/</a></td><td align="right">05-Feb-2021 10:59 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt6_601/">qt6_601/</a></td><td align="right">03-Feb-2021 07:44 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt6_600_src_doc_examples/">qt6_600_src_doc_examples/</a></td><td align="right">07-Dec-2020 15:29 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt6_600/">qt6_600/</a></td><td align="right">07-Dec-2020 15:28 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt6_61_preview/">qt6_61_preview/</a></td><td align="right">30-Apr-2021 08:16 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt6_60_preview/">qt6_60_preview/</a></td><td align="right">31-Mar-2021 07:36 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_51210_src_doc_examples/">qt5_51210_src_doc_examples/</a></td><td align="right">09-Nov-2020 09:44 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_51210/">qt5_51210/</a></td><td align="right">09-Nov-2020 09:43 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5152_wasm/">qt5_5152_wasm/</a></td><td align="right">19-Nov-2020 12:29 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5152_src_doc_examples/">qt5_5152_src_doc_examples/</a></td><td align="right">19-Nov-2020 12:29 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5152/">qt5_5152/</a></td><td align="right">19-Nov-2020 12:27 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5151_wasm/">qt5_5151_wasm/</a></td><td align="right">07-Sep-2020 15:06 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5151_src_doc_examples/">qt5_5151_src_doc_examples/</a></td><td align="right">07-Sep-2020 15:06 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5151/">qt5_5151/</a></td><td align="right">07-Sep-2020 15:05 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5150_wasm/">qt5_5150_wasm/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5150_src_doc_examples/">qt5_5150_src_doc_examples/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5150/">qt5_5150/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5142_wasm/">qt5_5142_wasm/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5142_src_doc_examples/">qt5_5142_src_doc_examples/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5142/">qt5_5142/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5141_wasm/">qt5_5141_wasm/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5141_src_doc_examples/">qt5_5141_src_doc_examples/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5141/">qt5_5141/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5140_wasm/">qt5_5140_wasm/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5140_src_doc_examples/">qt5_5140_src_doc_examples/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5140/">qt5_5140/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5132_wasm/">qt5_5132_wasm/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5132_src_doc_examples/">qt5_5132_src_doc_examples/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5132/">qt5_5132/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5131_wasm/">qt5_5131_wasm/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5131_src_doc_examples/">qt5_5131_src_doc_examples/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5131/">qt5_5131/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5130_src_doc_examples/">qt5_5130_src_doc_examples/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5130/">qt5_5130/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5129_src_doc_examples/">qt5_5129_src_doc_examples/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="./qt5_5129_src_doc_examples-backup-2020-04-23--08:59:15/">qt5_5129_src_doc_examples-backup-2020-04-23--08:59:15/</a></td><td align="right">23-Apr-2020 09:47 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5129/">qt5_5129/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="./qt5_5129-backup-2020-04-23--08:59:15/">qt5_5129-backup-2020-04-23--08:59:15/</a></td><td align="right">23-Apr-2020 09:44 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5128_src_doc_examples/">qt5_5128_src_doc_examples/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5128/">qt5_5128/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5127_src_doc_examples/">qt5_5127_src_doc_examples/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5127/">qt5_5127/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5126_src_doc_examples/">qt5_5126_src_doc_examples/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5126/">qt5_5126/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5125_src_doc_examples/">qt5_5125_src_doc_examples/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5125/">qt5_5125/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5124_src_doc_examples/">qt5_5124_src_doc_examples/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5124/">qt5_5124/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5123_src_doc_examples/">qt5_5123_src_doc_examples/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5123/">qt5_5123/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5122_src_doc_examples/">qt5_5122_src_doc_examples/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5122/">qt5_5122/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5121_src_doc_examples/">qt5_5121_src_doc_examples/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5121/">qt5_5121/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5120_src_doc_examples/">qt5_5120_src_doc_examples/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5120/">qt5_5120/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5113_src_doc_examples/">qt5_5113_src_doc_examples/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5113/">qt5_5113/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5112_src_doc_examples/">qt5_5112_src_doc_examples/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5112/">qt5_5112/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5111_src_doc_examples/">qt5_5111_src_doc_examples/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5111/">qt5_5111/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5110_src_doc_examples/">qt5_5110_src_doc_examples/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5110/">qt5_5110/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5101_src_doc_examples/">qt5_5101_src_doc_examples/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5101/">qt5_5101/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5100_src_doc_examples/">qt5_5100_src_doc_examples/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5100/">qt5_5100/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_599_src_doc_examples/">qt5_599_src_doc_examples/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_599/">qt5_599/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_598_src_doc_examples/">qt5_598_src_doc_examples/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_598/">qt5_598/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_597_src_doc_examples/">qt5_597_src_doc_examples/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_597/">qt5_597/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_596_src_doc_examples/">qt5_596_src_doc_examples/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_596/">qt5_596/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_595_src_doc_examples/">qt5_595_src_doc_examples/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_595/">qt5_595/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_594_src_doc_examples/">qt5_594_src_doc_examples/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_594/">qt5_594/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_593_src_doc_examples/">qt5_593_src_doc_examples/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_593/">qt5_593/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_592_src_doc_examples/">qt5_592_src_doc_examples/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_592/">qt5_592/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_591_src_doc_examples/">qt5_591_src_doc_examples/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_591/">qt5_591/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_515_wasm_preview/">qt5_515_wasm_preview/</a></td><td align="right">19-Nov-2020 12:38 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_515_preview/">qt5_515_preview/</a></td><td align="right">19-Nov-2020 12:38 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_514_wasm_preview/">qt5_514_wasm_preview/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_514_preview/">qt5_514_preview/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_513_wasm_preview/">qt5_513_wasm_preview/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_513_preview/">qt5_513_preview/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_512_preview/">qt5_512_preview/</a></td><td align="right">09-Nov-2020 09:52 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="./qt5_512_preview-backup-2020-04-23--08:59:15/">qt5_512_preview-backup-2020-04-23--08:59:15/</a></td><td align="right">23-Apr-2020 09:56 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="./qt5_512_preview-backup-2020-04-22--11:51:53/">qt5_512_preview-backup-2020-04-22--11:51:53/</a></td><td align="right">22-Apr-2020 16:03 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_511_preview/">qt5_511_preview/</a></td><td align="right">24-Aug-2020 15:36 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_510_preview/">qt5_510_preview/</a></td><td align="right">24-Aug-2020 15:36 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_59_src_doc_examples/">qt5_59_src_doc_examples/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_59_preview/">qt5_59_preview/</a></td><td align="right">24-Aug-2020 15:36 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_59/">qt5_59/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_56_preview/">qt5_56_preview/</a></td><td align="right">24-Aug-2020 15:36 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="preview_main_node/">preview_main_node/</a></td><td align="right">12-Nov-2020 11:34 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="licenses/">licenses/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="extras_src/">extras_src/</a></td><td align="right">10-Mar-2021 11:10 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><th colspan="5"><hr /></th></tr>
</table>
<br/><address><a href="http://mirrorbrain.org/">MirrorBrain</a> powered by <a href="http://httpd.apache.org/">Apache</a></address>
</body></html>

View File

@@ -0,0 +1,42 @@
{
"qt5": {
"qt": [
"5.9.0 5.9.1 5.9.2 5.9.3 5.9.4 5.9.5 5.9.6 5.9.7 5.9.8 5.9.9",
"5.10.0 5.10.1",
"5.11.0 5.11.1 5.11.2 5.11.3",
"5.12.0 5.12.1 5.12.2 5.12.3 5.12.4 5.12.5 5.12.6 5.12.7 5.12.8 5.12.9 5.12.10",
"5.13.0 5.13.1 5.13.2",
"5.14.0 5.14.1 5.14.2",
"5.15.0 5.15.1 5.15.2"
],
"preview": [
"5.9-preview",
"5.10-preview",
"5.11-preview",
"5.12-preview",
"5.13-preview",
"5.14-preview",
"5.15-preview"
],
"wasm": [],
"wasm_preview": [],
"src_doc_examples": []
},
"qt6": {
"qt": [
"6.0.0 6.0.1 6.0.2 6.0.3",
"6.1.0"
],
"preview": [
"6.0-preview",
"6.1-preview"
],
"src_doc_examples": []
},
"tools": [
"tools_qt3dstudio_runtime_preview",
"tools_qt3dstudio_runtime_240",
"tools_qt3dstudio_runtime_230",
"tools_qt3dstudio_runtime_220"
]
}

72
tests/data/mac-ios.html Normal file
View File

@@ -0,0 +1,72 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Index of /online/qtsdkrepository/mac_x64/ios</title>
<meta name="viewport" content="width=device-width, initial-scale=1"><link rel="stylesheet" type="text/css" href="/static/normalize.css"><link rel="stylesheet" type="text/css" href="/static/style.css"><link rel="stylesheet" href="/static/bootstrap.css" type="text/css"><link rel="stylesheet" href="/static/bootstrap-download-index.css" type="text/css"><script type="text/javascript" src="/static/jquery.js"></script> <script type="text/javascript" src="/static/javascript-index.js"></script> <script type="text/javascript" src="/static/javascript- mirrorlist.js"></script> </head>
<body>
<h1>Index of /online/qtsdkrepository/mac_x64/ios</h1>
<table><tr><th>&nbsp;</th><th><a href="?C=N;O=A">Name</a></th><th><a href="?C=M;O=A">Last modified</a></th><th><a href="?C=S;O=A">Size</a></th><th>Metadata</th></tr><tr><th colspan="5"><hr /></th></tr>
<tr><td valign="top">&nbsp;</td><td><a href="/online/qtsdkrepository/mac_x64/">Parent Directory</a></td><td>&nbsp;</td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_qt3dstudio_runtime_preview/">tools_qt3dstudio_runtime_preview/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_qt3dstudio_runtime_240/">tools_qt3dstudio_runtime_240/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_qt3dstudio_runtime_230/">tools_qt3dstudio_runtime_230/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_qt3dstudio_runtime_220/">tools_qt3dstudio_runtime_220/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt6_610/">qt6_610/</a></td><td align="right">30-Apr-2021 08:14 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt6_603/">qt6_603/</a></td><td align="right">31-Mar-2021 07:35 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt6_602/">qt6_602/</a></td><td align="right">03-Mar-2021 07:45 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt6_601/">qt6_601/</a></td><td align="right">03-Feb-2021 07:45 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt6_600/">qt6_600/</a></td><td align="right">07-Dec-2020 15:30 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt6_61_preview/">qt6_61_preview/</a></td><td align="right">30-Apr-2021 08:16 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt6_60_preview/">qt6_60_preview/</a></td><td align="right">31-Mar-2021 07:36 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_51210/">qt5_51210/</a></td><td align="right">09-Nov-2020 09:50 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5152/">qt5_5152/</a></td><td align="right">19-Nov-2020 12:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5151/">qt5_5151/</a></td><td align="right">07-Sep-2020 15:07 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5150/">qt5_5150/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5142/">qt5_5142/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5141/">qt5_5141/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5140/">qt5_5140/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5132/">qt5_5132/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5131/">qt5_5131/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5130/">qt5_5130/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5129/">qt5_5129/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="./qt5_5129-backup-2020-04-23--08:59:15/">qt5_5129-backup-2020-04-23--08:59:15/</a></td><td align="right">23-Apr-2020 09:54 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5128/">qt5_5128/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5127/">qt5_5127/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5126/">qt5_5126/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5125/">qt5_5125/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5124/">qt5_5124/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5123/">qt5_5123/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5122/">qt5_5122/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5121/">qt5_5121/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5120/">qt5_5120/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5113/">qt5_5113/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5112/">qt5_5112/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5111/">qt5_5111/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5110/">qt5_5110/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5101/">qt5_5101/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5100/">qt5_5100/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_599/">qt5_599/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_598/">qt5_598/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_597/">qt5_597/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_596/">qt5_596/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_595/">qt5_595/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_594/">qt5_594/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_593/">qt5_593/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_592/">qt5_592/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_591/">qt5_591/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_515_preview/">qt5_515_preview/</a></td><td align="right">19-Nov-2020 12:38 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_514_preview/">qt5_514_preview/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_513_preview/">qt5_513_preview/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_512_preview/">qt5_512_preview/</a></td><td align="right">09-Nov-2020 09:52 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="./qt5_512_preview-backup-2020-04-23--08:59:15/">qt5_512_preview-backup-2020-04-23--08:59:15/</a></td><td align="right">23-Apr-2020 09:56 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="./qt5_512_preview-backup-2020-04-22--11:51:53/">qt5_512_preview-backup-2020-04-22--11:51:53/</a></td><td align="right">22-Apr-2020 16:04 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_511_preview/">qt5_511_preview/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_510_preview/">qt5_510_preview/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_59_preview/">qt5_59_preview/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_59/">qt5_59/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5/">qt5/</a></td><td align="right">24-Aug-2020 13:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><th colspan="5"><hr /></th></tr>
</table>
<br/><address><a href="http://mirrorbrain.org/">MirrorBrain</a> powered by <a href="http://httpd.apache.org/">Apache</a></address>
</body></html>

View File

@@ -0,0 +1,23 @@
{
"modules": [
"debug_info",
"qtcharts",
"qtdatavis3d",
"qtlottie",
"qtnetworkauth",
"qtpurchasing",
"qtquick3d",
"qtquicktimeline",
"qtscript",
"qtvirtualkeyboard",
"qtwebengine",
"qtwebglplugin"
],
"architectures": [
"win32_mingw73",
"win32_msvc2017",
"win64_mingw73",
"win64_msvc2015_64",
"win64_msvc2017_64"
]
}

View File

@@ -0,0 +1,23 @@
{
"modules": [
"debug_info",
"qtcharts",
"qtdatavis3d",
"qtlottie",
"qtnetworkauth",
"qtpurchasing",
"qtquick3d",
"qtquicktimeline",
"qtscript",
"qtvirtualkeyboard",
"qtwebengine",
"qtwebglplugin"
],
"architectures": [
"win32_mingw81",
"win32_msvc2019",
"win64_mingw81",
"win64_msvc2015_64",
"win64_msvc2019_64"
]
}

View File

@@ -0,0 +1,28 @@
{
"modules": [
"doc",
"doc.qtcharts",
"doc.qtdatavis3d",
"doc.qtlottie",
"doc.qtnetworkauth",
"doc.qtpurchasing",
"doc.qtquick3d",
"doc.qtquicktimeline",
"doc.qtscript",
"doc.qtvirtualkeyboard",
"doc.qtwebengine",
"examples",
"examples.qtcharts",
"examples.qtdatavis3d",
"examples.qtlottie",
"examples.qtnetworkauth",
"examples.qtpurchasing",
"examples.qtquick3d",
"examples.qtquicktimeline",
"examples.qtscript",
"examples.qtvirtualkeyboard",
"examples.qtwebengine",
"src"
],
"architectures": []
}

View File

@@ -0,0 +1,66 @@
{
"qt5": {
"qt": [
"5.9.0 5.9.1 5.9.2 5.9.3 5.9.4 5.9.5 5.9.6 5.9.7 5.9.8 5.9.9",
"5.10.0 5.10.1",
"5.11.0 5.11.1 5.11.2 5.11.3",
"5.12.0 5.12.1 5.12.2 5.12.3 5.12.4 5.12.5 5.12.6 5.12.7 5.12.8 5.12.9 5.12.10",
"5.13.0 5.13.1 5.13.2",
"5.14.0 5.14.1 5.14.2",
"5.15.0 5.15.1 5.15.2"
],
"preview": [
"5.9-preview",
"5.10-preview",
"5.11-preview",
"5.12-preview",
"5.13-preview",
"5.14-preview",
"5.15-preview"
],
"wasm": [],
"wasm_preview": [],
"src_doc_examples": []
},
"qt6": {
"qt": [
"6.0.0 6.0.1 6.0.2 6.0.3",
"6.1.0"
],
"preview": [
"6.0-preview",
"6.1-preview"
],
"src_doc_examples": [],
"x86_64": [
"6.0.0 6.0.1 6.0.2 6.0.3",
"6.1.0"
],
"x86": [
"6.0.0 6.0.1 6.0.2 6.0.3",
"6.1.0"
],
"armv7": [
"6.0.0 6.0.1 6.0.2 6.0.3",
"6.1.0"
],
"arm64_v8a": [
"6.0.0 6.0.1 6.0.2 6.0.3",
"6.1.0"
]
},
"tools": [
"tools_qt3dstudio_runtime_preview",
"tools_qt3dstudio_runtime_240",
"tools_qt3dstudio_runtime_230",
"tools_qt3dstudio_runtime_220",
"tools_qt3dstudio_openglruntime_preview",
"tools_qt3dstudio_openglruntime_280_5151",
"tools_qt3dstudio_openglruntime_280",
"tools_qt3dstudio_openglruntime_270_5150",
"tools_qt3dstudio_openglruntime_270",
"tools_qt3dstudio_openglruntime_260",
"tools_qt3dstudio_openglruntime_250",
"tools_qt3dstudio_openglruntime_240"
]
}

View File

@@ -0,0 +1,99 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Index of /online/qtsdkrepository/windows_x86/android</title>
<meta name="viewport" content="width=device-width, initial-scale=1"><link rel="stylesheet" type="text/css" href="/static/normalize.css"><link rel="stylesheet" type="text/css" href="/static/style.css"><link rel="stylesheet" href="/static/bootstrap.css" type="text/css"><link rel="stylesheet" href="/static/bootstrap-download-index.css" type="text/css"><script type="text/javascript" src="/static/jquery.js"></script> <script type="text/javascript" src="/static/javascript-index.js"></script> <script type="text/javascript" src="/static/javascript- mirrorlist.js"></script> </head>
<body>
<h1>Index of /online/qtsdkrepository/windows_x86/android</h1>
<table><tr><th>&nbsp;</th><th><a href="?C=N;O=A">Name</a></th><th><a href="?C=M;O=A">Last modified</a></th><th><a href="?C=S;O=A">Size</a></th><th>Metadata</th></tr><tr><th colspan="5"><hr /></th></tr>
<tr><td valign="top">&nbsp;</td><td><a href="/online/qtsdkrepository/windows_x86/">Parent Directory</a></td><td>&nbsp;</td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_qt3dstudio_runtime_preview/">tools_qt3dstudio_runtime_preview/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_qt3dstudio_runtime_240/">tools_qt3dstudio_runtime_240/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_qt3dstudio_runtime_230/">tools_qt3dstudio_runtime_230/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_qt3dstudio_runtime_220/">tools_qt3dstudio_runtime_220/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_qt3dstudio_openglruntime_preview/">tools_qt3dstudio_openglruntime_preview/</a></td><td align="right">20-Oct-2020 08:55 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_qt3dstudio_openglruntime_280_5151/">tools_qt3dstudio_openglruntime_280_5151/</a></td><td align="right">16-Nov-2020 10:16 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_qt3dstudio_openglruntime_280/">tools_qt3dstudio_openglruntime_280/</a></td><td align="right">28-Oct-2020 14:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_qt3dstudio_openglruntime_270_5150/">tools_qt3dstudio_openglruntime_270_5150/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_qt3dstudio_openglruntime_270/">tools_qt3dstudio_openglruntime_270/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_qt3dstudio_openglruntime_260/">tools_qt3dstudio_openglruntime_260/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_qt3dstudio_openglruntime_250/">tools_qt3dstudio_openglruntime_250/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_qt3dstudio_openglruntime_240/">tools_qt3dstudio_openglruntime_240/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt6_610_x86_64/">qt6_610_x86_64/</a></td><td align="right">30-Apr-2021 08:12 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt6_610_x86/">qt6_610_x86/</a></td><td align="right">30-Apr-2021 08:12 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt6_610_armv7/">qt6_610_armv7/</a></td><td align="right">30-Apr-2021 08:12 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt6_610_arm64_v8a/">qt6_610_arm64_v8a/</a></td><td align="right">30-Apr-2021 08:12 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt6_610/">qt6_610/</a></td><td align="right">30-Apr-2021 08:12 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt6_603_x86_64/">qt6_603_x86_64/</a></td><td align="right">31-Mar-2021 07:34 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt6_603_x86/">qt6_603_x86/</a></td><td align="right">31-Mar-2021 07:34 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt6_603_armv7/">qt6_603_armv7/</a></td><td align="right">31-Mar-2021 07:34 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt6_603_arm64_v8a/">qt6_603_arm64_v8a/</a></td><td align="right">31-Mar-2021 07:34 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt6_603/">qt6_603/</a></td><td align="right">31-Mar-2021 07:33 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt6_602_x86_64/">qt6_602_x86_64/</a></td><td align="right">03-Mar-2021 07:44 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt6_602_x86/">qt6_602_x86/</a></td><td align="right">03-Mar-2021 07:43 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt6_602_armv7/">qt6_602_armv7/</a></td><td align="right">03-Mar-2021 07:43 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt6_602_arm64_v8a/">qt6_602_arm64_v8a/</a></td><td align="right">03-Mar-2021 07:43 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt6_602/">qt6_602/</a></td><td align="right">03-Mar-2021 07:43 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt6_601_x86_64/">qt6_601_x86_64/</a></td><td align="right">03-Feb-2021 07:46 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt6_601_x86/">qt6_601_x86/</a></td><td align="right">03-Feb-2021 07:46 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt6_601_armv7/">qt6_601_armv7/</a></td><td align="right">03-Feb-2021 07:46 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt6_601_arm64_v8a/">qt6_601_arm64_v8a/</a></td><td align="right">03-Feb-2021 07:46 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt6_601/">qt6_601/</a></td><td align="right">03-Feb-2021 07:46 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt6_600_x86_64/">qt6_600_x86_64/</a></td><td align="right">07-Dec-2020 15:30 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt6_600_x86/">qt6_600_x86/</a></td><td align="right">07-Dec-2020 15:30 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt6_600_armv7/">qt6_600_armv7/</a></td><td align="right">07-Dec-2020 15:30 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt6_600_arm64_v8a/">qt6_600_arm64_v8a/</a></td><td align="right">07-Dec-2020 15:30 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt6_600/">qt6_600/</a></td><td align="right">07-Dec-2020 15:30 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt6_61_preview/">qt6_61_preview/</a></td><td align="right">30-Apr-2021 08:13 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt6_60_preview/">qt6_60_preview/</a></td><td align="right">31-Mar-2021 07:34 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_51210/">qt5_51210/</a></td><td align="right">09-Nov-2020 09:34 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5152/">qt5_5152/</a></td><td align="right">19-Nov-2020 12:42 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5151/">qt5_5151/</a></td><td align="right">07-Sep-2020 16:38 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5150/">qt5_5150/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5142/">qt5_5142/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5141/">qt5_5141/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5140/">qt5_5140/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5132/">qt5_5132/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5131/">qt5_5131/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5130/">qt5_5130/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5129/">qt5_5129/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="./qt5_5129-backup-2020-04-23--08:58:55/">qt5_5129-backup-2020-04-23--08:58:55/</a></td><td align="right">23-Apr-2020 11:06 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5128/">qt5_5128/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5127/">qt5_5127/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5126/">qt5_5126/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5125/">qt5_5125/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5124/">qt5_5124/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5123/">qt5_5123/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5122/">qt5_5122/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5121/">qt5_5121/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5120/">qt5_5120/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5113/">qt5_5113/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5112/">qt5_5112/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5111/">qt5_5111/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5110/">qt5_5110/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5101/">qt5_5101/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5100/">qt5_5100/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_599/">qt5_599/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_598/">qt5_598/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_597/">qt5_597/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_596/">qt5_596/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_595/">qt5_595/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_594/">qt5_594/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_593/">qt5_593/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_592/">qt5_592/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_591/">qt5_591/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_515_preview/">qt5_515_preview/</a></td><td align="right">19-Nov-2020 12:44 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_514_preview/">qt5_514_preview/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_513_preview/">qt5_513_preview/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_512_preview/">qt5_512_preview/</a></td><td align="right">09-Nov-2020 09:43 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="./qt5_512_preview-backup-2020-04-23--08:58:55/">qt5_512_preview-backup-2020-04-23--08:58:55/</a></td><td align="right">23-Apr-2020 11:17 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="./qt5_512_preview-backup-2020-04-22--11:51:53/">qt5_512_preview-backup-2020-04-22--11:51:53/</a></td><td align="right">22-Apr-2020 15:55 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_511_preview/">qt5_511_preview/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_510_preview/">qt5_510_preview/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_59_preview/">qt5_59_preview/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_59/">qt5_59/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><th colspan="5"><hr /></th></tr>
</table>
<br/><address><a href="http://mirrorbrain.org/">MirrorBrain</a> powered by <a href="http://httpd.apache.org/">Apache</a></address>
</body></html>

View File

@@ -0,0 +1,99 @@
{
"qt5": {
"qt": [
"5.9.0 5.9.1 5.9.2 5.9.3 5.9.4 5.9.5 5.9.6 5.9.7 5.9.8 5.9.9",
"5.10.0 5.10.1",
"5.11.0 5.11.1 5.11.2 5.11.3",
"5.12.0 5.12.1 5.12.2 5.12.3 5.12.4 5.12.5 5.12.6 5.12.7 5.12.8 5.12.9 5.12.10",
"5.13.0 5.13.1 5.13.2",
"5.14.0 5.14.1 5.14.2",
"5.15.0 5.15.1 5.15.2"
],
"preview": [
"5.6-preview",
"5.9-preview",
"5.10-preview",
"5.11-preview",
"5.12-preview",
"5.13-preview",
"5.14-preview",
"5.15-preview"
],
"wasm": [
"5.13.1 5.13.2",
"5.14.0 5.14.1 5.14.2",
"5.15.0 5.15.1 5.15.2"
],
"wasm_preview": [
"5.13-preview",
"5.14-preview",
"5.15-preview"
],
"src_doc_examples": [
"5.3.0",
"5.4.0",
"5.5.0",
"5.6.0",
"5.7.0",
"5.8.0",
"5.9.0 5.9.1 5.9.2 5.9.3 5.9.4 5.9.5 5.9.6 5.9.7 5.9.8 5.9.9",
"5.10.0 5.10.1",
"5.11.0 5.11.1 5.11.2 5.11.3",
"5.12.0 5.12.1 5.12.2 5.12.3 5.12.4 5.12.5 5.12.6 5.12.7 5.12.8 5.12.9 5.12.10",
"5.13.0 5.13.1 5.13.2",
"5.14.0 5.14.1 5.14.2",
"5.15.0 5.15.1 5.15.2"
]
},
"qt6": {
"qt": [
"6.0.0 6.0.1 6.0.2 6.0.3",
"6.1.0"
],
"preview": [
"6.0-preview",
"6.1-preview"
],
"src_doc_examples": [
"6.0.0 6.0.1 6.0.2 6.0.3",
"6.1.0"
]
},
"tools": [
"tools_vcredist",
"tools_telemetry_preview",
"tools_telemetry",
"tools_qtdesignstudio_preview",
"tools_qtdesignstudio",
"tools_qtcreator_preview",
"tools_qtcreator",
"tools_qt3dstudio_runtime_preview",
"tools_qt3dstudio_runtime_240",
"tools_qt3dstudio_runtime_230",
"tools_qt3dstudio_runtime_220",
"tools_qt3dstudio_runtime_210",
"tools_qt3dstudio_runtime",
"tools_qt3dstudio_preview",
"tools_qt3dstudio_openglruntime_preview",
"tools_qt3dstudio_openglruntime_280_5151",
"tools_qt3dstudio_openglruntime_280",
"tools_qt3dstudio_openglruntime_270_5150",
"tools_qt3dstudio_openglruntime_270",
"tools_qt3dstudio_openglruntime_260",
"tools_qt3dstudio_openglruntime_250",
"tools_qt3dstudio_openglruntime_240",
"tools_qt3dstudio",
"tools_openssl_x86",
"tools_openssl_x64",
"tools_openssl_src",
"tools_ninja",
"tools_mingw",
"tools_maintenance_update_reminder",
"tools_maintenance_early_access",
"tools_maintenance",
"tools_ifw",
"tools_generic",
"tools_conan",
"tools_cmake"
]
}

View File

@@ -0,0 +1,165 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Index of /online/qtsdkrepository/windows_x86/desktop</title>
<meta name="viewport" content="width=device-width, initial-scale=1"><link rel="stylesheet" type="text/css" href="/static/normalize.css"><link rel="stylesheet" type="text/css" href="/static/style.css"><link rel="stylesheet" href="/static/bootstrap.css" type="text/css"><link rel="stylesheet" href="/static/bootstrap-download-index.css" type="text/css"><script type="text/javascript" src="/static/jquery.js"></script> <script type="text/javascript" src="/static/javascript-index.js"></script> <script type="text/javascript" src="/static/javascript- mirrorlist.js"></script> </head>
<body>
<h1>Index of /online/qtsdkrepository/windows_x86/desktop</h1>
<table><tr><th>&nbsp;</th><th><a href="?C=N;O=A">Name</a></th><th><a href="?C=M;O=A">Last modified</a></th><th><a href="?C=S;O=A">Size</a></th><th>Metadata</th></tr><tr><th colspan="5"><hr /></th></tr>
<tr><td valign="top">&nbsp;</td><td><a href="/online/qtsdkrepository/windows_x86/">Parent Directory</a></td><td>&nbsp;</td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_vcredist/">tools_vcredist/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_telemetry_preview/">tools_telemetry_preview/</a></td><td align="right">14-Apr-2021 10:39 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_telemetry/">tools_telemetry/</a></td><td align="right">22-Mar-2021 10:22 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_qtdesignstudio_preview/">tools_qtdesignstudio_preview/</a></td><td align="right">21-Apr-2021 10:27 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_qtdesignstudio/">tools_qtdesignstudio/</a></td><td align="right">28-Apr-2021 10:13 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_qtcreator_preview/">tools_qtcreator_preview/</a></td><td align="right">14-Apr-2021 10:38 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_qtcreator/">tools_qtcreator/</a></td><td align="right">22-Mar-2021 10:20 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_qt3dstudio_runtime_preview/">tools_qt3dstudio_runtime_preview/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_qt3dstudio_runtime_240/">tools_qt3dstudio_runtime_240/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_qt3dstudio_runtime_230/">tools_qt3dstudio_runtime_230/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_qt3dstudio_runtime_220/">tools_qt3dstudio_runtime_220/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_qt3dstudio_runtime_210/">tools_qt3dstudio_runtime_210/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_qt3dstudio_runtime/">tools_qt3dstudio_runtime/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_qt3dstudio_preview/">tools_qt3dstudio_preview/</a></td><td align="right">20-Oct-2020 08:45 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_qt3dstudio_openglruntime_preview/">tools_qt3dstudio_openglruntime_preview/</a></td><td align="right">20-Oct-2020 08:55 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_qt3dstudio_openglruntime_280_5151/">tools_qt3dstudio_openglruntime_280_5151/</a></td><td align="right">16-Nov-2020 10:16 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_qt3dstudio_openglruntime_280/">tools_qt3dstudio_openglruntime_280/</a></td><td align="right">28-Oct-2020 14:22 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_qt3dstudio_openglruntime_270_5150/">tools_qt3dstudio_openglruntime_270_5150/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_qt3dstudio_openglruntime_270/">tools_qt3dstudio_openglruntime_270/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_qt3dstudio_openglruntime_260/">tools_qt3dstudio_openglruntime_260/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_qt3dstudio_openglruntime_250/">tools_qt3dstudio_openglruntime_250/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_qt3dstudio_openglruntime_240/">tools_qt3dstudio_openglruntime_240/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_qt3dstudio/">tools_qt3dstudio/</a></td><td align="right">28-Oct-2020 14:23 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_openssl_x86/">tools_openssl_x86/</a></td><td align="right">26-Feb-2021 14:51 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_openssl_x64/">tools_openssl_x64/</a></td><td align="right">26-Feb-2021 14:51 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_openssl_src/">tools_openssl_src/</a></td><td align="right">26-Feb-2021 14:51 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_ninja/">tools_ninja/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_mingw/">tools_mingw/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_maintenance_update_reminder/">tools_maintenance_update_reminder/</a></td><td align="right">02-Feb-2018 10:00 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_maintenance_early_access/">tools_maintenance_early_access/</a></td><td align="right">30-Sep-2020 12:48 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_maintenance/">tools_maintenance/</a></td><td align="right">13-Apr-2021 14:41 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_ifw/">tools_ifw/</a></td><td align="right">13-Apr-2021 14:58 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_generic/">tools_generic/</a></td><td align="right">13-Apr-2021 14:39 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_conan/">tools_conan/</a></td><td align="right">15-Feb-2021 12:15 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_cmake/">tools_cmake/</a></td><td align="right">07-Jan-2021 14:22 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt6_610_src_doc_examples/">qt6_610_src_doc_examples/</a></td><td align="right">30-Apr-2021 08:12 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt6_610/">qt6_610/</a></td><td align="right">30-Apr-2021 08:10 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt6_603_src_doc_examples/">qt6_603_src_doc_examples/</a></td><td align="right">31-Mar-2021 07:33 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt6_603/">qt6_603/</a></td><td align="right">31-Mar-2021 07:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt6_602_src_doc_examples/">qt6_602_src_doc_examples/</a></td><td align="right">03-Mar-2021 07:43 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt6_602/">qt6_602/</a></td><td align="right">03-Mar-2021 07:41 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt6_601_src_doc_examples/">qt6_601_src_doc_examples/</a></td><td align="right">05-Feb-2021 11:00 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt6_601/">qt6_601/</a></td><td align="right">03-Feb-2021 07:44 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt6_600_src_doc_examples/">qt6_600_src_doc_examples/</a></td><td align="right">07-Dec-2020 15:29 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt6_600/">qt6_600/</a></td><td align="right">07-Dec-2020 15:27 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt6_61_preview/">qt6_61_preview/</a></td><td align="right">30-Apr-2021 08:12 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt6_60_preview/">qt6_60_preview/</a></td><td align="right">31-Mar-2021 07:34 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_51210_src_doc_examples/">qt5_51210_src_doc_examples/</a></td><td align="right">09-Nov-2020 09:33 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_51210/">qt5_51210/</a></td><td align="right">09-Nov-2020 09:28 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5152_wasm/">qt5_5152_wasm/</a></td><td align="right">19-Nov-2020 12:40 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5152_src_doc_examples/">qt5_5152_src_doc_examples/</a></td><td align="right">19-Nov-2020 12:40 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5152/">qt5_5152/</a></td><td align="right">19-Nov-2020 12:28 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5151_wasm/">qt5_5151_wasm/</a></td><td align="right">07-Sep-2020 16:37 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5151_src_doc_examples/">qt5_5151_src_doc_examples/</a></td><td align="right">07-Sep-2020 16:37 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5151/">qt5_5151/</a></td><td align="right">07-Sep-2020 16:32 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5150_wasm/">qt5_5150_wasm/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5150_src_doc_examples/">qt5_5150_src_doc_examples/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5150/">qt5_5150/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5142_wasm/">qt5_5142_wasm/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5142_src_doc_examples/">qt5_5142_src_doc_examples/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5142/">qt5_5142/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5141_wasm/">qt5_5141_wasm/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5141_src_doc_examples/">qt5_5141_src_doc_examples/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5141/">qt5_5141/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5140_wasm/">qt5_5140_wasm/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5140_src_doc_examples/">qt5_5140_src_doc_examples/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5140/">qt5_5140/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5132_wasm/">qt5_5132_wasm/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5132_src_doc_examples/">qt5_5132_src_doc_examples/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5132/">qt5_5132/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5131_wasm/">qt5_5131_wasm/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5131_src_doc_examples/">qt5_5131_src_doc_examples/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5131/">qt5_5131/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5130_src_doc_examples/">qt5_5130_src_doc_examples/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5130/">qt5_5130/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5129_src_doc_examples/">qt5_5129_src_doc_examples/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="./qt5_5129_src_doc_examples-backup-2020-04-23--08:58:55/">qt5_5129_src_doc_examples-backup-2020-04-23--08:58:55/</a></td><td align="right">23-Apr-2020 11:03 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5129/">qt5_5129/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="./qt5_5129-backup-2020-04-23--08:58:55/">qt5_5129-backup-2020-04-23--08:58:55/</a></td><td align="right">23-Apr-2020 10:50 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5128_src_doc_examples/">qt5_5128_src_doc_examples/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5128/">qt5_5128/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5127_src_doc_examples/">qt5_5127_src_doc_examples/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5127/">qt5_5127/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5126_src_doc_examples/">qt5_5126_src_doc_examples/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5126/">qt5_5126/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5125_src_doc_examples/">qt5_5125_src_doc_examples/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5125/">qt5_5125/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5124_src_doc_examples/">qt5_5124_src_doc_examples/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5124/">qt5_5124/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5123_src_doc_examples/">qt5_5123_src_doc_examples/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5123/">qt5_5123/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5122_src_doc_examples/">qt5_5122_src_doc_examples/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5122/">qt5_5122/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5121_src_doc_examples/">qt5_5121_src_doc_examples/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5121/">qt5_5121/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5120_src_doc_examples/">qt5_5120_src_doc_examples/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5120/">qt5_5120/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5113_src_doc_examples/">qt5_5113_src_doc_examples/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5113/">qt5_5113/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5112_src_doc_examples/">qt5_5112_src_doc_examples/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5112/">qt5_5112/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5111_src_doc_examples/">qt5_5111_src_doc_examples/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5111/">qt5_5111/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5110_src_doc_examples/">qt5_5110_src_doc_examples/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5110/">qt5_5110/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5101_src_doc_examples/">qt5_5101_src_doc_examples/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5101/">qt5_5101/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5100_src_doc_examples/">qt5_5100_src_doc_examples/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5100/">qt5_5100/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_599_src_doc_examples/">qt5_599_src_doc_examples/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_599/">qt5_599/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_598_src_doc_examples/">qt5_598_src_doc_examples/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_598/">qt5_598/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_597_src_doc_examples/">qt5_597_src_doc_examples/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_597/">qt5_597/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_596_src_doc_examples/">qt5_596_src_doc_examples/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_596/">qt5_596/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_595_src_doc_examples/">qt5_595_src_doc_examples/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_595/">qt5_595/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_594_src_doc_examples/">qt5_594_src_doc_examples/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_594/">qt5_594/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_593_src_doc_examples/">qt5_593_src_doc_examples/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_593/">qt5_593/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_592_src_doc_examples/">qt5_592_src_doc_examples/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_592/">qt5_592/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_591_src_doc_examples/">qt5_591_src_doc_examples/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_591/">qt5_591/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_515_wasm_preview/">qt5_515_wasm_preview/</a></td><td align="right">19-Nov-2020 12:44 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_515_preview/">qt5_515_preview/</a></td><td align="right">19-Nov-2020 12:44 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_514_wasm_preview/">qt5_514_wasm_preview/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_514_preview/">qt5_514_preview/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_513_wasm_preview/">qt5_513_wasm_preview/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_513_preview/">qt5_513_preview/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_512_preview/">qt5_512_preview/</a></td><td align="right">09-Nov-2020 09:43 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="./qt5_512_preview-backup-2020-04-23--08:58:55/">qt5_512_preview-backup-2020-04-23--08:58:55/</a></td><td align="right">23-Apr-2020 11:16 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="./qt5_512_preview-backup-2020-04-22--11:51:53/">qt5_512_preview-backup-2020-04-22--11:51:53/</a></td><td align="right">22-Apr-2020 15:55 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_511_preview/">qt5_511_preview/</a></td><td align="right">24-Aug-2020 15:36 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_510_preview/">qt5_510_preview/</a></td><td align="right">25-Jan-2018 13:07 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_59_src_doc_examples/">qt5_59_src_doc_examples/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_59_preview/">qt5_59_preview/</a></td><td align="right">24-Aug-2020 15:36 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_59/">qt5_59/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_58_src_doc_examples/">qt5_58_src_doc_examples/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_57_src_doc_examples/">qt5_57_src_doc_examples/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_56_src_doc_examples/">qt5_56_src_doc_examples/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_56_preview/">qt5_56_preview/</a></td><td align="right">24-Aug-2020 15:36 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_55_src_doc_examples/">qt5_55_src_doc_examples/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_54_src_doc_examples/">qt5_54_src_doc_examples/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_53_src_doc_examples/">qt5_53_src_doc_examples/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="preview_main_node/">preview_main_node/</a></td><td align="right">12-Nov-2020 11:34 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="licenses/">licenses/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="extras_src/">extras_src/</a></td><td align="right">10-Mar-2021 11:01 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><th colspan="5"><hr /></th></tr>
</table>
<br/><address><a href="http://mirrorbrain.org/">MirrorBrain</a> powered by <a href="http://httpd.apache.org/">Apache</a></address>
</body></html>

View File

@@ -0,0 +1,38 @@
{
"qt5": {
"qt": [
"5.9.0 5.9.1 5.9.2 5.9.3 5.9.4 5.9.5 5.9.6 5.9.7 5.9.8 5.9.9",
"5.10.0 5.10.1",
"5.11.0 5.11.1 5.11.2 5.11.3",
"5.12.0 5.12.1 5.12.2 5.12.3 5.12.4 5.12.5 5.12.6 5.12.7 5.12.8 5.12.9 5.12.10",
"5.13.0 5.13.1 5.13.2",
"5.14.0 5.14.1 5.14.2",
"5.15.0 5.15.1 5.15.2"
],
"preview": [
"5.9-preview",
"5.10-preview",
"5.11-preview",
"5.12-preview",
"5.13-preview",
"5.14-preview",
"5.15-preview"
],
"wasm": [],
"wasm_preview": [],
"src_doc_examples": []
},
"qt6": {
"qt": [],
"preview": [],
"src_doc_examples": []
},
"tools": [
"tools_qt3dstudio_runtime_preview",
"tools_qt3dstudio_runtime_240",
"tools_qt3dstudio_runtime_230",
"tools_qt3dstudio_runtime_220",
"tools_qt3dstudio_runtime_210",
"tools_qt3dstudio_runtime"
]
}

View File

@@ -0,0 +1,66 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Index of /online/qtsdkrepository/windows_x86/winrt</title>
<meta name="viewport" content="width=device-width, initial-scale=1"><link rel="stylesheet" type="text/css" href="/static/normalize.css"><link rel="stylesheet" type="text/css" href="/static/style.css"><link rel="stylesheet" href="/static/bootstrap.css" type="text/css"><link rel="stylesheet" href="/static/bootstrap-download-index.css" type="text/css"><script type="text/javascript" src="/static/jquery.js"></script> <script type="text/javascript" src="/static/javascript-index.js"></script> <script type="text/javascript" src="/static/javascript- mirrorlist.js"></script> </head>
<body>
<h1>Index of /online/qtsdkrepository/windows_x86/winrt</h1>
<table><tr><th>&nbsp;</th><th><a href="?C=N;O=A">Name</a></th><th><a href="?C=M;O=A">Last modified</a></th><th><a href="?C=S;O=A">Size</a></th><th>Metadata</th></tr><tr><th colspan="5"><hr /></th></tr>
<tr><td valign="top">&nbsp;</td><td><a href="/online/qtsdkrepository/windows_x86/">Parent Directory</a></td><td>&nbsp;</td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_qt3dstudio_runtime_preview/">tools_qt3dstudio_runtime_preview/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_qt3dstudio_runtime_240/">tools_qt3dstudio_runtime_240/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_qt3dstudio_runtime_230/">tools_qt3dstudio_runtime_230/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_qt3dstudio_runtime_220/">tools_qt3dstudio_runtime_220/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_qt3dstudio_runtime_210/">tools_qt3dstudio_runtime_210/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="tools_qt3dstudio_runtime/">tools_qt3dstudio_runtime/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_51210/">qt5_51210/</a></td><td align="right">09-Nov-2020 09:35 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5152/">qt5_5152/</a></td><td align="right">19-Nov-2020 12:42 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5151/">qt5_5151/</a></td><td align="right">07-Sep-2020 16:38 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5150/">qt5_5150/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5142/">qt5_5142/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5141/">qt5_5141/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5140/">qt5_5140/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5132/">qt5_5132/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5131/">qt5_5131/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5130/">qt5_5130/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5129/">qt5_5129/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="./qt5_5129-backup-2020-04-23--08:58:55/">qt5_5129-backup-2020-04-23--08:58:55/</a></td><td align="right">23-Apr-2020 11:12 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5128/">qt5_5128/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5127/">qt5_5127/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5126/">qt5_5126/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5125/">qt5_5125/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5124/">qt5_5124/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5123/">qt5_5123/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5122/">qt5_5122/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5121/">qt5_5121/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5120/">qt5_5120/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5113/">qt5_5113/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5112/">qt5_5112/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5111/">qt5_5111/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5110/">qt5_5110/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5101/">qt5_5101/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_5100/">qt5_5100/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_599/">qt5_599/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_598/">qt5_598/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_597/">qt5_597/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_596/">qt5_596/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_595/">qt5_595/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_594/">qt5_594/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_593/">qt5_593/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_592/">qt5_592/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_591/">qt5_591/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_515_preview/">qt5_515_preview/</a></td><td align="right">19-Nov-2020 12:44 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_514_preview/">qt5_514_preview/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_513_preview/">qt5_513_preview/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_512_preview/">qt5_512_preview/</a></td><td align="right">09-Nov-2020 09:43 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="./qt5_512_preview-backup-2020-04-23--08:58:55/">qt5_512_preview-backup-2020-04-23--08:58:55/</a></td><td align="right">23-Apr-2020 11:17 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="./qt5_512_preview-backup-2020-04-22--11:51:53/">qt5_512_preview-backup-2020-04-22--11:51:53/</a></td><td align="right">22-Apr-2020 15:55 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_511_preview/">qt5_511_preview/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_510_preview/">qt5_510_preview/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_59_preview/">qt5_59_preview/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><td valign="top">&nbsp;</td><td><a href="qt5_59/">qt5_59/</a></td><td align="right">24-Aug-2020 13:31 </td><td align="right"> - </td><td>&nbsp;</td></tr>
<tr><th colspan="5"><hr /></th></tr>
</table>
<br/><address><a href="http://mirrorbrain.org/">MirrorBrain</a> powered by <a href="http://httpd.apache.org/">Apache</a></address>
</body></html>

View File

@@ -78,10 +78,14 @@ def test_cli_invalid_version(capsys, invalid_version):
+ r"'! Please use the form '5\.X\.Y'\.\n.*"
)
for cmd in "install", "doc", "list":
for cmd in (
("install", invalid_version, "mac", "desktop"),
("doc", invalid_version, "mac", "desktop"),
("list", "qt5", "mac", "desktop", "--modules", invalid_version),
):
with pytest.raises(SystemExit) as pytest_wrapped_e:
cli = aqt.installer.Cli()
cli.run([cmd, invalid_version, "mac", "desktop"])
cli.run(cmd)
assert pytest_wrapped_e.type == SystemExit
assert pytest_wrapped_e.value.code == 1
out, err = capsys.readouterr()

View File

@@ -1,5 +1,4 @@
import binascii
import logging
import os
import requests
@@ -82,10 +81,7 @@ def test_helper_downloadBinary_md5(tmp_path, monkeypatch):
expected = binascii.unhexlify("1d41a93e4a585bb01e4518d4af431933")
out = tmp_path.joinpath("text.xml")
logger = logging.getLogger(__file__)
helper.downloadBinaryFile(
"http://example.com/test.xml", out, "md5", expected, 60, logger
)
helper.downloadBinaryFile("http://example.com/test.xml", out, "md5", expected, 60)
def test_helper_downloadBinary_sha256(tmp_path, monkeypatch):
@@ -96,7 +92,6 @@ def test_helper_downloadBinary_sha256(tmp_path, monkeypatch):
"07b3ef4606b712923a14816b1cfe9649687e617d030fc50f948920d784c0b1cd"
)
out = tmp_path.joinpath("text.xml")
logger = logging.getLogger(__file__)
helper.downloadBinaryFile(
"http://example.com/test.xml", out, "sha256", expected, 60, logger
"http://example.com/test.xml", out, "sha256", expected, 60
)

234
tests/test_list.py Normal file
View File

@@ -0,0 +1,234 @@
import json
import re
from pathlib import Path
import pytest
from semantic_version import Version
from aqt import archives, installer
from aqt.archives import ListCommand
from aqt.helper import ArchiveId
MINOR_REGEX = re.compile(r"^\d+\.(\d+)")
@pytest.mark.parametrize(
"os_name,target,in_file,expect_out_file",
[
("windows", "android", "windows-android.html", "windows-android-expect.json"),
("windows", "desktop", "windows-desktop.html", "windows-desktop-expect.json"),
("windows", "winrt", "windows-winrt.html", "windows-winrt-expect.json"),
("linux", "android", "linux-android.html", "linux-android-expect.json"),
("linux", "desktop", "linux-desktop.html", "linux-desktop-expect.json"),
("mac", "android", "mac-android.html", "mac-android-expect.json"),
("mac", "desktop", "mac-desktop.html", "mac-desktop-expect.json"),
("mac", "ios", "mac-ios.html", "mac-ios-expect.json"),
],
)
def test_list_versions_tools(monkeypatch, os_name, target, in_file, expect_out_file):
_html = (Path(__file__).parent / "data" / in_file).read_text("utf-8")
monkeypatch.setattr(archives.ListCommand, "fetch_http", lambda self, _: _html)
expected = json.loads(
(Path(__file__).parent / "data" / expect_out_file).read_text("utf-8")
)
# Test 'aqt list tools'
tools = ListCommand(ArchiveId("tools", os_name, target)).action()
assert tools.pretty_print() == "\n".join(expected["tools"])
for qt in ("qt5", "qt6"):
for ext, expected_output in expected[qt].items():
# Test 'aqt list qt'
archive_id = ArchiveId(qt, os_name, target, ext if ext != "qt" else "")
all_versions = ListCommand(archive_id).action()
if len(expected_output) == 0:
assert not all_versions
else:
assert all_versions.pretty_print() == "\n".join(expected_output)
# Filter for the latest version only
latest_ver = ListCommand(archive_id, is_latest_version=True).action()
if len(expected_output) == 0:
assert not latest_ver
else:
assert latest_ver.pretty_print() == expected_output[-1].split(" ")[-1]
for row in expected_output:
minor = int(MINOR_REGEX.search(row).group(1))
# Find the latest version for a particular minor version
latest_ver_for_minor = ListCommand(
archive_id,
filter_minor=minor,
is_latest_version=True,
).action()
assert latest_ver_for_minor.pretty_print() == row.split(" ")[-1]
# Find all versions for a particular minor version
all_ver_for_minor = ListCommand(
archive_id,
filter_minor=minor,
).action()
assert all_ver_for_minor.pretty_print() == row
@pytest.mark.parametrize(
"version,extension,in_file,expect_out_file",
[
("5.14.0", "", "windows-5140-update.xml", "windows-5140-expect.json"),
("5.15.0", "", "windows-5150-update.xml", "windows-5150-expect.json"),
(
"5.15.2",
"src_doc_examples",
"windows-5152-src-doc-example-update.xml",
"windows-5152-src-doc-example-expect.json",
),
],
)
def test_list_architectures_and_modules(
monkeypatch, version: str, extension: str, in_file: str, expect_out_file: str
):
archive_id = ArchiveId("qt" + version[0], "windows", "desktop", extension)
_xml = (Path(__file__).parent / "data" / in_file).read_text("utf-8")
expect = json.loads(
(Path(__file__).parent / "data" / expect_out_file).read_text("utf-8")
)
monkeypatch.setattr(archives.ListCommand, "fetch_http", lambda self, _: _xml)
modules = ListCommand(archive_id).fetch_modules(Version(version))
assert modules.strings == expect["modules"]
arches = ListCommand(archive_id).fetch_arches(Version(version))
assert arches.strings == expect["architectures"]
@pytest.mark.parametrize(
"host, target, tool_name",
[
("mac", "desktop", "tools_cmake"),
("mac", "desktop", "tools_ifw"),
("mac", "desktop", "tools_qtcreator"),
],
)
def test_tool_modules(monkeypatch, host: str, target: str, tool_name: str):
archive_id = ArchiveId("tools", host, target)
in_file = "{}-{}-{}-update.xml".format(host, target, tool_name)
expect_out_file = "{}-{}-{}-expect.json".format(host, target, tool_name)
_xml = (Path(__file__).parent / "data" / in_file).read_text("utf-8")
expect = json.loads(
(Path(__file__).parent / "data" / expect_out_file).read_text("utf-8")
)
monkeypatch.setattr(archives.ListCommand, "fetch_http", lambda self, _: _xml)
modules = ListCommand(archive_id).fetch_tool_modules(tool_name)
assert modules.strings == expect["modules"]
@pytest.mark.parametrize(
"cat, host, target, minor_ver, ver, ext, xmlfile, xmlexpect, htmlfile, htmlexpect",
[
(
"qt5",
"windows",
"desktop",
"14",
"5.14.0",
"wasm",
"windows-5140-update.xml",
"windows-5140-expect.json",
"windows-desktop.html",
"windows-desktop-expect.json",
),
],
)
def test_list_cli(
capsys,
monkeypatch,
cat,
host,
target,
minor_ver,
ver,
ext,
xmlfile,
xmlexpect,
htmlfile,
htmlexpect,
):
def _mock(_, rest_of_url: str) -> str:
in_file = xmlfile if rest_of_url.endswith("Updates.xml") else htmlfile
text = (Path(__file__).parent / "data" / in_file).read_text("utf-8")
if not rest_of_url.endswith("Updates.xml"):
return text
# If we are serving an Updates.xml, `aqt list` will look for a Qt version number.
# We will replace the version numbers in the file with the requested version.
match = re.search(r"qt\d_(\d+)", rest_of_url)
assert match
desired_version = match.group(1)
ver_to_replace = ver.replace(".", "")
return text.replace(ver_to_replace, desired_version)
monkeypatch.setattr(archives.ListCommand, "fetch_http", _mock)
expected_modules_arches = json.loads(
(Path(__file__).parent / "data" / xmlexpect).read_text("utf-8")
)
expect_modules = expected_modules_arches["modules"]
expect_arches = expected_modules_arches["architectures"]
def check_extensions():
out, err = capsys.readouterr()
# We should probably generate expected from htmlexpect, but this will work for now
assert out.strip() == "wasm src_doc_examples"
def check_modules():
out, err = capsys.readouterr()
assert set(out.strip().split()) == set(expect_modules)
def check_arches():
out, err = capsys.readouterr()
assert set(out.strip().split()) == set(expect_arches)
_minor = ["--filter-minor", minor_ver]
_ext = ["--extension", ext]
cli = installer.Cli()
# Query extensions by latest version, minor version, and specific version
cli.run(["list", cat, host, target, "--extensions", "latest"])
check_extensions()
cli.run(["list", cat, host, target, *_minor, "--extensions", "latest"])
check_extensions()
cli.run(["list", cat, host, target, "--extensions", ver])
check_extensions()
# Query modules by latest version, minor version, and specific version
cli.run(["list", cat, host, target, "--modules", "latest"])
check_modules()
cli.run(["list", cat, host, target, *_minor, "--modules", "latest"])
check_modules()
cli.run(["list", cat, host, target, "--modules", ver])
check_modules()
cli.run(["list", cat, host, target, *_ext, "--modules", "latest"])
check_modules()
cli.run(["list", cat, host, target, *_ext, *_minor, "--modules", "latest"])
check_modules()
cli.run(["list", cat, host, target, *_ext, "--modules", ver])
check_modules()
# Query architectures by latest version, minor version, and specific version
cli.run(["list", cat, host, target, "--arch", "latest"])
check_arches()
cli.run(["list", cat, host, target, *_minor, "--arch", "latest"])
check_arches()
cli.run(["list", cat, host, target, "--arch", ver])
check_arches()
cli.run(["list", cat, host, target, *_ext, "--arch", "latest"])
check_arches()
cli.run(["list", cat, host, target, *_ext, *_minor, "--arch", "latest"])
check_arches()
cli.run(["list", cat, host, target, *_ext, "--arch", ver])
check_arches()