Commit c622edb4 authored by Victor Yacovlev's avatar Victor Yacovlev

Launcher customization support

parent 4322f9a6
......@@ -112,6 +112,9 @@ function(kumir2_qt_moc INFILE FILE_LOCATION)
file(WRITE ${PARAMS_FILE_NAME} "")
get_directory_property(INC_LIST INCLUDE_DIRECTORIES)
get_directory_property(DEF_LIST COMPILE_DEFINITIONS)
if(KUMIR2_ROOT)
list(APPEND INC_LIST "${KUMIR2_ROOT}/include")
endif(KUMIR2_ROOT)
list(REMOVE_DUPLICATES INC_LIST)
foreach(inc ${INC_LIST})
file(APPEND ${PARAMS_FILE_NAME} "-I${inc}\n")
......@@ -197,6 +200,9 @@ function(kumir2_copy_resources ComponentName)
endfunction(kumir2_copy_resources)
function(kumir2_add_library)
if(KUMIR2_ROOT)
include_directories("${KUMIR2_ROOT}/include")
endif(KUMIR2_ROOT)
cmake_parse_arguments(PARSED_ARGS "" "NAME" "SOURCES;LIBRARIES" ${ARGN})
string(TOUPPER "${PARSED_ARGS_NAME}_LIBRARY" LIB_DEF)
add_library(${PARSED_ARGS_NAME} SHARED ${PARSED_ARGS_SOURCES})
......@@ -218,6 +224,9 @@ function(kumir2_add_library)
endfunction(kumir2_add_library)
function(kumir2_add_plugin)
if(KUMIR2_ROOT)
include_directories("${KUMIR2_ROOT}/include")
endif(KUMIR2_ROOT)
cmake_parse_arguments(PARSED_ARGS "" "NAME" "SOURCES;LIBRARIES" ${ARGN})
add_library(${PARSED_ARGS_NAME} SHARED ${PARSED_ARGS_SOURCES})
if(PARSED_ARGS_LIBRARIES)
......@@ -237,6 +246,9 @@ function(kumir2_add_plugin)
endfunction(kumir2_add_plugin)
function(kumir2_add_actor)
if(KUMIR2_ROOT)
include_directories("${KUMIR2_ROOT}/include")
endif(KUMIR2_ROOT)
cmake_parse_arguments(PARSED_ARGS "" "NAME" "SOURCES;LIBRARIES" ${ARGN})
string(TOLOWER "${PARSED_ARGS_NAME}.json" JSON_FILE_NAME)
string(TOLOWER "${PARSED_ARGS_NAME}modulebase" MODULEBASE)
......@@ -288,7 +300,7 @@ function(kumir2_add_actor)
endfunction(kumir2_add_actor)
function(kumir2_add_launcher)
cmake_parse_arguments(PARSED_ARGS "" "NAME;SPLASHSCREEN;CONFIGURATION;WINDOW_ICON;APP_ICON_NAME;X_ICONS_DIR;WIN_ICONS_DIR;X_NAME;X_NAME_ru;X_CATEGORIES" "" ${ARGN})
cmake_parse_arguments(PARSED_ARGS "" "NAME;SPLASHSCREEN;CONFIGURATION;WINDOW_ICON;APP_ICON_NAME;X_ICONS_DIR;WIN_ICONS_DIR;X_NAME;X_NAME_ru;X_CATEGORIES;APP_NAME;APP_NAME_ru;VENDOR_NAME;VENDOR_NAME_ru;APP_VERSION;APP_LICENSE;APP_LICENSE_ru;APP_ABOUT;APP_ABOUT_ru" "" ${ARGN})
if(EXISTS "${CMAKE_SOURCE_DIR}/src/app/kumir2-launcher.cpp")
set(LAUNCHER_SOURCES "${CMAKE_SOURCE_DIR}/src/app/kumir2-launcher.cpp")
else()
......@@ -325,6 +337,34 @@ function(kumir2_add_launcher)
file(APPEND ${QRC_FILE} "${PARSED_ARGS_WINDOW_ICON}")
file(APPEND ${QRC_FILE} "</file>\n")
endif()
if(PARSED_ARGS_APP_LICENSE)
file(COPY "${CMAKE_CURRENT_SOURCE_DIR}/${PARSED_ARGS_APP_LICENSE}" DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
file(APPEND ${QRC_FILE} "<file>")
get_filename_component(LOCAL_APP_LICENSE ${PARSED_ARGS_APP_LICENSE} NAME)
file(APPEND ${QRC_FILE} "${LOCAL_APP_LICENSE}")
file(APPEND ${QRC_FILE} "</file>\n")
endif()
if(PARSED_ARGS_APP_LICENSE_ru)
file(COPY "${CMAKE_CURRENT_SOURCE_DIR}/${PARSED_ARGS_APP_LICENSE_ru}" DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
file(APPEND ${QRC_FILE} "<file>")
get_filename_component(LOCAL_APP_LICENSE_ru ${PARSED_ARGS_APP_LICENSE_ru} NAME)
file(APPEND ${QRC_FILE} "${LOCAL_APP_LICENSE_ru}")
file(APPEND ${QRC_FILE} "</file>\n")
endif()
if(PARSED_ARGS_APP_ABOUT)
file(COPY "${CMAKE_CURRENT_SOURCE_DIR}/${PARSED_ARGS_APP_ABOUT}" DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
file(APPEND ${QRC_FILE} "<file>")
get_filename_component(LOCAL_APP_ABOUT ${PARSED_ARGS_APP_ABOUT} NAME)
file(APPEND ${QRC_FILE} "${LOCAL_APP_ABOUT}")
file(APPEND ${QRC_FILE} "</file>\n")
endif()
if(PARSED_ARGS_APP_ABOUT_ru)
file(COPY "${CMAKE_CURRENT_SOURCE_DIR}/${PARSED_ARGS_APP_ABOUT_ru}" DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
file(APPEND ${QRC_FILE} "<file>")
get_filename_component(LOCAL_APP_ABOUT_ru ${PARSED_ARGS_APP_ABOUT_ru} NAME)
file(APPEND ${QRC_FILE} "${LOCAL_APP_ABOUT_ru}")
file(APPEND ${QRC_FILE} "</file>\n")
endif()
file(APPEND ${QRC_FILE} "</qresource>\n</RCC>\n")
set_source_files_properties(${QRC_FILE} PROPERTIES GENERATED ON)
kumir2_add_resources(QRC_SRC ${QRC_FILE})
......@@ -358,6 +398,33 @@ function(kumir2_add_launcher)
if(PARSED_ARGS_WINDOW_ICON)
set_property(TARGET ${PARSED_ARGS_NAME} APPEND PROPERTY COMPILE_DEFINITIONS WINDOW_ICON="${PARSED_ARGS_WINDOW_ICON}")
endif(PARSED_ARGS_WINDOW_ICON)
if(PARSED_ARGS_APP_NAME)
set_property(TARGET ${PARSED_ARGS_NAME} APPEND PROPERTY COMPILE_DEFINITIONS APP_NAME="${PARSED_ARGS_APP_NAME}")
endif()
if(PARSED_ARGS_APP_NAME_ru)
set_property(TARGET ${PARSED_ARGS_NAME} APPEND PROPERTY COMPILE_DEFINITIONS APP_NAME_ru="${PARSED_ARGS_APP_NAME_ru}")
endif()
if(PARSED_ARGS_APP_VENDOR)
set_property(TARGET ${PARSED_ARGS_NAME} APPEND PROPERTY COMPILE_DEFINITIONS APP_VENDOR="${PARSED_ARGS_APP_VENDOR}")
endif()
if(PARSED_ARGS_APP_VENDOR_ru)
set_property(TARGET ${PARSED_ARGS_NAME} APPEND PROPERTY COMPILE_DEFINITIONS APP_VENDOR_ru="${PARSED_ARGS_APP_VENDOR_ru}")
endif()
if(PARSED_ARGS_APP_VERSION)
set_property(TARGET ${PARSED_ARGS_NAME} APPEND PROPERTY COMPILE_DEFINITIONS APP_VERSION="${PARSED_ARGS_APP_VERSION}")
endif()
if(LOCAL_APP_LICENSE)
set_property(TARGET ${PARSED_ARGS_NAME} APPEND PROPERTY COMPILE_DEFINITIONS APP_LICENSE="${LOCAL_APP_LICENSE}")
endif()
if(LOCAL_APP_LICENSE_ru)
set_property(TARGET ${PARSED_ARGS_NAME} APPEND PROPERTY COMPILE_DEFINITIONS APP_LICENSE_ru="${LOCAL_APP_LICENSE_ru}")
endif()
if(LOCAL_APP_ABOUT)
set_property(TARGET ${PARSED_ARGS_NAME} APPEND PROPERTY COMPILE_DEFINITIONS APP_ABOUT="${LOCAL_APP_ABOUT}")
endif()
if(LOCAL_APP_ABOUT_ru)
set_property(TARGET ${PARSED_ARGS_NAME} APPEND PROPERTY COMPILE_DEFINITIONS APP_ABOUT_ru="${LOCAL_APP_ABOUT_ru}")
endif()
set_property(TARGET ${PARSED_ARGS_NAME} APPEND PROPERTY COMPILE_DEFINITIONS KUMIR2_PLUGINS_DIR="${KUMIR2_PLUGINS_DIR}")
set_property(TARGET ${PARSED_ARGS_NAME} APPEND PROPERTY COMPILE_DEFINITIONS KUMIR2_RESOURCES_DIR="${KUMIR2_RESOURCES_DIR}")
set_property(TARGET ${PARSED_ARGS_NAME} APPEND PROPERTY COMPILE_DEFINITIONS KUMIR2_EXEC_DIR="${KUMIR2_EXEC_DIR}")
......
#!/usr/bin/env python
TS_MODULES = {
"ExtensionSystem": "src/shared/extensionsystem",
"DocBookViewer": "src/shared/docbookviewer",
"KumirStdLib": "src/shared/stdlib",
"Widgets": "src/shared/widgets",
"ExtensionSystem": "src/kumir2-libs/extensionsystem",
"DocBookViewer": "src/kumir2-libs/docbookviewer",
"KumirStdLib": "src/kumir2-libs/stdlib",
"Widgets": "src/kumir2-libs/widgets",
"ActorPainter": "src/actors/painter",
"ActorRobot": "src/actors/robot",
"ActorIsometricRobot": "src/actors/isometricrobot",
"Browser": "src/plugins/browser",
# "Browser": "src/plugins/browser",
"CoreGUI": "src/plugins/coregui",
"Editor": "src/plugins/editor",
"KumirAnalizer": "src/plugins/kumiranalizer",
......
This diff is collapsed.
......@@ -316,6 +316,63 @@ private:
};
bool
setup_custom_vendor_information(QCoreApplication * app)
{
QString appName;
QString appVendor;
QString appVersion;
QString appLicenseFileName;
QString appAboutFileName;
bool result = false;
#ifdef APP_NAME
appName = QString::fromLatin1(APP_NAME);
result = true;
#endif
#ifdef APP_NAME_ru
appName = QString::fromUtf8(APP_NAME_ru);
result = true;
#endif
#ifdef APP_VENDOR
appVendor = QString::fromLatin1(APP_VENDOR);
#endif
#ifdef APP_VENDOR_RU
appVendor = QString::fromUtf8(APP_VENDOR_ru);
#endif
#ifdef APP_VERSION
appVersion = QString::fromLatin1(APP_VERSION);
#endif
#ifdef APP_LICENSE
appLicenseFileName = ":/kumir2-launcher/" + QString::fromLatin1(APP_LICENSE);
#endif
#ifdef APP_LICENSE_ru
appLicenseFileName = ":/kumir2-launcher/" + QString::fromLatin1(APP_LICENSE_ru);
#endif
#ifdef APP_ABOUT
appAboutFileName = ":/kumir2-launcher/" + QString::fromLatin1(APP_ABOUT);
#endif
#ifdef APP_ABOUT_ru
appAboutFileName = ":/kumir2-launcher/" + QString::fromLatin1(APP_ABOUT_ru);
#endif
if (appName.length() > 0) {
app->setProperty("customAppName", appName);
}
if (appVendor.length() > 0) {
app->setProperty("customAppVendor", appVendor);
}
if (appVersion.length() > 0) {
app->setProperty("customAppVersion", appVersion);
}
if (appLicenseFileName.length() > 0) {
app->setProperty("customAppLicense", appLicenseFileName);
}
if (appAboutFileName.length() > 0) {
app->setProperty("customAppAbout", appAboutFileName);
}
return result;
}
int main(int argc, char **argv)
{
#if QT_VERSION < 0x050000
......@@ -373,6 +430,9 @@ int main(int argc, char **argv)
}
}
const bool customAppAndVendorInformation = setup_custom_vendor_information(qobject_cast<QCoreApplication*>(qApp));
Q_UNUSED(customAppAndVendorInformation);
#ifdef SPLASHSCREEN
if (gui && !mustShowHelpAndExit && !mustShowVersionAndExit) {
QString imgPath = ":/kumir2-launcher/" + QString::fromLatin1(SPLASHSCREEN);
......@@ -385,12 +445,21 @@ int main(int argc, char **argv)
f.setPixelSize(12);
p.setFont(f);
QString v = qApp->applicationVersion();
QString v;
if (customAppAndVendorInformation) {
v = qApp->property("customAppVersion").toString() + " ";
v += "[based on Kumir ";
}
v = qApp->applicationVersion();
if (qApp->property("gitHash").isValid()) {
v += " (GIT "+qApp->property("gitHash").toString()+")";
}
if (customAppAndVendorInformation) {
v += "]";
}
int tw = QFontMetrics(f).width(v);
int th = QFontMetrics(f).height();
int th = QFontMetrics(f).height() * 5;
int x = img.width() - tw - 8;
int y = 8;
p.drawText(x, y, tw, th, 0, v);
......@@ -401,7 +470,7 @@ int main(int argc, char **argv)
qApp->processEvents();
app->setSplashScreen(splashScreen);
}
#endif
#endif
int ret = app->main();
ExtensionSystem::PluginManager::destroy();
delete app;
......
......@@ -25,6 +25,23 @@ AboutDialog::AboutDialog(QWidget *parent) :
ui->lastModified->setText(timeStamp.toString());
}
QString dialogTitle = tr("About Kumir");
if (qApp->property("customAppName").isValid()) {
dialogTitle = tr("About %1").arg(qApp->property("customAppName").toString());
}
setWindowTitle(dialogTitle);
if (qApp->property("customAppVersion").isValid()) {
ui->customVersion->setText(qApp->property("customAppVersion").toString());
ui->kumirPlatformVersion->setText(ui->version->text());
ui->versionInfoStack->setCurrentWidget(ui->pageCustomApp);
}
else {
ui->versionInfoStack->setCurrentWidget(ui->pageKumirApp);
}
ui->tabWidget->setCurrentWidget(ui->tabAbout);
connect(ui->btnCopyEnvironmentAndVersion,
SIGNAL(clicked()), this, SLOT(copySystemInformationToClipboard()));
......@@ -33,14 +50,26 @@ AboutDialog::AboutDialog(QWidget *parent) :
KPlugin * guiPlugin = PluginManager::instance()->loadedPlugin("CoreGUI");
// const QString lang = QLocale::languageToString(QLocale::system().language()).left(2).toLower();
const QString lang = "ru";
AnalizerInterface * analizerPlugin =
PluginManager::instance()->findPlugin<AnalizerInterface>();
QString fileBase = lang;
if (analizerPlugin)
fileBase = analizerPlugin->defaultDocumentFileNameSuffix() + "_" + lang;
const QString indexHtml =
guiPlugin->myResourcesDir().absoluteFilePath("about/" + fileBase + ".html");
ui->aboutTextBrowser->setSource(QUrl::fromLocalFile(indexHtml));
if (! qApp->property("customAppAbout").isValid() ) {
AnalizerInterface * analizerPlugin =
PluginManager::instance()->findPlugin<AnalizerInterface>();
QString fileBase = lang;
if (analizerPlugin)
fileBase = analizerPlugin->defaultDocumentFileNameSuffix() + "_" + lang;
const QString indexHtml =
guiPlugin->myResourcesDir().absoluteFilePath("about/" + fileBase + ".html");
ui->aboutTextBrowser->setSource(QUrl::fromLocalFile(indexHtml));
}
else {
const QString aboutFile = qApp->property("customAppAbout").toString();
ui->aboutTextBrowser->setSource(QUrl::fromLocalFile(aboutFile));
}
if (qApp->property("customAppLicense").isValid()) {
const QString licFile = qApp->property("customAppLicense").toString();
ui->licenseTextBrowser->setSource(QUrl::fromLocalFile(licFile));
}
}
......
......@@ -17,9 +17,9 @@
<item>
<widget class="QTabWidget" name="tabWidget">
<property name="currentIndex">
<number>0</number>
<number>1</number>
</property>
<widget class="QWidget" name="tab_3">
<widget class="QWidget" name="tabAbout">
<attribute name="title">
<string>About</string>
</attribute>
......@@ -29,91 +29,184 @@
</item>
</layout>
</widget>
<widget class="QWidget" name="tab">
<widget class="QWidget" name="tabLicense">
<attribute name="title">
<string>Licensee</string>
</attribute>
<layout class="QVBoxLayout" name="verticalLayout_2">
<item>
<widget class="QTextBrowser" name="textBrowser">
<widget class="QTextBrowser" name="licenseTextBrowser">
<property name="html">
<string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'Droid Sans'; font-size:11pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:12pt; font-style:italic;&quot;&gt;За пределами Российской Федерации данная программа может свободно распространяться по лиценции GNU GPL v2.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt; font-style:italic;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:12pt; font-style:italic;&quot;&gt;На территории Российской Федерации данная программа распространяется в соответствии с данным Лицензионным соглашением.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p align=&quot;center&quot; style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:12pt;&quot;&gt;ЛИЦЕНЗИОННОЕ СОГЛАШЕНИЕ&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:12pt;&quot;&gt;1. Устанавливая данный программный продукт, Вы автоматически принимаете условия данного лицензионного соглашения.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:12pt;&quot;&gt;2. Вы можете устанавливать данную программу на любое число компьютеров неограниченное число раз.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:12pt;&quot;&gt;3. Вы можете делать неограниченное число копий данного программного продукта.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:12pt;&quot;&gt;4. Вы можете передавать копии данного программного продукта возмездно или безвозмездно неограниченному числу третьих лиц.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:12pt;&quot;&gt;5. Вы имеете право загрузить с сайта разработчика исходные тексты данного программного продукта и использовать их в соответствии с требованиями лицензии GNU GPL v2, текст которой на английском языке прилагается в файле license.gpl.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:12pt;&quot;&gt;6. Разработчик не дает никаких гарантий работоспобосности данного продукта и не несет ответственности за любой ущерб, причиненный вследствии установки или запуска данного программного продукта.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'Roboto'; font-size:10pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:'Droid Sans'; font-size:12pt; font-style:italic;&quot;&gt;За пределами Российской Федерации данная программа может свободно распространяться по лиценции GNU GPL v2.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Droid Sans'; font-size:12pt; font-style:italic;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:'Droid Sans'; font-size:12pt; font-style:italic;&quot;&gt;На территории Российской Федерации данная программа распространяется в соответствии с данным Лицензионным соглашением.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Droid Sans'; font-size:12pt;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Droid Sans'; font-size:12pt;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p align=&quot;center&quot; style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:'Droid Sans'; font-size:12pt;&quot;&gt;ЛИЦЕНЗИОННОЕ СОГЛАШЕНИЕ&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Droid Sans'; font-size:12pt;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:'Droid Sans'; font-size:12pt;&quot;&gt;1. Устанавливая данный программный продукт, Вы автоматически принимаете условия данного лицензионного соглашения.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Droid Sans'; font-size:12pt;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:'Droid Sans'; font-size:12pt;&quot;&gt;2. Вы можете устанавливать данную программу на любое число компьютеров неограниченное число раз.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Droid Sans'; font-size:12pt;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:'Droid Sans'; font-size:12pt;&quot;&gt;3. Вы можете делать неограниченное число копий данного программного продукта.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Droid Sans'; font-size:12pt;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:'Droid Sans'; font-size:12pt;&quot;&gt;4. Вы можете передавать копии данного программного продукта возмездно или безвозмездно неограниченному числу третьих лиц.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Droid Sans'; font-size:12pt;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:'Droid Sans'; font-size:12pt;&quot;&gt;5. Вы имеете право загрузить с сайта разработчика исходные тексты данного программного продукта и использовать их в соответствии с требованиями лицензии GNU GPL v2, текст которой на английском языке прилагается в файле license.gpl.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Droid Sans'; font-size:12pt;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:'Droid Sans'; font-size:12pt;&quot;&gt;6. Разработчик не дает никаких гарантий работоспобосности данного продукта и не несет ответственности за любой ущерб, причиненный вследствии установки или запуска данного программного продукта.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Droid Sans'; font-size:12pt;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="tab_2">
<widget class="QWidget" name="tabSystemInformation">
<attribute name="title">
<string>System Information</string>
</attribute>
<layout class="QVBoxLayout" name="verticalLayout_4">
<item>
<widget class="QWidget" name="widget_2" native="true">
<layout class="QVBoxLayout" name="verticalLayout_3">
<item>
<widget class="QLabel" name="label">
<property name="text">
<string>Version:</string>
</property>
<property name="buddy">
<cstring>version</cstring>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="version">
<property name="text">
<string>unknown</string>
</property>
<property name="readOnly">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_3">
<property name="text">
<string>Last modified:</string>
</property>
<property name="buddy">
<cstring>lastModified</cstring>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="lastModified">
<property name="text">
<string>unknown</string>
</property>
<property name="readOnly">
<bool>true</bool>
</property>
</widget>
</item>
</layout>
<widget class="QStackedWidget" name="versionInfoStack">
<property name="currentIndex">
<number>0</number>
</property>
<widget class="QWidget" name="pageKumirApp">
<layout class="QVBoxLayout" name="verticalLayout_3">
<property name="spacing">
<number>0</number>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QLabel" name="label">
<property name="text">
<string>Version:</string>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="version">
<property name="text">
<string>unknown</string>
</property>
<property name="readOnly">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_3">
<property name="text">
<string>Last modified:</string>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="lastModified">
<property name="text">
<string>unknown</string>
</property>
<property name="readOnly">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
<widget class="QWidget" name="pageCustomApp">
<layout class="QVBoxLayout" name="verticalLayout_5">
<property name="spacing">
<number>0</number>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QLabel" name="label_2">
<property name="text">
<string>Application Version:</string>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="customVersion">
<property name="text">
<string>unknown</string>
</property>
<property name="readOnly">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_4">
<property name="text">
<string>Based on Kumir Platform Version:</string>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="kumirPlatformVersion">
<property name="text">
<string>unknown</string>
</property>
<property name="readOnly">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<spacer name="verticalSpacer_2">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>87</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
</widget>
</item>
<item>
......@@ -186,7 +279,7 @@ p, li { white-space: pre-wrap; }
<tabstop>btnClose</tabstop>
<tabstop>btnCopyEnvironmentAndVersion</tabstop>
<tabstop>tabWidget</tabstop>
<tabstop>textBrowser</tabstop>
<tabstop>licenseTextBrowser</tabstop>
<tabstop>tableWidget</tabstop>
</tabstops>
<resources/>
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment