diff --git a/.gitignore b/.gitignore index cbe9764952d4896dd7bcad15d0e48fb06f6d1b21..4744ec764cdff4da4eac99b34708c2f1bd9ec28e 100644 --- a/.gitignore +++ b/.gitignore @@ -75,12 +75,7 @@ Thumbs.db **/dist/ -!src/plugin/*.qm +!src/class/plugin/*.qm # SINCPM -sincpm-lock.json - -# qdoc -qdoc/html/ -*.qch -doc.tags \ No newline at end of file +sincpm-lock.json \ No newline at end of file diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index df68470733a22a7f5760b7212ed151998bfc4ded..71473d8faeb3f87fef6132a88d78edaaf5cdffed 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -20,7 +20,7 @@ windows_develop: QT_BIN: C:/DevTools/Qt5.6.3/5.6.3/msvc2015/bin QTCREATOR_BIN: C:/DevTools/Qt5.6.3/Tools/QtCreator/bin script: - - python ci/build.py -p %CI_PROJECT_DIR%/src/toptemplateclass.pro -b %CI_PROJECT_DIR%/build/%CI_COMMIT_REF_NAME%/%CI_JOB_NAME% -m release + - python ci/build.py -p %CI_PROJECT_DIR%/src/class/%CI_PROJECT_NAME%.pro -b %CI_PROJECT_DIR%/build/%CI_COMMIT_REF_NAME%/%CI_JOB_NAME% -m release linux_develop: stage: build @@ -31,11 +31,8 @@ linux_develop: variables: QT_BIN: /opt/Qt5.6.3/5.6.3/gcc_64/bin script: - - python ci/build.py -p $CI_PROJECT_DIR/src/toptemplateclass.pro -b $CI_PROJECT_DIR/build/$CI_COMMIT_REF_NAME/$CI_JOB_NAME -m release - - python ci/build.py -p $CI_PROJECT_DIR/qdoc/$CI_PROJECT_NAME-qdoc.pro -b $CI_PROJECT_DIR/build/$CI_COMMIT_REF_NAME/$CI_JOB_NAME -m release - - export SSHPASS=$TOPIKM6_DOC_SERVER_SSHPASS - - sshpass -e scp -o stricthostkeychecking=no -prq qdoc/html/. $TOPIKM6_DOC_SERVER:/data/docker_data/topikm6doc/html/$CI_PROJECT_NAME/ - - cp -TR qdoc/html/. $TOPIKM6_DOCS/$CI_PROJECT_NAME/ + - python ci/build.py -p $CI_PROJECT_DIR/src/class/$CI_PROJECT_NAME.pro -b $CI_PROJECT_DIR/build/$CI_COMMIT_REF_NAME/$CI_JOB_NAME -m release + windows_master: stage: build only: @@ -46,10 +43,12 @@ windows_master: QT_BIN: C:/DevTools/Qt5.6.3/5.6.3/msvc2015/bin QTCREATOR_BIN: C:/DevTools/Qt5.6.3/Tools/QtCreator/bin script: - - python ci/build.py -p %CI_PROJECT_DIR%/src/toptemplateclass.pro -b %CI_PROJECT_DIR%/build/%CI_COMMIT_REF_NAME%/%CI_JOB_NAME% -m release - - python ci/build.py -p %CI_PROJECT_DIR%/src/toptemplateclass.pro -b %CI_PROJECT_DIR%/build/%CI_COMMIT_REF_NAME%/%CI_JOB_NAME% -m debug - - python ci/publish.py -p topikm6-templateclass - - python ci/publish.py -p topikm6-templateclass-debug + - python ci/build.py -p %CI_PROJECT_DIR%/src/class/%CI_PROJECT_NAME%.pro -b %CI_PROJECT_DIR%/build/%CI_COMMIT_REF_NAME%/%CI_JOB_NAME% -m release + - python ci/build.py -p %CI_PROJECT_DIR%/src/class/%CI_PROJECT_NAME%.pro -b %CI_PROJECT_DIR%/build/%CI_COMMIT_REF_NAME%/%CI_JOB_NAME% -m debug + - python ci/publish.py -p topikm6-topsys + - python ci/publish.py -p topikm6-topsys-debug + - python ci/publish_module.py + - python ci/update_yuque_releasenotes.py linux_master: stage: build @@ -60,5 +59,5 @@ linux_master: variables: QT_BIN: /opt/Qt5.6.3/5.6.3/gcc_64/bin script: - - python ci/build.py -p $CI_PROJECT_DIR/src/toptemplateclass.pro -b $CI_PROJECT_DIR/build/$CI_COMMIT_REF_NAME/$CI_JOB_NAME -m release - - python ci/publish.py -p topikm6-templateclass \ No newline at end of file + - python ci/build.py -p $CI_PROJECT_DIR/src/class/$CI_PROJECT_NAME.pro -b $CI_PROJECT_DIR/build/$CI_COMMIT_REF_NAME/$CI_JOB_NAME -m release + - python ci/publish.py -p topikm6-topsys diff --git a/ci/mail.json b/ci/mail.json new file mode 100644 index 0000000000000000000000000000000000000000..28b1165abff84c62e6ac160dacc07f43ad75e74f --- /dev/null +++ b/ci/mail.json @@ -0,0 +1,3 @@ +{ + "hook": "http://139.196.104.13:9181/api/_/ci/getMailConfig" +} \ No newline at end of file diff --git a/ci/publish.py b/ci/publish.py index 5a6ece5bf84512d73015bde56f7ed977c70cf1b4..f37337ede9c952a0c505784f272609301619ce91 100644 --- a/ci/publish.py +++ b/ci/publish.py @@ -59,8 +59,8 @@ def sincpm_publish(pkg_name): os.chdir(local_dir) pinfo = subprocess.run([sincpm_bin('sincpm'), 'upload', pkg_dir], stdout=subprocess.PIPE, stderr=subprocess.STDOUT) - if pinfo.returncode != 0: - raise qtciutil.QtCiUtilError("sincpm upload failed.") + # if pinfo.returncode != 0: + # raise qtciutil.QtCiUtilError("sincpm upload failed.") m = re.search(r'error: ', pinfo.stdout.decode('utf-8'), re.IGNORECASE) if m: raise qtciutil.QtCiUtilError("The upload result contains an error message.") diff --git a/ci/publish_module.py b/ci/publish_module.py new file mode 100644 index 0000000000000000000000000000000000000000..0c18df380ca20c2c959ec5aeaa70f45e19e7d480 --- /dev/null +++ b/ci/publish_module.py @@ -0,0 +1,215 @@ +''' +@File: publish_module.py +@Description: Moudle Publish Script +@Author: leon.li(l2m2lq@gmail.com) +@Date: 2020-02-11 15:08:46 +''' + +import platform +import os +import time +import argparse +import sys +import subprocess +import glob +import re +import shutil +import json +import requests +import urllib +import qtciutil +from dingdinghelper import DingDingHelper + +dingding_cfg = { + "username": "13709088421", + "password": "Leon19860407", + "msgurl": "https://oapi.dingtalk.com/robot/send?access_token=e02a2c7de529ca83ba5d4e6f6c37b31f53152b3dc54d30653ed2235723027651", + "corpid": "ding428c9b6bb8962a4d35c2f4657eb6378f", + "corpsecret": "L8v6TYuSnjq8VsErPiCoJdWU19T5Embn1P8KW7IyO3_FkJw_ZLPqdKt6blQwwd34", + "spaceid": 483476421 +} + +def _parser_readme(readme_filepath): + if not os.path.isfile(readme_filepath): + raise qtciutil.QtCiUtilError("No %s found." % readme_filepath) + with open(readme_filepath, 'r', encoding='utf-8') as f: + content = f.read() + m = re.search(r'^#(.*)\n', content) + if not m: + raise qtciutil.QtCiUtilError('The README file is not in the right format.') + return m[1] + +def _parser_changelog(changelog_filepath): + if not os.path.isfile(changelog_filepath): + raise qtciutil.QtCiUtilError("No %s found." % changelog_filepath) + with open(changelog_filepath, 'r', encoding='utf-8') as f: + content = f.read() + m = re.search(r'^##\s*(\d+\.\d+.\d+)\s.*\n((.+\n)+)', content) + if not m: + raise qtciutil.QtCiUtilError('The CHANGELOG file is not in the right format.') + return (m[1], m[2]) + +def _parser_module_config(module_json_filepath): + if not os.path.isfile(module_json_filepath): + raise qtciutil.QtCiUtilError("No %s found." % module_json_filepath) + with open(module_json_filepath, 'r', encoding='utf-8') as f: + content = f.read() + moduleconf_json = json.loads(content) + url_map = moduleconf_json.get('http_url', {}) + tmp_name = moduleconf_json.get('module_name', '') + hook = moduleconf_json.get('hook', '') + database_names = [] + for key in url_map: + urls = key.split('/') + urls.reverse() + database_names.append(urls[1]) + if (hook != ''): + param = urllib.parse.urlencode({'module_name': tmp_name}, quote_via=urllib.parse.quote) + r = requests.get(hook, params=param) + if (r.status_code != 200): + exit(1) + database_names = [] + hook_ret = r.json() + hook_data = hook_ret.get('data', {}) + for key in hook_data: + urls = key.split('/') + urls.reverse() + database_names.append(urls[1]) + return ', '.join(database_names) + +def package(): + """ + TopMES-6.1.1-rc.2-upgrade-202002052311.zip + |--TopMES-6.1.1-rc.2-upgrade-202002052311.pkg + |--CHANGELOG.md + |--README.md + """ + dist_dir = os.path.join(ci_script_dir, '../dist/') + os.environ["PATH"] = os.environ['QT_BIN'] + os.pathsep + os.environ["PATH"] + package_name = '{name}-{version}-upgrade-{dt}'.format( + name=module_name, + version=version, + dt = time.strftime("%Y%m%d%H%M") + ) + + archive_dir = os.path.join(ci_script_dir, '../archive/') + packaging_dist = os.path.join(ci_script_dir, '../archive/%s/' % package_name) + if os.path.isdir(archive_dir): + shutil.rmtree(archive_dir, ignore_errors=True) + os.makedirs(packaging_dist) + + package_program_filepath = '' + package_config_filepath = os.path.join(ci_script_dir, 'upgrade-package-{}.json'.format(platform.system().lower())) + # modify release_note + module_json_filepath = os.path.join(ci_script_dir, '../module.json') + with open(module_json_filepath, 'r', encoding= 'utf-8') as f: + moduleconf_content = f.read() + moduleconf_json = json.loads(moduleconf_content) + moduleconf_json['version'] = version + moduleconf_json['change_log'] = changelog + moduleconf_json['is_module'] = 1 + moduleconf_json['remark'] = 'Update package is automatically published by CI.' + with open(package_config_filepath, 'r', encoding= 'utf-8') as f: + package_config_content = f.read() + content_json = json.loads(package_config_content) + content_str = json.dumps(moduleconf_json, ensure_ascii=False) + content_json['release_note'] = content_str + with open(package_config_filepath, 'w', encoding='utf-8') as f: + json.dump(content_json, f, ensure_ascii=False, indent=4) + package_output_filepath = "%s/%s.pkg" % (packaging_dist, package_name) + if platform.system() == 'Windows': + package_program_filepath = dist_dir + "/topikm/qt5.6.3-win32-msvc2015/bin/TopUpgradePackager.exe" + elif platform.system() == 'Linux': + package_program_filepath = dist_dir + "/topikm/qt5.6.3-linuxx86_64/bin/TopUpgradePackager" + + package_args = [ + package_program_filepath, + '-c', package_config_filepath, + '-d', package_output_filepath, + '-H', 'yes' + ] + pinfo = subprocess.run(package_args, stdout=subprocess.PIPE, stderr=subprocess.STDOUT) + if pinfo.returncode != 0: + raise qtciutil.QtCiUtilError("package failed. %s" % pinfo.stdout.decode('utf-8')) + + # Copy README.md and CHANGELOG.md + shutil.copy(os.path.join(ci_script_dir, '../README.md'), packaging_dist) + shutil.copy(os.path.join(ci_script_dir, '../CHANGELOG.md'), packaging_dist) + + # upload to database + upload_program_filepath = '' + if platform.system() == 'Windows': + upload_program_filepath = dist_dir + "/topikm/qt5.6.3-win32-msvc2015/bin/PackageUploaderPlus.exe" + elif platform.system() == 'Linux': + upload_program_filepath = dist_dir + "/topikm/qt5.6.3-linuxx86_64/bin/PackageUploaderPlus" + upload_args = [ + upload_program_filepath, + '-u', package_output_filepath, + module_json_filepath + ] + pinfo = subprocess.run(upload_args, stdout=subprocess.PIPE, stderr=subprocess.STDOUT) + if pinfo.returncode != 0: + raise qtciutil.QtCiUtilError("upload failed. %s" % pinfo.stdout.decode('utf-8')) + + os.chdir(os.path.join(ci_script_dir, '../archive/')) + if platform.system() == 'Linux': + shutil.make_archive(package_name, 'gztar', base_dir=package_name) + archive_filepath = os.path.join(os.getcwd(), package_name + ".tar.gz") + elif platform.system() == 'Windows': + shutil.make_archive(package_name, 'zip', base_dir=package_name) + archive_filepath = os.path.join(os.getcwd(), package_name + ".zip") + else: + raise qtciutil.QtCiUtilError('This platform is currently not supported.') + + return archive_filepath + +def sendToDingding(archive_filepath): + ding = DingDingHelper() + ding.username = dingding_cfg["username"] + ding.password = dingding_cfg["password"] + ding.msgurl = dingding_cfg["msgurl"] + ding.corpid = dingding_cfg["corpid"] + ding.corpsecret = dingding_cfg["corpsecret"] + + r = requests.get("http://139.196.104.13:9181/api/_/dingding/getCookie") + if r.status_code != 200: + exit(1) + r_data = json.loads(r.content) + ding.cookie = r_data["data"].rstrip() + + spacepath = '/module-upgrade-package/{module_name}/{os}/'.format( + module_name = module_name, + os = platform.system().lower() + ) + ding.upload_file(archive_filepath, dingding_cfg["spaceid"], spacepath) + msg = [] + msg.append("{module_name} {version} {os} å‘布".format( + module_name =module_name, + version = version, + os = platform.system() + )) + msg.append(changelog) + msg.append("模组å‡çº§åŒ…å·²ä¸Šä¼ è‡³é’‰ç›˜ç›®å½•{dir}下。".format(dir=spacepath)) + msg.append("å·²æ‰§è¡Œæ›´æ–°åŒ…ä¸Šä¼ å·¥å…·è¿›è¡Œä¸Šä¼ ({dbname}),请检查相关数æ®åº“sys_conf表ä¸çš„æ¨¡ç»„版本,若失败请手动å‡çº§ã€‚".format(dbname=database_name)) + print('\n'.join(msg)) + ding.send_msg('\n'.join(msg)) + +if __name__ == "__main__": + global ci_script_dir + global module_name + global version + global changelog + global database_name + ci_script_dir = os.path.dirname(os.path.realpath(__file__)) + module_name = _parser_readme(os.path.join(ci_script_dir, '../README.md')).strip() + print("module_name: %s" % module_name) + changelog_info = _parser_changelog(os.path.join(ci_script_dir, '../CHANGELOG.md')) + version = changelog_info[0] + print("version: %s" % version) + changelog = changelog_info[1] + print("changelog: %s" % changelog) + database_name = _parser_module_config(os.path.join(ci_script_dir, '../module.json')) + archive_filepath = package() + print("archive_filepath: %s" % archive_filepath) + sendToDingding(archive_filepath) + \ No newline at end of file diff --git a/ci/update_yuque_releasenotes.py b/ci/update_yuque_releasenotes.py new file mode 100644 index 0000000000000000000000000000000000000000..320fb6359069409c7b4c100698e068ad29b200af --- /dev/null +++ b/ci/update_yuque_releasenotes.py @@ -0,0 +1,107 @@ +''' +@File: update_yuque_releasenotes.py +@Description: Auto update releasenotes document on Yuque +@Author: leon.li(l2m2lq@gmail.com) +@Date: 2020-04-03 09:08:03 +''' + +import requests, os, json, re +import smtplib +from email.mime.text import MIMEText +from email.mime.base import MIMEBase +from email.mime.multipart import MIMEMultipart +from email.header import Header +from email import encoders + +def beautify(changelog): + """ + beautify for Yuque markdown content + """ + v1 = re.sub(r'BUG#(\d+)', r'BUG[#\1](http://zentao.topibd.net/zentao/bug-view-\1.html)', changelog, flags=re.IGNORECASE) + v2 = re.sub(r'需求#(\d+)', r'需求[#\1](http://zentao.topibd.net/zentao/story-view-\1.html)', v1) + return v2 + +def beautify2(changelog): + """ + beautify for mail content + """ + v0 = '<br />'.join(changelog.split('\n')) + v1 = re.sub(r'BUG#(\d+)', r'BUG<a href=http://zentao.topibd.net/zentao/bug-view-\1.html>#\1</a>', v0, flags=re.IGNORECASE) + v2 = re.sub(r'需求#(\d+)', r'需求<a href=http://zentao.topibd.net/zentao/story-view-\1.html>#\1</a>', v1) + return v2 + +def update_yuque(repo_id, doc_id, *, body): + headers = { + 'X-Auth-Token': yuque_info['token'], + 'Content-Type': 'application/x-www-form-urlencoded' + } + base_url = yuque_info['api_base_url'] + url = f'{base_url}/repos/{repo_id}/docs/{doc_id}' + print(url) + data = { + 'format': 'markdown', + 'body': body + } + response = requests.request(method='PUT', url=url, headers=headers, data=data, timeout=yuque_info['timeout']) + if response.status_code != 200: + print(f'Update yuque doc failed. status_code = {response.status_code}, response = {response.text}') + +def _parser_changelog(changelog_filepath): + with open(changelog_filepath, 'r', encoding='utf-8') as f: + content = f.read() + m = re.search(r'^##\s*(\d+\.\d+.\d+)\s.*\n((.+\n)+)', content) + return (m[1], m[2]) + +def send_mail(to, cc): + smtp = smtplib.SMTP(mail_info['host'], mail_info['port']) + smtp.connect(mail_info['host'], mail_info['port']) + smtp.login(mail_info['user'], mail_info['password']) + message = MIMEMultipart() + message['Subject'] = Header(f'{module_info["module_name_zhcn"]}模组 {changelog_info[0]} å‘布', 'utf-8') + message['From'] = mail_info['user'] + message['To'] = ','.join(to) + if cc: + message['Cc'] = ','.join(cc) + contents = [] + contents.append('Dear All, ') + contents.append('') + contents.append(f'<b>{module_info["module_name_zhcn"]} {changelog_info[0]} å‘布</b>') + contents.append(f'{beautify2(changelog_info[1])}') + contents.append(f'历å²ç‰ˆæœ¬ä¿¡æ¯è¯·ç§»æ¥<a href={yuque_info["releasenotes_url"]}>è¯é›€</a>查看') + contents.append('') + message.attach(MIMEText('<br />'.join(contents), 'html', 'utf-8')) + smtp.sendmail( + mail_info['user'], + to + cc, + message.as_string() + ) + smtp.quit() + +def run(): + global module_info + global yuque_info + global mail_info + global changelog_info + with open(os.path.join(ci_script_dir, '../module.json'), 'r', encoding='utf-8') as f: + module_info = json.load(f) + with open(os.path.join(ci_script_dir, 'yuque.json'), 'r', encoding='utf-8') as f: + yuque_info = json.load(f) + with open(os.path.join(ci_script_dir, 'mail.json'), 'r', encoding='utf-8') as f: + mail_config_info = json.load(f) + r = requests.get(mail_config_info["hook"]) + if r.status_code != 200: + print(f'get mail list failed. status_code: {r.status_code}') + return + r_data = json.loads(r.content) + mail_info = r_data["data"] + changelog_filepath = os.path.join(ci_script_dir, '../CHANGELOG.md') + changelog_info = _parser_changelog(changelog_filepath) + with open(changelog_filepath, 'r', encoding='utf-8') as f: + content = f.read() + update_yuque(yuque_info['repo_id'], yuque_info['doc_id'], body=beautify(content)) + send_mail(mail_info["to"], mail_info["cc"]) + +if __name__ == "__main__": + global ci_script_dir + ci_script_dir = os.path.dirname(os.path.realpath(__file__)) + run() \ No newline at end of file diff --git a/ci/upgrade-package-windows.json b/ci/upgrade-package-windows.json new file mode 100644 index 0000000000000000000000000000000000000000..733936a649823198649fe0ef602803d361f49669 --- /dev/null +++ b/ci/upgrade-package-windows.json @@ -0,0 +1,59 @@ +{ + "dev": { + "module": { + "delete": [], + "normal": [ + { + "path": "${pwd}/../src/module/TOPSYS", + "search_keys": [ "*" ] + } + ] + }, + "enum": { + "delete": [], + "normal": [ + { + "path": "${pwd}/../src/module/TOPSYS/__sys_enum__/", + "search_keys": [ "*.conf" ], + "recursively": true + } + ] + }, + "permission": { + "delete": [], + "normal": [ + { + "path": "${pwd}/../src/module/TOPSYS/__sys_permission__/", + "search_keys": [ "*.conf" ], + "recursively": true + } + ] + } + }, + "file": { + "normal": [ + { + "path": "${pwd}/../dist/topikm/qt5.6.3-win32-msvc2015/language/", + "search_keys": [ + "*topsys*.qm" + ], + "recursively": true + }, + { + "path": "${pwd}/../dist/topikm/qt5.6.3-win32-msvc2015/resource/", + "search_keys": [ + "*topsys*.rcc" + ], + "recursively": true + }, + { + "path": "${pwd}/../dist/topikm/qt5.6.3-win32-msvc2015/bin/plugins", + "search_keys": [ + "*topsys*.dll" + ], + "recursively": false + } + ] + }, + "release_note": "Update package is automatically published by CI." +} \ No newline at end of file diff --git a/ci/yuque.json b/ci/yuque.json new file mode 100644 index 0000000000000000000000000000000000000000..d9aeb74eefa34dd7bc0f919dac46f916e58ec699 --- /dev/null +++ b/ci/yuque.json @@ -0,0 +1,8 @@ +{ + "token": "86LSHNZHSC4RBuy0G8HCapr3FL36RlHbsix2HG9C", + "api_base_url": "https://toplinker.yuque.com/api/v2", + "releasenotes_url": "https://toplinker.yuque.com/toplinker/vtgsv9/ug6hnr", + "repo_id": 902137, + "doc_id": 5827785, + "timeout": 10 +} \ No newline at end of file diff --git a/demo/examples/examples.pro b/demo/examples/examples.pro deleted file mode 100644 index 9af321997e44586e021bafb381dfbb61874f22b9..0000000000000000000000000000000000000000 --- a/demo/examples/examples.pro +++ /dev/null @@ -1,5 +0,0 @@ -TEMPLATE = subdirs - -SUBDIRS += templatemain - -CONFIG += ordered diff --git a/demo/examples/module/TEMPLATEDEMO/__sys_enum__/mes-attrname-datatype.conf b/demo/examples/module/TEMPLATEDEMO/__sys_enum__/mes-attrname-datatype.conf deleted file mode 100644 index b294f9ca3d158000a5473ddbba43b45c87d4ea95..0000000000000000000000000000000000000000 --- a/demo/examples/module/TEMPLATEDEMO/__sys_enum__/mes-attrname-datatype.conf +++ /dev/null @@ -1,56 +0,0 @@ -# æžšä¸¾ç±»ä¿¡æ¯ -label: "TopMes/Attr Name Mgt/Data Type" -label_en: "TopMes/Attr Name Mgt/Data Type" -label_zhcn: "TopMes/属性å称列表/æ•°æ®ç±»åž‹" -label_zhtw: "TopMes/屬性å稱列表/數據類型" -remark: "" - -# æžšä¸¾é¡¹ä¿¡æ¯ - -items :[ - {"name":"attachment","icon":"","text":"Attachment","text_zhcn":"附件","text_zhtw":"Attachment","remark":"","tags":[],"data": - {"fieldType":"VARCHAR","fieldLength":255,"widgetType":"Attachment"}}, - - {"name":"string","icon":"","text":"String","text_zhcn":"å—符串","text_zhtw":"String","remark":"","tags":[],"data": - {"fieldType":"VARCHAR","fieldLength":255,"widgetType":"LineEdit"}}, - - {"name":"integer","icon":"","text":"Integer","text_zhcn":"æ•´æ•°","text_zhtw":"Integer","remark":"","tags":[],"data": - {"fieldType":"INTEGER","fieldLength":255,"widgetType":"LineEdit"}}, - {"name":"number","icon":"","text":"Number","text_zhcn":"æ•°å—","text_zhtw":"Number","remark":"","tags":[],"data": - {"fieldType":"DOUBLE","fieldLength":255,"widgetType":"LineEdit"}}, - - {"name":"enum","icon":"","text":"EnumList","text_zhcn":"选项列表(å•选ä¸å¯ç¼–辑)","text_zhtw":"EnumList","remark":"","tags":[],"data": - {"fieldType":"VARCHAR","fieldLength":255,"widgetType":"ComboBox"}}, - {"name":"multiple_enum","icon":"","text":"MultipleEnum","text_zhcn":"å¯å¤šé€‰åˆ—表","text_zhtw":"MultipleEnum","remark":"","tags":[],"data": - {"fieldType":"VARCHAR","fieldLength":255,"widgetType":"MultiComboBox"}}, - {"name":"editable_enum","icon":"","text":"EditableEnum","text_zhcn":"选项列表(å•选å¯ç¼–辑)","text_zhtw":"EditableEnum","remark":"","tags":[],"data": - {"fieldType":"VARCHAR","fieldLength":255,"widgetType":"EditableComboBox"}}, - - {"name":"radio_box","icon":"","text":"RadioBox","text_zhcn":"å•选框","text_zhtw":"RadioBox","remark":"","tags":[],"data": - {"fieldType":"VARCHAR","fieldLength":255,"widgetType":"RadioBox"}}, - {"name":"check_box","icon":"","text":"CheckBox","text_zhcn":"å¤é€‰æ¡†","text_zhtw":"CheckBox","remark":"","tags":[],"data": - {"fieldType":"VARCHAR","fieldLength":255,"widgetType":"CheckBox"}}, - {"name":"multiple_check","icon":"","text":"MultipleCheck","text_zhcn":"å¯å¤šé€‰å¤é€‰æ¡†","text_zhtw":"MultipleCheck","remark":"","tags":[],"data": - {"fieldType":"VARCHAR","fieldLength":255,"widgetType":"MultiCheckBox"}}, - - {"name":"plain_text","icon":"","text":"PlainText","text_zhcn":"文本(ä¸å¯å˜å—体åŠé¢œè‰²)","text_zhtw":"PlainText","remark":"","tags":[],"data": - {"fieldType":"TEXT","fieldLength":255,"widgetType":"PlainTextEdit"}}, - - {"name":"text","icon":"","text":"Text","text_zhcn":"富文本(å—体åŠé¢œè‰²å¯å˜)","text_zhtw":"Text","remark":"","tags":[],"data": - {"fieldType":"TEXT","fieldLength":255,"widgetType":"TextEdit"}}, - - - {"name":"date_time","icon":"","text":"DateTime","text_zhcn":"日期时间","text_zhtw":"DateTime","remark":"","tags":[],"data": - {"fieldType":"TIMESTAMP","fieldLength":255,"widgetType":"DateTimeEdit"}}, - {"name":"date","icon":"","text":"Date","text_zhcn":"日期","text_zhtw":"Date","remark":"","tags":[],"data": - {"fieldType":"DATE","fieldLength":255,"widgetType":"DateEdit"}}, - {"name":"time","icon":"","text":"Time","text_zhcn":"æ—¶é—´","text_zhtw":"Time","remark":"","tags":[],"data": - {"fieldType":"TIMESTAMP","fieldLength":255,"widgetType":"TimeEdit"}}, - - {"name":"table_view","icon":"","text":"TableView","text_zhcn":"è¡¨æ ¼","text_zhtw":"TableView","remark":"","tags":[],"data": - {"fieldType":"Text","fieldLength":255,"widgetType":"TableView"}}, - {"name":"code","icon":"","text":"CodeEdit","text_zhcn":"代ç 片段","text_zhtw":"CodeEdit","remark":"","tags":[],"data": - {"fieldType":"TEXT","fieldLength":255,"widgetType":"CodeEdit"}}, - {"name":"tree_view","icon":"","text":"TreeView","text_zhcn":"æ ‘å½¢","text_zhtw":"TreeView","remark":"","tags":[],"data": - {"fieldType":"Text","fieldLength":255,"widgetType":"PcbPdmTreeView"}} -] \ No newline at end of file diff --git a/demo/examples/module/TEMPLATEDEMO/__sys_enum__/pdm-attrname-attrcategory.conf b/demo/examples/module/TEMPLATEDEMO/__sys_enum__/pdm-attrname-attrcategory.conf deleted file mode 100644 index 223d9943c5ae00d33d0fd947bd0dc53cd631f176..0000000000000000000000000000000000000000 --- a/demo/examples/module/TEMPLATEDEMO/__sys_enum__/pdm-attrname-attrcategory.conf +++ /dev/null @@ -1,24 +0,0 @@ -# æžšä¸¾ç±»ä¿¡æ¯ -label: "TopPDM/Attr Name Mgt/Attr Category" -label_en: "TopPDM/Attr Name Mgt/Attr Category" -label_zhcn: "ä¸œé¢†äº§å“æ•°æ®ç®¡ç†/属性å称列表/属性分类" -label_zhtw: "æ±é ˜ç”¢å“數據管ç†/屬性å稱列表/屬性分類" -remark: "" - -# æžšä¸¾é¡¹ä¿¡æ¯ - -items :[ - {"name":"info","icon":"","text":"Info","text_zhcn":"Info","text_zhtw":"Info","remark":"","tags":[],"data":null}, - {"name":"drill","icon":"","text":"Drill","text_zhcn":"é’»å”","text_zhtw":"鑽å”","remark":"","tags":[],"data":null}, - {"name":"inner","icon":"","text":"Inner","text_zhcn":"内层","text_zhtw":"內層","remark":"","tags":[],"data":null}, - {"name":"outer","icon":"","text":"Outer","text_zhcn":"外层","text_zhtw":"外層","remark":"","tags":[],"data":null}, - {"name":"relam","icon":"","text":"Relam","text_zhcn":"层压","text_zhtw":"層壓","remark":"","tags":[],"data":null}, - {"name":"soldermask","icon":"","text":"SM","text_zhcn":"防焊","text_zhtw":"防焊","remark":"","tags":[],"data":null}, - {"name":"silkscreen","icon":"","text":"SS","text_zhcn":"å—符","text_zhtw":"å—符","remark":"","tags":[],"data":null}, - {"name":"logo","icon":"","text":"Logo","text_zhcn":"Logo","text_zhtw":"Logo","remark":"","tags":[],"data":null}, - {"name":"surface","icon":"","text":"Surface","text_zhcn":"表é¢å¤„ç†","text_zhtw":"表é¢è™•ç†","remark":"","tags":[],"data":null}, - {"name":"contour","icon":"","text":"Contour","text_zhcn":"外形","text_zhtw":"外形","remark":"","tags":[],"data":null}, - {"name":"quote","icon":"","text":"Quote","text_zhcn":"报价","text_zhtw":"å ±åƒ¹","remark":"","tags":[],"data":null}, - {"name":"other","icon":"","text":"Other","text_zhcn":"å…¶ä»–","text_zhtw":"å…¶ä»–","remark":"","tags":[],"data":null}, - {"name":"sys","icon":"","text":"Sys","text_zhcn":"系统","text_zhtw":"系統","remark":"","tags":[],"data":null} -] \ No newline at end of file diff --git a/demo/examples/module/TEMPLATEDEMO/__sys_enum__/pdm-attrname-attrtype.conf b/demo/examples/module/TEMPLATEDEMO/__sys_enum__/pdm-attrname-attrtype.conf deleted file mode 100644 index b76613efb2565a10479df0d9d42b01db7f3ecc21..0000000000000000000000000000000000000000 --- a/demo/examples/module/TEMPLATEDEMO/__sys_enum__/pdm-attrname-attrtype.conf +++ /dev/null @@ -1,13 +0,0 @@ -# æžšä¸¾ç±»ä¿¡æ¯ -label: "TopPDM/Attr Name Mgt/Attr Type" -label_en: "TopPDM/Attr Name Mgt/Attr Type" -label_zhcn: "ä¸œé¢†äº§å“æ•°æ®ç®¡ç†/属性å称列表/属性类型" -label_zhtw: "æ±é ˜ç”¢å“數據管ç†/屬性å稱列表/屬性類型" -remark: "" - -# æžšä¸¾é¡¹ä¿¡æ¯ - -items :[ - {"name":"job","icon":"","text":"Job","text_zhcn":"æ–™å·å±žæ€§","text_zhtw":"料號屬性","remark":"","tags":[],"data":null}, - {"name":"layer","icon":"","text":"Layer","text_zhcn":"层属性","text_zhtw":"層屬性","remark":"","tags":[],"data":null} -] \ No newline at end of file diff --git a/demo/examples/module/TEMPLATEDEMO/__sys_enum__/pdm-attrname-datatype.conf b/demo/examples/module/TEMPLATEDEMO/__sys_enum__/pdm-attrname-datatype.conf deleted file mode 100644 index 5d46d15c0d37ac8e36e22fc3dfa6dec24d38bfe6..0000000000000000000000000000000000000000 --- a/demo/examples/module/TEMPLATEDEMO/__sys_enum__/pdm-attrname-datatype.conf +++ /dev/null @@ -1,58 +0,0 @@ -# æžšä¸¾ç±»ä¿¡æ¯ -label: "TopPDM/Attr Name Mgt/Data Type" -label_en: "TopPDM/Attr Name Mgt/Data Type" -label_zhcn: "ä¸œé¢†äº§å“æ•°æ®ç®¡ç†/属性å称列表/æ•°æ®ç±»åž‹" -label_zhtw: "æ±é ˜ç”¢å“數據管ç†/屬性å稱列表/數據類型" -remark: "" - -# æžšä¸¾é¡¹ä¿¡æ¯ - -items :[ - {"name":"attachment","icon":"","text":"Attachment","text_zhcn":"附件","text_zhtw":"Attachment","remark":"","tags":[],"data": - {"fieldType":"VARCHAR","fieldLength":255,"widgetType":"Attachment"}}, - - {"name":"string","icon":"","text":"String","text_zhcn":"å—符串","text_zhtw":"String","remark":"","tags":[],"data": - {"fieldType":"VARCHAR","fieldLength":255,"widgetType":"LineEdit"}}, - - {"name":"integer","icon":"","text":"Integer","text_zhcn":"æ•´æ•°","text_zhtw":"Integer","remark":"","tags":[],"data": - {"fieldType":"INTEGER","fieldLength":255,"widgetType":"LineEdit"}}, - {"name":"number","icon":"","text":"Number","text_zhcn":"æ•°å—","text_zhtw":"Number","remark":"","tags":[],"data": - {"fieldType":"DOUBLE","fieldLength":255,"widgetType":"LineEdit"}}, - {"name":"length_entry","icon":"","text":"LengthEntry","text_zhcn":"æ•°å—(å•ä½è½¬æ¢)","text_zhtw":"數å—(å–®ä½è½‰æ›)","remark":"","tags":[],"data": - {"fieldType":"DOUBLE","fieldLength":255,"widgetType":"LengthValueEntry"}}, - - {"name":"enum","icon":"","text":"EnumList","text_zhcn":"选项列表(å•选ä¸å¯ç¼–辑)","text_zhtw":"EnumList","remark":"","tags":[],"data": - {"fieldType":"VARCHAR","fieldLength":255,"widgetType":"ComboBox"}}, - {"name":"multiple_enum","icon":"","text":"MultipleEnum","text_zhcn":"å¯å¤šé€‰åˆ—表","text_zhtw":"MultipleEnum","remark":"","tags":[],"data": - {"fieldType":"VARCHAR","fieldLength":255,"widgetType":"MultiComboBox"}}, - {"name":"editable_enum","icon":"","text":"EditableEnum","text_zhcn":"选项列表(å•选å¯ç¼–辑)","text_zhtw":"EditableEnum","remark":"","tags":[],"data": - {"fieldType":"VARCHAR","fieldLength":255,"widgetType":"EditableComboBox"}}, - - {"name":"radio_box","icon":"","text":"RadioBox","text_zhcn":"å•选框","text_zhtw":"RadioBox","remark":"","tags":[],"data": - {"fieldType":"VARCHAR","fieldLength":255,"widgetType":"RadioBox"}}, - {"name":"check_box","icon":"","text":"CheckBox","text_zhcn":"å¤é€‰æ¡†","text_zhtw":"CheckBox","remark":"","tags":[],"data": - {"fieldType":"VARCHAR","fieldLength":255,"widgetType":"CheckBox"}}, - {"name":"multiple_check","icon":"","text":"MultipleCheck","text_zhcn":"å¯å¤šé€‰å¤é€‰æ¡†","text_zhtw":"MultipleCheck","remark":"","tags":[],"data": - {"fieldType":"VARCHAR","fieldLength":255,"widgetType":"MultiCheckBox"}}, - - {"name":"plain_text","icon":"","text":"PlainText","text_zhcn":"文本(ä¸å¯å˜å—体åŠé¢œè‰²)","text_zhtw":"PlainText","remark":"","tags":[],"data": - {"fieldType":"TEXT","fieldLength":255,"widgetType":"PlainTextEdit"}}, - - {"name":"text","icon":"","text":"Text","text_zhcn":"富文本(å—体åŠé¢œè‰²å¯å˜)","text_zhtw":"Text","remark":"","tags":[],"data": - {"fieldType":"TEXT","fieldLength":255,"widgetType":"TextEdit"}}, - - - {"name":"date_time","icon":"","text":"DateTime","text_zhcn":"日期时间","text_zhtw":"DateTime","remark":"","tags":[],"data": - {"fieldType":"TIMESTAMP","fieldLength":255,"widgetType":"DateTimeEdit"}}, - {"name":"date","icon":"","text":"Date","text_zhcn":"日期","text_zhtw":"Date","remark":"","tags":[],"data": - {"fieldType":"DATE","fieldLength":255,"widgetType":"DateEdit"}}, - {"name":"time","icon":"","text":"Time","text_zhcn":"æ—¶é—´","text_zhtw":"Time","remark":"","tags":[],"data": - {"fieldType":"TIMESTAMP","fieldLength":255,"widgetType":"TimeEdit"}}, - - {"name":"table_view","icon":"","text":"TableView","text_zhcn":"è¡¨æ ¼","text_zhtw":"TableView","remark":"","tags":[],"data": - {"fieldType":"Text","fieldLength":255,"widgetType":"TableView"}}, - {"name":"code","icon":"","text":"CodeEdit","text_zhcn":"代ç 片段","text_zhtw":"CodeEdit","remark":"","tags":[],"data": - {"fieldType":"TEXT","fieldLength":255,"widgetType":"CodeEdit"}}, - {"name":"tree_view","icon":"","text":"TreeView","text_zhcn":"æ ‘å½¢","text_zhtw":"TreeView","remark":"","tags":[],"data": - {"fieldType":"Text","fieldLength":255,"widgetType":"PcbPdmTreeView"}} -] \ No newline at end of file diff --git a/demo/examples/module/TEMPLATEDEMO/__sys_enum__/pdm-attrname-department.conf b/demo/examples/module/TEMPLATEDEMO/__sys_enum__/pdm-attrname-department.conf deleted file mode 100644 index a5c1d6eb241d7d5a27d22f138acd6257872bd806..0000000000000000000000000000000000000000 --- a/demo/examples/module/TEMPLATEDEMO/__sys_enum__/pdm-attrname-department.conf +++ /dev/null @@ -1,14 +0,0 @@ -# æžšä¸¾ç±»ä¿¡æ¯ -label: "TopPDM/Attr Name Mgt/Department" -label_en: "TopPDM/Attr Name Mgt/Department" -label_zhcn: "ä¸œé¢†äº§å“æ•°æ®ç®¡ç†/属性å称列表/部门" -label_zhtw: "æ±é ˜ç”¢å“數據管ç†/屬性å稱列表/部門" -remark: "" - -# æžšä¸¾é¡¹ä¿¡æ¯ - -items :[ - {"name":"sales","icon":"","text":"Sales","text_zhcn":"销售","text_zhtw":"銷售","remark":"","tags":[],"data":null}, - {"name":"mi","icon":"","text":"MI","text_zhcn":"预审","text_zhtw":"é 審","remark":"","tags":[],"data":null}, - {"name":"cam","icon":"","text":"CAM","text_zhcn":"CAM","text_zhtw":"CAM","remark":"","tags":[],"data":null} -] \ No newline at end of file diff --git a/demo/examples/module/TEMPLATEDEMO/__sys_enum__/pdm-job-status.conf b/demo/examples/module/TEMPLATEDEMO/__sys_enum__/pdm-job-status.conf deleted file mode 100644 index 911464076d33c081724ba95071ba5e55b00c62dc..0000000000000000000000000000000000000000 --- a/demo/examples/module/TEMPLATEDEMO/__sys_enum__/pdm-job-status.conf +++ /dev/null @@ -1,15 +0,0 @@ -# æžšä¸¾ç±»ä¿¡æ¯ -label: "TopPDM/Job Management/Job Status" -label_en: "TopPDM/Job Management/Job Status" -label_zhcn: "ä¸œé¢†äº§å“æ•°æ®ç®¡ç†/æ–™å·ç®¡ç†/æ–™å·çжæ€" -label_zhtw: "æ±é ˜ç”¢å“數據管ç†/料號管ç†/料號狀態" -remark: "" - -# æžšä¸¾é¡¹ä¿¡æ¯ - -items :[ - {"name":"active","icon":"play-circle-o.#27ad3a","text":"Active","text_zhcn":"激活","text_zhtw":"激活","remark":"","tags":[]}, - {"name":"finish","icon":"check-circle-o.#3366ff","text":"Finish","text_zhcn":"结案","text_zhtw":"çµæ¡ˆ","remark":"","tags":[]}, - {"name":"pause","icon":"pause-circle-o.#f49138","text":"Pause","text_zhcn":"æš‚åœ","text_zhtw":"æš«åœ","remark":"","tags":[]}, - {"name":"cancel","icon":"times-circle-o.#e82525","text":"Cancel","text_zhcn":"å–æ¶ˆ","text_zhtw":"å–æ¶ˆ","remark":"","tags":[]} -] \ No newline at end of file diff --git a/demo/examples/module/TEMPLATEDEMO/__sys_enum__/pdm-job-type.conf b/demo/examples/module/TEMPLATEDEMO/__sys_enum__/pdm-job-type.conf deleted file mode 100644 index 14c7e8675360cdfd9327cae6c09c291ac766e008..0000000000000000000000000000000000000000 --- a/demo/examples/module/TEMPLATEDEMO/__sys_enum__/pdm-job-type.conf +++ /dev/null @@ -1,14 +0,0 @@ -# æžšä¸¾ç±»ä¿¡æ¯ -label: "TopPDM/Job Management/Job Type" -label_en: "TopPDM/Job Management/Job Type" -label_zhcn: "ä¸œé¢†äº§å“æ•°æ®ç®¡ç†/æ–™å·ç®¡ç†/æ–™å·ç±»åž‹" -label_zhtw: "æ±é ˜ç”¢å“數據管ç†/料號管ç†/料號類型" -remark: "" - -# æžšä¸¾é¡¹ä¿¡æ¯ - -items :[ - {"name":"normal","icon":"","text":"Normal","text_zhcn":"厂内料å·","text_zhtw":"å» å…§æ–™è™Ÿ","remark":"","tags":[]}, - {"name":"combine","icon":"","text":"Combine","text_zhcn":"åˆæ‹¼æ–™å·","text_zhtw":"åˆæ‹¼æ–™è™Ÿ","remark":"","tags":[]}, - {"name":"sub_job","icon":"","text":"SubJob","text_zhcn":"åæ–™å·","text_zhtw":"åæ–™è™Ÿ","remark":"","tags":[]} -] \ No newline at end of file diff --git a/demo/examples/module/TEMPLATEDEMO/__sys_enum__/tpm-machine-maintenance-plan-category.conf b/demo/examples/module/TEMPLATEDEMO/__sys_enum__/tpm-machine-maintenance-plan-category.conf deleted file mode 100644 index b7daf348ae91dfe039cfa39944fba8b9b1529caf..0000000000000000000000000000000000000000 --- a/demo/examples/module/TEMPLATEDEMO/__sys_enum__/tpm-machine-maintenance-plan-category.conf +++ /dev/null @@ -1,14 +0,0 @@ -# æžšä¸¾ç±»ä¿¡æ¯ -label: "MES/Mes TPM Maintenance Category/Plan Category" -label_en: "MES/Mes TPM Maintenance PlCategoryan/Plan Category" -label_zhcn: "MES/维护计划/计划分类" -label_zhtw: "MES/维护计划/计划分类" -remark: "" - -# æžšä¸¾é¡¹ä¿¡æ¯ -items :[ - {"name":"overhaul","icon":"","text":"大修","text_zhcn":"大修","text_zhtw":"大修","remark":"","tags":[]}, - {"name":"part_repairing","icon":"","text":"局部维修","text_zhcn":"局部维修","text_zhtw":"局部维修","remark":"","tags":[]}, - {"name":"lubrication","icon":"","text":"润滑ä¿å…»","text_zhcn":"润滑ä¿å…»","text_zhtw":"润滑ä¿å…»","remark":"","tags":[]}, - {"name":"sealing","icon":"","text":"密å°ä¿å…»","text_zhcn":"密å°ä¿å…»","text_zhtw":"密å°ä¿å…»","remark":"","tags":[]} -] \ No newline at end of file diff --git a/demo/examples/module/TEMPLATEDEMO/__sys_enum__/tpm-machine-maintenance-plan-class.conf b/demo/examples/module/TEMPLATEDEMO/__sys_enum__/tpm-machine-maintenance-plan-class.conf deleted file mode 100644 index 3ef89bcb8c2a15508143e510a83cec6116070753..0000000000000000000000000000000000000000 --- a/demo/examples/module/TEMPLATEDEMO/__sys_enum__/tpm-machine-maintenance-plan-class.conf +++ /dev/null @@ -1,13 +0,0 @@ -# æžšä¸¾ç±»ä¿¡æ¯ -label: "MES/Mes TPM Maintenance Class/Maintenance Class" -label_en: "MES/Mes TPM Maintenance Class/Maintenance Class" -label_zhcn: "MES/维护计划/维护分类" -label_zhtw: "MES/维护计划/维护分类" -remark: "" - -# æžšä¸¾é¡¹ä¿¡æ¯ -items :[ - {"name":"repair","icon":"","text":"ç»´ä¿®","text_zhcn":"ç»´ä¿®","text_zhtw":"ç»´ä¿®","remark":"","tags":[]}, - {"name":"maintenance","icon":"","text":"ä¿å…»","text_zhcn":"ä¿å…»","text_zhtw":"ä¿å…»","remark":"","tags":[]}, - {"name":"spot_check","icon":"","text":"点检","text_zhcn":"点检","text_zhtw":"点检","remark":"","tags":[]} -] \ No newline at end of file diff --git a/demo/examples/module/TEMPLATEDEMO/__sys_enum__/tpm-machine-maintenance-plan-cycle.conf b/demo/examples/module/TEMPLATEDEMO/__sys_enum__/tpm-machine-maintenance-plan-cycle.conf deleted file mode 100644 index 9224af2e33f9821caf2b52a14037b30464cbb769..0000000000000000000000000000000000000000 --- a/demo/examples/module/TEMPLATEDEMO/__sys_enum__/tpm-machine-maintenance-plan-cycle.conf +++ /dev/null @@ -1,13 +0,0 @@ -# æžšä¸¾ç±»ä¿¡æ¯ -label: "MES/Mes TPM Maintenance Class/Maintenance Cycle" -label_en: "MES/Mes TPM Maintenance Class/Maintenance Cycle" -label_zhcn: "MES/维护计划/维护周期" -label_zhtw: "MES/维护计划/维护周期" -remark: "" - -# æžšä¸¾é¡¹ä¿¡æ¯ -items :[ - {"name":"day","icon":"","text":"天","text_zhcn":"天","text_zhtw":"天","remark":"","tags":[]}, - {"name":"week","icon":"","text":"周","text_zhcn":"周","text_zhtw":"周","remark":"","tags":[]}, - {"name":"month","icon":"","text":"月","text_zhcn":"月","text_zhtw":"月","remark":"","tags":[]} -] \ No newline at end of file diff --git a/demo/examples/module/TEMPLATEDEMO/__sys_enum__/tpm-machine-maintenance-plan-execution-cycle.conf b/demo/examples/module/TEMPLATEDEMO/__sys_enum__/tpm-machine-maintenance-plan-execution-cycle.conf deleted file mode 100644 index b3f69911d1b8110156cbba3ff06e5599a18801bf..0000000000000000000000000000000000000000 --- a/demo/examples/module/TEMPLATEDEMO/__sys_enum__/tpm-machine-maintenance-plan-execution-cycle.conf +++ /dev/null @@ -1,12 +0,0 @@ -# æžšä¸¾ç±»ä¿¡æ¯ -label: "MES/Mes TPM Maintenance Category/Plan Execution Cycle" -label_en: "MES/Mes TPM Maintenance PlCategoryan/Plan Execution Cycle" -label_zhcn: "MES/维护计划/计划执行周期" -label_zhtw: "MES/维护计划/计划执行周期" -remark: "" - -# æžšä¸¾é¡¹ä¿¡æ¯ -items :[ - {"name":"once","icon":"","text":"啿¬¡","text_zhcn":"啿¬¡","text_zhtw":"啿¬¡","remark":"","tags":[]}, - {"name":"cycle","icon":"","text":"周期","text_zhcn":"周期","text_zhtw":"周期","remark":"","tags":[]} -] \ No newline at end of file diff --git a/demo/examples/module/TEMPLATEDEMO/__sys_enum__/tpm-machine-maintenance-plan-priority.conf b/demo/examples/module/TEMPLATEDEMO/__sys_enum__/tpm-machine-maintenance-plan-priority.conf deleted file mode 100644 index dcc9bc8d17d9f38104bac57153d33ab235f2e494..0000000000000000000000000000000000000000 --- a/demo/examples/module/TEMPLATEDEMO/__sys_enum__/tpm-machine-maintenance-plan-priority.conf +++ /dev/null @@ -1,13 +0,0 @@ -# æžšä¸¾ç±»ä¿¡æ¯ -label: "MES/Mes TPM Maintenance Plan/Plan Priority" -label_en: "MES/Mes TPM Maintenance Plan/Plan Priority" -label_zhcn: "MES/维护计划/计划优先级" -label_zhtw: "MES/维护计划/计划优先级" -remark: "" - -# æžšä¸¾é¡¹ä¿¡æ¯ -items :[ - {"name":"1","icon":"","text":"1","text_zhcn":"1","text_zhtw":"1","remark":"","tags":[]}, - {"name":"2","icon":"","text":"2","text_zhcn":"2","text_zhtw":"2","remark":"","tags":[]}, - {"name":"3","icon":"","text":"3","text_zhcn":"3","text_zhtw":"3","remark":"","tags":[]} -] \ No newline at end of file diff --git a/demo/examples/module/TEMPLATEDEMO/__sys_enum__/tpm-machine-maintenance-plan-status.conf b/demo/examples/module/TEMPLATEDEMO/__sys_enum__/tpm-machine-maintenance-plan-status.conf deleted file mode 100644 index dbf929a89b659031f49be31ca824aa5e8e21b2a0..0000000000000000000000000000000000000000 --- a/demo/examples/module/TEMPLATEDEMO/__sys_enum__/tpm-machine-maintenance-plan-status.conf +++ /dev/null @@ -1,13 +0,0 @@ -# æžšä¸¾ç±»ä¿¡æ¯ -label: "MES/Mes TPM Maintenance Plan/Plan Status" -label_en: "MES/Mes TPM Maintenance Plan/Plan Status" -label_zhcn: "MES/维护计划/计划状æ€" -label_zhtw: "MES/维护计划/计划状æ€" -remark: "" - -# æžšä¸¾é¡¹ä¿¡æ¯ -items :[ - {"name":"waiting","icon":"","text":"待执行","text_zhcn":"待执行","text_zhtw":"待执行","remark":"","tags":[]}, - {"name":"doing","icon":"","text":"执行ä¸","text_zhcn":"执行ä¸","text_zhtw":"执行ä¸","remark":"","tags":[]}, - {"name":"finished","icon":"","text":"已完æˆ","text_zhcn":"已完æˆ","text_zhtw":"已完æˆ","remark":"","tags":[]} -] \ No newline at end of file diff --git a/demo/examples/module/TEMPLATEDEMO/demo-summary/actions/about.js b/demo/examples/module/TEMPLATEDEMO/demo-summary/actions/about.js deleted file mode 100644 index 14d8f67b923383a63e111de5c65e56213075579c..0000000000000000000000000000000000000000 --- a/demo/examples/module/TEMPLATEDEMO/demo-summary/actions/about.js +++ /dev/null @@ -1,23 +0,0 @@ -try { - this.showAboutDialog(); -} catch (e) { - print(e); -} - -/*---ACTION--- -ICON: "" -LABEL: "About" -LABEL_ZHCN: "关于" -LABEL_ZHTW: "關於" -ACCEL: "" -TOOLTIP: "About" -TOOLTIP_ZHCN: "关于" -TOOLTIP_ZHTW: "關於" -CHECKED: "" -GROUP: "" -STYLE: "size=small button_style=both" -LANG: "JavaScript" -STATUS: "Release" -VERSION: "1" -STATEHOOK: "" ----ACTION---*/ \ No newline at end of file diff --git a/demo/examples/module/TEMPLATEDEMO/demo-summary/actions/modifypwd.js b/demo/examples/module/TEMPLATEDEMO/demo-summary/actions/modifypwd.js deleted file mode 100644 index 7b79cc2e89de42516ad48e3ae76cc370cc3b7894..0000000000000000000000000000000000000000 --- a/demo/examples/module/TEMPLATEDEMO/demo-summary/actions/modifypwd.js +++ /dev/null @@ -1,23 +0,0 @@ -try { - this.showPasswordModificationDialog(); -} catch (e) { - print(e); -} - -/*---ACTION--- -ICON: "" -LABEL: "Modify Password" -LABEL_ZHCN: "修改密ç " -LABEL_ZHCN: "修改密碼" -ACCEL: "" -TOOLTIP: "Modify Password" -TOOLTIP_ZHCN: "修改密ç " -TOOLTIP_ZHTW: "修改密碼" -CHECKED: "" -GROUP: "" -STYLE: "size=small button_style=both" -LANG: "JavaScript" -STATUS: "Release" -VERSION: "1" -STATEHOOK: "" ----ACTION---*/ \ No newline at end of file diff --git a/demo/examples/module/TEMPLATEDEMO/demo-summary/actions/open_module_upgrade.js b/demo/examples/module/TEMPLATEDEMO/demo-summary/actions/open_module_upgrade.js deleted file mode 100644 index c68978ecccfb9c84b3209baf792249cc1bc7e154..0000000000000000000000000000000000000000 --- a/demo/examples/module/TEMPLATEDEMO/demo-summary/actions/open_module_upgrade.js +++ /dev/null @@ -1,23 +0,0 @@ -try { - this.openModuleUpgrade(); -} catch (e) { - print(e); -} - -/*---ACTION--- -ICON: "" -LABEL: "Module Upgrade" -LABEL_ZHCN: "æ¨¡å—æ›´æ–°" -LABEL_ZHTW: "模塊更新" -ACCEL: "" -TOOLTIP: "Module Upgrade" -TOOLTIP_ZHCN: "æ¨¡å—æ›´æ–°" -TOOLTIP_ZHTW: "模塊更新" -CHECKED: "" -GROUP: "" -STYLE: "size=small button_style=both" -LANG: "JavaScript" -STATUS: "Release" -VERSION: "1" -STATEHOOK: "" ----ACTION---*/ \ No newline at end of file diff --git a/demo/examples/module/TEMPLATEDEMO/demo-summary/actions/quit.js b/demo/examples/module/TEMPLATEDEMO/demo-summary/actions/quit.js deleted file mode 100644 index 84cd7fe05033ea940270515340ce32432cf4b9e2..0000000000000000000000000000000000000000 --- a/demo/examples/module/TEMPLATEDEMO/demo-summary/actions/quit.js +++ /dev/null @@ -1,23 +0,0 @@ -try { - this.close(); -} catch (e) { - print(e); -} - -/*---ACTION--- -ICON: "" -LABEL: "Quit" -LABEL_ZHCN: "å…³é—" -LABEL_ZHTW: "關閉" -ACCEL: "" -TOOLTIP: "Quit" -TOOLTIP_ZHCN: "å…³é—" -TOOLTIP_ZHTW: "關閉" -CHECKED: "" -GROUP: "" -STYLE: "size=small button_style=both" -LANG: "JavaScript" -STATUS: "Release" -VERSION: "1" -STATEHOOK: "" ----ACTION---*/ \ No newline at end of file diff --git a/demo/examples/module/TEMPLATEDEMO/demo-summary/module.conf b/demo/examples/module/TEMPLATEDEMO/demo-summary/module.conf deleted file mode 100644 index 4e84ed5109946d84f73a05a8adb8410ae73c2456..0000000000000000000000000000000000000000 --- a/demo/examples/module/TEMPLATEDEMO/demo-summary/module.conf +++ /dev/null @@ -1,352 +0,0 @@ -# æ¨¡å—æ ‡é¢˜ -sys_title: "Demo Summary" -sys_title_en: "" -sys_title_zhcn: "æ¨¡æ¿æ¨¡å—汇总" -sys_title_zhtw: "" - -# 模å—å›¾æ ‡(æ™®é€šå›¾æ ‡åœ¨font awesome䏿‰¾ http://fontawesome.io/icons/) -sys_icon: "toplinker-cd" - -# 模å—对应的æ’ä»¶DLLåç§° -sys_plugin: "topikm6-topsys-plugin" -# 模å—对应的类å -sys_class: "SysMainWindow" - -# 打开模å—çš„æƒé™ -sys_open_right: "" - -# 当关é—çª—å£æ—¶ï¼Œå¦‚æžœæç¤ºæ˜¯å¦ä¿å˜ï¼Œä¿å˜è°ƒç”¨çš„action -sys_save_action: "" - -# 该模å—用到的枚举列表 -sys_enum_list: [] - -# 该模å—用到的除了Action之外的æƒé™åˆ—表 -sys_permission_list: [] - -# 产å“ç‰ˆæœ¬å· -product_version: "V0.0.1" - -# å…³äºŽå¯¹è¯æ¡†é…ç½® -about_us { - title:"", title_en:"", title_zhcn:"", title_zhtw:"", - copyright:"", copyright_en:"", copyright_zhcn:"", copyright_zhtw:"", - lawdesc:"", lawdesc_en:"", lawdesc_zhcn:"", lawdesc_zhtw:"", -} - -# 当左侧导航的moudle或action没有æƒé™æ—¶çš„çŠ¶æ€ -# 状æ€åŒ…括 show, hide, disable -# 默认为show -navi_status_without_permission: "disable" - -# èµ„æº -resource: { - rcc: [] -} - -# 主桌é¢é…ç½® -desktop: { - "navi": [ - { - "route_type": "module", - "icon": "code", - "title": "å•è¡¨æ ¼", - "title_en": "", - "title_zhcn": "", - "title_zhtw": "", - "url_address": "template-demo-single-table" - }, - { - "route_type": "module", - "icon": "code", - "title": "啿 ‘å½¢è¡¨æ ¼", - "title_en": "", - "title_zhcn": "", - "title_zhtw": "", - "url_address": "template-demo-single-tree" - }, - { - "route_type": "module", - "icon": "code", - "title": "表å•", - "title_en": "", - "title_zhcn": "", - "title_zhtw": "", - "url_address": "template-demo-uiloader" - }, - { - "route_type": "module", - "icon": "code", - "title": "带详情表å•", - "title_en": "", - "title_zhcn": "", - "title_zhtw": "", - "url_address": "template-demo-table-with-detail" - }, - { - "route_type": "module", - "icon": "code", - "title": "属性å称列表", - "title_en": "", - "title_zhcn": "", - "title_zhtw": "", - "url_address": "pdm-attr-name-mgt" - }, - { - "route_type": "module", - "icon": "code", - "title": "å æž„模æ¿åº“", - "title_en": "", - "title_zhcn": "", - "title_zhtw": "", - "url_address": "pdm-stackup-template" - }, - { - "route_type": "module", - "icon": "code", - "title": "主从表", - "title_en": "", - "title_zhcn": "", - "title_zhtw": "", - "url_address": "template-demo-master-slave" - }, - { - "route_type": "menu", - "icon": "home", - "title": "System", - "title_en": "System", - "title_zhcn": "系统", - "title_zhtw": "系統", - "icon_bgcolor": "#3598DB", - "items": [ - { - "route_type": "module", - "icon": "gears", - "title": "Module Setting", - "title_en": "Module Setting", - "title_zhcn": "模å—é…ç½®", - "title_zhtw": "模塊é…ç½®", - "url_address": "module-conf-mgt" - }, - { - "route_type": "module", - "icon": "gear", - "title": "Config Management", - "title_en": "Config Management", - "title_zhcn": "é…置管ç†", - "title_zhtw": "é…置管ç†", - "url_address": "sys-config-mgt" - }, - { - "route_type": "action", - "icon": "cloud-upload", - "title": "Module Upgrade", - "title_en": "Module Upgrade", - "title_zhcn": "模å—å‡çº§", - "title_zhtw": "模塊å‡çº§", - "url_address": "open_module_upgrade" - }, - { - "route_type": "module", - "icon": "code", - "title": "Macro Console", - "title_en": "Macro Console", - "title_zhcn": "å®æŽ§åˆ¶å°", - "title_zhtw": "å®æŽ§åˆ¶è‡º", - "url_address": "sys-macro-console" - }, - { - "route_type": "module", - "icon": "file-text-o", - "title": "Log Console", - "title_en": "Log Console", - "title_zhcn": "åŽå°æ—¥å¿—", - "title_zhtw": "å¾Œå°æ—¥èªŒ", - "url_address": "sys-log-console" - }, - { - "route_type": "action", - "icon": "lock", - "title": "Change Password", - "title_en": "Change Password", - "title_zhcn": "修改密ç ", - "title_zhtw": "修改密碼", - "url_address": "modifypwd" - }, - { - "route_type": "action", - "icon": "info", - "title": "About", - "title_en": "About", - "title_zhcn": "关于", - "title_zhtw": "關於", - "url_address": "about" - }, - { - "route_type": "action", - "icon": "sign-out", - "title": "Logout", - "title_en": "Logout", - "title_zhcn": "退出", - "title_zhtw": "退出", - "url_address": "quit" - } - ] - } - ] -} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/demo/examples/module/TEMPLATEDEMO/pdm-attr-name-mgt/actions/__hooks__.js b/demo/examples/module/TEMPLATEDEMO/pdm-attr-name-mgt/actions/__hooks__.js deleted file mode 100644 index ed0552843d1fe53651e6ee398382ef0443054c9c..0000000000000000000000000000000000000000 --- a/demo/examples/module/TEMPLATEDEMO/pdm-attr-name-mgt/actions/__hooks__.js +++ /dev/null @@ -1,67 +0,0 @@ -this.afterModuleInit = function () { - var self = this; - var lang_def = APP.languageDefine(); - // æ ¹æ®è¯è¨€å®šä¹‰ç¡®å®šè¦æŸ¥çš„title_i18n - var cfg = self.config(); - var data_keys = self.config('view.data_keys'); - _.forEach(lang_def, function (v, k) { - data_keys.push('attr_data.title_i18n.' + k); - self.setUserData('attr_data.title_i18n.' + k + '.visible', 0); - }); - _.set(cfg, 'view.data_keys', data_keys); - self.setConfig(cfg); - - // æ ¹æ®è¯è¨€å®šä¹‰åЍæ€ä¿®æ”¹detail.ui.js - var detail_ui = self.ui('detail'); - var title_i18n_actions = []; - var title_i18n_widgets = []; - var action_template_str = "{ \ - type: 'Action', \ - property: { text: '{0}', user_data: '{1}', checkable: true}, \ - callback: function(obj, checked, self) { \ - var lang = obj.getData('user_data'); \ - self.setUserData('{2}'+lang+'.visible', checked); \ - this.refreshState(); \ - } \ - }"; - var widget_template_str = "{ \ - name: '{0}', \ - type: 'LineEdit', \ - title: self.ttr('Title') + ' ({1})', \ - pack: { label: self.ttr('Title') + ' ({1})' }, \ - state: function(obj, self) { \ - var v = self.userData('{0}.visible'); \ - if (v) { \ - return 'show'; \ - } else { \ - return 'hide'; \ - } \ - }, \ - getter: function(obj) { \ - if (_.isEmpty(obj.text)) { \ - return null; \ - } \ - return obj.text; \ - } \ - }"; - _.forEach(lang_def, function (v, k) { - title_i18n_actions.push(_.format(action_template_str, v, k, 'attr_data.title_i18n.')); - title_i18n_widgets.push(_.format(widget_template_str, 'attr_data.title_i18n.' + k, v)); - }); - detail_ui = detail_ui.replace('/*{% TITLE_I18N_ACTIONS %}*/', title_i18n_actions.join(',')) - .replace('/*{% TITLE_I18N_WIDGETS %},*/', title_i18n_widgets.join(',') + ','); - self.setUi('detail', detail_ui); - - // æ ¹æ®è¯è¨€å®šä¹‰åЍæ€ä¿®æ”¹option-list.ui.js - var option_ui = self.ui('option-list'); - var option_i18n_actions = []; - var option_i18n_widgets = []; - _.forEach(lang_def, function (v, k) { - option_i18n_actions.push(_.format(action_template_str, v, k, 'text_')); - option_i18n_widgets.push(_.format(widget_template_str, 'text_' + k, v)); - }); - option_ui = option_ui.replace('/*{% TITLE_I18N_ACTIONS %}*/', option_i18n_actions.join(',')) - .replace('/*{% TITLE_I18N_WIDGETS %},*/', option_i18n_widgets.join(',') + ','); - self.setUi('option-list', option_ui); -}; - diff --git a/demo/examples/module/TEMPLATEDEMO/pdm-attr-name-mgt/actions/add_option.js b/demo/examples/module/TEMPLATEDEMO/pdm-attr-name-mgt/actions/add_option.js deleted file mode 100644 index 33a4be50e73500da68544f796cd606d98049656d..0000000000000000000000000000000000000000 --- a/demo/examples/module/TEMPLATEDEMO/pdm-attr-name-mgt/actions/add_option.js +++ /dev/null @@ -1,39 +0,0 @@ -try { - var self = this; - var option_list_table = self.uiLoader().getObject("option_list"); - if (option_list_table == undefined) return; - - var allDataMap = option_list_table.allDataMap(); - - var ret = GUI.showForm({ - title: self.ttr('New Option'), - self: self, - use_core_engine: true, - ui: self.ui('option-list'), - size: '400x400', - buttons: [ - self.ttr('Ok') + ':Ok:Ok:Primary', - self.ttr('Cancel') + ':Cancel:Cancel:Normal' - ], - include_hidden_items: true, - }); - - if (_.isEmpty(ret)) return; - var isNameExist = false; - _.forEach(allDataMap, function(item) { - if (ret['name'] == item['name']) { - isNameExist = true; - } - }); - - if (isNameExist) { - GUI.msgbox({ - title: this.ttr("Error"), - text: this.ttr("Option name is exist") - }); - return; - } - option_list_table.appendRow(ret); -} catch (e) { - print(e); -} \ No newline at end of file diff --git a/demo/examples/module/TEMPLATEDEMO/pdm-attr-name-mgt/actions/cancel_detail.js b/demo/examples/module/TEMPLATEDEMO/pdm-attr-name-mgt/actions/cancel_detail.js deleted file mode 100644 index 73a671bdae9c3d7904120cd54158e2fa41699dd7..0000000000000000000000000000000000000000 --- a/demo/examples/module/TEMPLATEDEMO/pdm-attr-name-mgt/actions/cancel_detail.js +++ /dev/null @@ -1,27 +0,0 @@ -try { - this.reloadItem(); -} catch(e) { - print(e); -} - -/*---ACTION--- -ICON: "times.#54698d" -LABEL: "Cancel" -LABEL_ZHCN: "å–æ¶ˆ" -LABEL_ZHTW: "å–æ¶ˆ" -ACCEL: "" -TOOLTIP: "Cancel Edit" -TOOLTIP_ZHCN: "å–æ¶ˆç¼–辑" -TOOLTIP_ZHTW: "å–æ¶ˆç·¨è¼¯" -CHECKED: "" -GROUP: "" -LABEL_EN: "" -LABEL_JP: "" -TOOLTIP_EN: "" -TOOLTIP_JP: "" -STYLE: "button_style=both" -LANG: "JavaScript" -STATUS: "Release" -VERSION: "1" -STATEHOOK: "return (this.isDetailModified() ) ? 'enable' : 'hide';" ----ACTION---*/ \ No newline at end of file diff --git a/demo/examples/module/TEMPLATEDEMO/pdm-attr-name-mgt/actions/copy_detail.js b/demo/examples/module/TEMPLATEDEMO/pdm-attr-name-mgt/actions/copy_detail.js deleted file mode 100644 index d86097bd3e2abda53ce076f67436fd0b5fceab55..0000000000000000000000000000000000000000 --- a/demo/examples/module/TEMPLATEDEMO/pdm-attr-name-mgt/actions/copy_detail.js +++ /dev/null @@ -1,29 +0,0 @@ -try { - this.copyItem(); - this.uiLoader().setValue('name', ""); -} catch (e) { - print(e); -} - -/*---ACTION--- -ICON: "copy.#54698d" -LABEL: "Copy" -LABEL_ZHCN: "å¤åˆ¶" -LABEL_ZHTW: "複製" -ACCEL: "" -TOOLTIP: "Copy Attribute" -TOOLTIP_ZHCN: "å¤åˆ¶å±žæ€§" -TOOLTIP_ZHTW: "複製屬性" -CHECKED: "" -GROUP: "" -LABEL_EN: "" -LABEL_JP: "" -TOOLTIP_EN: "" -TOOLTIP_JP: "" -PERMISSION: "pdm-attr-name-edit" -STYLE: "button_style=icon" -LANG: "JavaScript" -STATUS: "Release" -VERSION: "1" -STATEHOOK: "return (this.isDetailModified() || this.detailUid() == 0) ? 'hide' : 'enable';" ----ACTION---*/ \ No newline at end of file diff --git a/demo/examples/module/TEMPLATEDEMO/pdm-attr-name-mgt/actions/delete.js b/demo/examples/module/TEMPLATEDEMO/pdm-attr-name-mgt/actions/delete.js deleted file mode 100644 index ea1a30462a1321db0e96a791d2ee1c3d33b6fbb2..0000000000000000000000000000000000000000 --- a/demo/examples/module/TEMPLATEDEMO/pdm-attr-name-mgt/actions/delete.js +++ /dev/null @@ -1,41 +0,0 @@ -var del_flag_key = this.config("view_data_set.db_del_flag_key"); -try { - if (_.isEmpty(del_flag_key)) { - if ('ok' != TMessageBox.warning(this, this.ttr('Are you sure to delete selected items?'), '', this.ttr('Delete item'), [this.ttr('Sure') + ':ok:ok:warn', this.ttr('Cancel') + ':cancel:cancel:primary'])) { - return; - } - } else { - if ('ok' != TMessageBox.warning(this, this.ttr('Are you sure to move the selected item to the recycling station?'), '', this.ttr('Delete item'), [this.ttr('Sure') + ':ok:ok:warn', this.ttr('Cancel') + ':cancel:cancel:primary'])) { - return; - } - } - this.deleteItems(this.selectedItems()); - this.refresh(); - this.refreshDetail(""); -} -catch (e) { - print(e); -} - -/*---ACTION--- -ICON: "trash.#54698d" -LABEL: "Delete" -LABEL_ZHCN: "åˆ é™¤" -LABEL_ZHTW: "刪除" -ACCEL: "Delete" -TOOLTIP: "Delete Attribute" -TOOLTIP_ZHCN: "åˆ é™¤å±žæ€§" -TOOLTIP_ZHTW: "刪除屬性" -CHECKED: "" -GROUP: "" -LABEL_EN: "" -LABEL_JP: "" -TOOLTIP_EN: "" -TOOLTIP_JP: "" -PERMISSION: "pdm-attr-name-delete" -STYLE: "button_style=both" -LANG: "JavaScript" -STATUS: "Release" -VERSION: "1" -STATEHOOK: "if(this.selectedItems().length > 0){return 'enable'}else{return 'disable'}" ----ACTION---*/ \ No newline at end of file diff --git a/demo/examples/module/TEMPLATEDEMO/pdm-attr-name-mgt/actions/edit_option.js b/demo/examples/module/TEMPLATEDEMO/pdm-attr-name-mgt/actions/edit_option.js deleted file mode 100644 index 2e0738ce5f75c4aa05d8a07a191780622b6f4ca7..0000000000000000000000000000000000000000 --- a/demo/examples/module/TEMPLATEDEMO/pdm-attr-name-mgt/actions/edit_option.js +++ /dev/null @@ -1,54 +0,0 @@ -try { - var self = this; - var option_list_table = self.uiLoader().getObject("option_list"); - if (option_list_table == undefined) { - return; - } - if (option_list_table.selectedRowDataMaps().length <= 0) { - return; - } - var allDataMap = option_list_table.allDataMap(); - var rowMap = option_list_table.selectedRowDataMaps()[0]; - var currentIndex = -1; - _.each(allDataMap, function(item, index) { - if (_.isEqual(rowMap, item)) { - currentIndex = index; - } - }) - var ret = GUI.showForm({ - title: self.ttr('Edit Option') + ": " + rowMap['name'], - self: self, - use_core_engine: true, - ui: self.ui('option-list'), - size: '400x400', - buttons: [ - self.ttr('Ok') + ':Ok:Ok:Primary', - self.ttr('Cancel') + ':Cancel:Cancel:Normal' - ], - include_hidden_items: true, - values: rowMap - }) - - if (_.isEmpty(ret)) { - return; - } - - var isNameExist = false; - var iindex; - _.forEach(allDataMap, function(item, index) { - if (currentIndex != index && ret['name'] == item['name']) { - isNameExist = true; - } - }); - if (isNameExist) { - GUI.msgbox({ - title: this.ttr("Error"), - text: this.ttr("Option Name is existed!") - }); - return; - } - option_list_table.setRowDataByPrimaryKey(rowMap["name"], ret); -} catch (e) { - print(e); -} - \ No newline at end of file diff --git a/demo/examples/module/TEMPLATEDEMO/pdm-attr-name-mgt/actions/new.js b/demo/examples/module/TEMPLATEDEMO/pdm-attr-name-mgt/actions/new.js deleted file mode 100644 index 0bbc5a9b6fe67c54f9a0c14ca00a2e94123a0bcd..0000000000000000000000000000000000000000 --- a/demo/examples/module/TEMPLATEDEMO/pdm-attr-name-mgt/actions/new.js +++ /dev/null @@ -1,28 +0,0 @@ -try { - this.newItem(); -} catch (e) { - print(e); -} - -/*---ACTION--- -ICON: "plus.#54698d" -LABEL: "New Attribute" -LABEL_ZHCN: "新建属性" -LABEL_ZHTW: "新建屬性" -ACCEL: "Ctrl+N" -TOOLTIP: "New Attribute" -TOOLTIP_ZHCN: "新建属性" -TOOLTIP_ZHTW: "新建屬性" -CHECKED: "" -GROUP: "" -LABEL_EN: "" -LABEL_JP: "" -TOOLTIP_EN: "" -TOOLTIP_JP: "" -PERMISSION: "pdm-attr-name-create" -STYLE: "button_style=both" -LANG: "JavaScript" -STATUS: "Release" -VERSION: "1" -STATEHOOK: "" ----ACTION---*/ \ No newline at end of file diff --git a/demo/examples/module/TEMPLATEDEMO/pdm-attr-name-mgt/actions/refresh.js b/demo/examples/module/TEMPLATEDEMO/pdm-attr-name-mgt/actions/refresh.js deleted file mode 100644 index 242835bed0d3cb3cdbc53ea535a16504afe10ca6..0000000000000000000000000000000000000000 --- a/demo/examples/module/TEMPLATEDEMO/pdm-attr-name-mgt/actions/refresh.js +++ /dev/null @@ -1,27 +0,0 @@ -try { - this.refresh(false); -} catch(e) { - print(e); -} - -/*---ACTION--- -ICON: "refresh.#54698d" -LABEL: "Refresh" -LABEL_ZHCN: "刷新" -LABEL_ZHTW: "刷新" -ACCEL: "F5" -TOOLTIP: "Refresh" -TOOLTIP_ZHCN: "刷新" -TOOLTIP_ZHTW: "刷新" -CHECKED: "" -GROUP: "" -LABEL_EN: "" -LABEL_JP: "" -TOOLTIP_EN: "" -TOOLTIP_JP: "" -STYLE: "button_style=icon" -LANG: "JavaScript" -STATUS: "Release" -VERSION: "1" -STATEHOOK: "" ----ACTION---*/ \ No newline at end of file diff --git a/demo/examples/module/TEMPLATEDEMO/pdm-attr-name-mgt/actions/refresh_detail.js b/demo/examples/module/TEMPLATEDEMO/pdm-attr-name-mgt/actions/refresh_detail.js deleted file mode 100644 index 5c6b817c2f0305377981e40a18f76fcc62afa662..0000000000000000000000000000000000000000 --- a/demo/examples/module/TEMPLATEDEMO/pdm-attr-name-mgt/actions/refresh_detail.js +++ /dev/null @@ -1,27 +0,0 @@ -try { - this.reloadItem(); -} catch(e) { - print(e); -} - -/*---ACTION--- -ICON: "refresh.#54698d" -LABEL: "Refresh" -LABEL_ZHCN: "刷新" -LABEL_ZHTW: "刷新" -ACCEL: "" -TOOLTIP: "Reload data from database" -TOOLTIP_ZHCN: "é‡è½½æ•°æ®" -TOOLTIP_ZHTW: "é‡è¼‰æ•¸æ“š" -CHECKED: "" -GROUP: "" -LABEL_EN: "" -LABEL_JP: "" -TOOLTIP_EN: "" -TOOLTIP_JP: "" -STYLE: "button_style=icon" -LANG: "JavaScript" -STATUS: "Release" -VERSION: "1" -STATEHOOK: "return (this.isDetailModified() || this.detailUid() == 0) ? 'hide' : 'enable';" ----ACTION---*/ \ No newline at end of file diff --git a/demo/examples/module/TEMPLATEDEMO/pdm-attr-name-mgt/actions/remove_option.js b/demo/examples/module/TEMPLATEDEMO/pdm-attr-name-mgt/actions/remove_option.js deleted file mode 100644 index f6d08b08b7d1c6332592619cf378f4dbe1fc2d8e..0000000000000000000000000000000000000000 --- a/demo/examples/module/TEMPLATEDEMO/pdm-attr-name-mgt/actions/remove_option.js +++ /dev/null @@ -1,15 +0,0 @@ -var self = this; -var option_list_table = self.uiLoader().getObject("option_list"); -if (option_list_table == undefined) { - return; -} -if (option_list_table.selectedRowDataMaps().length <= 0) { - return; -} - -if ('ok' != TMessageBox.warning(self, self.ttr('Are you sure to remove selected items?'), '', self.ttr('Delete item'), [self.ttr('Sure') + ':ok:ok:warn', self.ttr('Cancel') + ':cancel:cancel:primary'])) { - return; -} - -option_list_table.removeSelectedRows(); - diff --git a/demo/examples/module/TEMPLATEDEMO/pdm-attr-name-mgt/actions/restore.js b/demo/examples/module/TEMPLATEDEMO/pdm-attr-name-mgt/actions/restore.js deleted file mode 100644 index fc756971b40764a6f400d61e79cbd184fd1e0f0d..0000000000000000000000000000000000000000 --- a/demo/examples/module/TEMPLATEDEMO/pdm-attr-name-mgt/actions/restore.js +++ /dev/null @@ -1,50 +0,0 @@ -var ans = TMessageBox.question(this, this.ttr("Are you sure to restore selected items?"), '', this.ttr('Ask')); -if (ans != 'Yes') -{ - return; -} - -var query = new TSqlQueryV2(T_SQLCNT_POOL.getSqlDatabase()); -query.begin(); -try { - var updater = new TSqlUpdaterV2; - updater.setTable("pdm_attrname"); - updater.setWhere('id', this.selectedItems()); - updater.setData({del_flag: 0}); - query.updateRow(updater); - var error = query.lastError(); - if (error.isValid()) { - throw error; - } - query.commit(); - this.alertOk(this.ttr("Restore data Success!")); - this.refresh(false); - this.refreshDetail(""); -} catch (e) { - query.rollback(); - this.alertError(this.ttr("Restore Data Failed")); - print(e); -} - -/*---ACTION--- -ICON: "mail-reply" -LABEL: "Restore" -LABEL_ZHCN: "还原" -LABEL_ZHTW: "還原" -ACCEL: "Ctrl+R" -TOOLTIP: "Restore Attribute" -TOOLTIP_ZHCN: "还原属性" -TOOLTIP_ZHTW: "還原屬性" -CHECKED: "" -GROUP: "" -LABEL_EN: "" -LABEL_JP: "" -TOOLTIP_EN: "" -TOOLTIP_JP: "" -PERMISSION: "pdm-attr-name-edit" -STYLE: "button_style=both" -LANG: "JavaScript" -STATUS: "Release" -VERSION: "1" -STATEHOOK: "if(_.isEmpty(this.config('view.data_set.db_del_flag_key')) == false){return 'hide'} else if( this.selectedItems().length > 0){return 'enable'}else{return 'disable'}" ----ACTION---*/ \ No newline at end of file diff --git a/demo/examples/module/TEMPLATEDEMO/pdm-attr-name-mgt/actions/save_detail.js b/demo/examples/module/TEMPLATEDEMO/pdm-attr-name-mgt/actions/save_detail.js deleted file mode 100644 index 0cf674d28db978408f9a9675baef49efa7def3fa..0000000000000000000000000000000000000000 --- a/demo/examples/module/TEMPLATEDEMO/pdm-attr-name-mgt/actions/save_detail.js +++ /dev/null @@ -1,24 +0,0 @@ -try { - this.saveItem(); -} catch (e) { - print(e); -} - -/*---ACTION--- -ICON: "save.#54698d" -LABEL: "Save" -LABEL_ZHCN: "ä¿å˜" -LABEL_ZHTW: "ä¿å˜" -ACCEL: "Ctrl+S" -TOOLTIP: "Save Attribute" -TOOLTIP_ZHCN: "ä¿å˜å±žæ€§" -TOOLTIP_ZHTW: "ä¿å˜å±¬æ€§" -PERMISSION: "pdm-attr-name-edit" -CHECKED: "" -GROUP: "" -STYLE: "button_style=both" -LANG: "JavaScript" -STATUS: "Release" -VERSION: "1" -STATEHOOK: "return (this.isDetailModified() ) ? 'enable' : 'disable';" ----ACTION---*/ \ No newline at end of file diff --git a/demo/examples/module/TEMPLATEDEMO/pdm-attr-name-mgt/actions/set_key_attr.js b/demo/examples/module/TEMPLATEDEMO/pdm-attr-name-mgt/actions/set_key_attr.js deleted file mode 100644 index 5dccf5e22e6464779079989803e2e0a088a30bb5..0000000000000000000000000000000000000000 --- a/demo/examples/module/TEMPLATEDEMO/pdm-attr-name-mgt/actions/set_key_attr.js +++ /dev/null @@ -1,124 +0,0 @@ -var query = new TSqlQueryV2(T_SQLCNT_POOL.getSqlDatabase()); -var self = this; -try { - var selector = new TSqlSelectorV2; - selector.setTable("pdm_attrname"); - selector.setField(["id", "name", "title", "storage_flag"]); - selector.setWhere("del_flag = 0 OR del_flag IS NULL"); - var error = new TError; - var data = this.runSqlQueryOnThreadSync('TOPSQLTHREAD_SELECT_ARRAYMAP', selector, error); - if (error.isValid()) { - throw error.text(); - } - - var flagTrueList = []; //storage_flag = 1 - var flagFalseList = []; //storage_flag = 0 or null - _.forEach(data, function(item){ - var storage_flag = item["storage_flag"]; - if (storage_flag == 1) { - flagTrueList.push(item); - } else { - flagFalseList.push(item); - } - }); - var dialog = new TTableChooserDialog(self); - dialog.setTitle(self.ttr("Set primary attrname")); - dialog.setButtons([self.ttr('Ok') + ':Ok:Ok:Primary', self.ttr('Cancel') + ':Cancel:Cancel:ERROR']); - dialog.setIcon("pdm-setting.546998d"); - dialog.setRepetitionEnabled(false); - dialog.setPrimaryKey('id'); - dialog.setSearchKeys(['name', 'title']); - dialog.setHeaderItem( - [ - { - - }, - { - name: 'name', - display: self.ttr('Attrname'), - displayRole: '$name', - resizeMode: 'Stretch', - sorting_enabled: 1, - }, - { - name: 'title', - display: self.ttr('Title'), - displayRole: '$title', - resizeMode: 'Stretch', - sorting_enabled: 0 - } - ] - ); - dialog.setDataKeyList(['id', 'name', 'title', 'storage_flag']); - dialog.loadAllData(flagFalseList); - dialog.loadSelectedData(flagTrueList); - - var ret = dialog.run(); - if (_.isEmpty(ret)) { - return; - } - - var newFlagFalseList = dialog.tableView().allDataMap(); - var newFlagTrueList = dialog.selectedTableView().allDataMap(); - var flagTrueIds = []; - var flagFalseIds = []; - _.forEach(newFlagTrueList, function(item) { - flagTrueIds.push(item['id']); - }); - - _.forEach(newFlagFalseList, function(item) { - flagFalseIds.push(item['id']); - }); - - var updater = new TSqlUpdaterV2; - updater.setTable('pdm_attrname'); - var updateTrueMap = {}; - updateTrueMap["storage_flag"] = 1; - updater.setField(["storage_flag"]); - updater.setWhere("id", flagTrueIds); - updater.setData(updateTrueMap); - query.updateRow(updater); - var error = query.lastError(); - if (error.isValid()) { - throw error; - } - - var updateFalseMap = {}; - updateFalseMap["storage_flag"] = 0; - updater.setField(["storage_flag"]); - updater.setWhere("id", flagFalseIds); - updater.setData(updateFalseMap); - query.updateRow(updater); - var error = query.lastError(); - if (error.isValid()) { - throw error; - } - query.commit(); -} catch (e) { - query.rollback(); - this.alertError(this.ttr('Error!'), e); - print(e); -} - -/*---ACTION--- -ICON: "pdm-setting.#54698d" -LABEL: "Set Primary Attributes" -LABEL_ZHCN: "设置关键属性" -LABEL_ZHTW: "è¨ç½®é—œéµå±¬æ€§" -ACCEL: "" -TOOLTIP: "Set Primary Attributes" -TOOLTIP_ZHCN: "设置关键属性" -TOOLTIP_ZHTW: "è¨ç½®é—œéµå±¬æ€§" -CHECKED: "" -GROUP: "" -LABEL_EN: "" -LABEL_JP: "" -TOOLTIP_EN: "" -TOOLTIP_JP: "" -PERMISSION: "pdm-attr-name-edit" -STYLE: "button_style=both" -LANG: "JavaScript" -STATUS: "Release" -VERSION: "1" -STATEHOOK: "" ----ACTION---*/ \ No newline at end of file diff --git a/demo/examples/module/TEMPLATEDEMO/pdm-attr-name-mgt/actions/trash.js b/demo/examples/module/TEMPLATEDEMO/pdm-attr-name-mgt/actions/trash.js deleted file mode 100644 index 90e699afb30fd4a6cd204a7c6c15098d8a9c2304..0000000000000000000000000000000000000000 --- a/demo/examples/module/TEMPLATEDEMO/pdm-attr-name-mgt/actions/trash.js +++ /dev/null @@ -1,41 +0,0 @@ -try { - var checked = arguments[0]; - var cfg = this.config(); - if (checked) { - var dbFilter = {}; - dbFilter['del_flag'] = '1'; - _.set(cfg, 'view.data_set.db_filter', dbFilter); - _.set(cfg, 'view.data_set.db_del_flag_key', ""); - } else { - _.set(cfg, 'view.data_set.db_filter', {}); - _.set(cfg, 'view.data_set.db_del_flag_key', "del_flag"); - } - this.setConfig(cfg); - this.viewConfChanged(); - this.refresh(false); -} catch(e) { - print(e); -} - -/*---ACTION--- -ICON: "trash-o" -LABEL: "Recycle Bin" -LABEL_ZHCN: "回收站" -LABEL_ZHTW: "回收站" -ACCEL: "" -TOOLTIP: "Recycle Bin" -TOOLTIP_ZHCN: "回收站" -TOOLTIP_ZHTW: "回收站" -CHECKED: "false" -GROUP: "" -LABEL_EN: "" -LABEL_JP: "" -TOOLTIP_EN: "" -TOOLTIP_JP: "" -PERMISSION: "" -STYLE: "button_style=both" -LANG: "JavaScript" -STATUS: "Release" -VERSION: "1" -STATEHOOK: "" ----ACTION---*/ \ No newline at end of file diff --git a/demo/examples/module/TEMPLATEDEMO/pdm-attr-name-mgt/detail.ui.js b/demo/examples/module/TEMPLATEDEMO/pdm-attr-name-mgt/detail.ui.js deleted file mode 100644 index bdd0bae8fcfed255f0c3b27315af0278a7031ea9..0000000000000000000000000000000000000000 --- a/demo/examples/module/TEMPLATEDEMO/pdm-attr-name-mgt/detail.ui.js +++ /dev/null @@ -1,530 +0,0 @@ -function func(self) { - return [ - { - name: 'scrollarea', - type: 'ScrollArea', - property: - { - widget_resizable: true, frame_shape: 'NoFrame' - }, - pack: {}, - child: [ - { - name: 'vlayout', - type: 'VBoxLayout', - property: - { - margin: 0, spacing: 10 - }, - pack: {}, - child: [ - { - name: 'fglayout', - type: 'FormGridLayout', - property: - { - label_alignment: 'AlignRight', margin: 20, vertical_spacing: 10, horizontal_spacing: 20 - }, - pack: {}, - child: [ - { - name: 'id', - type: 'LineEdit', - title: self.ttr('ID'), - property: { enabled: true }, - pack: - { - label: self.ttr('ID'), - }, - state: function () { - return 'hide'; - } - }, - { - name: 'name', - type: 'LineEdit', - title: self.ttr('Name'), - property: {}, - pack: - { - label: self.ttr('Name') - }, - validate: function (obj, val, title, moment, self) { - if (val.trim() == '') { - return [title + self.ttr(" can not be null!"), 'Error']; - } - else if (!val.match(new RegExp('^[A-Za-z0-9_]+$'))) { - return [title + self.ttr(" can only contain [A-Za-z0-9_]!"), 'Error']; - } - - return; - } - }, - { - name: 'title_layout', - type: 'HBoxLayout', - title: self.ttr('Title'), - property: { - spacing: 10, - margin: 0 - }, - pack: { label: self.ttr('Title') }, - child: [ - { - name: 'title', - type: 'LineEdit', - property: {}, - validate: function (obj, val, title, moment, self) { - if (val.trim() == '') { - return [title + self.ttr(" can not be null!"), 'Error']; - } - } - }, - { - type: 'PushButton', - property: { text: self.ttr('Add Translation') }, - child: [ - { - type: 'Menu', - child: [ - /*{% TITLE_I18N_ACTIONS %}*/ - ] - } - ] - } - ] - }, - /*{% TITLE_I18N_WIDGETS %},*/ - { - name: 'units', - title: self.ttr('Units'), - type: 'LineEdit', - property: - { - - }, - pack: - { - label: self.ttr('Units') - }, - }, - { - name: 'department', - title: self.ttr('Department'), - type: 'MultiComboBox', - property: - { - item_list: TOPENM.enumList("pdm-attrname-department").toComboList(), - name_format: 'A,B' - }, - pack: - { - label: self.ttr('Department') - }, - getter: function (obj, self) { - return obj.getData("current_names"); - }, - setter: function (obj, value, self) { - obj.setData('value', value.join(',')); - } - }, - { - name: 'category', - title: self.ttr('Category'), - type: 'MultiComboBox', - property: - { - item_list: TOPENM.enumList("pdm-attrname-attrcategory").toComboList(), - name_format: 'A,B' - }, - pack: - { - label: self.ttr('Category') - }, - getter: function (obj, self) { - return obj.getData("current_names"); - }, - setter: function (obj, value, self) { - obj.setData('value', value.join(',')); - } - }, - { - name: 'type', - title: self.ttr('Attribute Type'), - type: 'MultiComboBox', - property: - { - item_list: TOPENM.enumList("pdm-attrname-attrtype").toComboList(), - size_policy: 'Expanding,fixed', - name_format: 'A,B' - }, - pack: - { - label: self.ttr('Attribute Type') - }, - validate: 'NotNull', - getter: function (obj, self) { - return obj.getData("current_names"); - }, - setter: function (obj, value, self) { - obj.setData('value', value.join(',')); - } - }, - { - name: 'data_type', - title: self.ttr('Data Type'), - type: 'ComboBox', - property: - { - item_list: TOPENM.enumList("pdm-attrname-datatype").toComboList(), - size_policy: 'Expanding,fixed', - name_format: 'A,B' - }, - pack: - { - label: self.ttr('Data Type') - }, - validate: function (obj, val, title, moment, self) { - if (val.trim() == '') { - return [title + self.ttr(" can not be null!"), 'Error']; - } - - }, - }, - { - name: 'option_list_box', - type: 'GroupBox', - pack: { - label: self.ttr("Option List") - }, - property: { - label: self.ttr("Option List") - }, - state: function (obj, self) { - var list = ["enum", "editable_enum", "check_box", "radio_box", - "multiple_enum", "multiple_check", "drill_cu_thick"]; - var dataType = this.getValue("data_type"); - if (list.indexOf(dataType) == -1) { - return 'hide'; - } else { - // 当为å•选å¯ç¼–辑时,由于编辑的是选项的namneï¼Œæ‰€ä»¥ä¸æ˜¾ç¤ºtext - var optionLstView = this.getObject("option_list"); - if (optionLstView !== null) { - optionLstView.setColumnVisible("text", (dataType !== "editable_enum")); - } - return "Show"; - } - }, - child: [ { - name: 'vlayout', - type: 'VBoxLayout', - property: { - spacing: 0, - margin: 0 - }, - pack: {}, - child: [ - { - name: 'toolbar', - type: 'ToolBar', - property: {}, - pack: {}, - child: [ - { - name: 'yesno', - type: 'Action', - property: - { - text: self.ttr('Defalt Yes/No'), - icon: 'pdm-default.#54698d', - shortcut: '', - tooltip: '', - style: 'size=small button_style=icon' - }, - callback: function (obj, checked, self) { - var datType = this.getObject('data_type').getData('value'); - var optionList = []; - if ('check_box' === datType) { - optionList = [ - { - "data": "", - "icon": "", - "name": "1", - "rmk": "", - "text": "Yes" - }, - { - "data": "", - "icon": "", - "name": "0", - "rmk": "", - "text": "No" - } - ]; - } else { - optionList = [ - { - "data": "", - "icon": "", - "name": "Yes", - "rmk": "", - "text": "Yes" - }, - { - "data": "", - "icon": "", - "name": "No", - "rmk": "", - "text": "No" - } - ]; - } - this.getObject('option_list').loadData(optionList); - }, - }, - { - name: 'new', - type: 'Action', - property: - { - text: self.ttr('New Option'), - icon: 'addto-circle-o.#54698d', - shortcut: '', - tooltip: '', - style: 'size=small button_style=icon' - }, - callback: function (obj, checked, self) { - self.callAction("add_option"); - }, - }, - { - name: 'edit', - type: 'Action', - property: - { - text: self.ttr('Edit Option'), - icon: 'edit.#54698d', - shortcut: '', - tooltip: '', - style: 'size=small button_style=icon' - }, - callback: function (obj, checked, self) { - self.callAction("edit_option"); - }, - }, - { - name: 'delete', - type: 'Action', - property: - { - text: self.ttr('Remove Option'), - icon: 'minus-circle-o.#54698d', - shortcut: '', - tooltip: '', - style: 'size=small button_style=icon' - }, - callback: function (obj, checked, self) { - self.callAction("remove_option"); - }, - }, - { - name: 'refresh', - type: 'Action', - property: - { - text: self.ttr('Refresh'), - icon: 'refresh.#54698d', - shortcut: '', - tooltip: '', - style: 'size=small button_style=icon' - }, - callback: function (obj, checked, self) { - self.callAction("refresh_detail"); - }, - }, - { - name: 'separator', - type: 'Separator', - }, - { - name: 'move_top', - type: 'Action', - property: - { - text: self.ttr('Arrow top'), - icon: 'angle-double-up', - shortcut: '', - tool_tip: self.ttr('Arrow top'), - style: 'size = small' - }, - callback: function (obj, checked, self) { - this.getObject('option_list').moveSelectedRowsTop(); - }, - }, - { - name: 'move_up', - type: 'Action', - property: - { - text: self.ttr('Arrow up'), - icon: 'angle-up', - shortcut: '', - tool_tip: self.ttr('Arrow up'), - style: 'size = small' - }, - callback: function (obj, checked, self) { - this.getObject('option_list').moveSelectedRowsUp(); - }, - }, - { - name: 'move_down', - type: 'Action', - property: - { - text: self.ttr('Arrow down'), - icon: 'angle-down', - shortcut: '', - tool_tip: self.ttr('Arrow down'), - style: 'size = small' - }, - callback: function (obj, checked, self) { - this.getObject('option_list').moveSelectedRowsDown(); - }, - }, - { - name: 'move_btm', - type: 'Action', - property: - { - text: self.ttr('Arrow bottom'), - icon: 'angle-double-down', - shortcut: '', - tool_tip: self.ttr('Arrow bottom'), - style: 'size = small' - }, - callback: function (obj, checked, self) { - this.getObject('option_list').moveSelectedRowsBottom(); - }, - }, - ] - }, - { - name: 'option_list', - type: 'TableView', - property: { minimum_height: 200 }, - pack: {}, - getter: function (obj, self) { - var data = obj.allDataMap(); - return TDataParse.variant2JsonStr(data); - }, - setter: function (obj, value) { - var data = []; - if (value != null) { - data = TDataParse.jsonStr2Variant(value); - } - obj.loadData(data); - }, - initCallback: function (obj) { - obj.setHeaderItem( - [ - { - }, - { - "name": "name", - "display": self.ttr("Name"), - "resizeMode": "Interactive", - "size": "100", - "displayRole": "$name" - }, - { - "name": "text", - "display": self.ttr("Text"), - "resizeMode": "Interactive", - "size": "80", - "displayRole": "$text" - }, - { - "name": "icon", - "display": self.ttr("Icon"), - "resizeMode": "Interactive", - "size": "120", - "displayRole": "$icon", - "decorationRole": "$icon" - }, - { - "name": "data", - "display": self.ttr("Data"), - "resizeMode": "Interactive", - "size": "100", - "displayRole": "$data" - }, - { - "name": "rmk", - "display": self.ttr("Remark"), - "resizeMode": "Interactive", - "size": "100", - "displayRole": "$rmk" - } - ]); - obj.setDataKeyList(["name", "text", "icon", "data", "rmk", "text_en", "text_zhcn", "text_zhtw"]); - obj.setPrimaryKey("name"); - }, - } - ] - } - ] - }, - { - name: 'ui_cfg', - title: self.ttr('UI Cfg'), - type: 'CodeEdit', - property: - { - min: 1, max: 30, - acceptRichText: false - }, - pack: - { - label: self.ttr('UI Cfg'), - }, - }, - { - name: 'tags', - title: self.ttr('Tag'), - type: 'Chips', - property: - { - - }, - pack: - { - label: self.ttr('Tag'), - }, - }, - { - name: 'remark', - title: self.ttr('Remark'), - type: 'PlainTextEdit', - property: - { - acceptRichText: false, min_row_count: 1, max_row_count: 30 - }, - pack: - { - label: self.ttr('Remark'), - }, - }, - - ] - }, - { - name: 'stretcher', - type: 'Widget', - property: { size_policy: 'Qt::Expanding' } - } - ] - } - ] - } - ]; -} diff --git a/demo/examples/module/TEMPLATEDEMO/pdm-attr-name-mgt/lang.conf b/demo/examples/module/TEMPLATEDEMO/pdm-attr-name-mgt/lang.conf deleted file mode 100644 index 27123884109406c6c4cf4d4b155ff869991371e3..0000000000000000000000000000000000000000 --- a/demo/examples/module/TEMPLATEDEMO/pdm-attr-name-mgt/lang.conf +++ /dev/null @@ -1,47 +0,0 @@ -"Delete item": {en: "Delete item", zhcn: "åˆ é™¤æ¡ç›®", zhtw: ""} -"Sure": {en: "Confirmed", zhcn: "确认", zhtw: ""} -" already exists in the recycle bin!": {en: " already exists in the recycle bin!",zhcn: " 已在回收站ä¸å˜åœ¨ï¼",zhtw: " 已在回收站ä¸å˜åœ¨ï¼"} -" already exists!": {en: " already exists!",zhcn: " å·²å˜åœ¨ï¼",zhtw: " å·²å˜åœ¨ï¼"} -" can only contain [A-Za-z0-9_]!": {en: " can only contain [A-Za-z0-9_]!",zhcn: " åªèƒ½åŒ…嫿•°å—å—æ¯ä¸‹åˆ’线ï¼",zhtw: " åªèƒ½åŒ…嫿•¸å—å—æ¯ä¸‹åŠƒç·šï¼"} -"Are you sure to remove selected items?": {en: "Are you sure to remove selected items?",zhcn: "确定è¦ç§»é™¤æ‰€é€‰é¡¹å—?",zhtw: "確定è¦ç§»é™¤æ‰€é¸é …嗎?"} -"Are you sure to move the selected item to the recycling station?": {en:"Are you sure to move the selected item to the recycle bin?", zhcn: "确定è¦å°†é€‰ä¸çš„æ¡ç›®ç§»è‡³å›žæ”¶ç«™å—?", zhtw: "確定è¦å°‡é¸ä¸çš„æ¢ç›®ç§»è‡³å›žæ”¶ç«™å—Žï¼Ÿ"} -"Arrow bottom": {en: "Move bottom",zhcn: "置底",zhtw: "置底"} -"Arrow down": {en: "Move down",zhcn: "下移",zhtw: "下移"} -"Arrow top": {en: "Move top",zhcn: "置顶",zhtw: "ç½®é ‚"} -"Arrow up": {en: "Move up",zhcn: "上移",zhtw: "上移"} -"Attribute Type": {en: "Attribute Type",zhcn: "属性类型",zhtw: "屬性類型"} -"Category": {en: "Category",zhcn: "分类",zhtw: "分類"} -"Common Query Attributes": {en: "Common Query Attributes",zhcn: "常用查询",zhtw: "常用查詢"} -"Data": {en: "Data",zhcn: "æ•°æ®",zhtw: "數據"} -"Data Type": {en: "Data Type",zhcn: "æ•°æ®ç±»åž‹",zhtw: "數據類型"} -"Department": {en: "Department",zhcn: "部门",zhtw: "部門"} -"Used Department": {en: "Used Department",zhcn: "使用部门",zhtw: "使用部門"} -"Edit Option": {en: "Edit Option",zhcn: "编辑选项",zhtw: "編輯é¸é …"} -"Job Attr-%1": {en: "Job Attr-%1",zhcn: "æ–™å·å±žæ€§-%1",zhtw: "料號屬性-%1"} -"Name": {en: "Name",zhcn: "åç§°",zhtw: "å稱"} -"Navigation": {en: "Navigation",zhcn: "分类导航",zhtw: "分類導航"} -"New Attr": {en: "New Attr",zhcn: "新建属性",zhtw: "新建屬性"} -"New Option": {en: "New Option",zhcn: "新建选项",zhtw: "新建é¸é …"} -"Option List": {en: "Option List",zhcn: "选项列表",zhtw: "é¸é …列表"} -"Remove Option": {en: "Remove Option",zhcn: "移除选项",zhtw: "移除é¸é …"} -"Saving data failed!": {en: "Saving data failed!",zhcn: "ä¿å˜æ•°æ®å¤±è´¥ï¼",zhtw: "ä¿å˜æ•¸æ“šå¤±æ•—ï¼"} -"Tag": {en: "Tag",zhcn: "æ ‡ç¾",zhtw: "標籤"} -"Text": {en: "Text",zhcn: "æ ‡é¢˜",zhtw: "標題"} -"Title": {en: "Title",zhcn: "æ ‡é¢˜",zhtw: "標題"} -"Trash": {en: "Trash",zhcn: "回收站",zhtw: "回收站"} -"UI Cfg": {en: "UI Cfg",zhcn: "界é¢é…ç½®",zhtw: "界é¢é…ç½®"} -"Units": {en: "Units",zhcn: "å•ä½",zhtw: "å–®ä½"} -"can not be null": {en: "can not be null",zhcn: "ä¸ä¸ºç©º",zhtw: "ä¸ç‚ºç©º"} -"Attribute-%1": {en: "Attribute-%1",zhcn: "属性-%1",zhtw: "屬性-%1"} -"Set data failed!": {en: "Set data failed!",zhcn: "设置数æ®å¤±è´¥ï¼",zhtw: "è¨ç½®æ•¸æ“šå¤±æ•—ï¼"} -"Set data success!": {en: "Set data success!",zhcn: "è®¾ç½®æ•°æ®æˆåŠŸï¼",zhtw: "è¨ç½®æ•¸æ“šæˆåŠŸï¼"} -"Defalt Yes/No": {en: "Default Yes/No",zhcn: "默认 Yes/No",zhtw: "é»˜èª Yes/No"} -"Set flag success!": {en: "Set flag success!",zhcn: "设置关键属性æˆåŠŸï¼",zhtw: "è¨ç½®é—œéµå±¬æ€§æˆåŠŸï¼"} -"Set flag failed!": {en: "Set flag failed!",zhcn: "设置关键属性失败ï¼",zhtw: "è¨ç½®é—œéµå±¬æ€§å¤±æ•—ï¼"} -"Set primary attrname": {en: "Set primary attrname",zhcn: "设置关键属性",zhtw: "è¨ç½®é—œéµå±¬æ€§"} -"Attrname": {en: "Attrname",zhcn: "属性",zhtw: "屬性"} -"Are you sure to restore selected items?": {en: "Are you sure to restore selected items?",zhcn: "确定è¦è¿˜åŽŸæ‰€é€‰é¡¹å—?",zhtw: "確定è¦é‚„é æ‰€é¸é …嗎?"} -"Restore data success!": {en: "Restore data success!", zhcn: "è¿˜åŽŸæ•°æ®æˆåŠŸ!", zhtw: "還原數據æˆåŠŸ!"} -"Restore data failed!": {en: "Restore data failed!", zhcn: "还原数æ®å¤±è´¥!", zhtw: "還原數據失敗!"} -"Add Translation": { en: "Add Translation", zhcn: "æ·»åŠ ç¿»è¯‘", zhtw: "æ·»åŠ ç¿»è¯" } -"Option Name is existed!": { en: "Option Name is existed!", zhcn: "选项åç§°å·²å˜åœ¨ï¼", zhtw: "é¸é …å稱已å˜åœ¨ï¼"} diff --git a/demo/examples/module/TEMPLATEDEMO/pdm-attr-name-mgt/module.conf b/demo/examples/module/TEMPLATEDEMO/pdm-attr-name-mgt/module.conf deleted file mode 100644 index 6d07d9dd49796bdf3286f74afc17271cc4048138..0000000000000000000000000000000000000000 --- a/demo/examples/module/TEMPLATEDEMO/pdm-attr-name-mgt/module.conf +++ /dev/null @@ -1,155 +0,0 @@ -# æ¨¡å—æ ‡é¢˜ -sys_title: "Attribute Name List" -sys_title_en: "Attribute Name List" -sys_title_zhcn: "属性å称列表" -sys_title_zhtw: "屬性å稱列表" - -# 模å—å›¾æ ‡ -sys_icon: "pdm-check_item" - -# 模å—对应的æ’ä»¶DLLåç§° -sys_plugin: "toptemplateclassplugin" -# 模å—对应的类å -sys_class: "TopTemplateClass4" - -# 打开模å—çš„æƒé™ -sys_open_right: "pdm-attr-name-read" - -# 当关é—çª—å£æ—¶ï¼Œå¦‚æžœæç¤ºæ˜¯å¦ä¿å˜ï¼Œä¿å˜è°ƒç”¨çš„action -sys_save_action: "" - -# 该模å—用到的枚举列表 -sys_enum_list: ["pdm-attrname-attrtype", "pdm-attrname-datatype", "pdm-attrname-department", "pdm-attrname-attrcategory"] - -# 该模å—用到的除了Action之外的æƒé™åˆ—表 -sys_permission_list: [] - -#详情页é¢çš„åˆå§‹å¤§å° -detail.perfect_size.width: 600 - -#导航æ åˆå®½åº¦ -navi.perfect_size.width:200 -navi.min_size.width:150 - -# 新建时是å¦å…¨å± -detail.create.fullscreen: false - -# 导航æ é…ç½® -navi: { - min_width: 150, - is_expanded: true, - is_checkable: true, - categories: [ - { - name: "category", - text: "Category", - icon: "", - VISIBLE: 1, - EXPAND: 1, - checked: 0, - data: "category", - children: [], - enum_children: "pdm-attrname-attrcategory", - enum_checked:[] - }, - { - name: "type", - text: "Attribute Type", - icon: "", - VISIBLE: 1, - EXPAND: 1, - checked: 0, - data: "type", - children: [], - enum_children: "pdm-attrname-attrtype", - enum_checked:[] - }, - { - name: "department", - text: "Used Department", - icon: "", - VISIBLE: 1, - EXPAND: 1, - checked: 0, - data: "department", - children: [], - enum_children: "pdm-attrname-department", - enum_checked:[] - } - ] -} - -# 显示相关é…ç½® -view { - data_keys: ["id", "title", "attr_data.store_table", "ui_cfg", "option_list", "tags", "del_flag"], - primary_key: "id", - horizontal_header: [ - { - "name": "name", - "display": "Name", - "displayRole": "$name", - "size": 100, - "search": "string" - }, - { - "name": "title", - "display": "Title", - "displayRole": "$title", - "size": 100, - "search": "string" - } - { - "name": "units", - "display": "Units", - "displayRole": "$units", - "size": 100 - }, - { - "name": "category", - "display": "Category", - "displayRole": "$category.text", - "size": 100, - "format": "enum(pdm-attrname-attrcategory)", - "field_format": "array" - }, - { - "name": "type", - "display": "Attribute Type", - "displayRole": "$type.text", - "size": 100, - "format": "enum(pdm-attrname-attrtype)", - "field_format": "array" - }, - { - "name": "data_type", - "display": "Data Type", - "displayRole": "$data_type.text", - "size": 100, - "format": "enum(pdm-attrname-datatype)" - }, - { - "name": "department", - "display": "Department", - "displayRole": "$department.text", - "size": 100, - "format": "enum(pdm-attrname-department)", - "field_format": "array" - }, - { - "name": "remark", - "display": "Remark", - "displayRole": "$remark", - "size": 100, - "search": "string" - } - ], - data_set { - db_table_name: "pdm_attrname", - db_sql: "", - # åˆ é™¤æ ‡è®°,若为空表示åšç‰©ç†åˆ 除 - db_del_flag_key: "del_flag" - # 过滤项 - db_filter { - } - } -} \ No newline at end of file diff --git a/demo/examples/module/TEMPLATEDEMO/pdm-attr-name-mgt/option-list.ui.js b/demo/examples/module/TEMPLATEDEMO/pdm-attr-name-mgt/option-list.ui.js deleted file mode 100644 index f28b1964903f528105a7ed2cfde2a9b1b2deb13e..0000000000000000000000000000000000000000 --- a/demo/examples/module/TEMPLATEDEMO/pdm-attr-name-mgt/option-list.ui.js +++ /dev/null @@ -1,146 +0,0 @@ -function func(self) { - return [ - { - name: 'scrollarea', - type: 'ScrollArea', - property: - { - widget_resizable: true, - frame_shape: 'QFrame::NoFrame' - }, - pack: {}, - child: - { - name: 'vlayout', - type: 'VBoxLayout', - property: - { - margin: 0, spacing: 10 - }, - pack: {}, - child: [ - { - name: 'flayout', - type: 'FormGridLayout', - property: - { - label_alignment: 'AlignRight', margin: 20, vertical_spacing: 10, horizontal_spacing: 20 - }, - pack: {}, - child: [ - { - name: 'name', - type: 'LineEdit', - property: {}, - title: self.ttr("Name"), - pack: - { - label: self.ttr("Name") - }, - validate: function (obj, val, title, moment, self) { - if (val.trim() == '') { - return [title + self.ttr('can not be null'), 'Error']; - } - return; - }, - initCallback: function (obj, self) { - obj.setFocus(); - } - }, - { - name: "text_wgt", - type: "Widget", - pack: { label: self.ttr("Text") }, - child: { - name: 'text_layout', - type: 'HBoxLayout', - property: { - margin: 0, - spacing: 10 - }, - child: [ - { - name: 'text', - type: 'LineEdit', - title: self.ttr('Text'), - property: {}, - validate: function (obj, val, title, moment, self) { - return; - } - }, - { - type: 'PushButton', - property: { text: self.ttr('Add Translation') }, - child: [ - { - type: 'Menu', - child: [ - /*{% TITLE_I18N_ACTIONS %}*/ - ] - } - ] - } - ] - }, - state: function (obj, self) { - var option_list_table = self.uiLoader().getObject("option_list"); - if (option_list_table == undefined || option_list_table === null) return; - return option_list_table.isColumnVisible("text") ? "SHOW" : "HIDE"; - } - }, - /*{% TITLE_I18N_WIDGETS %},*/ - { - name: 'icon', - type: 'IconSelector', - title: self.ttr('Icon'), - property: {}, - pack: - { - label: self.ttr('Icon') - }, - }, - { - name: 'data', - title: self.ttr('Data'), - type: 'TextEdit', - property: { min_row_count: 1, max_row_count: 30 }, - pack: - { - label: self.ttr('Data') - }, - setter: function (obj, value, self) { - obj.setPlainText(value); - }, - getter: function (obj, self) { - return obj.plainText - }, - }, - { - name: 'rmk', - title: self.ttr('Remark'), - type: 'TextEdit', - property: { min_row_count: 1, max_row_count: 30 }, - pack: - { - label: self.ttr('Remark') - }, - setter: function (obj, value, self) { - obj.setPlainText(value); - }, - getter: function (obj, self) { - return obj.plainText - }, - }, - { - name: 'stretcher', - type: 'Widget', - property: { size_policy: 'Qt::Expanding' } - } - ] - } - ] - } - } - ] - ; -} \ No newline at end of file diff --git a/demo/examples/module/TEMPLATEDEMO/pdm-attr-name-mgt/uim.conf b/demo/examples/module/TEMPLATEDEMO/pdm-attr-name-mgt/uim.conf deleted file mode 100644 index 9c296a4d62f4245a76a604f2507fc4280d02f0ea..0000000000000000000000000000000000000000 --- a/demo/examples/module/TEMPLATEDEMO/pdm-attr-name-mgt/uim.conf +++ /dev/null @@ -1,45 +0,0 @@ -# è¡¨æ ¼çš„å³é”®èœå• -"TABLEVIEW_POPUP": [ - {"type":"menuitem","action":"new"}, - {"type":"separator"}, - {"type":"menuitem","action":"delete"}, - {"type":"menuitem","action":"restore"}, - {"type":"separator"}, - {"type":"menuitem","action":"refresh"} -] - -# 工具æ -"MAIN_TOOLBAR": [ - {"type":"spacing", "size":10}, - {"type":"toolitem","action":"new"}, - {"type":"separator"}, - {"type":"toolitem","action":"trash"}, - {"type":"toolitem","action":"c1"}, - {"type":"toolitem","action":"c2"}, - {"type":"toolitem","action":"c3"}, - {"type":"toolitem","action":"c4"}, - {"type":"toolitem","action":"c5"}, - {"type":"stretcher"}, - {"type":"searchentry","name":"SEARCH_ENTRY"}, - {"type":"toolitem", action:"refresh"}, - {type:"menu", text:"", icon:"ellipsis-v", - child: [ - {"type":"menuitem","action":"set_key_attr"}, - ]}, -] - - -# 底部工具æ -"BOTTOM_TOOLBAR" : [ - {"type":"stretcher"}, - {"type":"pagetool","name":"PAGE_TOOL"} -] - -# 详细信æ¯å·¥å…·æ -"DETAIL_TOOLBAR": [ - {"type":"toolitem","action":"save_detail"}, - {"type":"stretcher"}, - {"type":"toolitem","action":"copy_detail"}, - {"type":"toolitem","action":"cancel_detail"}, - {"type":"toolitem","action":"refresh_detail"} -] diff --git a/demo/examples/module/TEMPLATEDEMO/pdm-stackup-template/actions/__hooks__.js b/demo/examples/module/TEMPLATEDEMO/pdm-stackup-template/actions/__hooks__.js deleted file mode 100644 index 7d24e7c2aa89349403e8fd54716bdc09f866f2dc..0000000000000000000000000000000000000000 --- a/demo/examples/module/TEMPLATEDEMO/pdm-stackup-template/actions/__hooks__.js +++ /dev/null @@ -1,23 +0,0 @@ -this.afterViewInit = function () { - var self = this; - var stackup_viewer = self.uiLoader().getObject('stackup'); - stackup_viewer.setDrawSetting(self.config("stackup.draw_setting")); - - var selector = new TSqlSelectorV2; - selector.setTable("pdm_stkmatlib"); - selector.setWhere("class = 'Core'"); - selector.setField("DISTINCT family"); - selector.setOrder(["family ASC"]); - var cores = self.runSqlQueryOnThreadSync("TOPSQLTHREAD_SELECT_ARRAYMAP", selector); - cores = _.map(cores, function(item) { return { name: item.family, text: item.family } } ); - self.naviView().getObject('attr_data.core_family').setData('item_list', cores); - - selector.clear(); - selector.setTable("pdm_stkmatlib"); - selector.setWhere("class = 'Prepreg'"); - selector.setField("DISTINCT family"); - selector.setOrder(["family ASC"]); - var pps = self.runSqlQueryOnThreadSync("TOPSQLTHREAD_SELECT_ARRAYMAP", selector); - pps = _.map(pps, function(item) { return { name: item.family, text: item.family } } ); - self.naviView().getObject('attr_data.pp_family').setData('item_list', pps); -} \ No newline at end of file diff --git a/demo/examples/module/TEMPLATEDEMO/pdm-stackup-template/actions/cancel_detail.js b/demo/examples/module/TEMPLATEDEMO/pdm-stackup-template/actions/cancel_detail.js deleted file mode 100644 index d779d76536b51c3803ec49b85d0e6f176c6853d6..0000000000000000000000000000000000000000 --- a/demo/examples/module/TEMPLATEDEMO/pdm-stackup-template/actions/cancel_detail.js +++ /dev/null @@ -1,23 +0,0 @@ -try { - this.reloadItem(); -} catch(e) { - print(e); -} - -/*---ACTION--- -ICON: "cancel" -LABEL: "Cancel" -LABEL_ZHCN: "å–æ¶ˆ" -LABEL_ZHTW: "å–æ¶ˆ" -ACCEL: "" -TOOLTIP: "Cancel the action" -TOOLTIP_ZHCN: "å–æ¶ˆåŠ¨ä½œ" -TOOLTIP_ZHTW: "å–æ¶ˆå‹•作" -CHECKED: "" -GROUP: "" -STYLE: "button_style=text" -LANG: "JavaScript" -STATUS: "Release" -VERSION: "1" -STATEHOOK: "return (this.isDetailModified()) ? 'enable' : 'hide';" ----ACTION---*/ \ No newline at end of file diff --git a/demo/examples/module/TEMPLATEDEMO/pdm-stackup-template/actions/delete.js b/demo/examples/module/TEMPLATEDEMO/pdm-stackup-template/actions/delete.js deleted file mode 100644 index 3509f4a2418a0905579e2fc536f2ba6d60982326..0000000000000000000000000000000000000000 --- a/demo/examples/module/TEMPLATEDEMO/pdm-stackup-template/actions/delete.js +++ /dev/null @@ -1,30 +0,0 @@ -try { - var ans = TMessageBox.question(this, this.ttr("Do you want to delete the selected item?"), '', '', - [this.ttr('Delete')+':Yes:Yes:Error', this.ttr('Cancel')+':Cancel:Cancel:Normal']); - if (ans != 'Yes') { - return; - } - this.deleteItems(this.selectedItems()); -} catch (e) { - print(e); -} - - -/*---ACTION--- -ICON: "times-circle" -LABEL: "Delete" -LABEL_ZHCN: "刪除" -LABEL_ZHTW: "刪除" -ACCEL: "Delete" -TOOLTIP: "Delete" -TOOLTIP_ZHCN: "åˆ é™¤" -TOOLTIP_ZHTW: "刪除" -PERMISSION: "" -CHECKED: "" -GROUP: "" -STYLE: "size=small button_style=both" -LANG: "JavaScript" -STATUS: "Release" -VERSION: "1" -STATEHOOK: "if(this.selectedItems().length > 0 && !this.isDetailModified()){return 'enable'}else{return 'disable'}" ----ACTION---*/ \ No newline at end of file diff --git a/demo/examples/module/TEMPLATEDEMO/pdm-stackup-template/actions/refresh.js b/demo/examples/module/TEMPLATEDEMO/pdm-stackup-template/actions/refresh.js deleted file mode 100644 index a1e87bfa50f4b3f4c30a579b61b9fc2794bed8bc..0000000000000000000000000000000000000000 --- a/demo/examples/module/TEMPLATEDEMO/pdm-stackup-template/actions/refresh.js +++ /dev/null @@ -1,22 +0,0 @@ -try { - this.refresh(); -} catch (e) { - print(e); -} -/*---ACTION--- -ICON: "refresh" -LABEL: "Refresh" -LABEL_ZHCN: "刷新" -LABEL_ZHTW: "刷新" -ACCEL: "F5" -TOOLTIP: "Refresh" -TOOLTIP_ZHCN: "刷新" -TOOLTIP_ZHTW: "刷新" -CHECKED: "" -GROUP: "" -STYLE: "size=small button_style=icon" -LANG: "JavaScript" -STATUS: "Release" -VERSION: "1" -STATEHOOK: "" ----ACTION---*/ \ No newline at end of file diff --git a/demo/examples/module/TEMPLATEDEMO/pdm-stackup-template/actions/refresh_detail.js b/demo/examples/module/TEMPLATEDEMO/pdm-stackup-template/actions/refresh_detail.js deleted file mode 100644 index 6d474848a9ce3fd9dc56b30305d3cc0fca6c5692..0000000000000000000000000000000000000000 --- a/demo/examples/module/TEMPLATEDEMO/pdm-stackup-template/actions/refresh_detail.js +++ /dev/null @@ -1,22 +0,0 @@ -try { - this.reloadItem(); -} catch(e) { - print(e); -} -/*---ACTION--- -ICON: "refresh" -LABEL: "Refresh" -LABEL_ZHCN: "刷新" -LABEL_ZHTW: "刷新" -ACCEL: "" -TOOLTIP: "Reload data from database" -TOOLTIP_ZHCN: "釿–°ä»Žæ•°æ®åº“åŠ è½½æ•°æ®" -TOOLTIP_ZHTW: "釿–°å¾žæ•¸æ“šåº«åŠ è¼‰æ•¸æ“š" -CHECKED: "" -GROUP: "" -STYLE: "button_style=icon" -LANG: "JavaScript" -STATUS: "Release" -VERSION: "1" -STATEHOOK: "return this.isDetailModified() ? 'hide' : 'enable';" ----ACTION---*/ \ No newline at end of file diff --git a/demo/examples/module/TEMPLATEDEMO/pdm-stackup-template/actions/save_detail.js b/demo/examples/module/TEMPLATEDEMO/pdm-stackup-template/actions/save_detail.js deleted file mode 100644 index 49420e218089e83f861149ba43a0f0584f014afb..0000000000000000000000000000000000000000 --- a/demo/examples/module/TEMPLATEDEMO/pdm-stackup-template/actions/save_detail.js +++ /dev/null @@ -1,23 +0,0 @@ -try { - this.saveItem(); -} catch(e) { - print(e); -} -/*---ACTION--- -ICON: "save" -LABEL: "Save" -LABEL_ZHCN: "ä¿å˜" -LABEL_ZHTW: "ä¿å˜" -ACCEL: "Ctrl+S" -TOOLTIP: "Save" -TOOLTIP_ZHCN: "ä¿å˜" -TOOLTIP_ZHTW: "ä¿å˜" -PERMISSION: "" -CHECKED: "" -GROUP: "" -STYLE: " button_style=both" -LANG: "JavaScript" -STATUS: "Release" -VERSION: "1" -STATEHOOK: "return (this.isDetailModified()) ? 'enable' : 'disable';" ----ACTION---*/ \ No newline at end of file diff --git a/demo/examples/module/TEMPLATEDEMO/pdm-stackup-template/detail.ui.js b/demo/examples/module/TEMPLATEDEMO/pdm-stackup-template/detail.ui.js deleted file mode 100644 index e41bd435d56365cad9c8b03676a108dde4e0305c..0000000000000000000000000000000000000000 --- a/demo/examples/module/TEMPLATEDEMO/pdm-stackup-template/detail.ui.js +++ /dev/null @@ -1,85 +0,0 @@ -function func(self) { - var ui = { - type: 'TabWidget', - child: [ - { - type: 'VBoxLayout', - pack: { label: self.ttr('Basic Info') }, - child: [ - { - type: 'FormGridLayout', - child: [ - { - name: 'attr_data.name', - type: 'LineEdit', - pack: { label: self.ttr('Name') } - }, - { - name: 'layer_count', - type: 'LineEdit', - pack: { label: self.ttr('Layer Count') }, - property: { readonly: true } - }, - { - name: 'min_thk', - type: 'LineEdit', - pack: { label: self.ttr('Min Thk') }, - property: { readonly: true } - }, - { - name: 'max_thk', - type: 'LineEdit', - pack: { label: self.ttr('Max Thk') }, - property: { readonly: true } - }, - { - name: 'attr_data.core_family', - type: 'LineEdit', - pack: { label: self.ttr('Core Family') }, - property: { readonly: true } - }, - { - name: 'attr_data.pp_family', - type: 'LineEdit', - pack: { label: self.ttr('PP Family') }, - property: { readonly: true } - }, - { - name: 'stackup_code', - type: 'LineEdit', - pack: { label: self.ttr('Structure') }, - property: { readonly: true } - }, - { - name: 'attr_data.remark', - type: 'PlainTextEdit', - pack: { label: self.ttr('Remark') } - } - ] - }, - { - type: 'Stretch' - } - ] - }, - { - type: 'VBoxLayout', - pack: { label: self.ttr('Stackup') }, - property: { margin: 0, spacing: 0 }, - child: [ - { - name: 'stackup', - type: 'topikm6-stackup-viewer-plugin.STACKUPVIEWER', - setter: function(obj, value) { - obj.setStackupData(JSON.parse(value)); - } - }, - { - type: 'Stretch' - } - ] - } - ] - }; - return ui; -} \ No newline at end of file diff --git a/demo/examples/module/TEMPLATEDEMO/pdm-stackup-template/lang.conf b/demo/examples/module/TEMPLATEDEMO/pdm-stackup-template/lang.conf deleted file mode 100644 index 0557c560fdaf1a4c3495d848602e2e8c6140deab..0000000000000000000000000000000000000000 --- a/demo/examples/module/TEMPLATEDEMO/pdm-stackup-template/lang.conf +++ /dev/null @@ -1,8 +0,0 @@ -"Layer Count": { zhcn: "层数" } -"Min Thk": { zhcn: "æœ€å°æ¿åŽš" } -"Max Thk": { zhcn: "最大æ¿åŽš" } -"Core Family": { zhcn: "èŠ¯æ¿ææ–™" } -"PP Family": { zhcn: "PPææ–™" } -"Structure": { zhcn: "结构" } -"Basic Info": { zhcn: "基本信æ¯" } -"Stackup": { zhcn: "å æž„图" } \ No newline at end of file diff --git a/demo/examples/module/TEMPLATEDEMO/pdm-stackup-template/module.conf b/demo/examples/module/TEMPLATEDEMO/pdm-stackup-template/module.conf deleted file mode 100644 index 716cee348491787a0518be96d05f0d22c889ed02..0000000000000000000000000000000000000000 --- a/demo/examples/module/TEMPLATEDEMO/pdm-stackup-template/module.conf +++ /dev/null @@ -1,204 +0,0 @@ -# æ¨¡å—æ ‡é¢˜ -sys_title: "Stackup Template Lib" -sys_title_en: "Stackup Template Lib" -sys_title_zhcn: "å 层模æ¿åº“" -sys_title_zhtw: "疊層模æ¿åº«" - -# 模å—å›¾æ ‡(æ™®é€šå›¾æ ‡åœ¨font awesome䏿‰¾ http://fontawesome.io/icons/) -sys_icon: "pdm-job-stackup" - -# 模å—对应的æ’ä»¶DLLåç§° -sys_plugin: "toptemplateclassplugin" - -# 模å—对应的类å -sys_class: "TopTemplateClass4" - -# 打开模å—çš„æƒé™ -sys_open_right: "" - -# 当关é—çª—å£æ—¶ï¼Œå¦‚æžœæç¤ºæ˜¯å¦ä¿å˜ï¼Œä¿å˜è°ƒç”¨çš„action -sys_save_action: "" - -# 该模å—用到的枚举列表 -sys_enum_list: [] - -# 该模å—用到的除了Action之外的æƒé™åˆ—表 -sys_permission_list: [] - -navi { - __type__: "UiLoader" - is_expanded: true -} - -# ä¸»è¡¨æ ¼ -view { - # æ•°æ®é¡¹ï¼Œ 默认包å«è¡¨å¤´ä¸é…置的数æ®é¡¹ - data_keys: [ "id", "stackup", "attr_data.remark" ] - # 主键 - primary_key: "id" - # 水平表头 - horizontal_header: [ - { - "name": "attr_data.name", - "display": "Name", - "displayRole": "$attr_data.name", - "resizeMode": "ResizeToContents", - "search": "json" - }, - { - "name": "layer_count", - "display": "Layer Count", - "displayRole": "$layer_count", - "resizeMode": "ResizeToContents" - }, - { - "name": "min_thk", - "display": "Min Thk", - "displayRole": "$min_thk", - "resizeMode": "ResizeToContents" - }, - { - "name": "max_thk", - "display": "Max Thk", - "displayRole": "$max_thk", - "resizeMode": "ResizeToContents" - }, - { - "name": "attr_data.core_family", - "display": "Core Family", - "displayRole": "$attr_data.core_family", - "resizeMode": "ResizeToContents", - "search": "json" - }, - { - "name": "attr_data.pp_family", - "display": "PP Family", - "displayRole": "$attr_data.pp_family", - "resizeMode": "ResizeToContents", - "search": "json" - }, - { - "name": "stackup_code", - "display": "Structure", - "displayRole": "$stackup_code", - "resizeMode": "ResizeToContents" - } - ] - # 默认排åºåˆ— - sort_by: "id DESC" - # æ•°æ®é›† - data_set { - # æ•°æ®åº“表å - db_table_name: "pdm_stackstructlib" - # åˆ é™¤æ ‡è®° - # 若为空表示åšç‰©ç†åˆ 除 - db_del_flag_key: "" - # 过滤项 - db_filter { - } - } -} - - -# å æž„图é…ç½® -stackup.draw_setting: { - # å—体设置 - "font_family": "Microsoft YaHei" - # è½¯ç¡¬ç»“åˆæ¿ä¸ä¸ºäº†è¡¨ç¤ºè¾…æçš„形状, 用以表示ä¸åŒçš„层形状 - "layer_shape_x" : ["-50","-10","0","50","150","230","330","380","550"], - # å±‚æ ‡é¢˜ - "layer_title" : [" "," ","Layer","Drill","Layer Type","Material","RC", "Thickness"], - # 层高 - "layer_height": "20", - # 最å°é•¿åº¦ - # 若是HDIæ¿ï¼Œé’»å”å¢žå¤šæ—¶ï¼Œä¼šè‡ªåŠ¨åŠ é•¿ - "layer_base_lenth": "550", - # 层上的文å—定义 - # text: æ–‡å—内容 - # DISP. 精度调整åŽçš„值 - # MAT. æ˜¾ç¤ºææ–™ç›¸å…³çš„属性 - # start_zone: æ–‡å—的起始区域,layer_shape_xä¸çš„第N个区域开始(从0开始) - # offset: 相对于区域的起始点的å移值,å•ä½ï¼šåƒç´ - # color: æ–‡å—颜色, è‹¥ä¸é…ç½®é¢œè‰²ï¼Œä¼šè‡ªåŠ¨æ ¹æ®èƒŒæ™¯è‰²ç®—出åˆé€‚的颜色 - # size: æ–‡å—大å°ï¼Œå•ä½ï¼šåƒç´ - # exclude_display_type: 哪ç§å›¾å½¢ç±»åž‹æ˜¾ç¤º, æ¤å‚数命å错误,应是include_display_type, - # expand_only: åªæœ‰åœ¨å±•å¼€æ—¶æ‰æ˜¾ç¤º - "layer_text" : [ - {"anchor":"center","text":"layer_name","start_zone":"2","offset":"3","color":"black","exclude_display_type" : ["2","1"]}, - {"anchor":"center","text":"layer_type","start_zone":"4","offset":"3","color":"black","exclude_display_type" : ["1"]}, - {"anchor":"center","text":"MAT.description","start_zone":"5","offset":"10","color":"black", "size": 12, "exclude_display_type" : ["1"]}, - {"anchor":"center","text":"MAT.resin_content","start_zone":"6","offset":"10","color":"black", "size": 12, "exclude_display_type" : ["1"]}, - {"anchor":"center","text":"DISP.final_thk","start_zone":"7","offset":"5","color":"black","exclude_display_type" : ["1"]} - ], - # é’»å”形状宽度 - "drl_shape_width" : "40", - # é’»å”çš„é—´è· - "drl_shape_spacing" : "0", - # é•å°„é’»å”形状æè¿° - "laser_shape" : ["2","10","13","5"], - "laser_color" : "#D8934C", - "laser_filler_color" : { - "" : "white", - "None" : "white", - "SM Plugin" : "#0F8E0D", - "Resin Plugin" : "#D8C6AA", - "Via Filling" : "#D8934C", - "Resin Plugin + Capping" : "#D8987E" - }, - - "depth_laser_shape" : ["2","10","13","5"], - "depth_laser_color" : "#D8934C", - "depth_laser_filler_color" : { - "" : "white", - "None" : "white", - "SM Plugin" : "#0F8E0D", - "Resin Plugin" : "#D8C6AA", - "Via Filling" : "#D8934C", - "Resin Plugin + Capping" : "#D8987E" - }, - - "uv_laser_shape" : ["2","10","13","5"], - "uv_laser_color" : "#D8934C", - "uv_laser_filler_color" : { - "" : "white", - "None" : "white", - "SM Plugin" : "#0F8E0D", - "Resin Plugin" : "#D8C6AA", - "Via Filling" : "#D8934C", - "Resin Plugin + Capping" : "#D8987E" - }, - - "ivh_shape" : ["8"], - "ivh_color" : "#D8934C", - - "pth_shape" : ["3","10","7"], - "pth_color" : "#D8934C", - - "npth_shape" : ["8"], - "npth_color" : "white", - - "mech_blind_shape": ["3","10","7"], - "mech_blind_color": "#D8934C", - - "depth_milling_shape": ["16"], - "depth_milling_color": "white", - - "zone_bgcolor" : "white", - "zone_line_color" : "white", - "zone_line_width" : "0", - "zone_header_margin" : "10", - "zone_header_bgcolor" : "#76AB43", - "zone_header_height" : "40", - "zone_bottom_margin" : "10", - "zone_bottom_bgcolor" : "#C8C8C8", - "zone_bottom_height" : "80", - "zone_main_top_margin" : "10", - "zone_main_about_margin" : "0", - "zone_main_bot_margin" : "10", - "zone_header_text": [ - {"anchor":"center","color":"white","offset_y":-30,"text":"zone_name","offset_x":0,"font":"Sans 10 Bold"}, - {"anchor":"center","color":"white","offset_y":-15,"text":"zone_title","offset_x":0,"font":"Sans Bold 12"}, - {"anchor":"center","color":"white","offset_y":0,"text":"zone_type","offset_x":0,"font":"Sans 10 Bold"}, - {"anchor":"center","color":"white","offset_y":15,"text":"remark","dist_y":15,"offset_x":0,"font":"Sans Bold 10"} - ] -} diff --git a/demo/examples/module/TEMPLATEDEMO/pdm-stackup-template/navi.ui.js b/demo/examples/module/TEMPLATEDEMO/pdm-stackup-template/navi.ui.js deleted file mode 100644 index b688286a93c3b966cf4c5f9f009cfc06fd8546db..0000000000000000000000000000000000000000 --- a/demo/examples/module/TEMPLATEDEMO/pdm-stackup-template/navi.ui.js +++ /dev/null @@ -1,38 +0,0 @@ -function func(self) { - return { - type: 'FormGridLayout', - child: [ - { - name: 'layer_count', - type: 'IntLineEdit', - pack: { label: self.ttr('Layer Count') } - }, - { - name: 'attr_data.core_family', - type: 'ComboBox', - pack: { label: self.ttr('Core Family') }, - property: { - searchable: true, - user_data: { field_name: "attr_data->>'core_family'", operator: 'LIKE' } - } - }, - { - name: 'attr_data.pp_family', - type: 'ComboBox', - pack: { label: self.ttr('PP Family') }, - property: { - searchable: true, - user_data: { field_name: "attr_data->>'pp_family'", operator: 'LIKE' } - } - }, - { - name: 'stackup_code', - type: 'LineEdit', - pack: { label: self.ttr('Structure') }, - property: { - user_data: { operator: 'LIKE' } - } - } - ] - }; -} diff --git a/demo/examples/module/TEMPLATEDEMO/pdm-stackup-template/uim.conf b/demo/examples/module/TEMPLATEDEMO/pdm-stackup-template/uim.conf deleted file mode 100644 index d0203893f257d5069dd120b7755f668d1294846c..0000000000000000000000000000000000000000 --- a/demo/examples/module/TEMPLATEDEMO/pdm-stackup-template/uim.conf +++ /dev/null @@ -1,27 +0,0 @@ -# 工具æ -"MAIN_TOOLBAR": [ - {"type":"stretcher"}, - {"type":"searchentry","name":"SEARCH_ENTRY"} - {"type":"toolitem","action":"refresh"} -] - -# è¡¨æ ¼çš„å³é”®èœå• -"TABLEVIEW_POPUP": [ - {"type":"menuitem","action":"delete"}, - {"type":"separator"}, - {"type":"menuitem","action":"refresh"} -] - -# 底部工具æ -"BOTTOM_TOOLBAR" : [ - {"type":"stretcher"}, - {"type":"pagetool","name":"PAGE_TOOL"} -] - -# 详细信æ¯å·¥å…·æ -"DETAIL_TOOLBAR": [ - {"type":"toolitem","action":"save_detail"}, - {"type":"stretcher"}, - {"type":"toolitem","action":"cancel_detail"}, - {"type":"toolitem","action":"refresh_detail"} -] \ No newline at end of file diff --git a/demo/examples/module/TEMPLATEDEMO/sec-table-report-temp1/actions/__hooks__.js b/demo/examples/module/TEMPLATEDEMO/sec-table-report-temp1/actions/__hooks__.js deleted file mode 100644 index c620b06c2d35553ade4861a4088bad85ebc9de74..0000000000000000000000000000000000000000 --- a/demo/examples/module/TEMPLATEDEMO/sec-table-report-temp1/actions/__hooks__.js +++ /dev/null @@ -1,68 +0,0 @@ -//èŽ·å–æ€»è¡¨æ•°æ® -this.getTotalData = function (conditionMap) { - var treeName = "test"; - var view = { - "data_keys": ["zone", "kpi_dept", "past_due", "past_due.color"], - "horizontal_header": [ - { - "name": "zone", - "display": "Zone", - "displayRole": "$zone" - }, - { - "name": "kpi_dept", - "display": "Kpi dept", - "displayRole": "$kpi_dept" - }, - { - "name": "past_due", - "display": "Past due", - "displayRole": "$past_due", - "backgroundRole": "$past_due.color" - } - ] - } - var treeData = []; - for (var i = 0; i < 5; i++) { - var data = { - "id": 1, - "zone": "Z0", - "kpi_dept": "Unreleased", - "past_due": "14", - "past_due.color": "pink", - "CHILDREN": [ - { - "zone": "Z00", - "kpi_dept": "release", - "past_due": "14", - "past_due.color": "#FF99CC" - }, - { - "zone": "Z01", - "kpi_dept": "release", - "past_due": "14", - "past_due.color": "#FF99CC" - }, - { - "zone": "Z02", - "kpi_dept": "release", - "past_due": "14", - "past_due.color": "#FF99CC" - } - ] - }; - treeData.push(data) - } - var totalData = {}; - totalData['name'] = treeName; - totalData['view'] = view; - totalData['data'] = treeData; - return totalData; -} - -//获å–åˆ†è¡¨æ•°æ® -this.getSubData = function (cellData) { - var detailData = this.getTotalData(cellData); - detailData['name'] = APP.getToday() + '_' +_.random(0, 100); - return detailData; -} diff --git a/demo/examples/module/TEMPLATEDEMO/sec-table-report-temp1/actions/collapseAll.js b/demo/examples/module/TEMPLATEDEMO/sec-table-report-temp1/actions/collapseAll.js deleted file mode 100644 index 16e11610eb1093629ea8ebef3c51b9a3f6f05800..0000000000000000000000000000000000000000 --- a/demo/examples/module/TEMPLATEDEMO/sec-table-report-temp1/actions/collapseAll.js +++ /dev/null @@ -1,23 +0,0 @@ -try { - this.collapseAll(); -} catch (e) { - print(_.toString(e)); -} -/*---ACTION--- -ICON: "minus-square-o" -LABEL: "Collapse All" -LABEL_ZHCN: "折å 全部" -LABEL_ZHTW: "折疊全部" -ACCEL: "" -TOOLTIP: "Collapse All" -TOOLTIP_ZHCN: "折å 全部" -TOOLTIP_ZHTW: "折疊全部" -PERMISSION: "" -CHECKED: "" -GROUP: "" -STYLE: "button_style=both" -LANG: "JavaScript" -STATUS: "Release" -VERSION: "1" -STATEHOOK: "" ----ACTION---*/ \ No newline at end of file diff --git a/demo/examples/module/TEMPLATEDEMO/sec-table-report-temp1/actions/expandAll.js b/demo/examples/module/TEMPLATEDEMO/sec-table-report-temp1/actions/expandAll.js deleted file mode 100644 index 96e86c24f08fcb00d5fbdb748683711404c09404..0000000000000000000000000000000000000000 --- a/demo/examples/module/TEMPLATEDEMO/sec-table-report-temp1/actions/expandAll.js +++ /dev/null @@ -1,23 +0,0 @@ -try { - this.expandAll(); -} catch (e) { - print(_.toString(e)); -} -/*---ACTION--- -ICON: "plus-square-o" -LABEL: "Expand All" -LABEL_ZHCN: "展开全部" -LABEL_ZHTW: "展開全部" -ACCEL: "" -TOOLTIP: "Expand All" -TOOLTIP_ZHCN: "展开全部" -TOOLTIP_ZHTW: "展開全部" -PERMISSION: "" -CHECKED: "" -GROUP: "" -STYLE: "button_style=both" -LANG: "JavaScript" -STATUS: "Release" -VERSION: "1" -STATEHOOK: "" ----ACTION---*/ \ No newline at end of file diff --git a/demo/examples/module/TEMPLATEDEMO/sec-table-report-temp1/actions/export_excel.js b/demo/examples/module/TEMPLATEDEMO/sec-table-report-temp1/actions/export_excel.js deleted file mode 100644 index 953e4c00bc4a34d2017dca0e4432423c41406237..0000000000000000000000000000000000000000 --- a/demo/examples/module/TEMPLATEDEMO/sec-table-report-temp1/actions/export_excel.js +++ /dev/null @@ -1,145 +0,0 @@ -importPackage("moment"); -importPackage('ikm.ole'); - -function exportToExcel(field_text_list, field_name_list, allData, excel) { - //è¡¨å¤´å—æ®µ - for (var i = 0; i< field_text_list.length; i++) { - var range = String.fromCharCode(65 + i) + "1"; - excel.setRangeValue(range, field_text_list[i]); - excel.setRangeHorizontalAlignment(range, -4108);//-4108 x1center æ°´å¹³å±…ä¸ - var font_map = { - Size: 12, - Bold: true, - Color: -11480942, - ThemeColor: 1 - }; - excel.setRangeFont(range, font_map); - excel.setRangeBackgroundColor(range, '#64CC33'); //背景色设为绿色 - excel.autoFitColumns(String.fromCharCode(65 + i)); - } - - //æ•°æ® - var row = 2; - _.forEach(allData, function (v) { - var j = 0; - _.forEach(field_name_list, function (v2) { - var cell = excel.getCell(row, j + 1); - excel.setCellValue(cell, _.toString(v[v2])); - j++; - }) - row++; - }) - - //边框 - var row = excel.getUsedRows(); - var column = excel.getUsedColumns(); - var rangecolunmn = String.fromCharCode(65 + column - 1); - var used_range = _.format("A1:{0}{1}", rangecolunmn, row); - var border = { - Color: -4165632, - LineStyle: 1, - TintAndShader: 0, - Weight: 2 - }; - excel.setRangeBorder(used_range, border); -} -function treeData2TableData(iDataLst, iChildrenKey) { - var allDataLst = []; - _.forEach(iDataLst, function (item) { - var childrenLst = item[iChildrenKey]; - delete item[iChildrenKey]; - allDataLst.push(item); - if (!_.isEmpty(childrenLst)) { - allDataLst = allDataLst.concat(treeData2TableData(childrenLst, iChildrenKey)); - } - }) - return allDataLst; -} - -try { - var self = this; - var chooseDlg = new TTableChooserDialog(); - chooseDlg.setTitle(this.ttr("Select Export Tab")); - chooseDlg.setHeaderItem([ - {}, - { - "name": "name", - "display": self.ttr("Name"), - "displayRole": "$name", - "resizeMode": "Stretch" - } - ]); - chooseDlg.setPrimaryKey("index"); - chooseDlg.setDataKeyList(["index", "name"]); - chooseDlg.loadAllData(this.allTabInfo()); - var selectedTabLst = chooseDlg.run(); - if (selectedTabLst.length == 0) { - return; - } - var moduleName = String(this.moduleName()); - moduleName = moduleName.replace(/\-/g, " "); - var fileName = _.format("{0} {1}.xlsx", moduleName, moment().format("YYYYMMDDHHmmss")); - var fileDlg = new TFileDialog(this.ttr("Please select save file"), fileName); - fileDlg.setNameFilters(["EXCEL(*.xlsx)"]); - fileDlg.setAcceptMode("AcceptSave"); - var strLst = fileDlg.run(); - if (strLst.length == 0 ) { - return; - } - var absoluteFileName = String(strLst[0]); - - var excel = new TExcel(); - excel.setExcelVisible(true); - excel.addBook(); - - var i = 1; - _.forEach(selectedTabLst, function (v) { - var index = _.toNumber(v['index']); - var tabName = v['name']; - var treeView = self.getTreeView(index); - if (treeView) { - if (i > excel.getSheetsCount()) { - excel.appendSheet(tabName); - } - excel.selectSheet(i); - excel.setSheetName(tabName); - var headerItems = treeView.headerItem(); - var dataLst = treeView.allDataMap(); - var allData = treeData2TableData(dataLst, "CHILDREN"); - var field_text_list = []; - var field_name_list = []; - _.forEach(headerItems, function (v) { - field_text_list.push(v['display']); - field_name_list.push(v['displayRole'].replace('$', '')); - }); - print("field_text_list" + _.toString(field_text_list)); - exportToExcel(field_text_list, field_name_list, allData, excel); - i++; - } - }) - excel.saveAsBook(absoluteFileName.replace(/\//g, "\\")); - excel.closeBook(); - excel.quitExcel(); - this.alertOk(this.ttr("Export success!")); -} catch (e) { - print(e); -} - -/*---ACTION--- -ICON: "export" -LABEL: "Export Excel" -LABEL_ZHCN: "导出Excel" -LABEL_ZHTW: "導出Excel" -ACCEL: "" -TOOLTIP: "Export Excel" -TOOLTIP_ZHCN: "导出Excel" -TOOLTIP_ZHTW: "導出Excel" -PERMISSION: "" -CHECKED: "" -GROUP: "" -STYLE: "button_style=both" -LANG: "JavaScript" -STATUS: "Release" -VERSION: "1" -STATEHOOK: "" ----ACTION---*/ \ No newline at end of file diff --git a/demo/examples/module/TEMPLATEDEMO/sec-table-report-temp1/actions/search.js b/demo/examples/module/TEMPLATEDEMO/sec-table-report-temp1/actions/search.js deleted file mode 100644 index 9f971514b5d2491b4abe79efa58d7318c7b5e3f2..0000000000000000000000000000000000000000 --- a/demo/examples/module/TEMPLATEDEMO/sec-table-report-temp1/actions/search.js +++ /dev/null @@ -1,35 +0,0 @@ -try { - var errLst = this.uiLoader().validateAll("COMMIT", true, "ERROR"); - if (!_.isEmpty(errLst)) { - var errStrLst = []; - for (var i in errLst) { - errStrLst.push(errLst[i]['text']); - } - TMessageBox.error(this, this.ttr("Validate Error"), errStrLst.join("\n")); - return; - } - var uiLoaderData = this.uiLoaderValues(); - var totalData = this.getTotalData(uiLoaderData); - this.reopenTotalTab(totalData); -} catch (e) { - TMessageBox.error(this, this.ttr("Search Failed"), _.toString(e)) - print(e); -} -/*---ACTION--- -ICON: "search" -LABEL: "Search" -LABEL_ZHCN: "查询" -LABEL_ZHTW: "查詢" -ACCEL: "" -TOOLTIP: "Search" -TOOLTIP_ZHCN: "查询" -TOOLTIP_ZHTW: "查詢" -PERMISSION: "" -CHECKED: "" -GROUP: "" -STYLE: "button_style=both" -LANG: "JavaScript" -STATUS: "Release" -VERSION: "1" -STATEHOOK: "" ----ACTION---*/ \ No newline at end of file diff --git a/demo/examples/module/TEMPLATEDEMO/sec-table-report-temp1/actions/set_condition_ui.js b/demo/examples/module/TEMPLATEDEMO/sec-table-report-temp1/actions/set_condition_ui.js deleted file mode 100644 index 3b8950aa4e72c36ebb23a3f8395d5585fe65fba6..0000000000000000000000000000000000000000 --- a/demo/examples/module/TEMPLATEDEMO/sec-table-report-temp1/actions/set_condition_ui.js +++ /dev/null @@ -1,24 +0,0 @@ -try { - this.onSetUiClicked(); -} catch (e) { - print(e); -} - -/*---ACTION--- -ICON: "cog" -LABEL: "Set Condition Ui" -LABEL_ZHCN: "编辑界é¢" -LABEL_ZHTW: "編輯界é¢" -ACCEL: "" -TOOLTIP: "Set Condition Ui" -TOOLTIP_ZHCN: "编辑界é¢" -TOOLTIP_ZHTW: "編輯界é¢" -PERMISSION: "" -CHECKED: "" -GROUP: "" -STYLE: "button_style=both" -LANG: "JavaScript" -STATUS: "Release" -VERSION: "1" -STATEHOOK: "" ----ACTION---*/ diff --git a/demo/examples/module/TEMPLATEDEMO/sec-table-report-temp1/lang.conf b/demo/examples/module/TEMPLATEDEMO/sec-table-report-temp1/lang.conf deleted file mode 100644 index 8b137891791fe96927ad78e64b0aad7bded08bdc..0000000000000000000000000000000000000000 --- a/demo/examples/module/TEMPLATEDEMO/sec-table-report-temp1/lang.conf +++ /dev/null @@ -1 +0,0 @@ - diff --git a/demo/examples/module/TEMPLATEDEMO/sec-table-report-temp1/module.conf b/demo/examples/module/TEMPLATEDEMO/sec-table-report-temp1/module.conf deleted file mode 100644 index d8b054c06898b9c32bdd4dd72a70f3e4ea9f7c76..0000000000000000000000000000000000000000 --- a/demo/examples/module/TEMPLATEDEMO/sec-table-report-temp1/module.conf +++ /dev/null @@ -1,41 +0,0 @@ -# æ¨¡å—æ ‡é¢˜ -sys_title: "SEC TABLE REPORT TEMP1" -sys_title_en: "SEC TABLE REPORT TEMP1" -sys_title_zhcn: "SECè¡¨æ ¼ç±»æŠ¥è¡¨æ¨¡æ¿1" -sys_title_zhtw: "SECè¡¨æ ¼ç±»æŠ¥è¡¨æ¨¡æ¿1" - -# 模å—å›¾æ ‡ -sys_icon: "" - -# 模å—对应的æ’ä»¶DLLåç§° -sys_plugin: "toptemplateclassplugin" - -# 模å—对应的类å -sys_class: "TopTemplateClass6" - -# 打开模å—çš„æƒé™ -sys_open_right: "" - -# 当关é—çª—å£æ—¶ï¼Œå¦‚æžœæç¤ºæ˜¯å¦ä¿å˜ï¼Œä¿å˜è°ƒç”¨çš„action -sys_save_action: "" - -# 该模å—用到的枚举列表 -sys_enum_list: [] - -# 该模å—用到的除了Action之外的æƒé™åˆ—表 -sys_permission_list: [] - -# 左侧å 用比例 -width_ratio: 0.15 - -# 左侧UI -condition_ui{ - table_name: "pub_conf", - path_name: "path", - path_value: "ConditionUi", - field: "json_data", - field_format: { - "json_data": "json" - } -} - diff --git a/demo/examples/module/TEMPLATEDEMO/sec-table-report-temp1/uim.conf b/demo/examples/module/TEMPLATEDEMO/sec-table-report-temp1/uim.conf deleted file mode 100644 index b6387112cadc4e2a1f76ea9443ab3af1495ff214..0000000000000000000000000000000000000000 --- a/demo/examples/module/TEMPLATEDEMO/sec-table-report-temp1/uim.conf +++ /dev/null @@ -1,20 +0,0 @@ -# 左侧ui工具æ -"CONDITION_TOOLBAR": [ - {"type":"toolitem","action":"search"}, - {"type":"stretcher"}, - {type:"menu", text:"", icon:"ellipsis-v", - child: [ - {"type":"menuitem","action":"set_condition_ui"} - ]} -] -# 工具æ -"MAIN_TOOLBAR": [ - {"type":"toolitem","action":"export_excel"}, - {"type":"stretcher"} -] - -#æ‰€æœ‰æ ‘å½¢æŽ§ä»¶çš„èœå• -"TREEVIEW_POPUP": [ - {"type":"menuitem","action":"collapseAll"}, - {"type":"menuitem","action":"expandAll"} -] \ No newline at end of file diff --git a/demo/examples/module/TEMPLATEDEMO/template-4-categorytreeview/actions/cancel_detail.js b/demo/examples/module/TEMPLATEDEMO/template-4-categorytreeview/actions/cancel_detail.js deleted file mode 100644 index 9eb4ceb8f1ed8d7103adaacc679446dacfd8d620..0000000000000000000000000000000000000000 --- a/demo/examples/module/TEMPLATEDEMO/template-4-categorytreeview/actions/cancel_detail.js +++ /dev/null @@ -1,23 +0,0 @@ -try { - this.reloadItem(); -} catch(e) { - print(e); -} - -/*---ACTION--- -ICON: "cancel" -LABEL: "Cancel" -LABEL_ZHCN: "å–æ¶ˆ" -LABEL_ZHTW: "å–æ¶ˆ" -ACCEL: "" -TOOLTIP: "Cancel Edit" -TOOLTIP_ZHCN: "å–æ¶ˆç¼–辑" -TOOLTIP_ZHTW: "刷新編輯" -CHECKED: "" -GROUP: "" -STYLE: "button_style=text" -LANG: "JavaScript" -STATUS: "Release" -VERSION: "1" -STATEHOOK: "return (this.isDetailModified()) ? 'enable' : 'hide';" ----ACTION---*/ \ No newline at end of file diff --git a/demo/examples/module/TEMPLATEDEMO/template-4-categorytreeview/actions/copy_detail.js b/demo/examples/module/TEMPLATEDEMO/template-4-categorytreeview/actions/copy_detail.js deleted file mode 100644 index b6575ff3d9da682bdcbad460ec22be224f71c1c3..0000000000000000000000000000000000000000 --- a/demo/examples/module/TEMPLATEDEMO/template-4-categorytreeview/actions/copy_detail.js +++ /dev/null @@ -1,24 +0,0 @@ -try { - this.copyItem(); -} catch(e) { - print(e); -} - -/*---ACTION--- -ICON: "copy" -LABEL: "Copy" -LABEL_ZHCN: "å¤åˆ¶" -LABEL_ZHTW: "複製" -ACCEL: "" -TOOLTIP: "Copy" -TOOLTIP_ZHCN: "å¤åˆ¶" -TOOLTIP_ZHTW: "複製" -PERMISSION: "" -CHECKED: "" -GROUP: "" -STYLE: "button_style=icon" -LANG: "JavaScript" -STATUS: "Release" -VERSION: "1" -STATEHOOK: "return this.isDetailModified() ? 'hide' : 'enable';" ----ACTION---*/ \ No newline at end of file diff --git a/demo/examples/module/TEMPLATEDEMO/template-4-categorytreeview/actions/delete.js b/demo/examples/module/TEMPLATEDEMO/template-4-categorytreeview/actions/delete.js deleted file mode 100644 index d840dea86623cce996b33795cd4e213cc8635d3b..0000000000000000000000000000000000000000 --- a/demo/examples/module/TEMPLATEDEMO/template-4-categorytreeview/actions/delete.js +++ /dev/null @@ -1,30 +0,0 @@ -try { - var ans = TMessageBox.question(this, this.ttr("Are you sure to delete selected items?"), '', '', - [this.ttr('Delete')+':Yes:Yes:Primary', this.ttr('Cancel')+':Cancel:Cancel:Normal']); - if (ans != 'Yes') { - return; - } - this.deleteItems(this.selectedItems()); -} catch (e) { - print(e); -} - - -/*---ACTION--- -ICON: "times-circle" -LABEL: "Delete" -LABEL_ZHCN: "刪除" -LABEL_ZHTW: "刪除" -ACCEL: "Delete" -TOOLTIP: "Delete" -TOOLTIP_ZHCN: "åˆ é™¤" -TOOLTIP_ZHTW: "刪除" -PERMISSION: "" -CHECKED: "" -GROUP: "" -STYLE: "size=small button_style=both" -LANG: "JavaScript" -STATUS: "Release" -VERSION: "1" -STATEHOOK: "if(this.selectedItems().length > 0 && !this.isDetailModified()){return 'enable'}else{return 'disable'}" ----ACTION---*/ \ No newline at end of file diff --git a/demo/examples/module/TEMPLATEDEMO/template-4-categorytreeview/actions/new.js b/demo/examples/module/TEMPLATEDEMO/template-4-categorytreeview/actions/new.js deleted file mode 100644 index 590fc7ea676bd1fd2e02117d64f074b32ffe53ee..0000000000000000000000000000000000000000 --- a/demo/examples/module/TEMPLATEDEMO/template-4-categorytreeview/actions/new.js +++ /dev/null @@ -1,24 +0,0 @@ -try { - this.newItem(); -} catch (e) { - print(e); -} - -/*---ACTION--- -ICON: "plus" -LABEL: "New" -LABEL_ZHCN: "新建" -LABEL_ZHTW: "新建" -ACCEL: "Ctrl+N" -TOOLTIP: "New" -TOOLTIP_ZHCN: "新建" -TOOLTIP_ZHTW: "新建" -PERMISSION: "" -CHECKED: "" -GROUP: "" -STYLE: "button_style=both" -LANG: "JavaScript" -STATUS: "Release" -VERSION: "1" -STATEHOOK: "if (!this.isDetailModified()){return 'enable'} else {return 'disable'}" ----ACTION---*/ \ No newline at end of file diff --git a/demo/examples/module/TEMPLATEDEMO/template-4-categorytreeview/actions/refresh.js b/demo/examples/module/TEMPLATEDEMO/template-4-categorytreeview/actions/refresh.js deleted file mode 100644 index 2e614ee674d6491c2e204d3076c5ac08e43f382c..0000000000000000000000000000000000000000 --- a/demo/examples/module/TEMPLATEDEMO/template-4-categorytreeview/actions/refresh.js +++ /dev/null @@ -1,22 +0,0 @@ -try { - this.refresh(); -} catch (e) { - print(e); -} -/*---ACTION--- -ICON: "refresh" -LABEL: "Refresh" -LABEL_ZHCN: "刷新" -LABEL_ZHTW: "刷新" -ACCEL: "F5" -TOOLTIP: "Refresh" -TOOLTIP_ZHCN: "刷新" -TOOLTIP_ZHTW: "刷新" -CHECKED: "" -GROUP: "" -STYLE: "size=small button_style=icon" -LANG: "JavaScript" -STATUS: "Release" -VERSION: "1" -STATEHOOK: "" ----ACTION---*/ \ No newline at end of file diff --git a/demo/examples/module/TEMPLATEDEMO/template-4-categorytreeview/actions/refresh_detail.js b/demo/examples/module/TEMPLATEDEMO/template-4-categorytreeview/actions/refresh_detail.js deleted file mode 100644 index 6d474848a9ce3fd9dc56b30305d3cc0fca6c5692..0000000000000000000000000000000000000000 --- a/demo/examples/module/TEMPLATEDEMO/template-4-categorytreeview/actions/refresh_detail.js +++ /dev/null @@ -1,22 +0,0 @@ -try { - this.reloadItem(); -} catch(e) { - print(e); -} -/*---ACTION--- -ICON: "refresh" -LABEL: "Refresh" -LABEL_ZHCN: "刷新" -LABEL_ZHTW: "刷新" -ACCEL: "" -TOOLTIP: "Reload data from database" -TOOLTIP_ZHCN: "釿–°ä»Žæ•°æ®åº“åŠ è½½æ•°æ®" -TOOLTIP_ZHTW: "釿–°å¾žæ•¸æ“šåº«åŠ è¼‰æ•¸æ“š" -CHECKED: "" -GROUP: "" -STYLE: "button_style=icon" -LANG: "JavaScript" -STATUS: "Release" -VERSION: "1" -STATEHOOK: "return this.isDetailModified() ? 'hide' : 'enable';" ----ACTION---*/ \ No newline at end of file diff --git a/demo/examples/module/TEMPLATEDEMO/template-4-categorytreeview/actions/save_detail.js b/demo/examples/module/TEMPLATEDEMO/template-4-categorytreeview/actions/save_detail.js deleted file mode 100644 index 49420e218089e83f861149ba43a0f0584f014afb..0000000000000000000000000000000000000000 --- a/demo/examples/module/TEMPLATEDEMO/template-4-categorytreeview/actions/save_detail.js +++ /dev/null @@ -1,23 +0,0 @@ -try { - this.saveItem(); -} catch(e) { - print(e); -} -/*---ACTION--- -ICON: "save" -LABEL: "Save" -LABEL_ZHCN: "ä¿å˜" -LABEL_ZHTW: "ä¿å˜" -ACCEL: "Ctrl+S" -TOOLTIP: "Save" -TOOLTIP_ZHCN: "ä¿å˜" -TOOLTIP_ZHTW: "ä¿å˜" -PERMISSION: "" -CHECKED: "" -GROUP: "" -STYLE: " button_style=both" -LANG: "JavaScript" -STATUS: "Release" -VERSION: "1" -STATEHOOK: "return (this.isDetailModified()) ? 'enable' : 'disable';" ----ACTION---*/ \ No newline at end of file diff --git a/demo/examples/module/TEMPLATEDEMO/template-4-categorytreeview/detail.ui.js b/demo/examples/module/TEMPLATEDEMO/template-4-categorytreeview/detail.ui.js deleted file mode 100644 index decfed8d68b3cbae1a59a948ee2511806661ed7d..0000000000000000000000000000000000000000 --- a/demo/examples/module/TEMPLATEDEMO/template-4-categorytreeview/detail.ui.js +++ /dev/null @@ -1,332 +0,0 @@ -[ - { - name: "basic_info_area", - type: "ScrollArea", - property: { - widget_resizable: true, - frame_shape: 'NoFrame' - }, - pack: { label: self.ttr('Basic Info') }, - child: [ - { - name: 'formlayout', - type: 'FormGridLayout', - property: { - // label_alignment: 'AlignTop | AlignRight', - // horizontal_spacing: 10, - // vertical_spacing: 10, - // margin: 10, - columns: 2 - }, - child: [ - { - name: "id", - type: "LineEdit", - title: self.ttr(""), - pack: {column_span: 2}, - initCallback: function(obj,value,self) { - obj.setVisible(false) - } - }, - { - name: "attr_data.machine_code", - type: "LineEdit", - title: self.ttr("Machine Code"), - property: { readonly: true}, - validate: 'NOTNULL', - child: [ - { - name: "choose_machine", - type: "ToolButton", - property: { - text: self.ttr("Choose") - }, - callback: function(){ - var query = new TSqlQueryV2(T_SQLCNT_POOL.getSqlDatabase()); - var sql = "SELECT id,code,name FROM tpm_machine ORDER BY id DESC"; - try { - var dialog = new TTableViewDialog(self) - dialog.width = 400; - dialog.height = 600; - dialog.setTitle(self.ttr("Choose Machine")); - dialog.setButtons([self.ttr('Ok')+':Ok:Ok:Primary',self.ttr('Cancel')+':Cancel:Cancel:ERROR']); - dialog.setPrimaryKey('id'); - dialog.setSearchKeys(['code','name']); - dialog.setHeaderItem( - [ - { - }, - { - name: 'id', - display: self.ttr('ID'), - displayRole: '$id' - }, - { - name: 'code', - display: self.ttr('Machine Code'), - displayRole: '$code', - size: 100 - }, - { - name: 'name', - display: self.ttr('Machine Name'), - displayRole: '$name', - size: 200 - } - ] - ); - dialog.setDataKeyList(['id','code','name']); - dialog.loadData(query.selectArrayMap(sql,{})); - dialog.refreshData(true); - var ret = dialog.run(); - if(_.isEmpty(ret)) return; - this.getObject('attr_data.machine_code').setData('value',ret[0]['code']); - this.getObject('attr_data.machine_name').setData('value',ret[0]['name']); - this.getObject('machine_id').setData('value',ret[0]['id']); - } catch(e) { - GUI.msgbox({detail: e}) - print(e) - } - } - } - ] - }, - { - name: "attr_data.machine_name", - type: "LineEdit", - title: self.ttr("Machine Name"), - state: function(obj,self){ - return 'disable'; - } - }, - { - name: "class", - type: "ComboBox", - title: self.ttr("Maintenance Type"), - property: { - item_list: TOPENM.enumList("tpm-machine-maintenance-plan-class").toComboList() - }, - validate: 'NOTNULL' - }, - { - name: "title", - type: "LineEdit", - title: self.ttr("Title"), - }, - { - name: "priority", - type: "ComboBox", - title: self.ttr("Priority"), - property: { - item_list: TOPENM.enumList("tpm-machine-maintenance-plan-priority").toComboList() - }, - }, - { - name: "category", - type: "ComboBox", - title: self.ttr("Maintenance Category"), - property: { - item_list: TOPENM.enumList("tpm-machine-maintenance-plan-category").toComboList() - }, - }, - { - name: "execution_cycle", - type: "ComboBox", - title: self.ttr("Execution Type"), - property: { - item_list: TOPENM.enumList("tpm-machine-maintenance-plan-execution-cycle").toComboList() - }, - validate: 'NOTNULL' - }, - { - type: 'HBoxLayout', - title: self.ttr("Execution Cycle"), - state: function(obj,self){ - if (this.getValue("execution_cycle") == "cycle"){ - return 'show'; - } - return 'hide'; - }, - child: [ - { - name: "attr_data.cycle_value", - type: "IntLineEdit", - title: self.ttr("Cycle Value"), - state: function(obj,self){ - if (this.getValue("execution_cycle") == "cycle"){ - return 'show'; - } - return 'hide'; - }, - }, - { - name: "attr_data.cycle_unit", - type: "ComboBox", - title: self.ttr("Cycle Unit"), - state: function(obj,self){ - if (this.getValue("execution_cycle") == "cycle"){ - return 'show'; - } - return 'hide'; - }, - property: { - item_list: TOPENM.enumList("tpm-machine-maintenance-plan-cycle").toComboList() - }, - } - ] - }, - { - name: "last_execution_time", - type: "DateTimeEdit", - title: self.ttr("Last Execution Time"), - state: function(obj,self){ - return 'disable'; - }, - getter: function(obj,self){ - if(_.isEmpty(obj.getData())){ - return null; - } - return obj.getData(); - } - }, - { - name: "next_execution_time", - type: "DateTimeEdit", - title: self.ttr("Next Execution Time"), - getter: function(obj,self){ - if(_.isEmpty(obj.getData())){ - return null; - } - return obj.getData(); - }, - validate: "NOTNULL" - }, - { - name: "status", - type: "ComboBox", - title: self.ttr("Status"), - property: { - item_list: TOPENM.enumList("tpm-machine-maintenance-plan-status").toComboList() - } - }, - { - type: 'HBoxLayout' - }, - { - name: "maintenance_person_name", - type: "LineEdit", - title: self.ttr("Maintenance Person"), - pack: {column_span: 2}, - getter: function(obj,self){ - if (_.isEmpty(obj.getData())){ - return null; - } - return obj.getData().split(','); - }, - setter: function(obj,val,self){ - if (_.isEmpty(val))return; - val = val.replace('{','['); - val = val.replace('}',']'); - obj.setData('value',eval('(' + val + ')').join(',')) - }, - child: [ - { - name: "choose_person", - type: "ToolButton", - property: { - text: self.ttr("Choose") - }, - callback: function(){ - var query = new TSqlQueryV2(T_SQLCNT_POOL.getSqlDatabase()); - var sql = "SELECT id,fullname FROM sys_user ORDER BY id DESC"; - try { - var dialog = new TTableViewDialog(self) - dialog.width = 400; - dialog.height = 600; - dialog.setTitle(self.ttr("Choose Person")); - dialog.setButtons([self.ttr('Ok')+':Ok:Ok:Primary',self.ttr('Cancel')+':Cancel:Cancel:ERROR']); - dialog.setPrimaryKey('id'); - dialog.setSearchKeys(['fullname']); - dialog.setSelectionMode(3); - dialog.setHeaderItem( - [ - { - }, - { - name: 'id', - display: self.ttr('ID'), - displayRole: '$id' - }, - { - name: 'fullname', - display: self.ttr('Name'), - displayRole: '$fullname', - size: 200 - } - ] - ); - dialog.setDataKeyList(['id','fullname']); - dialog.loadData(query.selectArrayMap(sql,{})); - dialog.refreshData(true); - var ret = dialog.run(); - if(_.isEmpty(ret)) return; - var idList = []; - var nameList = []; - _.each(ret,function(people){ - idList.push(people.id); - nameList.push(people.fullname) - }); - this.getObject('maintenance_person_name').setData('value',nameList.join(',')); - this.getObject('maintenance_person_ids').setData('value',idList.join(',')); - } catch(e) { - GUI.msgbox({detail: e}) - print(e) - } - } - } - ] - }, - { - name: "description", - type: "PlainTextEdit", - title: self.ttr("Maintenance Content"), - pack: {column_span: 2}, - property: { - min_row_count: 8 - } - }, - { - name: "maintenance_person_ids", - type: "LineEdit", - pack: {column_span: 2}, - initCallback: function(obj,value,self) { - obj.setVisible(false) - }, - getter: function(obj,self){ - if (_.isEmpty(obj.getData())){ - return null; - } - return obj.getData().split(','); - }, - setter: function(obj,val,self){ - if (_.isEmpty(val))return; - val = val.replace('{','['); - val = val.replace('}',']'); - obj.setData('value',eval('(' + val + ')').join(',')) - }, - }, - { - name: "machine_id", - type: "LineEdit", - initCallback: function(obj,value,self) { - obj.setVisible(false) - } - }, - { - type: 'Stretch' - } - ] - } - ] - } -] \ No newline at end of file diff --git a/demo/examples/module/TEMPLATEDEMO/template-4-categorytreeview/lang.conf b/demo/examples/module/TEMPLATEDEMO/template-4-categorytreeview/lang.conf deleted file mode 100644 index d86e42928491972fe3ee13200d8f44aff2b79de0..0000000000000000000000000000000000000000 --- a/demo/examples/module/TEMPLATEDEMO/template-4-categorytreeview/lang.conf +++ /dev/null @@ -1,37 +0,0 @@ -"Title": {en: "Title", zhcn: "æ ‡é¢˜", zhtw: "標題"} -"Navigation": {en: "Navigation", zhcn: "导航æ ", zhtw: "導航欄"} -"Display Navigation": {en: "Display Navigation", zhcn: "显示导航æ ", zhtw: "顯示導航欄"} -"Hide Navigation": {en: "Hide Navigation", zhcn: "éšè—导航æ ", zhtw: "éš±è—導航欄"} -"Catergory": {en: "Catergory", zhcn: "分类", zhtw: "分類"} -"Priority": {en: "Priority", zhcn: "优先级", zhtw: "優先級"} -"Last execution time": {en: "Last execution time", zhcn: "上次维护时间", zhtw: "上次ç¶è·æ™‚é–“"} -"Next execution time": {en: "Next execution time", zhcn: "下次维护时间", zhtw: "下次ç¶è·æ™‚é–“"} -"Machine Code": {en: "Machine Code", zhcn: "设备编å·", zhtw: "è¨å‚™ç·¨è™Ÿ"} -"Machine Name": {en: "Machine Name", zhcn: "设备åç§°", zhtw: "è¨å‚™å稱"} -"Maintenance Type": {en: "Maintenance Type", zhcn: "维护类型", zhtw: "ç¶è·é¡žåž‹"} -"Maintenance Category": {en: "Maintenance Category", zhcn: "维护分类", zhtw: "ç¶è·åˆ†é¡ž"} -"Execution Type": {en: "Execution Type", zhcn: "计划类型", zhtw: "計劃類型"} -"Execution Cycle": {en: "Execution Cycle", zhcn: "计划周期", zhtw: "計劃週期"} -"Status": {en: "Status", zhcn: "状æ€", zhtw: "狀態"} -"Last Execution Time": {en: "Last Execution Time", zhcn: "上次执行时间", zhtw: "上次執行時間"} -"Next Execution Time": {en: "Next Execution Time", zhcn: "下次执行时间", zhtw: "下次執行時間"} -"Maintenance Person": {en: "Maintenance Person", zhcn: "维护人员", zhtw: "ç¶è·äººå“¡"} -"Maintenance Content": {en: "Maintenance Content", zhcn: "维护内容", zhtw: "ç¶è·å…§å®¹"} -"Class": {en: "Maintenance Class", zhcn: "维护类型", zhtw: "ç¶è·é¡žåž‹"} -"Load data successful!": {en: "Load data successful!" ,zhcn: "åŠ è½½æ•°æ®å®Œæˆï¼" ,zhtw: "åŠ è¼‰æ•¸æ“šå®Œæˆï¼"} -"Exec Plan": {en: "Exec Plan", zhcn: "执行计划", zhtw: "執行計劃"} -"Class": {en: "Maintenance Class", zhcn: "维护类型", zhtw: ""} -"Choose": {en: "Choose", zhcn: "选择", zhtw: "鏿“‡"} -"Choose Machine": {en: "Choose Machine", zhcn: "选择设备", zhtw: "鏿“‡è¨å‚™"} -"Choose Person": {en: "Choose Person", zhcn: "选择人员", zhtw: "鏿“‡äººå“¡"} -"Record No": {en: "Record No", zhcn: "记录å•å·", zhtw: "記錄單號"} -"Apply Time": {en: "Apply Time", zhcn: "申请时间", zhtw: "申請時間"} -"Apply Person": {en: "Apply Person", zhcn: "申请人", zhtw: "申請人"} -"Start Time": {en: "Start Time", zhcn: "开始时间", zhtw: "開始時間"} -"End Time": {en: "End Time", zhcn: "ç»“æŸæ—¶é—´", zhtw: "çµæŸæ™‚é–“"} -"Basic Info": {en: "Basic Info", zhcn: "基本信æ¯", zhtw: "基本信æ¯"} -"Ok": {en: "OK", zhcn: "确定", zhtw: "確定"} -"Cancel": {en: "Cancel", zhcn: "å–æ¶ˆ", zhtw: "å–æ¶ˆ"} -"Cycle Value": {en: "Cycle Value", zhcn: "周期", zhtw: "週期"} -"Cycle Unit": {en: "Cycle Unit", zhcn: "周期å•ä½", zhtw: "週期單ä½"} -"Name": {en: "Name", zhcn: "å§“å", zhtw: "å§“å"} \ No newline at end of file diff --git a/demo/examples/module/TEMPLATEDEMO/template-4-categorytreeview/module.conf b/demo/examples/module/TEMPLATEDEMO/template-4-categorytreeview/module.conf deleted file mode 100644 index 95d27f3306a67843937aeb4356ba3bc312e11835..0000000000000000000000000000000000000000 --- a/demo/examples/module/TEMPLATEDEMO/template-4-categorytreeview/module.conf +++ /dev/null @@ -1,170 +0,0 @@ -# æ¨¡å—æ ‡é¢˜ -sys_title: "Template Demo - Table With Category And Detail" -sys_title_en: "Template Demo - Table With Category And Detail" -sys_title_zhcn: "带导航æ 和详细信æ¯çš„å•表展示" -sys_title_zhtw: "" -# 模å—å›¾æ ‡ -sys_icon: "wpforms" -# 模å—对应的æ’ä»¶DLLåç§° -sys_plugin: "toptemplateclassplugin" -# 模å—对应的类å -sys_class: "TopTemplateClass4" -# 许å¯è¯éªŒè¯é”® -sys_license_key: "" -# 打开模å—çš„æƒé™ -sys_open_right: "" -# è¯è¨€åŒ…,默认包å«è‡ªå·±æ¨¡å—çš„è¯è¨€åŒ… -sys_lang_list: [] -# 当关é—çª—å£æ—¶ï¼Œå¦‚æžœæç¤ºæ˜¯å¦ä¿å˜ï¼Œä¿å˜è°ƒç”¨çš„action -sys_save_action: "" -# 该模å—用到的枚举列表 -sys_enum_list: [] -# 该模å—用到的除了Action之外的æƒé™åˆ—表 -sys_permission_list: [] -# 导航æ -# is_checkable,=true 或1, 表示支æŒcheckboxå½¢å¼; =false 或0, 表示éžcheckboxå½¢å¼ -navi: { - __type__: CategoryTreeViewAndAdvancedQuery, - is_checkable: 1, - categories: [ - { - name: "class", - text: "Maintenance Type", - icon: "", - visible: 1, - expand: 1, - checked: 0, - data: "", - children: [ - { name: "repair", text: "repair", data: "class", checked: 1, VISIBLE:1 }, - { name: "maintenance", text: "maintenance", data: "class", checked: 1, VISIBLE:1 }, - { name: "spot_check", text: "spot_check", data: "class", checked: 1, VISIBLE:1 } - ], - enum_children: "tpm-machine-maintenance-plan-class", - enum_checked:["repair"], - enum_invisible:[] - }, - { - name: "category", - text: "Catergory", - icon: "", - visible: 1, - expand: 1, - checked: 0, - data: "", - children: [], - enum_children: "tpm-machine-maintenance-plan-category", - enum_checked:["overhaul", "part_repairing", "lubrication", "sealing"], - enum_invisible:[] - } - ] -} - -# 高级查询 -advance: { - "advanced_items" : [ - {"name" : "attr_data.machine_code", "title" : "Machine Code" , "widgetType" : "LineEdit" , "wgt_prop" : "" , "optionList" : []}, - {"name" : "attr_data.machine_name", "title" : "Machine Name" , "widgetType" : "LineEdit" , "wgt_prop" : "" , "optionList" : []}, - {"name" : "title", "title" : "Title" , "widgetType" : "LineEdit" , "wgt_prop" : "" , "optionList" : []}, - {"name" : "class", "title" : "Class" , "widgetType" : "ComboBox" , "wgt_prop" : "" , "optionList" : "enum(tpm-machine-maintenance-plan-class)"} - ], - "condition" :{ - "condition": "1 and 2", - "value": [ - { - "ignoreEmpty": false, - "name": "attr_data.machine_code", - "operator": "LIKE", - "title": "Machine Code", - "valid": true, - "value1": "00" - }, - { - "ignoreEmpty": false, - "name": "attr_data.machine_name", - "operator": "LIKE", - "title": "Machine Name", - "valid": true, - "value1": "4" - } - ] - } -} - -# ä¸»è¡¨æ ¼ -view { - # æ•°æ®é¡¹ï¼Œ 默认包å«è¡¨å¤´ä¸é…置的数æ®é¡¹ - data_keys: ["id","class","status","attr_data.machine_code","attr_data.machine_name","machine_id","execution_cycle","attr_data.cycle_value","attr_data.cycle_unit" - "title","category","priority","last_execution_time","next_execution_time","description","maintenance_person_name"] - # 主键 - primary_key: "id" - # 水平表头 - horizontal_header: [ - { - "name": "attr_data.machine_code", - "display": "Machine Code", - "displayRole": "$attr_data.machine_code", - "size": 100 - }, - { - "name": "attr_data.machine_name", - "display": "Machine Name", - "displayRole": "$attr_data.machine_name", - "size": 100 - }, - { - "name": "title", - "display": "Title", - "displayRole": "$title", - "size": 100, - "search": "string" - }, - { - "name": "class", - "display": "Class", - "displayRole": "$class.text", - "size": 100, - "format": "enum(tpm-machine-maintenance-plan-class)" - }, - { - "name": "category", - "display": "Catergory", - "displayRole": "$category.text", - "size": 100 - "format": "enum(tpm-machine-maintenance-plan-category)" - }, - { - "name": "priority", - "display": "Priority", - "displayRole": "$priority", - "size": 100 - }, - { - "name": "status", - "display": "Status", - "displayRole": "$status.text", - "size": 100, - "format": "enum(tpm-machine-maintenance-plan-status)" - }, - { - "name": "last_execution_time", - "display": "Last execution time", - "displayRole": "$last_execution_time", - "size": 200 - }, - { - "name": "next_execution_time", - "display": "Next execution time", - "displayRole": "$next_execution_time", - "size": 200 - } - ] - # 默认排åºåˆ— - sort_by: "id DESC" - # æ•°æ®é›† - data_set { - # æ•°æ®åº“表å - db_table_name: "tpm_machine_maintenance_plan" - db_filter: "" - } -} diff --git a/demo/examples/module/TEMPLATEDEMO/template-4-categorytreeview/uim.conf b/demo/examples/module/TEMPLATEDEMO/template-4-categorytreeview/uim.conf deleted file mode 100644 index b9c7203f9922f7b0d89481d759a759009dfeb51c..0000000000000000000000000000000000000000 --- a/demo/examples/module/TEMPLATEDEMO/template-4-categorytreeview/uim.conf +++ /dev/null @@ -1,31 +0,0 @@ -# 工具æ -"MAIN_TOOLBAR": [ - {"type":"toolitem","action":"new"}, - {"type":"stretcher"}, - {"type":"searchentry","name":"SEARCH_ENTRY"} - {"type":"toolitem","action":"refresh"} -] - -# è¡¨æ ¼çš„å³é”®èœå• -"TABLEVIEW_POPUP": [ - {"type":"menuitem","action":"new"}, - {"type":"separator"}, - {"type":"menuitem","action":"delete"}, - {"type":"separator"}, - {"type":"menuitem","action":"refresh"} -] - -# 底部工具æ -"BOTTOM_TOOLBAR" : [ - {"type":"stretcher"}, - {"type":"pagetool","name":"PAGE_TOOL"} -] - -# 详细信æ¯å·¥å…·æ -"DETAIL_TOOLBAR": [ - {"type":"toolitem","action":"save_detail"}, - {"type":"stretcher"}, - {"type":"toolitem","action":"copy_detail"}, - {"type":"toolitem","action":"cancel_detail"}, - {"type":"toolitem","action":"refresh_detail"} -] \ No newline at end of file diff --git a/demo/examples/module/TEMPLATEDEMO/template-demo-homepage/module.conf b/demo/examples/module/TEMPLATEDEMO/template-demo-homepage/module.conf deleted file mode 100644 index 8c80c565d631b0be9ed20bdc97db6e34907b5f5f..0000000000000000000000000000000000000000 --- a/demo/examples/module/TEMPLATEDEMO/template-demo-homepage/module.conf +++ /dev/null @@ -1,26 +0,0 @@ -# æ¨¡å—æ ‡é¢˜ -sys_title: "Template Demo - Homepage" -sys_title_en: "Template Demo - Homepage" -sys_title_zhcn: "主页" -sys_title_zhtw: "" -# 模å—å›¾æ ‡ -sys_icon: "wpforms" -# 模å—对应的æ’ä»¶DLLåç§° -sys_plugin: "toptemplateclassplugin" -# 模å—对应的类å -sys_class: "TopTemplateClass0A" -# 许å¯è¯éªŒè¯é”® -sys_license_key: "" -# 打开模å—çš„æƒé™ -sys_open_right: "" -# è¯è¨€åŒ…,默认包å«è‡ªå·±æ¨¡å—çš„è¯è¨€åŒ… -sys_lang_list: [] -# 当关é—çª—å£æ—¶ï¼Œå¦‚æžœæç¤ºæ˜¯å¦ä¿å˜ï¼Œä¿å˜è°ƒç”¨çš„action -sys_save_action: "" -# 该模å—用到的枚举列表 -sys_enum_list: [] -# 该模å—用到的除了Action之外的æƒé™åˆ—表 -sys_permission_list: [] - -# 背景图相对路径,相对于APP.appPlatformPath() -background_image_path: "resource/image/homepage.png" \ No newline at end of file diff --git a/demo/examples/module/TEMPLATEDEMO/template-demo-master-slave-2/actions/refresh_master.js b/demo/examples/module/TEMPLATEDEMO/template-demo-master-slave-2/actions/refresh_master.js deleted file mode 100644 index 72c4789d0aa49b8ab0491ecf06e2d39cacd86c12..0000000000000000000000000000000000000000 --- a/demo/examples/module/TEMPLATEDEMO/template-demo-master-slave-2/actions/refresh_master.js +++ /dev/null @@ -1,23 +0,0 @@ -try { - this.refreshMaster(false); -} catch(e) { - print(e); -} - -/*---ACTION--- -ICON: "refresh" -LABEL: "Refresh" -LABEL_ZHCN: "刷新" -LABEL_ZHTW: "刷新" -ACCEL: "F5" -TOOLTIP: "Refresh" -TOOLTIP_ZHCN: "刷新" -TOOLTIP_ZHTW: "刷新" -CHECKED: "" -GROUP: "" -STYLE: "size=small button_style=icon" -LANG: "JavaScript" -STATUS: "Release" -VERSION: "1" -STATEHOOK: "" ----ACTION---*/ \ No newline at end of file diff --git a/demo/examples/module/TEMPLATEDEMO/template-demo-master-slave-2/module.conf b/demo/examples/module/TEMPLATEDEMO/template-demo-master-slave-2/module.conf deleted file mode 100644 index 97bf58eae83e44679be65822ba38418513b369e8..0000000000000000000000000000000000000000 --- a/demo/examples/module/TEMPLATEDEMO/template-demo-master-slave-2/module.conf +++ /dev/null @@ -1,105 +0,0 @@ -# æ¨¡å—æ ‡é¢˜ -sys_title: "Template Demo - Master & Slave" -sys_title_en: "Template Demo - Master & Slave" -sys_title_zhcn: "主从表展示" -sys_title_zhtw: "" -# 模å—å›¾æ ‡ -sys_icon: "wpforms" -# 模å—对应的æ’ä»¶DLLåç§° -sys_plugin: "toptemplateclassplugin" -# 模å—对应的类å -sys_class: "TopTemplateClass5" -# 许å¯è¯éªŒè¯é”® -sys_license_key: "" -# 打开模å—çš„æƒé™ -sys_open_right: "" -# è¯è¨€åŒ…,默认包å«è‡ªå·±æ¨¡å—çš„è¯è¨€åŒ… -sys_lang_list: [] -# 当关é—çª—å£æ—¶ï¼Œå¦‚æžœæç¤ºæ˜¯å¦ä¿å˜ï¼Œä¿å˜è°ƒç”¨çš„action -sys_save_action: "" -# 该模å—用到的枚举列表 -sys_enum_list: [ - "pdm-job-status" -] -# 该模å—用到的除了Action之外的æƒé™åˆ—表 -sys_permission_list: [] - -# ä¸»è¡¨æ ¼ -master_view { - # æ•°æ®é¡¹ï¼Œ 默认包å«è¡¨å¤´ä¸é…置的数æ®é¡¹ - data_keys: [ "id" ] - # 主键 - primary_key: "id" - # 水平表头 - horizontal_header: [ - { - "name": "id", - "display": "Role ID", - "displayRole": "$id" - }, - { - "name": "name", - "display": "Role Name", - "displayRole": "$name", - "width": 150, - "search": "string" - } - ] - # 默认排åºåˆ— - sort_by: "id DESC" - # æ•°æ®é›† - data_set { - # æ•°æ®åº“表å - db_table_name: "sys_role" - # 若有sql, 以sql为最优先 - # è‹¥æ— sql, é»˜è®¤æ ¹æ®è¡¨å¤´çš„é…置进行查询 - db_sql: "" - } - # 主从表关系é…ç½® - relation { - type: "hasMany" - through: "sys_role_map_user" - master_foreign_key: "role_id" - master_key: "id" - slave_foreign_key: "user_id" - slave_key: "id" - } -} - -# ä»Žè¡¨æ ¼ -slave_view { - # æ•°æ®é¡¹ï¼Œ 默认包å«è¡¨å¤´ä¸é…置的数æ®é¡¹ - data_keys: [ "id" ] - # 主键 - primary_key: "id" - # 水平表头 - horizontal_header: [ - { - "name": "id", - "display": "User ID", - "displayRole": "$id", - "width": 150 - }, - { - "name": "username", - "display": "User Name", - "displayRole": "$username" - }, - { - "name": "status", - "display": "Status", - "displayRole": "$status", - "sorting_enabled": 0 - } - ] - # 默认排åºåˆ— - sort_by: "id DESC" - # æ•°æ®é›† - data_set { - # æ•°æ®åº“表å - db_table_name: "sys_user" - # 若有sql, 以sql为最优先 - # è‹¥æ— sql, é»˜è®¤æ ¹æ®è¡¨å¤´çš„é…置进行查询 - db_sql: "" - } -} \ No newline at end of file diff --git a/demo/examples/module/TEMPLATEDEMO/template-demo-master-slave-2/uim.conf b/demo/examples/module/TEMPLATEDEMO/template-demo-master-slave-2/uim.conf deleted file mode 100644 index 44ebb2d08d0a7d7c5549689e6d48ad727a9ec29e..0000000000000000000000000000000000000000 --- a/demo/examples/module/TEMPLATEDEMO/template-demo-master-slave-2/uim.conf +++ /dev/null @@ -1,18 +0,0 @@ -# 主表工具æ -"MASTER_TOOLBAR": [ - {"type":"stretcher"}, - {"type":"searchentry","name":"SEARCH_ENTRY"} - {"type":"toolitem","action":"refresh_master"} -] - - -# è¡¨æ ¼çš„å³é”®èœå• -"MASTER_POPUP": [ - {"type":"menuitem","action":"refresh_master"} -] - -# 主表底部工具æ -"MASTER_BOTTOM_TOOLBAR" : [ - {"type":"stretcher"}, - {"type":"pagetool","name":"PAGE_TOOL"} -] \ No newline at end of file diff --git a/demo/examples/module/TEMPLATEDEMO/template-demo-master-slave-3/actions/refresh_master.js b/demo/examples/module/TEMPLATEDEMO/template-demo-master-slave-3/actions/refresh_master.js deleted file mode 100644 index 9ec967a7817d503a4ad4dfec4a9e5f46c71f5d7e..0000000000000000000000000000000000000000 --- a/demo/examples/module/TEMPLATEDEMO/template-demo-master-slave-3/actions/refresh_master.js +++ /dev/null @@ -1,67 +0,0 @@ -try { - var data = { - "1-6.dat": { - "title": "1-6层钻å”程åº", - "data": [ - { - "tool_num": "T01", - "tool_type": "P", - "finish_size": "0.3", - "size_tol_lower": "-∞", - "size_tol_upper": "0.05", - "drill_size": "0.3" - }, - { - "tool_num": "T02", - "tool_type": "P", - "finish_size": "0.4", - "size_tol_lower": "-∞", - "size_tol_upper": "0.05", - "drill_size": "0.4" - } - ] - }, - "2-5.dat": { - "title": "2-5层钻å”程åº", - "data": [ - { - "tool_num": "T03", - "tool_type": "P", - "finish_size": "0.3", - "size_tol_lower": "-∞", - "size_tol_upper": "0.05", - "drill_size": "0.3" - }, - { - "tool_num": "T04", - "tool_type": "P", - "finish_size": "0.4", - "size_tol_lower": "-∞", - "size_tol_upper": "0.05", - "drill_size": "0.4" - } - ] - } - }; - this.loadTreeData(data); -} catch (e) { - print(e); -} - -/*---ACTION--- -ICON: "refresh" -LABEL: "Refresh" -LABEL_ZHCN: "刷新" -LABEL_ZHTW: "刷新" -ACCEL: "F5" -TOOLTIP: "Refresh" -TOOLTIP_ZHCN: "刷新" -TOOLTIP_ZHTW: "刷新" -CHECKED: "" -GROUP: "" -STYLE: "size=small button_style=icon" -LANG: "JavaScript" -STATUS: "Release" -VERSION: "1" -STATEHOOK: "" ----ACTION---*/ \ No newline at end of file diff --git a/demo/examples/module/TEMPLATEDEMO/template-demo-master-slave-3/module.conf b/demo/examples/module/TEMPLATEDEMO/template-demo-master-slave-3/module.conf deleted file mode 100644 index 79390ff8e7ca1bf80233c4152bc289cefc8da698..0000000000000000000000000000000000000000 --- a/demo/examples/module/TEMPLATEDEMO/template-demo-master-slave-3/module.conf +++ /dev/null @@ -1,85 +0,0 @@ -# æ¨¡å—æ ‡é¢˜ -sys_title: "Template Demo - Master & Slave" -sys_title_en: "Template Demo - Master & Slave" -sys_title_zhcn: "主从表展示" -sys_title_zhtw: "" -# 模å—å›¾æ ‡ -sys_icon: "wpforms" -# 模å—对应的æ’ä»¶DLLåç§° -sys_plugin: "toptemplateclassplugin" -# 模å—对应的类å -sys_class: "TopTemplateClass5" -# 许å¯è¯éªŒè¯é”® -sys_license_key: "" -# 打开模å—çš„æƒé™ -sys_open_right: "" -# è¯è¨€åŒ…,默认包å«è‡ªå·±æ¨¡å—çš„è¯è¨€åŒ… -sys_lang_list: [] -# 当关é—çª—å£æ—¶ï¼Œå¦‚æžœæç¤ºæ˜¯å¦ä¿å˜ï¼Œä¿å˜è°ƒç”¨çš„action -sys_save_action: "" -# 该模å—用到的枚举列表 -sys_enum_list: [] -# 该模å—用到的除了Action之外的æƒé™åˆ—表 -sys_permission_list: [] - -#主从表显示比例 -master_slave_ratio: "1:9" - -# ä¸»è¡¨æ ¼ -master_view { - # æ•°æ®é¡¹ï¼Œ 默认包å«è¡¨å¤´ä¸é…置的数æ®é¡¹ - data_keys: [ "name" ] - # 主键 - primary_key: "name" - # 水平表头 - horizontal_header: [ - { - "name": "title", - "display": "Drill Title", - "displayRole": "$title", - "width": 150, - "search": "string" - } - ] -} - -# ä»Žè¡¨æ ¼ -slave_view { - # æ•°æ®é¡¹ï¼Œ 默认包å«è¡¨å¤´ä¸é…置的数æ®é¡¹ - data_keys: [ ] - # 主键 - primary_key: "" - # 水平表头 - horizontal_header: [ - { - "name": "tool_num", - "display": "Tool Num", - "displayRole": "$tool_num" - }, - { - "name": "tool_type", - "display": "Tool Type", - "displayRole": "$tool_type" - }, - { - "name": "finish_size", - "display": "Finish Size", - "displayRole": "$finish_size" - }, - { - "name": "size_tol_lower", - "display": "Size Tol Lower", - "displayRole": "$size_tol_lower" - }, - { - "name": "size_tol_upper", - "display": "Size Tol Upper", - "displayRole": "$size_tol_upper" - }, - { - "name": "drill_size", - "display": "Drill Size", - "displayRole": "$drill_size" - } - ] -} \ No newline at end of file diff --git a/demo/examples/module/TEMPLATEDEMO/template-demo-master-slave-3/uim.conf b/demo/examples/module/TEMPLATEDEMO/template-demo-master-slave-3/uim.conf deleted file mode 100644 index 44ebb2d08d0a7d7c5549689e6d48ad727a9ec29e..0000000000000000000000000000000000000000 --- a/demo/examples/module/TEMPLATEDEMO/template-demo-master-slave-3/uim.conf +++ /dev/null @@ -1,18 +0,0 @@ -# 主表工具æ -"MASTER_TOOLBAR": [ - {"type":"stretcher"}, - {"type":"searchentry","name":"SEARCH_ENTRY"} - {"type":"toolitem","action":"refresh_master"} -] - - -# è¡¨æ ¼çš„å³é”®èœå• -"MASTER_POPUP": [ - {"type":"menuitem","action":"refresh_master"} -] - -# 主表底部工具æ -"MASTER_BOTTOM_TOOLBAR" : [ - {"type":"stretcher"}, - {"type":"pagetool","name":"PAGE_TOOL"} -] \ No newline at end of file diff --git a/demo/examples/module/TEMPLATEDEMO/template-demo-master-slave-4/actions/refresh_master.js b/demo/examples/module/TEMPLATEDEMO/template-demo-master-slave-4/actions/refresh_master.js deleted file mode 100644 index 9ec967a7817d503a4ad4dfec4a9e5f46c71f5d7e..0000000000000000000000000000000000000000 --- a/demo/examples/module/TEMPLATEDEMO/template-demo-master-slave-4/actions/refresh_master.js +++ /dev/null @@ -1,67 +0,0 @@ -try { - var data = { - "1-6.dat": { - "title": "1-6层钻å”程åº", - "data": [ - { - "tool_num": "T01", - "tool_type": "P", - "finish_size": "0.3", - "size_tol_lower": "-∞", - "size_tol_upper": "0.05", - "drill_size": "0.3" - }, - { - "tool_num": "T02", - "tool_type": "P", - "finish_size": "0.4", - "size_tol_lower": "-∞", - "size_tol_upper": "0.05", - "drill_size": "0.4" - } - ] - }, - "2-5.dat": { - "title": "2-5层钻å”程åº", - "data": [ - { - "tool_num": "T03", - "tool_type": "P", - "finish_size": "0.3", - "size_tol_lower": "-∞", - "size_tol_upper": "0.05", - "drill_size": "0.3" - }, - { - "tool_num": "T04", - "tool_type": "P", - "finish_size": "0.4", - "size_tol_lower": "-∞", - "size_tol_upper": "0.05", - "drill_size": "0.4" - } - ] - } - }; - this.loadTreeData(data); -} catch (e) { - print(e); -} - -/*---ACTION--- -ICON: "refresh" -LABEL: "Refresh" -LABEL_ZHCN: "刷新" -LABEL_ZHTW: "刷新" -ACCEL: "F5" -TOOLTIP: "Refresh" -TOOLTIP_ZHCN: "刷新" -TOOLTIP_ZHTW: "刷新" -CHECKED: "" -GROUP: "" -STYLE: "size=small button_style=icon" -LANG: "JavaScript" -STATUS: "Release" -VERSION: "1" -STATEHOOK: "" ----ACTION---*/ \ No newline at end of file diff --git a/demo/examples/module/TEMPLATEDEMO/template-demo-master-slave-4/module.conf b/demo/examples/module/TEMPLATEDEMO/template-demo-master-slave-4/module.conf deleted file mode 100644 index b09ce4342d57be42b5e6ac9b66589d12ca65e02e..0000000000000000000000000000000000000000 --- a/demo/examples/module/TEMPLATEDEMO/template-demo-master-slave-4/module.conf +++ /dev/null @@ -1,85 +0,0 @@ -# æ¨¡å—æ ‡é¢˜ -sys_title: "Template Demo - Master & Slave" -sys_title_en: "Template Demo - Master & Slave" -sys_title_zhcn: "主从表展示" -sys_title_zhtw: "" -# 模å—å›¾æ ‡ -sys_icon: "wpforms" -# 模å—对应的æ’ä»¶DLLåç§° -sys_plugin: "toptemplateclassplugin" -# 模å—对应的类å -sys_class: "TopTemplateClass5" -# 许å¯è¯éªŒè¯é”® -sys_license_key: "" -# 打开模å—çš„æƒé™ -sys_open_right: "" -# è¯è¨€åŒ…,默认包å«è‡ªå·±æ¨¡å—çš„è¯è¨€åŒ… -sys_lang_list: [] -# 当关é—çª—å£æ—¶ï¼Œå¦‚æžœæç¤ºæ˜¯å¦ä¿å˜ï¼Œä¿å˜è°ƒç”¨çš„action -sys_save_action: "" -# 该模å—用到的枚举列表 -sys_enum_list: [] -# 该模å—用到的除了Action之外的æƒé™åˆ—表 -sys_permission_list: [] - -#模å—åˆæ¬¡è¿è¡Œæ—¶ï¼Œä¸»ä»Žè¯¦æƒ…显示比例master:slave:uiloader -master_slave_ratio: "1:9:3" - -# ä¸»è¡¨æ ¼ -master_view { - # æ•°æ®é¡¹ï¼Œ 默认包å«è¡¨å¤´ä¸é…置的数æ®é¡¹ - data_keys: [ "name" ] - # 主键 - primary_key: "name" - # 水平表头 - horizontal_header: [ - { - "name": "title", - "display": "Drill Title", - "displayRole": "$title", - "width": 150, - "search": "string" - } - ] -} - -# ä»Žè¡¨æ ¼ -slave_view { - # æ•°æ®é¡¹ï¼Œ 默认包å«è¡¨å¤´ä¸é…置的数æ®é¡¹ - data_keys: [ ] - # 主键 - primary_key: "" - # 水平表头 - horizontal_header: [ - { - "name": "tool_num", - "display": "Tool Num", - "displayRole": "$tool_num" - }, - { - "name": "tool_type", - "display": "Tool Type", - "displayRole": "$tool_type" - }, - { - "name": "finish_size", - "display": "Finish Size", - "displayRole": "$finish_size" - }, - { - "name": "size_tol_lower", - "display": "Size Tol Lower", - "displayRole": "$size_tol_lower" - }, - { - "name": "size_tol_upper", - "display": "Size Tol Upper", - "displayRole": "$size_tol_upper" - }, - { - "name": "drill_size", - "display": "Drill Size", - "displayRole": "$drill_size" - } - ] -} \ No newline at end of file diff --git a/demo/examples/module/TEMPLATEDEMO/template-demo-master-slave-4/uim.conf b/demo/examples/module/TEMPLATEDEMO/template-demo-master-slave-4/uim.conf deleted file mode 100644 index 44ebb2d08d0a7d7c5549689e6d48ad727a9ec29e..0000000000000000000000000000000000000000 --- a/demo/examples/module/TEMPLATEDEMO/template-demo-master-slave-4/uim.conf +++ /dev/null @@ -1,18 +0,0 @@ -# 主表工具æ -"MASTER_TOOLBAR": [ - {"type":"stretcher"}, - {"type":"searchentry","name":"SEARCH_ENTRY"} - {"type":"toolitem","action":"refresh_master"} -] - - -# è¡¨æ ¼çš„å³é”®èœå• -"MASTER_POPUP": [ - {"type":"menuitem","action":"refresh_master"} -] - -# 主表底部工具æ -"MASTER_BOTTOM_TOOLBAR" : [ - {"type":"stretcher"}, - {"type":"pagetool","name":"PAGE_TOOL"} -] \ No newline at end of file diff --git a/demo/examples/module/TEMPLATEDEMO/template-demo-master-slave/actions/refresh_master.js b/demo/examples/module/TEMPLATEDEMO/template-demo-master-slave/actions/refresh_master.js deleted file mode 100644 index 72c4789d0aa49b8ab0491ecf06e2d39cacd86c12..0000000000000000000000000000000000000000 --- a/demo/examples/module/TEMPLATEDEMO/template-demo-master-slave/actions/refresh_master.js +++ /dev/null @@ -1,23 +0,0 @@ -try { - this.refreshMaster(false); -} catch(e) { - print(e); -} - -/*---ACTION--- -ICON: "refresh" -LABEL: "Refresh" -LABEL_ZHCN: "刷新" -LABEL_ZHTW: "刷新" -ACCEL: "F5" -TOOLTIP: "Refresh" -TOOLTIP_ZHCN: "刷新" -TOOLTIP_ZHTW: "刷新" -CHECKED: "" -GROUP: "" -STYLE: "size=small button_style=icon" -LANG: "JavaScript" -STATUS: "Release" -VERSION: "1" -STATEHOOK: "" ----ACTION---*/ \ No newline at end of file diff --git a/demo/examples/module/TEMPLATEDEMO/template-demo-master-slave/detail.ui.js b/demo/examples/module/TEMPLATEDEMO/template-demo-master-slave/detail.ui.js deleted file mode 100644 index cc7d7b4da9fd6218bac43fb3df95859367f29019..0000000000000000000000000000000000000000 --- a/demo/examples/module/TEMPLATEDEMO/template-demo-master-slave/detail.ui.js +++ /dev/null @@ -1,16 +0,0 @@ -[ - { - name: "nothing", - type: "VBoxLayout", - child: [ - { - name: "table(master).id", - type: "IntLineEdit" - }, - { - name: "table(slave).id", - type: "IntLineEdit" - } - ] - } -] diff --git a/demo/examples/module/TEMPLATEDEMO/template-demo-master-slave/module.conf b/demo/examples/module/TEMPLATEDEMO/template-demo-master-slave/module.conf deleted file mode 100644 index a0172ba288f1292f1032287c7dfa0e9df467eff5..0000000000000000000000000000000000000000 --- a/demo/examples/module/TEMPLATEDEMO/template-demo-master-slave/module.conf +++ /dev/null @@ -1,117 +0,0 @@ -# æ¨¡å—æ ‡é¢˜ -sys_title: "Template Demo - Master & Slave" -sys_title_en: "Template Demo - Master & Slave" -sys_title_zhcn: "主从表展示" -sys_title_zhtw: "" -# 模å—å›¾æ ‡ -sys_icon: "wpforms" -# 模å—对应的æ’ä»¶DLLåç§° -sys_plugin: "toptemplateclassplugin" -# 模å—对应的类å -sys_class: "TopTemplateClass5" -# 许å¯è¯éªŒè¯é”® -sys_license_key: "" -# 打开模å—çš„æƒé™ -sys_open_right: "" -# è¯è¨€åŒ…,默认包å«è‡ªå·±æ¨¡å—çš„è¯è¨€åŒ… -sys_lang_list: [] -# 当关é—çª—å£æ—¶ï¼Œå¦‚æžœæç¤ºæ˜¯å¦ä¿å˜ï¼Œä¿å˜è°ƒç”¨çš„action -sys_save_action: "" -# 该模å—用到的枚举列表 -sys_enum_list: [ - "pdm-job-status" -] -# 该模å—用到的除了Action之外的æƒé™åˆ—表 -sys_permission_list: [] - -# ä¸»è¡¨æ ¼ -master_view { - # æ•°æ®é¡¹ï¼Œ 默认包å«è¡¨å¤´ä¸é…置的数æ®é¡¹ - data_keys: [ "id" ] - # 主键 - primary_key: "id" - # 水平表头 - horizontal_header: [ - { - "name": "id", - "display": "Group ID", - "displayRole": "$id" - }, - { - "name": "name", - "display": "Group Name", - "displayRole": "$name", - "width": 150, - "search": "string" - }, - { - "name": "title", - "display": "Group Title", - "displayRole": "$title", - "sorting_enabled": 0 - } - ] - # 默认排åºåˆ— - sort_by: "id DESC" - # æ•°æ®é›† - data_set { - # æ•°æ®åº“表å - db_table_name: "pdm_spec_group" - # 若有sql, 以sql为最优先 - # è‹¥æ— sql, é»˜è®¤æ ¹æ®è¡¨å¤´çš„é…置进行查询 - db_sql: "" - } - # 主从表关系é…ç½® - relation { - type: "hasMany" - through: "pdm_spec_group_lnk_spec" - master_foreign_key: "group_id" - master_key: "id" - slave_foreign_key: "spec_name" - slave_key: "name" - } -} - -# ä»Žè¡¨æ ¼ -slave_view { - # æ•°æ®é¡¹ï¼Œ 默认包å«è¡¨å¤´ä¸é…置的数æ®é¡¹ - data_keys: [ "id" ] - # 主键 - primary_key: "id" - # 水平表头 - horizontal_header: [ - { - "name": "id", - "display": "Spec ID", - "displayRole": "$id", - "width": 150 - }, - { - "name": "name", - "display": "Spec Name", - "displayRole": "$name" - }, - { - "name": "title", - "display": "Spec Title", - "displayRole": "$title", - "sorting_enabled": 0 - }, - { - "name": "category", - "display": "Spec Category", - "displayRole": "$category", - "sorting_enabled": 0 - } - ] - # 默认排åºåˆ— - sort_by: "id DESC" - # æ•°æ®é›† - data_set { - # æ•°æ®åº“表å - db_table_name: "pdm_spec" - # 若有sql, 以sql为最优先 - # è‹¥æ— sql, é»˜è®¤æ ¹æ®è¡¨å¤´çš„é…置进行查询 - db_sql: "" - } -} \ No newline at end of file diff --git a/demo/examples/module/TEMPLATEDEMO/template-demo-master-slave/uim.conf b/demo/examples/module/TEMPLATEDEMO/template-demo-master-slave/uim.conf deleted file mode 100644 index 44ebb2d08d0a7d7c5549689e6d48ad727a9ec29e..0000000000000000000000000000000000000000 --- a/demo/examples/module/TEMPLATEDEMO/template-demo-master-slave/uim.conf +++ /dev/null @@ -1,18 +0,0 @@ -# 主表工具æ -"MASTER_TOOLBAR": [ - {"type":"stretcher"}, - {"type":"searchentry","name":"SEARCH_ENTRY"} - {"type":"toolitem","action":"refresh_master"} -] - - -# è¡¨æ ¼çš„å³é”®èœå• -"MASTER_POPUP": [ - {"type":"menuitem","action":"refresh_master"} -] - -# 主表底部工具æ -"MASTER_BOTTOM_TOOLBAR" : [ - {"type":"stretcher"}, - {"type":"pagetool","name":"PAGE_TOOL"} -] \ No newline at end of file diff --git a/demo/examples/module/TEMPLATEDEMO/template-demo-single-table/actions/__hooks__.js b/demo/examples/module/TEMPLATEDEMO/template-demo-single-table/actions/__hooks__.js deleted file mode 100644 index 3da8abeccb76793d41c0e62559dbe1bcd39517f6..0000000000000000000000000000000000000000 --- a/demo/examples/module/TEMPLATEDEMO/template-demo-single-table/actions/__hooks__.js +++ /dev/null @@ -1,23 +0,0 @@ -this.afterModuleInit = function() { - print("afterModuleInit") -} - -this.afterViewInit = function() { - try { - print("afterViewInit") - this.tableView().activated.connect(function(){ - print("activated"); - }); - } catch(e) { - print(e); - } -} - -this.onDestroy = function() { - print("onDestroy") -} - -this.add = function(v, k, arg1, arg2) { - print(v, k, arg1, arg2); - return _.toNumber(v) * 20; -} \ No newline at end of file diff --git a/demo/examples/module/TEMPLATEDEMO/template-demo-single-table/actions/refresh.js b/demo/examples/module/TEMPLATEDEMO/template-demo-single-table/actions/refresh.js deleted file mode 100644 index 53bba0865f1fec52670ea99c170a7b004049b368..0000000000000000000000000000000000000000 --- a/demo/examples/module/TEMPLATEDEMO/template-demo-single-table/actions/refresh.js +++ /dev/null @@ -1,23 +0,0 @@ -try { - this.refresh(false); -} catch(e) { - print(e); -} - -/*---ACTION--- -ICON: "refresh" -LABEL: "Refresh" -LABEL_ZHCN: "刷新" -LABEL_ZHTW: "刷新" -ACCEL: "F5" -TOOLTIP: "Refresh" -TOOLTIP_ZHCN: "刷新" -TOOLTIP_ZHTW: "刷新" -CHECKED: "" -GROUP: "" -STYLE: "size=small button_style=both" -LANG: "JavaScript" -STATUS: "Release" -VERSION: "1" -STATEHOOK: "" ----ACTION---*/ \ No newline at end of file diff --git a/demo/examples/module/TEMPLATEDEMO/template-demo-single-table/lang.conf b/demo/examples/module/TEMPLATEDEMO/template-demo-single-table/lang.conf deleted file mode 100644 index 0f92e78bc804de4cc2634f376dc38f2c151596c9..0000000000000000000000000000000000000000 --- a/demo/examples/module/TEMPLATEDEMO/template-demo-single-table/lang.conf +++ /dev/null @@ -1,3 +0,0 @@ -"Layer Count": {en: "", zhcn: "æ¿å±‚æ•°"} -"Job Name": {en: "", zhcn: "æ–™å·å"} -"Job Status": {en: "", zhcn: "状æ€"} \ No newline at end of file diff --git a/demo/examples/module/TEMPLATEDEMO/template-demo-single-table/module.conf b/demo/examples/module/TEMPLATEDEMO/template-demo-single-table/module.conf deleted file mode 100644 index 2f0968f2d97522b840a48c76ec12c11d6b57249e..0000000000000000000000000000000000000000 --- a/demo/examples/module/TEMPLATEDEMO/template-demo-single-table/module.conf +++ /dev/null @@ -1,67 +0,0 @@ -# æ¨¡å—æ ‡é¢˜ -sys_title: "Template Demo - Single Table Show" -sys_title_en: "Template Demo - Single Table Show" -sys_title_zhcn: "å•表信æ¯å±•示" -sys_title_zhtw: "" -# 模å—å›¾æ ‡ -sys_icon: "wpforms" -# 模å—对应的æ’ä»¶DLLåç§° -sys_plugin: "toptemplateclassplugin" -# 模å—对应的类å -sys_class: "TopTemplateClass1" -# 许å¯è¯éªŒè¯é”® -sys_license_key: "" -# 打开模å—çš„æƒé™ -sys_open_right: "" -# è¯è¨€åŒ…,默认包å«è‡ªå·±æ¨¡å—çš„è¯è¨€åŒ… -sys_lang_list: [] -# 当关é—çª—å£æ—¶ï¼Œå¦‚æžœæç¤ºæ˜¯å¦ä¿å˜ï¼Œä¿å˜è°ƒç”¨çš„action -sys_save_action: "" -# 该模å—用到的枚举列表 -sys_enum_list: [ - "pdm-job-status" -] -# 该模å—用到的除了Action之外的æƒé™åˆ—表 -sys_permission_list: [] - -# ä¸»è¡¨æ ¼ -view { - # æ•°æ®é¡¹ï¼Œ 默认包å«è¡¨å¤´ä¸é…置的数æ®é¡¹ - data_keys: [ "id" ] - # 主键 - primary_key: "id" - # 水平表头 - horizontal_header: [ - { - "name": "jobname", - "display": "Job Name", - "displayRole": "$jobname", - "width": 150, - "search": "string" - }, - { - "name": "job_attrs.layer_count", - "display": "Layer Count", - "displayRole": "$job_attrs.layer_count", - "format": "hook(add(3,4))" - }, - { - "name": "job_status", - "display": "Job Status", - "displayRole": "$job_status.text", - "decorationRole": "$job_status.icon", - "format": "enum(pdm-job-status)", - "sorting_enabled": 0 - } - ] - # 默认排åºåˆ— - sort_by: "id DESC" - # æ•°æ®é›† - data_set { - # æ•°æ®åº“表å - db_table_name: "pdm_job" - # 若有sql, 以sql为最优先 - # è‹¥æ— sql, é»˜è®¤æ ¹æ®è¡¨å¤´çš„é…置进行查询 - db_sql: "" - } -} diff --git a/demo/examples/module/TEMPLATEDEMO/template-demo-single-table/uim.conf b/demo/examples/module/TEMPLATEDEMO/template-demo-single-table/uim.conf deleted file mode 100644 index 3d11d270e866c01fabcc485178846055da6bd99a..0000000000000000000000000000000000000000 --- a/demo/examples/module/TEMPLATEDEMO/template-demo-single-table/uim.conf +++ /dev/null @@ -1,17 +0,0 @@ -# 工具æ -"MAIN_TOOLBAR": [ - {"type":"stretcher"}, - {"type":"searchentry","name":"SEARCH_ENTRY"} - {"type":"toolitem","action":"refresh"} -] - -# è¡¨æ ¼çš„å³é”®èœå• -"TABLEVIEW_POPUP": [ - {"type":"menuitem","action":"refresh"} -] - -# 底部工具æ -"BOTTOM_TOOLBAR" : [ - {"type":"stretcher"}, - {"type":"pagetool","name":"PAGE_TOOL"} -] \ No newline at end of file diff --git a/demo/examples/module/TEMPLATEDEMO/template-demo-single-tree-2/module.conf b/demo/examples/module/TEMPLATEDEMO/template-demo-single-tree-2/module.conf deleted file mode 100644 index a1528afefad550c16da2da14d5a9730e88028db6..0000000000000000000000000000000000000000 --- a/demo/examples/module/TEMPLATEDEMO/template-demo-single-tree-2/module.conf +++ /dev/null @@ -1,79 +0,0 @@ -# æ¨¡å—æ ‡é¢˜ -sys_title: "Template Demo - Single Tree Show" -sys_title_en: "Template Demo - Single Tree Show" -sys_title_zhcn: "æ ‘å½¢ä¿¡æ¯å±•示" -sys_title_zhtw: "" -# 模å—å›¾æ ‡ -sys_icon: "wpforms" -# 模å—对应的æ’ä»¶DLLåç§° -sys_plugin: "toptemplateclassplugin" -# 模å—对应的类å -sys_class: "TopTemplateClass1A" -# 许å¯è¯éªŒè¯é”® -sys_license_key: "" -# 打开模å—çš„æƒé™ -sys_open_right: "" -# è¯è¨€åŒ…,默认包å«è‡ªå·±æ¨¡å—çš„è¯è¨€åŒ… -sys_lang_list: [] -# 当关é—çª—å£æ—¶ï¼Œå¦‚æžœæç¤ºæ˜¯å¦ä¿å˜ï¼Œä¿å˜è°ƒç”¨çš„action -sys_save_action: "" -# 该模å—用到的枚举列表 -sys_enum_list: [] -# 该模å—用到的除了Action之外的æƒé™åˆ—表 -sys_permission_list: [] - -# ä¸»è¡¨æ ¼ -view { - # æ•°æ®é¡¹ï¼Œ 默认包å«è¡¨å¤´ä¸é…置的数æ®é¡¹ - data_keys: [ "id", "part_code", "parent_part_code" ] - # 主键 - primary_key: "id" - # 分组键 - group_key: "part_code" - # 父结点键 - # å½“æ— æ¤å€¼ï¼Œè¡¨ç¤ºæŒ‰ç…§group_keyè¿›è¡Œåˆ†ç»„ï¼Œæ ‘å½¢ç»“æž„åªæœ‰ä¸€çº§ - # 当有æ¤å€¼ï¼Œè¡¨ç¤ºæŒ‰ç…§parent_keyç”Ÿæˆæ ‘形结果,å¯èƒ½æœ‰å¤šçº§ - parent_key: "parent_part_code" - # åŒçº§ç»“点排åºçš„é”® - seq_key: "seq" - # 水平表头 - horizontal_header: [ - { - "name": "part_title", - "display": "Part Title", - "displayRole": "$part_title", - "width": 150 - }, - { - "name": "sys_version", - "display": "Sys Version", - "displayRole": "$sys_version", - "width": 150, - }, - { - "name": "status", - "display": "Status", - "displayRole": "$status", - "width": 150 - } - ] - # 默认排åºåˆ— - sort_by: "" - # æ•°æ®é›† - data_set { - # æ•°æ®åº“表å - db_table_name: "" - # 若有sql, 以sql为最优先 - # è‹¥æ— sql, é»˜è®¤æ ¹æ®è¡¨å¤´çš„é…置进行查询 - db_sql: """ - SELECT id, part_code, parent_part_code, part_title, sys_version, status - FROM - ( - SELECT *, rank() OVER( PARTITION BY part_code ORDER BY sys_version DESC ) AS r - FROM mes_partnumber_prod_parts - WHERE partnumber_id = 28 AND status != 'deleted' AND sys_version <= 99999999 - ) AS t - WHERE r = 1 - """ - } -} diff --git a/demo/examples/module/TEMPLATEDEMO/template-demo-single-tree-3/actions/refresh.js b/demo/examples/module/TEMPLATEDEMO/template-demo-single-tree-3/actions/refresh.js deleted file mode 100644 index da9a43b138999c2b690f1011c255c6051d01d686..0000000000000000000000000000000000000000 --- a/demo/examples/module/TEMPLATEDEMO/template-demo-single-tree-3/actions/refresh.js +++ /dev/null @@ -1,23 +0,0 @@ -try { - this.refresh(); -} catch(e) { - print(e); -} - -/*---ACTION--- -ICON: "refresh" -LABEL: "Refresh" -LABEL_ZHCN: "刷新" -LABEL_ZHTW: "刷新" -ACCEL: "F5" -TOOLTIP: "Refresh" -TOOLTIP_ZHCN: "刷新" -TOOLTIP_ZHTW: "刷新" -CHECKED: "" -GROUP: "" -STYLE: "size=small button_style=icon" -LANG: "JavaScript" -STATUS: "Release" -VERSION: "1" -STATEHOOK: "" ----ACTION---*/ \ No newline at end of file diff --git a/demo/examples/module/TEMPLATEDEMO/template-demo-single-tree-3/module.conf b/demo/examples/module/TEMPLATEDEMO/template-demo-single-tree-3/module.conf deleted file mode 100644 index 529055e0a5c495f13db29ea04d047174467fd6a9..0000000000000000000000000000000000000000 --- a/demo/examples/module/TEMPLATEDEMO/template-demo-single-tree-3/module.conf +++ /dev/null @@ -1,80 +0,0 @@ -# æ¨¡å—æ ‡é¢˜ -sys_title: "Template Demo - Single Tree Show" -sys_title_en: "Template Demo - Single Tree Show" -sys_title_zhcn: "æ ‘å½¢ä¿¡æ¯å±•示" -sys_title_zhtw: "" -# 模å—å›¾æ ‡ -sys_icon: "wpforms" -# 模å—对应的æ’ä»¶DLLåç§° -sys_plugin: "toptemplateclassplugin" -# 模å—对应的类å -sys_class: "TopTemplateClass1A" -# 许å¯è¯éªŒè¯é”® -sys_license_key: "" -# 打开模å—çš„æƒé™ -sys_open_right: "" -# è¯è¨€åŒ…,默认包å«è‡ªå·±æ¨¡å—çš„è¯è¨€åŒ… -sys_lang_list: [] -# 当关é—çª—å£æ—¶ï¼Œå¦‚æžœæç¤ºæ˜¯å¦ä¿å˜ï¼Œä¿å˜è°ƒç”¨çš„action -sys_save_action: "" -# 该模å—用到的枚举列表 -sys_enum_list: [] -# 该模å—用到的除了Action之外的æƒé™åˆ—表 -sys_permission_list: [] - -# ä¸»è¡¨æ ¼ -view { - # æ•°æ®é¡¹ï¼Œ 默认包å«è¡¨å¤´ä¸é…置的数æ®é¡¹ - data_keys: [ "id", "parent_id" ] - # 主键 - primary_key: "id" - # 分组键 - group_key: "" - # 父结点键 - # å½“æ— æ¤å€¼ï¼Œè¡¨ç¤ºæŒ‰ç…§group_keyè¿›è¡Œåˆ†ç»„ï¼Œæ ‘å½¢ç»“æž„åªæœ‰ä¸€çº§ - # 当有æ¤å€¼ï¼Œè¡¨ç¤ºæŒ‰ç…§parent_keyç”Ÿæˆæ ‘形结果,å¯èƒ½æœ‰å¤šçº§ - child_key: "id" - parent_key: "parent_id" - # åŒçº§ç»“点排åºçš„é”® - seq_key: "seq" - # 水平表头 - horizontal_header: [ - { - "name": "code", - "display": "Code", - "displayRole": "$code", - "search": "string" - }, - { - "name": "name", - "display": "Name", - "displayRole": "$name", - "search": "string" - }, - { - "name": "node_type", - "display": "Node Type", - "displayRole": "$node_type" - }, - { - "name": "status", - "display": "Status", - "displayRole": "$status" - }, - { - "name": "stop_reason", - "display": "Stop Reason", - "displayRole": "$stop_reason" - } - ] - # 默认排åºåˆ— - sort_by: "" - # æ•°æ®é›† - data_set { - # æ•°æ®åº“表å - db_table_name: "mes_workcenter" - # 若有sql, 以sql为最优先 - # è‹¥æ— sql, é»˜è®¤æ ¹æ®è¡¨å¤´çš„é…置进行查询 - db_sql: "" - } -} diff --git a/demo/examples/module/TEMPLATEDEMO/template-demo-single-tree-3/uim.conf b/demo/examples/module/TEMPLATEDEMO/template-demo-single-tree-3/uim.conf deleted file mode 100644 index 3b68078a3756a2d9d7c9038e575d100c7f150d85..0000000000000000000000000000000000000000 --- a/demo/examples/module/TEMPLATEDEMO/template-demo-single-tree-3/uim.conf +++ /dev/null @@ -1,11 +0,0 @@ -# è¡¨æ ¼çš„å³é”®èœå• -"TREEVIEW_POPUP": [ - {"type":"menuitem","action":"refresh"} -] - -# 工具æ -"MAIN_TOOLBAR": [ - {"type":"stretcher"}, - {"type":"searchentry","name":"SEARCH_ENTRY"} - {"type":"toolitem","action":"refresh"} -] \ No newline at end of file diff --git a/demo/examples/module/TEMPLATEDEMO/template-demo-single-tree/actions/__hooks__.js b/demo/examples/module/TEMPLATEDEMO/template-demo-single-tree/actions/__hooks__.js deleted file mode 100644 index 1ae37900aadb03ba32c0710d62d06e757fde157a..0000000000000000000000000000000000000000 --- a/demo/examples/module/TEMPLATEDEMO/template-demo-single-tree/actions/__hooks__.js +++ /dev/null @@ -1,8 +0,0 @@ -this.afterViewInit = function() { - print("afterViewInit"); - var self = this; - print("self.uim(): ", self.uim()); - var label1 = self.uim().getWidget("MAIN_TOOLBAR/label1"); - print("label1: ", label1); - print("text:", label1.text); -} \ No newline at end of file diff --git a/demo/examples/module/TEMPLATEDEMO/template-demo-single-tree/lang.conf b/demo/examples/module/TEMPLATEDEMO/template-demo-single-tree/lang.conf deleted file mode 100644 index acb478250076975f2a0ecd6684bdc90e436db1a7..0000000000000000000000000000000000000000 --- a/demo/examples/module/TEMPLATEDEMO/template-demo-single-tree/lang.conf +++ /dev/null @@ -1,67 +0,0 @@ -"Are you sure to remove selected items?": {en: "Are you sure to remove selected items?",zhcn: "确定è¦ç§»é™¤æ‰€é€‰é¡¹å—?"} -"Calc Impedance": {en: "Calc Impedance",zhcn: "计算阻抗"} -"Calc Mode": {en: "Calc Mode",zhcn: "计算方å¼"} -"Coupon": {en: "Coupon", zhcn: "测试æ¡"} -"Coupon Name": {en: "Coupon Name",zhcn: "测试æ¡"} -"Display Mode": {en: "Display Mode",zhcn: "显示模å¼"} -"Edit Impedance": {en: "Edit Impedance",zhcn: "编辑阻抗"} -"Imp Tol Value": {en: "Imp Tol Value",zhcn: "阻抗公差值"} -"Impedance Type": {en: "Impedance Type",zhcn: "阻抗类型"} -"Impedance value outof range!": {en: "Impedance value outof range!",zhcn: "阻抗值超出范围ï¼"} -"Line Width Range": {en: "Line Width Range",zhcn: "线宽范围"} -"Line width outof range!": {en: "Line width outof range!",zhcn: "线宽超出范围ï¼"} -"New Impedance": {en: "New Impedance",zhcn: "新建阻抗"} -"Org Gnd Spacing": {en: "Org Gnd Spacing",zhcn: "原稿铜é¢é—´è·"} -"Org Line Width": {en: "Org Line Width",zhcn: "原稿线宽"} -"Org Spacing": {en: "Org Spacing",zhcn: "原稿线è·"} -"Org W/S": {en: "Org W/S",zhcn: "原稿线宽/é—´è·"} -"Polar Type": {en: "Polar Type",zhcn: "Polar 类型"} -"Ref Layer": {en: "Ref Layer",zhcn: "å‚考层"} -"Signal Layer": {en: "Signal Layer",zhcn: "ä¿¡å·å±‚"} -"Target Impedance": {en: "Target Impedance",zhcn: "ç›®æ ‡é˜»æŠ—å€¼"} -"This job has no coupon data,please check job name!": {en: "This job has no coupon data,please check job name!",zhcn: "当å‰job没有couponæ•°æ®,请确认jobåç§°æ˜¯å¦æ£ç¡®"} -"Choose Unit" : {en: "Choose Unit", zhcn: "选择å•ä½"} -"Row": {en: "Row", zhcn: "行å·"} -"Type": {en: "Type", zhcn: "类型"} -"Target": {en: "Target", zhcn: "ç›®æ ‡é˜»æŠ—"} -"Calc Tol": {en: "Calc Tol", zhcn: "计算公差"} -"Calc Tol Value": {en: "", zhcn: "计算公差值"} -"Org To Groud": {en: "Org To Groud", zhcn: "原稿è·é“œ"} -"Cal. W/S": {en: "Cal. W/S", zhcn: "计算线宽/é—´è·"} -"To Groud": {en: "To Groud", zhcn: "è·é“œ"} -"Alert Msg": {en: "Alert Msg", zhcn: "è¦æŠ¥ä¿¡æ¯"} -"Test Line Length": {en: "Test Line Length", zhcn: "阻抗æ¡çº¿å®½"} -"Line Adjust": {en: "Line Adjust", zhcn: "线宽范围"} -"Unit": { en: "Unit", zhcn: "å•ä½" } -"Group Type": {en: "Group Type", zhcn: "分组类型"} -"Max Coupon Set": {en: "Max Coupon Set", zhcn: "最大阻抗数"} -"Group Config": {en: "Group Config", zhcn: "分组设置"} -"Are you sure you want to overwrite the original packet data?": {en: "Are you sure you want to overwrite the original packet data?", zhcn:"ä½ ç¡®å®šè¦è¦†ç›–原æ¥çš„分组数æ®å—?"} -"Are you sure cancel grouping?": {en: "Are you sure cancel grouping?", zhcn: "ä½ ç¡®å®šè¦å–消分组å—?"} -"Manual Grouping": {en: "Manual Grouping", zhcn: "手动分组"} -"Polar Calc Info": {en: "", zhcn: "Polar计算信æ¯"} -"Polar Para": {en: "", zhcn: "Polar傿•°"} -"Line Width": {en: "", zhcn: "线宽"} -"Spacing": {en: "", zhcn: "线è·"} -"Gnd Spacing": {en: "", zhcn: "è·é“œ"} -"Impedance Value": {en: "Impedance", zhcn: "阻抗"} -"Adjust Calc Result": {en: "", zhcn: "调整计算结果"} -"Apply": {en: "", zhcn: "应用"} -"Calculate": {en: "", zhcn: "计算"} -"Calculating impedance.": {en: "", zhcn: "计算阻抗."} -"SM Open Impedance": {en: "", zhcn: "防焊å‰é˜»æŠ—"} -"Please calculate the impedance first!": {en: "", zhcn: "请先计算阻抗ï¼"} -"Initialize polar calculator failed, make sure polar software installed succefully!": {en: "", zhcn: "åˆå§‹åŒ–Polar计算器失败,请检查Polar软件是å¦å·²æ£å¸¸å®‰è£…ï¼"} -"The coupon name can only contain letters, numbers, underscores, plus signs, minus signs.": {en: "", zhcn: "åç§°ä¸åªèƒ½åŒ…å«å—æ¯ï¼Œæ•°å—ï¼Œä¸‹åˆ’çº¿ï¼ŒåŠ å·æˆ–å‡å·ï¼"} -"Create Symmetric IMP": {en: "", zhcn: "创建对称阻抗"} -"Top Ref Layer": {en: "", zhcn: "上å‚考层"} -"Bot Ref Layer": {en: "", zhcn: "下å‚考层"} -"Delete item": {en: "Delete item", zhcn: "åˆ é™¤æ¡ç›®", zhtw: ""} -"Sure": {en: "Sure", zhcn: "确认", zhtw: ""} -"There is not a qualified impedance here. Sure to Save it?" : {en: "", zhcn: "有ä¸åˆæ ¼é˜»æŠ—,确定è¦ç»§ç»ä¿å˜å—?"} -"Ignore and Save": {en: "", zhcn: "忽略并ä¿å˜"} -"Data changes has been made on the group and it is recommended to re-group and save. Sure to Save it?": {en: "", zhcn: "分组ä¸çš„æ•°æ®è¢«æ›´æ”¹äº†ï¼Œå»ºè®®é‡æ–°åˆ†ç»„åŽå†ä¿å˜ã€‚确定è¦ç»§ç»ä¿å˜ï¼Ÿ"} -"There is an uncalculated impedance here here. Sure to Save it?": {en: "", zhcn: "有未被计算的阻抗,确定è¦ç»§ç»ä¿å˜å—?"} -"Calculate Mode": {en: "", zhcn: "试算模å¼"} -"Choose Calculate Mode": {en: "", zhcn: "选择试算模å¼"} -"Detail Info": {en: "", zhcn: "阻抗详情"} \ No newline at end of file diff --git a/demo/examples/module/TEMPLATEDEMO/template-demo-single-tree/module.conf b/demo/examples/module/TEMPLATEDEMO/template-demo-single-tree/module.conf deleted file mode 100644 index b43806ae05fbeeabea5e167e25d575b4158c68f0..0000000000000000000000000000000000000000 --- a/demo/examples/module/TEMPLATEDEMO/template-demo-single-tree/module.conf +++ /dev/null @@ -1,150 +0,0 @@ -# æ¨¡å—æ ‡é¢˜ -sys_title: "Template Demo - Single Tree Show" -sys_title_en: "Template Demo - Single Tree Show" -sys_title_zhcn: "æ ‘å½¢ä¿¡æ¯å±•示" -sys_title_zhtw: "" -# 模å—å›¾æ ‡ -sys_icon: "wpforms" -# 模å—对应的æ’ä»¶DLLåç§° -sys_plugin: "toptemplateclassplugin" -# 模å—对应的类å -sys_class: "TopTemplateClass1A" -# 许å¯è¯éªŒè¯é”® -sys_license_key: "" -# 打开模å—çš„æƒé™ -sys_open_right: "" -# è¯è¨€åŒ…,默认包å«è‡ªå·±æ¨¡å—çš„è¯è¨€åŒ… -sys_lang_list: [] -# 当关é—çª—å£æ—¶ï¼Œå¦‚æžœæç¤ºæ˜¯å¦ä¿å˜ï¼Œä¿å˜è°ƒç”¨çš„action -sys_save_action: "" -# 该模å—用到的枚举列表 -sys_enum_list: [] -# 该模å—用到的除了Action之外的æƒé™åˆ—表 -sys_permission_list: [] - -# ä¸»è¡¨æ ¼ -view { - # æ•°æ®é¡¹ï¼Œ 默认包å«è¡¨å¤´ä¸é…置的数æ®é¡¹ - data_keys: [ "uid" ] - # 主键 - primary_key: "" - # 分组键 - group_key: "impedance_type" - # 父结点键 - # å½“æ— æ¤å€¼ï¼Œè¡¨ç¤ºæŒ‰ç…§group_keyè¿›è¡Œåˆ†ç»„ï¼Œæ ‘å½¢ç»“æž„åªæœ‰ä¸€çº§ - # 当有æ¤å€¼ï¼Œè¡¨ç¤ºæŒ‰ç…§parent_keyç”Ÿæˆæ ‘形结果,å¯èƒ½æœ‰å¤šçº§ - parent_key: "" - # 水平表头 - horizontal_header: [ - { - "name": "_category", - "display": "Coupon Name", - "resizeMode": "Interactive", - "size": 120, - "displayRole": "$_category" - }, - { - "name": "impedance_polar_type", - "display": "Polar Type", - "resizeMode": "Interactive", - "size": 200, - "displayRole": "$impedance_polar_type" - }, - { - "name": "impedance_type", - "display": "Type", - "resizeMode": "Interactive", - "size": 150, - "displayRole": "$impedance_type" - }, - { - "name": "target_impedance", - "display": "Target", - "resizeMode": "Interactive", - "size": 100, - "displayRole": "$target_impedance" - }, - { - "name": "calculate_impedance", - "display": "Calc Impedance", - "resizeMode": "Interactive", - "size": 100, - "displayRole": "$calculate_impedance", - "foregroundRole": "$calculate_impedance_fgcolor", - "backgroundRole": "$calculate_impedance_bgcolor" - }, - { - "name": "sm_open_impedance", - "display": "SM Open Impedance", - "resizeMode": "Interactive", - "size": 100, - "displayRole": "$sm_open_impedance", - }, - { - "name": "signal1", - "display": "Signal Layer", - "resizeMode": "Interactive", - "size": 100, - "displayRole": "$signal1" - }, - { - "name": "org_coplanar_spacing", - "display": "Org To Groud", - "resizeMode": "Interactive", - "size": 100, - "displayRole": "$org_coplanar_spacing" - }, - { - "name": "coplanar_spacing", - "display": "To Groud", - "resizeMode": "Interactive", - "size": 100, - "displayRole": "$coplanar_spacing" - }, - { - "name": "org_coplanar_spacing", - "display": "Org To Groud", - "resizeMode": "Interactive", - "size": 100, - "displayRole": "$org_coplanar_spacing" - }, - { - "name": "coplanar_spacing", - "display": "To Groud", - "resizeMode": "Interactive", - "size": 100, - "displayRole": "$coplanar_spacing" - }, - { - "name": "coupon_name", - "display": "Coupon Name", - "resizeMode": "Interactive", - "size": 100, - "displayRole": "$coupon_name" - }, - { - "name": "alert_msg", - "display": "Alert Msg", - "resizeMode": "Interactive", - "size": 100, - "displayRole": "$alert_msg" - }, - { - "name": "test_line_length", - "display": "Test Line Length", - "resizeMode": "Interactive", - "size": 100, - "displayRole": "$test_line_length" - } - ] - # 默认排åºåˆ— - sort_by: "" - # æ•°æ®é›† - data_set { - # æ•°æ®åº“表å - db_table_name: "" - # 若有sql, 以sql为最优先 - # è‹¥æ— sql, é»˜è®¤æ ¹æ®è¡¨å¤´çš„é…置进行查询 - db_sql: "SELECT * FROM pdm_job_imp WHERE job_id = 16188" - } -} diff --git a/demo/examples/module/TEMPLATEDEMO/template-demo-single-tree/uim.conf b/demo/examples/module/TEMPLATEDEMO/template-demo-single-tree/uim.conf deleted file mode 100644 index 6919d02f43428976d5f6a73be3db2946600b0475..0000000000000000000000000000000000000000 --- a/demo/examples/module/TEMPLATEDEMO/template-demo-single-tree/uim.conf +++ /dev/null @@ -1,4 +0,0 @@ -# 工具æ -"MAIN_TOOLBAR": [ - {"type": "label", "name": "label1", "text": "Label 1" } -] diff --git a/demo/examples/module/TEMPLATEDEMO/template-demo-table-with-detail/actions/__hooks__.js b/demo/examples/module/TEMPLATEDEMO/template-demo-table-with-detail/actions/__hooks__.js deleted file mode 100644 index 8d02a05e7ff0e4cd7e67f198be068f6da89c564f..0000000000000000000000000000000000000000 --- a/demo/examples/module/TEMPLATEDEMO/template-demo-table-with-detail/actions/__hooks__.js +++ /dev/null @@ -1,9 +0,0 @@ -this.afterViewInit = function() { - this.sound = new TSound("BEEP"); - this.sound.setLoops(10); -} - -this.afterDataRefresh = function() { - print("___________afterDataRefresh____________"); - this.sound.play(); -}; \ No newline at end of file diff --git a/demo/examples/module/TEMPLATEDEMO/template-demo-table-with-detail/actions/cancel_detail.js b/demo/examples/module/TEMPLATEDEMO/template-demo-table-with-detail/actions/cancel_detail.js deleted file mode 100644 index d779d76536b51c3803ec49b85d0e6f176c6853d6..0000000000000000000000000000000000000000 --- a/demo/examples/module/TEMPLATEDEMO/template-demo-table-with-detail/actions/cancel_detail.js +++ /dev/null @@ -1,23 +0,0 @@ -try { - this.reloadItem(); -} catch(e) { - print(e); -} - -/*---ACTION--- -ICON: "cancel" -LABEL: "Cancel" -LABEL_ZHCN: "å–æ¶ˆ" -LABEL_ZHTW: "å–æ¶ˆ" -ACCEL: "" -TOOLTIP: "Cancel the action" -TOOLTIP_ZHCN: "å–æ¶ˆåŠ¨ä½œ" -TOOLTIP_ZHTW: "å–æ¶ˆå‹•作" -CHECKED: "" -GROUP: "" -STYLE: "button_style=text" -LANG: "JavaScript" -STATUS: "Release" -VERSION: "1" -STATEHOOK: "return (this.isDetailModified()) ? 'enable' : 'hide';" ----ACTION---*/ \ No newline at end of file diff --git a/demo/examples/module/TEMPLATEDEMO/template-demo-table-with-detail/actions/copy_detail.js b/demo/examples/module/TEMPLATEDEMO/template-demo-table-with-detail/actions/copy_detail.js deleted file mode 100644 index b6575ff3d9da682bdcbad460ec22be224f71c1c3..0000000000000000000000000000000000000000 --- a/demo/examples/module/TEMPLATEDEMO/template-demo-table-with-detail/actions/copy_detail.js +++ /dev/null @@ -1,24 +0,0 @@ -try { - this.copyItem(); -} catch(e) { - print(e); -} - -/*---ACTION--- -ICON: "copy" -LABEL: "Copy" -LABEL_ZHCN: "å¤åˆ¶" -LABEL_ZHTW: "複製" -ACCEL: "" -TOOLTIP: "Copy" -TOOLTIP_ZHCN: "å¤åˆ¶" -TOOLTIP_ZHTW: "複製" -PERMISSION: "" -CHECKED: "" -GROUP: "" -STYLE: "button_style=icon" -LANG: "JavaScript" -STATUS: "Release" -VERSION: "1" -STATEHOOK: "return this.isDetailModified() ? 'hide' : 'enable';" ----ACTION---*/ \ No newline at end of file diff --git a/demo/examples/module/TEMPLATEDEMO/template-demo-table-with-detail/actions/delete.js b/demo/examples/module/TEMPLATEDEMO/template-demo-table-with-detail/actions/delete.js deleted file mode 100644 index d840dea86623cce996b33795cd4e213cc8635d3b..0000000000000000000000000000000000000000 --- a/demo/examples/module/TEMPLATEDEMO/template-demo-table-with-detail/actions/delete.js +++ /dev/null @@ -1,30 +0,0 @@ -try { - var ans = TMessageBox.question(this, this.ttr("Are you sure to delete selected items?"), '', '', - [this.ttr('Delete')+':Yes:Yes:Primary', this.ttr('Cancel')+':Cancel:Cancel:Normal']); - if (ans != 'Yes') { - return; - } - this.deleteItems(this.selectedItems()); -} catch (e) { - print(e); -} - - -/*---ACTION--- -ICON: "times-circle" -LABEL: "Delete" -LABEL_ZHCN: "刪除" -LABEL_ZHTW: "刪除" -ACCEL: "Delete" -TOOLTIP: "Delete" -TOOLTIP_ZHCN: "åˆ é™¤" -TOOLTIP_ZHTW: "刪除" -PERMISSION: "" -CHECKED: "" -GROUP: "" -STYLE: "size=small button_style=both" -LANG: "JavaScript" -STATUS: "Release" -VERSION: "1" -STATEHOOK: "if(this.selectedItems().length > 0 && !this.isDetailModified()){return 'enable'}else{return 'disable'}" ----ACTION---*/ \ No newline at end of file diff --git a/demo/examples/module/TEMPLATEDEMO/template-demo-table-with-detail/actions/new.js b/demo/examples/module/TEMPLATEDEMO/template-demo-table-with-detail/actions/new.js deleted file mode 100644 index 590fc7ea676bd1fd2e02117d64f074b32ffe53ee..0000000000000000000000000000000000000000 --- a/demo/examples/module/TEMPLATEDEMO/template-demo-table-with-detail/actions/new.js +++ /dev/null @@ -1,24 +0,0 @@ -try { - this.newItem(); -} catch (e) { - print(e); -} - -/*---ACTION--- -ICON: "plus" -LABEL: "New" -LABEL_ZHCN: "新建" -LABEL_ZHTW: "新建" -ACCEL: "Ctrl+N" -TOOLTIP: "New" -TOOLTIP_ZHCN: "新建" -TOOLTIP_ZHTW: "新建" -PERMISSION: "" -CHECKED: "" -GROUP: "" -STYLE: "button_style=both" -LANG: "JavaScript" -STATUS: "Release" -VERSION: "1" -STATEHOOK: "if (!this.isDetailModified()){return 'enable'} else {return 'disable'}" ----ACTION---*/ \ No newline at end of file diff --git a/demo/examples/module/TEMPLATEDEMO/template-demo-table-with-detail/actions/refresh.js b/demo/examples/module/TEMPLATEDEMO/template-demo-table-with-detail/actions/refresh.js deleted file mode 100644 index 2e614ee674d6491c2e204d3076c5ac08e43f382c..0000000000000000000000000000000000000000 --- a/demo/examples/module/TEMPLATEDEMO/template-demo-table-with-detail/actions/refresh.js +++ /dev/null @@ -1,22 +0,0 @@ -try { - this.refresh(); -} catch (e) { - print(e); -} -/*---ACTION--- -ICON: "refresh" -LABEL: "Refresh" -LABEL_ZHCN: "刷新" -LABEL_ZHTW: "刷新" -ACCEL: "F5" -TOOLTIP: "Refresh" -TOOLTIP_ZHCN: "刷新" -TOOLTIP_ZHTW: "刷新" -CHECKED: "" -GROUP: "" -STYLE: "size=small button_style=icon" -LANG: "JavaScript" -STATUS: "Release" -VERSION: "1" -STATEHOOK: "" ----ACTION---*/ \ No newline at end of file diff --git a/demo/examples/module/TEMPLATEDEMO/template-demo-table-with-detail/actions/refresh_detail.js b/demo/examples/module/TEMPLATEDEMO/template-demo-table-with-detail/actions/refresh_detail.js deleted file mode 100644 index 6d474848a9ce3fd9dc56b30305d3cc0fca6c5692..0000000000000000000000000000000000000000 --- a/demo/examples/module/TEMPLATEDEMO/template-demo-table-with-detail/actions/refresh_detail.js +++ /dev/null @@ -1,22 +0,0 @@ -try { - this.reloadItem(); -} catch(e) { - print(e); -} -/*---ACTION--- -ICON: "refresh" -LABEL: "Refresh" -LABEL_ZHCN: "刷新" -LABEL_ZHTW: "刷新" -ACCEL: "" -TOOLTIP: "Reload data from database" -TOOLTIP_ZHCN: "釿–°ä»Žæ•°æ®åº“åŠ è½½æ•°æ®" -TOOLTIP_ZHTW: "釿–°å¾žæ•¸æ“šåº«åŠ è¼‰æ•¸æ“š" -CHECKED: "" -GROUP: "" -STYLE: "button_style=icon" -LANG: "JavaScript" -STATUS: "Release" -VERSION: "1" -STATEHOOK: "return this.isDetailModified() ? 'hide' : 'enable';" ----ACTION---*/ \ No newline at end of file diff --git a/demo/examples/module/TEMPLATEDEMO/template-demo-table-with-detail/actions/save_detail.js b/demo/examples/module/TEMPLATEDEMO/template-demo-table-with-detail/actions/save_detail.js deleted file mode 100644 index 49420e218089e83f861149ba43a0f0584f014afb..0000000000000000000000000000000000000000 --- a/demo/examples/module/TEMPLATEDEMO/template-demo-table-with-detail/actions/save_detail.js +++ /dev/null @@ -1,23 +0,0 @@ -try { - this.saveItem(); -} catch(e) { - print(e); -} -/*---ACTION--- -ICON: "save" -LABEL: "Save" -LABEL_ZHCN: "ä¿å˜" -LABEL_ZHTW: "ä¿å˜" -ACCEL: "Ctrl+S" -TOOLTIP: "Save" -TOOLTIP_ZHCN: "ä¿å˜" -TOOLTIP_ZHTW: "ä¿å˜" -PERMISSION: "" -CHECKED: "" -GROUP: "" -STYLE: " button_style=both" -LANG: "JavaScript" -STATUS: "Release" -VERSION: "1" -STATEHOOK: "return (this.isDetailModified()) ? 'enable' : 'disable';" ----ACTION---*/ \ No newline at end of file diff --git a/demo/examples/module/TEMPLATEDEMO/template-demo-table-with-detail/detail.ui.js b/demo/examples/module/TEMPLATEDEMO/template-demo-table-with-detail/detail.ui.js deleted file mode 100644 index 7c95f70c2dc95127680263c30d032250f69a677a..0000000000000000000000000000000000000000 --- a/demo/examples/module/TEMPLATEDEMO/template-demo-table-with-detail/detail.ui.js +++ /dev/null @@ -1,37 +0,0 @@ -function func(self) { - return { - type: 'ScrollArea', - property: { widget_resizable: true, frame_shape: 'NoFrame'}, - child: { - type: 'FormLayout', - child: [ - { - name: 'name', - type: 'LineEdit', - title: self.ttr('Name'), - pack: { label: self.ttr('Name') } - }, - { - name: 'title', - type: 'LineEdit', - title: self.ttr('Title'), - pack: { label: self.ttr('Title') } - }, - { - name: 'value_type', - type: 'ComboBox', - title: self.ttr('Value Type'), - pack: { label: self.ttr('Value Type') }, - property: { item_list: TOPENM.enumList("mes-attrname-datatype").toComboList() } - }, - { - name: 'remark', - type: 'PlainTextEdit', - title: self.ttr('Remark'), - pack: { label: self.ttr('Remark') }, - property: { vertical_scroll_bar_policy : 'ScrollBarAlwaysOff' } - } - ] - } - }; -} \ No newline at end of file diff --git a/demo/examples/module/TEMPLATEDEMO/template-demo-table-with-detail/lang.conf b/demo/examples/module/TEMPLATEDEMO/template-demo-table-with-detail/lang.conf deleted file mode 100644 index 88c6bee4212307e0fb5a2657bc3f164535847c72..0000000000000000000000000000000000000000 --- a/demo/examples/module/TEMPLATEDEMO/template-demo-table-with-detail/lang.conf +++ /dev/null @@ -1,4 +0,0 @@ -"Name": { en: "", zhcn: "åç§°" } -"Title": { en: "", zhcn: "æ ‡é¢˜" } -"Value Type": { en: "", zhcn: "æ•°æ®ç±»åž‹" } -"Remark": { en: "", zhcn: "备注" } \ No newline at end of file diff --git a/demo/examples/module/TEMPLATEDEMO/template-demo-table-with-detail/module.conf b/demo/examples/module/TEMPLATEDEMO/template-demo-table-with-detail/module.conf deleted file mode 100644 index 7f2ed661e82fc094a703a995cb82a8ae4a6b5586..0000000000000000000000000000000000000000 --- a/demo/examples/module/TEMPLATEDEMO/template-demo-table-with-detail/module.conf +++ /dev/null @@ -1,75 +0,0 @@ -# æ¨¡å—æ ‡é¢˜ -sys_title: "Template Demo - Table With Detail" -sys_title_en: "Template Demo - Table With Detail" -sys_title_zhcn: "带详细信æ¯çš„å•表展示" -sys_title_zhtw: "" -# 模å—å›¾æ ‡ -sys_icon: "wpforms" -# 模å—对应的æ’ä»¶DLLåç§° -sys_plugin: "toptemplateclassplugin" -# 模å—对应的类å -sys_class: "TopTemplateClass3" -# 许å¯è¯éªŒè¯é”® -sys_license_key: "" -# 打开模å—çš„æƒé™ -sys_open_right: "" -# è¯è¨€åŒ…,默认包å«è‡ªå·±æ¨¡å—çš„è¯è¨€åŒ… -sys_lang_list: [] -# 当关é—çª—å£æ—¶ï¼Œå¦‚æžœæç¤ºæ˜¯å¦ä¿å˜ï¼Œä¿å˜è°ƒç”¨çš„action -sys_save_action: "" -# 该模å—用到的枚举列表 -sys_enum_list: [ - "mes-attrname-datatype" -] -# 该模å—用到的除了Action之外的æƒé™åˆ—表 -sys_permission_list: [] - -# ä¸»è¡¨æ ¼ -view { - # 定时刷新间隔(å•ä½ï¼šç§’) - # è‹¥ä¸é…置,或间隔å°äºŽ0ï¼Œåˆ™ä¸æ‰§è¡Œå®šæ—¶åˆ·æ–° - timing_refresh_interval: 10 - - # æ•°æ®é¡¹ï¼Œ 默认包å«è¡¨å¤´ä¸é…置的数æ®é¡¹ - data_keys: [ "id", "process_code", "remark" ] - # 主键 - primary_key: "id" - # 水平表头 - horizontal_header: [ - { - "name": "name", - "display": "Name", - "displayRole": "$name", - "resizeMode": "ResizeToContents", - "search": "string" - }, - { - "name": "title", - "display": "Title", - "displayRole": "$title", - "resizeMode": "ResizeToContents", - "search": "string" - }, - { - "name": "value_type", - "display": "Value Type", - "displayRole": "$value_type.text", - "resizeMode": "ResizeToContents", - "format": "enum(mes-attrname-datatype)" - } - ] - # 默认排åºåˆ— - sort_by: "id DESC" - # æ•°æ®é›† - data_set { - # æ•°æ®åº“表å - db_table_name: "iqs_cp_variable_lib" - # åˆ é™¤æ ‡è®° - # 若为空表示åšç‰©ç†åˆ 除 - db_del_flag_key: "del_flag" - # 过滤项 - db_filter { - # "process_code": "L01" - } - } -} diff --git a/demo/examples/module/TEMPLATEDEMO/template-demo-table-with-detail/uim.conf b/demo/examples/module/TEMPLATEDEMO/template-demo-table-with-detail/uim.conf deleted file mode 100644 index b9c7203f9922f7b0d89481d759a759009dfeb51c..0000000000000000000000000000000000000000 --- a/demo/examples/module/TEMPLATEDEMO/template-demo-table-with-detail/uim.conf +++ /dev/null @@ -1,31 +0,0 @@ -# 工具æ -"MAIN_TOOLBAR": [ - {"type":"toolitem","action":"new"}, - {"type":"stretcher"}, - {"type":"searchentry","name":"SEARCH_ENTRY"} - {"type":"toolitem","action":"refresh"} -] - -# è¡¨æ ¼çš„å³é”®èœå• -"TABLEVIEW_POPUP": [ - {"type":"menuitem","action":"new"}, - {"type":"separator"}, - {"type":"menuitem","action":"delete"}, - {"type":"separator"}, - {"type":"menuitem","action":"refresh"} -] - -# 底部工具æ -"BOTTOM_TOOLBAR" : [ - {"type":"stretcher"}, - {"type":"pagetool","name":"PAGE_TOOL"} -] - -# 详细信æ¯å·¥å…·æ -"DETAIL_TOOLBAR": [ - {"type":"toolitem","action":"save_detail"}, - {"type":"stretcher"}, - {"type":"toolitem","action":"copy_detail"}, - {"type":"toolitem","action":"cancel_detail"}, - {"type":"toolitem","action":"refresh_detail"} -] \ No newline at end of file diff --git a/demo/examples/module/TEMPLATEDEMO/template-demo-template7/actions/__hooks__.js b/demo/examples/module/TEMPLATEDEMO/template-demo-template7/actions/__hooks__.js deleted file mode 100644 index 06341d55e186b58650690b39c43ea46550d036e5..0000000000000000000000000000000000000000 --- a/demo/examples/module/TEMPLATEDEMO/template-demo-template7/actions/__hooks__.js +++ /dev/null @@ -1,3 +0,0 @@ -this.afterViewInit = function() { - -} \ No newline at end of file diff --git a/demo/examples/module/TEMPLATEDEMO/template-demo-template7/actions/refresh.js b/demo/examples/module/TEMPLATEDEMO/template-demo-template7/actions/refresh.js deleted file mode 100644 index 90ca99faa78ff621ca81df5f5df2389123e9efa8..0000000000000000000000000000000000000000 --- a/demo/examples/module/TEMPLATEDEMO/template-demo-template7/actions/refresh.js +++ /dev/null @@ -1,23 +0,0 @@ -try { - this.refresh(); -} catch (e) { - print(e) -} -/*---ACTION--- -ICON: "refresh" -LABEL: "Refresh" -LABEL_ZHCN: "刷新" -LABEL_ZHTW: "刷新" -ACCEL: "" -TOOLTIP: "Refresh" -TOOLTIP_ZHCN: "刷新" -TOOLTIP_ZHTW: "刷新" -PERMISSION: "" -CHECKED: "" -GROUP: "" -STYLE: "button_style=both" -LANG: "JavaScript" -STATUS: "Release" -VERSION: "1" -STATEHOOK: "" ----ACTION---*/ \ No newline at end of file diff --git a/demo/examples/module/TEMPLATEDEMO/template-demo-template7/actions/reset.js b/demo/examples/module/TEMPLATEDEMO/template-demo-template7/actions/reset.js deleted file mode 100644 index 9540e5aec5704fa1f22a7f0967765514dd5baf93..0000000000000000000000000000000000000000 --- a/demo/examples/module/TEMPLATEDEMO/template-demo-template7/actions/reset.js +++ /dev/null @@ -1,23 +0,0 @@ -try { - this.resetSearchUiLoader(); -} catch (e) { - print(e); -} -/*---ACTION--- -ICON: "" -LABEL: "Reset" -LABEL_ZHCN: "é‡ç½®" -LABEL_ZHTW: "é‡ç½®" -ACCEL: "" -TOOLTIP: "Reset" -TOOLTIP_ZHCN: "é‡ç½®" -TOOLTIP_ZHTW: "é‡ç½®" -PERMISSION: "" -CHECKED: "" -GROUP: "" -STYLE: "button_style=both" -LANG: "JavaScript" -STATUS: "Release" -VERSION: "1" -STATEHOOK: "" ----ACTION---*/ \ No newline at end of file diff --git a/demo/examples/module/TEMPLATEDEMO/template-demo-template7/actions/search.js b/demo/examples/module/TEMPLATEDEMO/template-demo-template7/actions/search.js deleted file mode 100644 index 5a1e5fde6d1e9e905ff5d017d5f6274e325a3324..0000000000000000000000000000000000000000 --- a/demo/examples/module/TEMPLATEDEMO/template-demo-template7/actions/search.js +++ /dev/null @@ -1,23 +0,0 @@ -try { - this.refresh(); -} catch (e) { - print(e); -} -/*---ACTION--- -ICON: "search" -LABEL: "Search" -LABEL_ZHCN: "查询" -LABEL_ZHTW: "查詢" -ACCEL: "" -TOOLTIP: "Search" -TOOLTIP_ZHCN: "查询" -TOOLTIP_ZHTW: "查詢" -PERMISSION: "" -CHECKED: "" -GROUP: "" -STYLE: "button_style=both" -LANG: "JavaScript" -STATUS: "Release" -VERSION: "1" -STATEHOOK: "" ----ACTION---*/ \ No newline at end of file diff --git a/demo/examples/module/TEMPLATEDEMO/template-demo-template7/detail.ui.js b/demo/examples/module/TEMPLATEDEMO/template-demo-template7/detail.ui.js deleted file mode 100644 index 30eb107946a4d588c97815ff30f1ce1ab6b26dd5..0000000000000000000000000000000000000000 --- a/demo/examples/module/TEMPLATEDEMO/template-demo-template7/detail.ui.js +++ /dev/null @@ -1,37 +0,0 @@ -function func(self) { - return { - type: 'ScrollArea', - property: { widget_resizable: true, frame_shape: 'NoFrame'}, - child: { - type: 'FormLayout', - child: [ - { - name: 'name', - type: 'LineEdit', - title: self.ttr('Name'), - pack: { label: self.ttr('Name') } - }, - { - name: 'title', - type: 'LineEdit', - title: self.ttr('Title'), - pack: { label: self.ttr('Title') } - }, - { - name: 'value_type', - type: 'ComboBox', - title: self.ttr('Value Type'), - pack: { label: self.ttr('Value Type') }, - property: { item_list: TOPENM.enumList("mes-attrname-datatype").toComboList() } - }, - { - name: 'remark', - type: 'PlainTextEdit', - title: self.ttr('Remark'), - pack: { label: self.ttr('Remark') }, - property: { vertical_scroll_bar_policy : 'ScrollBarAlwaysOff' } - } - ] - } - }; - } \ No newline at end of file diff --git a/demo/examples/module/TEMPLATEDEMO/template-demo-template7/lang.conf b/demo/examples/module/TEMPLATEDEMO/template-demo-template7/lang.conf deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/demo/examples/module/TEMPLATEDEMO/template-demo-template7/module.conf b/demo/examples/module/TEMPLATEDEMO/template-demo-template7/module.conf deleted file mode 100644 index 4f0002760e077d2d3e0a5b07373369e840f1465d..0000000000000000000000000000000000000000 --- a/demo/examples/module/TEMPLATEDEMO/template-demo-template7/module.conf +++ /dev/null @@ -1,87 +0,0 @@ -# æ¨¡å—æ ‡é¢˜ -sys_title: "Template7-Demo" -sys_title_en: "Template7-Demo" -sys_title_zhcn: "Template7-Demo" -sys_title_zhtw: "" - -# 模å—å›¾æ ‡ -sys_icon: "" - -# 模å—对应的æ’ä»¶DLLåç§° -sys_plugin: "toptemplateclassplugin" - -# 模å—对应的类å -sys_class: "TopTemplateClass7" - -# 许å¯è¯éªŒè¯é”® -sys_license_key: "" - -# 打开模å—çš„æƒé™ -sys_open_right: "" - -# è¯è¨€åŒ…,默认包å«è‡ªå·±æ¨¡å—çš„è¯è¨€åŒ… -sys_lang_list: [] - -# 当关é—çª—å£æ—¶ï¼Œå¦‚æžœæç¤ºæ˜¯å¦ä¿å˜ï¼Œä¿å˜è°ƒç”¨çš„action -sys_save_action: "" - -# 该模å—用到的枚举列表 -sys_enum_list: [] - -# 该模å—用到的除了Action之外的æƒé™åˆ—表 -sys_permission_list: [] - -# search.ui设置æˆå¯¼èˆªæ å½¢å¼ï¼Œå½“is_navi=1æ—¶ï¼Œä»¥å¯¼èˆªæ æ˜¾ç¤ºï¼›å¦åˆ™æ™®é€šæŽ§ä»¶å±•示;navi_is_expand=1, 表示导航æ 展开; -search_ui_set { - is_navi: 1, - navi_is_expand: 1 -} - -# 界é¢å¸ƒå±€ -view_ratio: "4:3:3" -#è¡¨æ ¼ -# ä¸»è¡¨æ ¼ -view { - # æ•°æ®é¡¹ï¼Œ 默认包å«è¡¨å¤´ä¸é…置的数æ®é¡¹ - data_keys: [ "id", "process_code", "remark" ] - # 主键 - primary_key: "id" - # 水平表头 - horizontal_header: [ - { - "name": "name", - "display": "Name", - "displayRole": "$name", - "resizeMode": "ResizeToContents", - "search": "string" - }, - { - "name": "title", - "display": "Title", - "displayRole": "$title", - "resizeMode": "ResizeToContents", - "search": "string" - }, - { - "name": "value_type", - "display": "Value Type", - "displayRole": "$value_type.text", - "resizeMode": "ResizeToContents", - "format": "enum(mes-attrname-datatype)" - } - ] - # 默认排åºåˆ— - sort_by: "id DESC" - # æ•°æ®é›† - data_set { - # æ•°æ®åº“表å - db_table_name: "iqs_cp_variable_lib" - # åˆ é™¤æ ‡è®° - # 若为空表示åšç‰©ç†åˆ 除 - db_del_flag_key: "del_flag" - # 过滤项 - db_filter { - # "process_code": "L01" - } - } -} \ No newline at end of file diff --git a/demo/examples/module/TEMPLATEDEMO/template-demo-template7/search.ui.js b/demo/examples/module/TEMPLATEDEMO/template-demo-template7/search.ui.js deleted file mode 100644 index 15cb9e1a2bbea2141c581e900f5db53af2ed36c7..0000000000000000000000000000000000000000 --- a/demo/examples/module/TEMPLATEDEMO/template-demo-template7/search.ui.js +++ /dev/null @@ -1,14 +0,0 @@ -function func(self) { - return { - type: "FormGridLayout", - child: [ - { - name: 'value_type', - type: 'ComboBox', - title: self.ttr('Value Type'), - pack: { label: self.ttr('Value Type') }, - property: { item_list: TOPENM.enumList("mes-attrname-datatype").toComboList() } - } - ] - } -} \ No newline at end of file diff --git a/demo/examples/module/TEMPLATEDEMO/template-demo-template7/uim.conf b/demo/examples/module/TEMPLATEDEMO/template-demo-template7/uim.conf deleted file mode 100644 index 1fa326f7b8371ef7e4267fc431aa732290d7a626..0000000000000000000000000000000000000000 --- a/demo/examples/module/TEMPLATEDEMO/template-demo-template7/uim.conf +++ /dev/null @@ -1,26 +0,0 @@ -# æœç´¢é¡µå·¥å…·æ -"SEARCH_TOOLBAR": [ - {"type": "toolitem", "action": "reset"}, - {"type": "toolitem", "action": "search"} -] - - -# 主界é¢å·¥å…·æ -"MAIN_TOOLBAR": [ - {"type":"stretcher"}, - {"type": "toolitem", "action": "refresh"} -] - -# è¡¨æ ¼å¼¹å‡ºèœå• -"TABLEVIEW_POPUP": [ -] - -# 底部工具æ -"BOTTOM_TOOLBAR": [ - {"type":"stretcher"}, - {"type": "pagetool","name":"PAGE_TOOL"} -] - -#详情页工具æ -"DEATIL_TOOLBAR": [ -] \ No newline at end of file diff --git a/demo/examples/module/TEMPLATEDEMO/template-demo-uiloader/module.conf b/demo/examples/module/TEMPLATEDEMO/template-demo-uiloader/module.conf deleted file mode 100644 index a9e85a20c03a0704844d026918b94ceec7dff501..0000000000000000000000000000000000000000 --- a/demo/examples/module/TEMPLATEDEMO/template-demo-uiloader/module.conf +++ /dev/null @@ -1,43 +0,0 @@ -# æ¨¡å—æ ‡é¢˜ -sys_title: "Template Demo - UiLoader" -sys_title_en: "Template Demo - UiLoader" -sys_title_zhcn: "Template Demo - UiLoader" -sys_title_zhtw: "" -# 模å—å›¾æ ‡ -sys_icon: "wpforms" -# 模å—对应的æ’ä»¶DLLåç§° -sys_plugin: "toptemplateclassplugin" -# 模å—对应的类å -sys_class: "TopTemplateClass2" -# 许å¯è¯éªŒè¯é”® -sys_license_key: "" -# 打开模å—çš„æƒé™ -sys_open_right: "" -# è¯è¨€åŒ…,默认包å«è‡ªå·±æ¨¡å—çš„è¯è¨€åŒ… -sys_lang_list: [] -# 当关é—çª—å£æ—¶ï¼Œå¦‚æžœæç¤ºæ˜¯å¦ä¿å˜ï¼Œä¿å˜è°ƒç”¨çš„action -sys_save_action: "" -# 该模å—用到的枚举列表 -sys_enum_list: [] -# 该模å—用到的除了Action之外的æƒé™åˆ—表 -sys_permission_list: [] - -# UiLoaderé…ç½® -uiloader { - # åœ¨å½“å‰æ¨¡å—çš„Ui Key, - ui_key: "test0" - # Uiå—符串 - # è‹¥ui_key与ui_stråŒæ—¶å˜åœ¨ï¼Œä»¥ui_str为准 - ui_str: "" - - # æ•°æ®é›† - data_set { - # æ•°æ®åº“表å - "db_table_name": "sys_user", - "db_filter" : { - "id" : 1 - } - # 若有sql, 以sql为最优先 - "db_sql": "" - } -} diff --git a/demo/examples/module/TEMPLATEDEMO/template-demo-uiloader/test0.ui.js b/demo/examples/module/TEMPLATEDEMO/template-demo-uiloader/test0.ui.js deleted file mode 100644 index 3646951a8565d55a9be8cc9a095b41202ca80a8c..0000000000000000000000000000000000000000 --- a/demo/examples/module/TEMPLATEDEMO/template-demo-uiloader/test0.ui.js +++ /dev/null @@ -1,34 +0,0 @@ -function func(self) { - return { - type: "FormGridLayout", - child: [ - { - name: "id", - type: "LineEdit", - pack: { label: "ID" } - }, - { - name: "username", - type: "LineEdit", - pack: { label: "Name" }, - setter: function (obj, value, self) { - var dd = this.getObject('fullname').getData('value'); - print('setter'); - print(dd); - }, - getter: function(obj){ - var dd = this.getObject('fullname').getData('value'); - print('getter'); - print(typeof(dd)); - print(dd); - return obj.getData('value'); - } - }, - { - name: "fullname", - type: "LineEdit", - pack: { label: "Name" } - }, - ] - } -} \ No newline at end of file diff --git a/demo/examples/module/TEMPLATEDEMO/template4-demo-filter-by-sql/actions/cancel_detail.js b/demo/examples/module/TEMPLATEDEMO/template4-demo-filter-by-sql/actions/cancel_detail.js deleted file mode 100644 index 9eb4ceb8f1ed8d7103adaacc679446dacfd8d620..0000000000000000000000000000000000000000 --- a/demo/examples/module/TEMPLATEDEMO/template4-demo-filter-by-sql/actions/cancel_detail.js +++ /dev/null @@ -1,23 +0,0 @@ -try { - this.reloadItem(); -} catch(e) { - print(e); -} - -/*---ACTION--- -ICON: "cancel" -LABEL: "Cancel" -LABEL_ZHCN: "å–æ¶ˆ" -LABEL_ZHTW: "å–æ¶ˆ" -ACCEL: "" -TOOLTIP: "Cancel Edit" -TOOLTIP_ZHCN: "å–æ¶ˆç¼–辑" -TOOLTIP_ZHTW: "刷新編輯" -CHECKED: "" -GROUP: "" -STYLE: "button_style=text" -LANG: "JavaScript" -STATUS: "Release" -VERSION: "1" -STATEHOOK: "return (this.isDetailModified()) ? 'enable' : 'hide';" ----ACTION---*/ \ No newline at end of file diff --git a/demo/examples/module/TEMPLATEDEMO/template4-demo-filter-by-sql/actions/copy_detail.js b/demo/examples/module/TEMPLATEDEMO/template4-demo-filter-by-sql/actions/copy_detail.js deleted file mode 100644 index b6575ff3d9da682bdcbad460ec22be224f71c1c3..0000000000000000000000000000000000000000 --- a/demo/examples/module/TEMPLATEDEMO/template4-demo-filter-by-sql/actions/copy_detail.js +++ /dev/null @@ -1,24 +0,0 @@ -try { - this.copyItem(); -} catch(e) { - print(e); -} - -/*---ACTION--- -ICON: "copy" -LABEL: "Copy" -LABEL_ZHCN: "å¤åˆ¶" -LABEL_ZHTW: "複製" -ACCEL: "" -TOOLTIP: "Copy" -TOOLTIP_ZHCN: "å¤åˆ¶" -TOOLTIP_ZHTW: "複製" -PERMISSION: "" -CHECKED: "" -GROUP: "" -STYLE: "button_style=icon" -LANG: "JavaScript" -STATUS: "Release" -VERSION: "1" -STATEHOOK: "return this.isDetailModified() ? 'hide' : 'enable';" ----ACTION---*/ \ No newline at end of file diff --git a/demo/examples/module/TEMPLATEDEMO/template4-demo-filter-by-sql/actions/delete.js b/demo/examples/module/TEMPLATEDEMO/template4-demo-filter-by-sql/actions/delete.js deleted file mode 100644 index d840dea86623cce996b33795cd4e213cc8635d3b..0000000000000000000000000000000000000000 --- a/demo/examples/module/TEMPLATEDEMO/template4-demo-filter-by-sql/actions/delete.js +++ /dev/null @@ -1,30 +0,0 @@ -try { - var ans = TMessageBox.question(this, this.ttr("Are you sure to delete selected items?"), '', '', - [this.ttr('Delete')+':Yes:Yes:Primary', this.ttr('Cancel')+':Cancel:Cancel:Normal']); - if (ans != 'Yes') { - return; - } - this.deleteItems(this.selectedItems()); -} catch (e) { - print(e); -} - - -/*---ACTION--- -ICON: "times-circle" -LABEL: "Delete" -LABEL_ZHCN: "刪除" -LABEL_ZHTW: "刪除" -ACCEL: "Delete" -TOOLTIP: "Delete" -TOOLTIP_ZHCN: "åˆ é™¤" -TOOLTIP_ZHTW: "刪除" -PERMISSION: "" -CHECKED: "" -GROUP: "" -STYLE: "size=small button_style=both" -LANG: "JavaScript" -STATUS: "Release" -VERSION: "1" -STATEHOOK: "if(this.selectedItems().length > 0 && !this.isDetailModified()){return 'enable'}else{return 'disable'}" ----ACTION---*/ \ No newline at end of file diff --git a/demo/examples/module/TEMPLATEDEMO/template4-demo-filter-by-sql/actions/new.js b/demo/examples/module/TEMPLATEDEMO/template4-demo-filter-by-sql/actions/new.js deleted file mode 100644 index 590fc7ea676bd1fd2e02117d64f074b32ffe53ee..0000000000000000000000000000000000000000 --- a/demo/examples/module/TEMPLATEDEMO/template4-demo-filter-by-sql/actions/new.js +++ /dev/null @@ -1,24 +0,0 @@ -try { - this.newItem(); -} catch (e) { - print(e); -} - -/*---ACTION--- -ICON: "plus" -LABEL: "New" -LABEL_ZHCN: "新建" -LABEL_ZHTW: "新建" -ACCEL: "Ctrl+N" -TOOLTIP: "New" -TOOLTIP_ZHCN: "新建" -TOOLTIP_ZHTW: "新建" -PERMISSION: "" -CHECKED: "" -GROUP: "" -STYLE: "button_style=both" -LANG: "JavaScript" -STATUS: "Release" -VERSION: "1" -STATEHOOK: "if (!this.isDetailModified()){return 'enable'} else {return 'disable'}" ----ACTION---*/ \ No newline at end of file diff --git a/demo/examples/module/TEMPLATEDEMO/template4-demo-filter-by-sql/actions/refresh.js b/demo/examples/module/TEMPLATEDEMO/template4-demo-filter-by-sql/actions/refresh.js deleted file mode 100644 index 2e614ee674d6491c2e204d3076c5ac08e43f382c..0000000000000000000000000000000000000000 --- a/demo/examples/module/TEMPLATEDEMO/template4-demo-filter-by-sql/actions/refresh.js +++ /dev/null @@ -1,22 +0,0 @@ -try { - this.refresh(); -} catch (e) { - print(e); -} -/*---ACTION--- -ICON: "refresh" -LABEL: "Refresh" -LABEL_ZHCN: "刷新" -LABEL_ZHTW: "刷新" -ACCEL: "F5" -TOOLTIP: "Refresh" -TOOLTIP_ZHCN: "刷新" -TOOLTIP_ZHTW: "刷新" -CHECKED: "" -GROUP: "" -STYLE: "size=small button_style=icon" -LANG: "JavaScript" -STATUS: "Release" -VERSION: "1" -STATEHOOK: "" ----ACTION---*/ \ No newline at end of file diff --git a/demo/examples/module/TEMPLATEDEMO/template4-demo-filter-by-sql/actions/refresh_detail.js b/demo/examples/module/TEMPLATEDEMO/template4-demo-filter-by-sql/actions/refresh_detail.js deleted file mode 100644 index 6d474848a9ce3fd9dc56b30305d3cc0fca6c5692..0000000000000000000000000000000000000000 --- a/demo/examples/module/TEMPLATEDEMO/template4-demo-filter-by-sql/actions/refresh_detail.js +++ /dev/null @@ -1,22 +0,0 @@ -try { - this.reloadItem(); -} catch(e) { - print(e); -} -/*---ACTION--- -ICON: "refresh" -LABEL: "Refresh" -LABEL_ZHCN: "刷新" -LABEL_ZHTW: "刷新" -ACCEL: "" -TOOLTIP: "Reload data from database" -TOOLTIP_ZHCN: "釿–°ä»Žæ•°æ®åº“åŠ è½½æ•°æ®" -TOOLTIP_ZHTW: "釿–°å¾žæ•¸æ“šåº«åŠ è¼‰æ•¸æ“š" -CHECKED: "" -GROUP: "" -STYLE: "button_style=icon" -LANG: "JavaScript" -STATUS: "Release" -VERSION: "1" -STATEHOOK: "return this.isDetailModified() ? 'hide' : 'enable';" ----ACTION---*/ \ No newline at end of file diff --git a/demo/examples/module/TEMPLATEDEMO/template4-demo-filter-by-sql/actions/save_detail.js b/demo/examples/module/TEMPLATEDEMO/template4-demo-filter-by-sql/actions/save_detail.js deleted file mode 100644 index 49420e218089e83f861149ba43a0f0584f014afb..0000000000000000000000000000000000000000 --- a/demo/examples/module/TEMPLATEDEMO/template4-demo-filter-by-sql/actions/save_detail.js +++ /dev/null @@ -1,23 +0,0 @@ -try { - this.saveItem(); -} catch(e) { - print(e); -} -/*---ACTION--- -ICON: "save" -LABEL: "Save" -LABEL_ZHCN: "ä¿å˜" -LABEL_ZHTW: "ä¿å˜" -ACCEL: "Ctrl+S" -TOOLTIP: "Save" -TOOLTIP_ZHCN: "ä¿å˜" -TOOLTIP_ZHTW: "ä¿å˜" -PERMISSION: "" -CHECKED: "" -GROUP: "" -STYLE: " button_style=both" -LANG: "JavaScript" -STATUS: "Release" -VERSION: "1" -STATEHOOK: "return (this.isDetailModified()) ? 'enable' : 'disable';" ----ACTION---*/ \ No newline at end of file diff --git a/demo/examples/module/TEMPLATEDEMO/template4-demo-filter-by-sql/detail.ui.js b/demo/examples/module/TEMPLATEDEMO/template4-demo-filter-by-sql/detail.ui.js deleted file mode 100644 index decfed8d68b3cbae1a59a948ee2511806661ed7d..0000000000000000000000000000000000000000 --- a/demo/examples/module/TEMPLATEDEMO/template4-demo-filter-by-sql/detail.ui.js +++ /dev/null @@ -1,332 +0,0 @@ -[ - { - name: "basic_info_area", - type: "ScrollArea", - property: { - widget_resizable: true, - frame_shape: 'NoFrame' - }, - pack: { label: self.ttr('Basic Info') }, - child: [ - { - name: 'formlayout', - type: 'FormGridLayout', - property: { - // label_alignment: 'AlignTop | AlignRight', - // horizontal_spacing: 10, - // vertical_spacing: 10, - // margin: 10, - columns: 2 - }, - child: [ - { - name: "id", - type: "LineEdit", - title: self.ttr(""), - pack: {column_span: 2}, - initCallback: function(obj,value,self) { - obj.setVisible(false) - } - }, - { - name: "attr_data.machine_code", - type: "LineEdit", - title: self.ttr("Machine Code"), - property: { readonly: true}, - validate: 'NOTNULL', - child: [ - { - name: "choose_machine", - type: "ToolButton", - property: { - text: self.ttr("Choose") - }, - callback: function(){ - var query = new TSqlQueryV2(T_SQLCNT_POOL.getSqlDatabase()); - var sql = "SELECT id,code,name FROM tpm_machine ORDER BY id DESC"; - try { - var dialog = new TTableViewDialog(self) - dialog.width = 400; - dialog.height = 600; - dialog.setTitle(self.ttr("Choose Machine")); - dialog.setButtons([self.ttr('Ok')+':Ok:Ok:Primary',self.ttr('Cancel')+':Cancel:Cancel:ERROR']); - dialog.setPrimaryKey('id'); - dialog.setSearchKeys(['code','name']); - dialog.setHeaderItem( - [ - { - }, - { - name: 'id', - display: self.ttr('ID'), - displayRole: '$id' - }, - { - name: 'code', - display: self.ttr('Machine Code'), - displayRole: '$code', - size: 100 - }, - { - name: 'name', - display: self.ttr('Machine Name'), - displayRole: '$name', - size: 200 - } - ] - ); - dialog.setDataKeyList(['id','code','name']); - dialog.loadData(query.selectArrayMap(sql,{})); - dialog.refreshData(true); - var ret = dialog.run(); - if(_.isEmpty(ret)) return; - this.getObject('attr_data.machine_code').setData('value',ret[0]['code']); - this.getObject('attr_data.machine_name').setData('value',ret[0]['name']); - this.getObject('machine_id').setData('value',ret[0]['id']); - } catch(e) { - GUI.msgbox({detail: e}) - print(e) - } - } - } - ] - }, - { - name: "attr_data.machine_name", - type: "LineEdit", - title: self.ttr("Machine Name"), - state: function(obj,self){ - return 'disable'; - } - }, - { - name: "class", - type: "ComboBox", - title: self.ttr("Maintenance Type"), - property: { - item_list: TOPENM.enumList("tpm-machine-maintenance-plan-class").toComboList() - }, - validate: 'NOTNULL' - }, - { - name: "title", - type: "LineEdit", - title: self.ttr("Title"), - }, - { - name: "priority", - type: "ComboBox", - title: self.ttr("Priority"), - property: { - item_list: TOPENM.enumList("tpm-machine-maintenance-plan-priority").toComboList() - }, - }, - { - name: "category", - type: "ComboBox", - title: self.ttr("Maintenance Category"), - property: { - item_list: TOPENM.enumList("tpm-machine-maintenance-plan-category").toComboList() - }, - }, - { - name: "execution_cycle", - type: "ComboBox", - title: self.ttr("Execution Type"), - property: { - item_list: TOPENM.enumList("tpm-machine-maintenance-plan-execution-cycle").toComboList() - }, - validate: 'NOTNULL' - }, - { - type: 'HBoxLayout', - title: self.ttr("Execution Cycle"), - state: function(obj,self){ - if (this.getValue("execution_cycle") == "cycle"){ - return 'show'; - } - return 'hide'; - }, - child: [ - { - name: "attr_data.cycle_value", - type: "IntLineEdit", - title: self.ttr("Cycle Value"), - state: function(obj,self){ - if (this.getValue("execution_cycle") == "cycle"){ - return 'show'; - } - return 'hide'; - }, - }, - { - name: "attr_data.cycle_unit", - type: "ComboBox", - title: self.ttr("Cycle Unit"), - state: function(obj,self){ - if (this.getValue("execution_cycle") == "cycle"){ - return 'show'; - } - return 'hide'; - }, - property: { - item_list: TOPENM.enumList("tpm-machine-maintenance-plan-cycle").toComboList() - }, - } - ] - }, - { - name: "last_execution_time", - type: "DateTimeEdit", - title: self.ttr("Last Execution Time"), - state: function(obj,self){ - return 'disable'; - }, - getter: function(obj,self){ - if(_.isEmpty(obj.getData())){ - return null; - } - return obj.getData(); - } - }, - { - name: "next_execution_time", - type: "DateTimeEdit", - title: self.ttr("Next Execution Time"), - getter: function(obj,self){ - if(_.isEmpty(obj.getData())){ - return null; - } - return obj.getData(); - }, - validate: "NOTNULL" - }, - { - name: "status", - type: "ComboBox", - title: self.ttr("Status"), - property: { - item_list: TOPENM.enumList("tpm-machine-maintenance-plan-status").toComboList() - } - }, - { - type: 'HBoxLayout' - }, - { - name: "maintenance_person_name", - type: "LineEdit", - title: self.ttr("Maintenance Person"), - pack: {column_span: 2}, - getter: function(obj,self){ - if (_.isEmpty(obj.getData())){ - return null; - } - return obj.getData().split(','); - }, - setter: function(obj,val,self){ - if (_.isEmpty(val))return; - val = val.replace('{','['); - val = val.replace('}',']'); - obj.setData('value',eval('(' + val + ')').join(',')) - }, - child: [ - { - name: "choose_person", - type: "ToolButton", - property: { - text: self.ttr("Choose") - }, - callback: function(){ - var query = new TSqlQueryV2(T_SQLCNT_POOL.getSqlDatabase()); - var sql = "SELECT id,fullname FROM sys_user ORDER BY id DESC"; - try { - var dialog = new TTableViewDialog(self) - dialog.width = 400; - dialog.height = 600; - dialog.setTitle(self.ttr("Choose Person")); - dialog.setButtons([self.ttr('Ok')+':Ok:Ok:Primary',self.ttr('Cancel')+':Cancel:Cancel:ERROR']); - dialog.setPrimaryKey('id'); - dialog.setSearchKeys(['fullname']); - dialog.setSelectionMode(3); - dialog.setHeaderItem( - [ - { - }, - { - name: 'id', - display: self.ttr('ID'), - displayRole: '$id' - }, - { - name: 'fullname', - display: self.ttr('Name'), - displayRole: '$fullname', - size: 200 - } - ] - ); - dialog.setDataKeyList(['id','fullname']); - dialog.loadData(query.selectArrayMap(sql,{})); - dialog.refreshData(true); - var ret = dialog.run(); - if(_.isEmpty(ret)) return; - var idList = []; - var nameList = []; - _.each(ret,function(people){ - idList.push(people.id); - nameList.push(people.fullname) - }); - this.getObject('maintenance_person_name').setData('value',nameList.join(',')); - this.getObject('maintenance_person_ids').setData('value',idList.join(',')); - } catch(e) { - GUI.msgbox({detail: e}) - print(e) - } - } - } - ] - }, - { - name: "description", - type: "PlainTextEdit", - title: self.ttr("Maintenance Content"), - pack: {column_span: 2}, - property: { - min_row_count: 8 - } - }, - { - name: "maintenance_person_ids", - type: "LineEdit", - pack: {column_span: 2}, - initCallback: function(obj,value,self) { - obj.setVisible(false) - }, - getter: function(obj,self){ - if (_.isEmpty(obj.getData())){ - return null; - } - return obj.getData().split(','); - }, - setter: function(obj,val,self){ - if (_.isEmpty(val))return; - val = val.replace('{','['); - val = val.replace('}',']'); - obj.setData('value',eval('(' + val + ')').join(',')) - }, - }, - { - name: "machine_id", - type: "LineEdit", - initCallback: function(obj,value,self) { - obj.setVisible(false) - } - }, - { - type: 'Stretch' - } - ] - } - ] - } -] \ No newline at end of file diff --git a/demo/examples/module/TEMPLATEDEMO/template4-demo-filter-by-sql/lang.conf b/demo/examples/module/TEMPLATEDEMO/template4-demo-filter-by-sql/lang.conf deleted file mode 100644 index 5f495a8fd4494436f6ca47dad0bd64aa2376eb94..0000000000000000000000000000000000000000 --- a/demo/examples/module/TEMPLATEDEMO/template4-demo-filter-by-sql/lang.conf +++ /dev/null @@ -1,36 +0,0 @@ -"Title": {en: "Title", zhcn: "æ ‡é¢˜", zhtw: "標題"} -"Navigation": {en: "Navigation", zhcn: "导航æ ", zhtw: "導航欄"} -"Display Navigation": {en: "Display Navigation", zhcn: "显示导航æ ", zhtw: "顯示導航欄"} -"Catergory": {en: "Catergory", zhcn: "分类", zhtw: "分類"} -"Priority": {en: "Priority", zhcn: "优先级", zhtw: "優先級"} -"Last execution time": {en: "Last execution time", zhcn: "上次维护时间", zhtw: "上次ç¶è·æ™‚é–“"} -"Next execution time": {en: "Next execution time", zhcn: "下次维护时间", zhtw: "下次ç¶è·æ™‚é–“"} -"Machine Code": {en: "Machine Code", zhcn: "设备编å·", zhtw: "è¨å‚™ç·¨è™Ÿ"} -"Machine Name": {en: "Machine Name", zhcn: "设备åç§°", zhtw: "è¨å‚™å稱"} -"Maintenance Type": {en: "Maintenance Type", zhcn: "维护类型", zhtw: "ç¶è·é¡žåž‹"} -"Maintenance Category": {en: "Maintenance Category", zhcn: "维护分类", zhtw: "ç¶è·åˆ†é¡ž"} -"Execution Type": {en: "Execution Type", zhcn: "计划类型", zhtw: "計劃類型"} -"Execution Cycle": {en: "Execution Cycle", zhcn: "计划周期", zhtw: "計劃週期"} -"Status": {en: "Status", zhcn: "状æ€", zhtw: "狀態"} -"Last Execution Time": {en: "Last Execution Time", zhcn: "上次执行时间", zhtw: "上次執行時間"} -"Next Execution Time": {en: "Next Execution Time", zhcn: "下次执行时间", zhtw: "下次執行時間"} -"Maintenance Person": {en: "Maintenance Person", zhcn: "维护人员", zhtw: "ç¶è·äººå“¡"} -"Maintenance Content": {en: "Maintenance Content", zhcn: "维护内容", zhtw: "ç¶è·å…§å®¹"} -"Class": {en: "Maintenance Class", zhcn: "维护类型", zhtw: "ç¶è·é¡žåž‹"} -"Load data successful!": {en: "Load data successful!" ,zhcn: "åŠ è½½æ•°æ®å®Œæˆï¼" ,zhtw: "åŠ è¼‰æ•¸æ“šå®Œæˆï¼"} -"Exec Plan": {en: "Exec Plan", zhcn: "执行计划", zhtw: "執行計劃"} -"Class": {en: "Maintenance Class", zhcn: "维护类型", zhtw: ""} -"Choose": {en: "Choose", zhcn: "选择", zhtw: "鏿“‡"} -"Choose Machine": {en: "Choose Machine", zhcn: "选择设备", zhtw: "鏿“‡è¨å‚™"} -"Choose Person": {en: "Choose Person", zhcn: "选择人员", zhtw: "鏿“‡äººå“¡"} -"Record No": {en: "Record No", zhcn: "记录å•å·", zhtw: "記錄單號"} -"Apply Time": {en: "Apply Time", zhcn: "申请时间", zhtw: "申請時間"} -"Apply Person": {en: "Apply Person", zhcn: "申请人", zhtw: "申請人"} -"Start Time": {en: "Start Time", zhcn: "开始时间", zhtw: "開始時間"} -"End Time": {en: "End Time", zhcn: "ç»“æŸæ—¶é—´", zhtw: "çµæŸæ™‚é–“"} -"Basic Info": {en: "Basic Info", zhcn: "基本信æ¯", zhtw: "基本信æ¯"} -"Ok": {en: "OK", zhcn: "确定", zhtw: "確定"} -"Cancel": {en: "Cancel", zhcn: "å–æ¶ˆ", zhtw: "å–æ¶ˆ"} -"Cycle Value": {en: "Cycle Value", zhcn: "周期", zhtw: "週期"} -"Cycle Unit": {en: "Cycle Unit", zhcn: "周期å•ä½", zhtw: "週期單ä½"} -"Name": {en: "Name", zhcn: "å§“å", zhtw: "å§“å"} \ No newline at end of file diff --git a/demo/examples/module/TEMPLATEDEMO/template4-demo-filter-by-sql/module.conf b/demo/examples/module/TEMPLATEDEMO/template4-demo-filter-by-sql/module.conf deleted file mode 100644 index d23ba2138eb23d1605bc797f63d8bc58d5e85151..0000000000000000000000000000000000000000 --- a/demo/examples/module/TEMPLATEDEMO/template4-demo-filter-by-sql/module.conf +++ /dev/null @@ -1,141 +0,0 @@ -# æ¨¡å—æ ‡é¢˜ -sys_title: "Template4 Demo - Filter By Sql Where" -sys_title_en: "Template4 Demo - Filter By Sql Where" -sys_title_zhcn: "模æ¿4-sql whereè¯å¥è¿‡æ»¤" -sys_title_zhtw: "" -# 模å—å›¾æ ‡ -sys_icon: "wpforms" -# 模å—对应的æ’ä»¶DLLåç§° -sys_plugin: "toptemplateclassplugin" -# 模å—对应的类å -sys_class: "TopTemplateClass4" -# 许å¯è¯éªŒè¯é”® -sys_license_key: "" -# 打开模å—çš„æƒé™ -sys_open_right: "" -# è¯è¨€åŒ…,默认包å«è‡ªå·±æ¨¡å—çš„è¯è¨€åŒ… -sys_lang_list: [] -# 当关é—çª—å£æ—¶ï¼Œå¦‚æžœæç¤ºæ˜¯å¦ä¿å˜ï¼Œä¿å˜è°ƒç”¨çš„action -sys_save_action: "" -# 该模å—用到的枚举列表 -sys_enum_list: [] -# 该模å—用到的除了Action之外的æƒé™åˆ—表 -sys_permission_list: [] -# 导航æ -# is_checkable,=true 或1, 表示支æŒcheckboxå½¢å¼; =false 或0, 表示éžcheckboxå½¢å¼ -navi: { - format: "filter_by_sql_where", - is_checkable: false, - categories: [ - { - name: "class", - text: "Maintenance Type", - icon: "", - VISIBLE: 1, - EXPAND: 1, - checked: 0, - data: "" - CHILDREN: [ - { - name: "repair", - text: "ç»´ä¿®", - VISIBLE: 1, - checked: 0, - data: "class = 'repair'" - }, - { - name: "maintenance", - text: "ä¿å…»" - VISIBLE: 1, - checked: 0, - data: "class = 'maintenance'" - }, - { - name: "spot_check", - text: "点检", - VISIBLE: 1, - checked: 0, - data: "class = 'spot_check'" - } - ] - } - ] -} - -# ä¸»è¡¨æ ¼ -view { - # æ•°æ®é¡¹ï¼Œ 默认包å«è¡¨å¤´ä¸é…置的数æ®é¡¹ - data_keys: ["id","class","status","attr_data.machine_code","attr_data.machine_name","machine_id","execution_cycle","attr_data.cycle_value","attr_data.cycle_unit" - "title","category","priority","last_execution_time","next_execution_time","description","maintenance_person_name"] - # 主键 - primary_key: "id" - # 水平表头 - horizontal_header: [ - { - "name": "attr_data.machine_code", - "display": "Machine Code", - "displayRole": "$attr_data.machine_code", - "size": 100 - }, - { - "name": "attr_data.machine_name", - "display": "Machine Name", - "displayRole": "$attr_data.machine_name", - "size": 100 - }, - { - "name": "title", - "display": "Title", - "displayRole": "$title", - "size": 100, - "search": "string" - }, - { - "name": "class", - "display": "Class", - "displayRole": "$class.text", - "size": 100, - "format": "enum(tpm-machine-maintenance-plan-class)" - }, - { - "name": "category", - "display": "Catergory", - "displayRole": "$category.text", - "size": 100 - "format": "enum(tpm-machine-maintenance-plan-category)" - }, - { - "name": "priority", - "display": "Priority", - "displayRole": "$priority", - "size": 100 - }, - { - "name": "status", - "display": "Status", - "displayRole": "$status.text", - "size": 100, - "format": "enum(tpm-machine-maintenance-plan-status)" - }, - { - "name": "last_execution_time", - "display": "Last execution time", - "displayRole": "$last_execution_time", - "size": 200 - }, - { - "name": "next_execution_time", - "display": "Next execution time", - "displayRole": "$next_execution_time", - "size": 200 - } - ] - # 默认排åºåˆ— - sort_by: "id DESC" - # æ•°æ®é›† - data_set { - # æ•°æ®åº“表å - db_table_name: "tpm_machine_maintenance_plan" - db_filter: "status = 'waiting' or next_execution_time is not null" - } -} diff --git a/demo/examples/module/TEMPLATEDEMO/template4-demo-filter-by-sql/uim.conf b/demo/examples/module/TEMPLATEDEMO/template4-demo-filter-by-sql/uim.conf deleted file mode 100644 index b9c7203f9922f7b0d89481d759a759009dfeb51c..0000000000000000000000000000000000000000 --- a/demo/examples/module/TEMPLATEDEMO/template4-demo-filter-by-sql/uim.conf +++ /dev/null @@ -1,31 +0,0 @@ -# 工具æ -"MAIN_TOOLBAR": [ - {"type":"toolitem","action":"new"}, - {"type":"stretcher"}, - {"type":"searchentry","name":"SEARCH_ENTRY"} - {"type":"toolitem","action":"refresh"} -] - -# è¡¨æ ¼çš„å³é”®èœå• -"TABLEVIEW_POPUP": [ - {"type":"menuitem","action":"new"}, - {"type":"separator"}, - {"type":"menuitem","action":"delete"}, - {"type":"separator"}, - {"type":"menuitem","action":"refresh"} -] - -# 底部工具æ -"BOTTOM_TOOLBAR" : [ - {"type":"stretcher"}, - {"type":"pagetool","name":"PAGE_TOOL"} -] - -# 详细信æ¯å·¥å…·æ -"DETAIL_TOOLBAR": [ - {"type":"toolitem","action":"save_detail"}, - {"type":"stretcher"}, - {"type":"toolitem","action":"copy_detail"}, - {"type":"toolitem","action":"cancel_detail"}, - {"type":"toolitem","action":"refresh_detail"} -] \ No newline at end of file diff --git a/demo/examples/shared/shared.pri b/demo/examples/shared/shared.pri deleted file mode 100644 index 3e3bd41cfba6db8fc8ac9bb2237d9037014240f6..0000000000000000000000000000000000000000 --- a/demo/examples/shared/shared.pri +++ /dev/null @@ -1,62 +0,0 @@ -DEFINES += QT_NO_FOREACH - -win32-msvc* { - # support windows xp - QMAKE_LFLAGS_WINDOWS = /SUBSYSTEM:WINDOWS,5.01 - # generating pdb in release mode - QMAKE_CXXFLAGS_RELEASE += /Zi - QMAKE_LFLAGS_RELEASE += /DEBUG -} - -# get platform -TOPIKM_PLATFORM=$$(TOPIKM_PLATFORM) -isEmpty(TOPIKM_PLATFORM){ - TOPIKM_PLATFORM=unknown - win32 { - TOPIKM_PLATFORM=win32 - win32-g++ { - TOPIKM_PLATFORM=win32-mingw - } - win32-msvc2013 { - TOPIKM_PLATFORM=win32-msvc2013 - } - win32-msvc2015 { - TOPIKM_PLATFORM=win32-msvc2015 - } - } - macx { - TOPIKM_PLATFORM=macx - } - linux { - TOPIKM_PLATFORM=linux$$QMAKE_HOST.arch - } -} -# topikm sdk path -TOPIKM_SDKPATH=$$DIST_DIR/topikm/qt$$[QT_VERSION]-$${TOPIKM_PLATFORM} - -# include topikm headers -INCLUDEPATH += $${TOPIKM_SDKPATH}/include - -# support c++11 -CONFIG += c++11 - -# debug suffix -CONFIG += debug_and_release -CONFIG(debug, debug | release) { - DESTDIR = $${TOPIKM_SDKPATH}/bin_dbg - win32 { - DEBUG_SUFFIX = d - } - macx { - DEBUG_SUFFIX = _debug - } -} else { - DESTDIR = $${TOPIKM_SDKPATH}/bin - DEBUG_SUFFIX = -} - -# libs -LIBS += -L$$DESTDIR -for(lib, LIB_LIST) { - LIBS += -l$${lib}$${DEBUG_SUFFIX} -} diff --git a/demo/examples/templatemain/templatemain.pro b/demo/examples/templatemain/templatemain.pro deleted file mode 100644 index ee570bc0adc265d494ed23591293e3693a7e7ef1..0000000000000000000000000000000000000000 --- a/demo/examples/templatemain/templatemain.pro +++ /dev/null @@ -1,26 +0,0 @@ -QT += widgets - -TARGET = Top -TEMPLATE = app - -SOURCES += main.cpp - -RC_FILE = appicon.rc - -OTHER_FILES += \ - appicon.rc - -LIB_LIST = toputil - -linux { - LIB_LIST = tbaseutil thoconwrapper boost_locale boost_system boost_thread tsec quazip twidget QtitanBase QtitanGrid tdatabaseutil xl texcelxs toputil topcore -} - -win32 { - LIBS += -ldbghelp -} - -DIST_DIR = $$PWD/../../../dist -include(../shared/shared.pri) - -LIBS += -L$$DESTDIR diff --git a/module.json b/module.json new file mode 100644 index 0000000000000000000000000000000000000000..b2b425b018aeb058c20eac1f9dbba7cee4518ae6 --- /dev/null +++ b/module.json @@ -0,0 +1,14 @@ +{ + "module_name": "TopSYS", + "module_name_en": "System Config", + "module_name_zhcn": "系统设置", + "module_name_zhtw": "系統è¨ç½®", + "http_url": { + "http://139.196.104.13:9181/api/TOPMES6_PRODUCT_V6/ikm6": "TopMES", + "http://139.196.104.13:9181/api/TOPMES6_PCB_V6/ikm6": "TopMES", + "http://139.196.104.13:9181/api/TOPMES6_SPU_V6/ikm6": "TopMES", + "http://139.196.104.13:9181/api/TOPMES6_AIR_V6/ikm6": "TopMES", + "http://139.196.104.13:9181/api/TOPMES6_SEC_V6/ikm6": "TopMES" + }, + "hook": "http://139.196.104.13:9181/api/_/ci/getModuleConfig" +} \ No newline at end of file diff --git a/qdoc/config/doc.qdocconf b/qdoc/config/doc.qdocconf deleted file mode 100644 index f19f19636dd3439f557aae7dd5824a255d03a712..0000000000000000000000000000000000000000 --- a/qdoc/config/doc.qdocconf +++ /dev/null @@ -1,51 +0,0 @@ -include(../global/qt-module-defaults-offline.qdocconf) - -# Name of the project which must match the outputdir. Determines the .index file -project = templateclass -description = TopIKM6 Templateclass -version = 1.0.0 - -depends += qtcore qtgui qtwidgets qtnetwork qtscript qtsql qtxml - -outputformats=HTML - -outputdir = ../html -imagedirs = ../images -tagfile = ../doc.tags - -# The following parameters are for creating a qhp file, the qhelpgenerator -# program can convert the qhp file into a qch file which can be opened in -# Qt Assistant and/or Qt Creator. - -# Defines the name of the project. You cannot use operators (+, =, -) in -# the name. Properties for this project are set using a qhp.<projectname>.property -# format. -qhp.projects = templateclass -# Sets the name of the output qhp file. -qhp.templateclass.file = templateclass.qhp -qhp.templateclass.namespace = net.topibd.topikm6.templateclass.1.0.0 -qhp.templateclass.virtualFolder = templateclass - -# Title for the package, will be the main title for the package in -# Assistant/Creator. -qhp.templateclass.indexTitle = templateclass - -# Only update the name of the project for the next variables. -qhp.templateclass.filterAttributes = templateclass qtrefdoc -qhp.templateclass.customFilters.Qt.name = templateclass -qhp.templateclass.subprojects = classes -qhp.templateclass.subprojects.classes.title = C++ Classes -qhp.templateclass.subprojects.classes.indexTitle = All Classes -qhp.templateclass.subprojects.classes.selectors = class fake:headerfile -qhp.templateclass.subprojects.classes.sortPages = true - -headerdirs += ../src \ - ../../src/plugin - -sourcedirs = ../src \ - ../../src/plugin - -navigation.landingpage = "templateclass" -navigation.cppclassespage = "templateclass C++ Classes" - -#indexes += $TOPIKM6_DOCS/topikm6/topikm6.index diff --git a/qdoc/global/compat.qdocconf b/qdoc/global/compat.qdocconf deleted file mode 100644 index 12d061a28ad0e82b3c62d79f77bff99ccabb8497..0000000000000000000000000000000000000000 --- a/qdoc/global/compat.qdocconf +++ /dev/null @@ -1,9 +0,0 @@ -macro.0 = "\\\\0" -macro.n = "\\\\n" -macro.r = "\\\\r" -macro.img = "\\image" -macro.endquote = "\\endquotation" -macro.relatesto = "\\relates" - -spurious = "Missing comma in .*" \ - "Missing pattern .*" diff --git a/qdoc/global/config.qdocconf b/qdoc/global/config.qdocconf deleted file mode 100644 index 518cf68231e2a184d23981577d60cb9cb1a0802c..0000000000000000000000000000000000000000 --- a/qdoc/global/config.qdocconf +++ /dev/null @@ -1,15 +0,0 @@ -#Include this file to inherit configuration related to Qt Project based modules. - -dita.metadata.default.author = TopLinker -dita.metadata.default.permissions = all -dita.metadata.default.publisher = TopLinker Co., Ltd. -dita.metadata.default.copyryear = 2020 -dita.metadata.default.copyrholder = TopLinker Co., Ltd. -dita.metadata.default.audience = programmer - -#Set the main Qt index.html -navigation.homepage = "topikm6" - -sourcedirs += includes - -url = http://139.196.104.13:8888/topikm6-templateclass diff --git a/qdoc/global/externalsites.qdocconf b/qdoc/global/externalsites.qdocconf deleted file mode 100644 index 46ce8401c0c972abb83dc23dc47dacf13180420a..0000000000000000000000000000000000000000 --- a/qdoc/global/externalsites.qdocconf +++ /dev/null @@ -1,3 +0,0 @@ -# Include the external websites -sourcedirs += externalsites - diff --git a/qdoc/global/externalsites/external-resources.qdoc b/qdoc/global/externalsites/external-resources.qdoc deleted file mode 100644 index a7b34af50c5035929aeade28ed42ee3ea729975c..0000000000000000000000000000000000000000 --- a/qdoc/global/externalsites/external-resources.qdoc +++ /dev/null @@ -1,494 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2015 The Qt Company Ltd. -** Contact: http://www.qt.io/licensing/ -** -** This file is part of the documentation of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:FDL$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see http://www.qt.io/terms-conditions. For further -** information use the contact form at http://www.qt.io/contact-us. -** -** GNU Free Documentation License Usage -** Alternatively, this file may be used under the terms of the GNU Free -** Documentation License version 1.3 as published by the Free Software -** Foundation and appearing in the file included in the packaging of -** this file. Please review the following information to ensure -** the GNU Free Documentation License version 1.3 requirements -** will be met: http://www.gnu.org/copyleft/fdl.html. -** $QT_END_LICENSE$ -** -****************************************************************************/ -/*! - \externalpage http://www.freedesktop.org/ - \title freedesktop.org -*/ - -/*! - \externalpage http://www.freedesktop.org/Standards/xembed-spec - \title XEmbed Specification -*/ - -/*! - \externalpage http://www.freedesktop.org/Standards/icon-theme-spec - \title Icon Themes Specification -*/ - -/*! - \externalpage http://www.cups.org/ - \title Common Unix Printing System (CUPS) - \keyword CUPS -*/ - -/*! - \externalpage http://www.freedesktop.org/wiki/Standards_2fdesktop_2dentry_2dspec - \title Desktop Entry Specification -*/ - -/*! - \externalpage http://www.kde.org/ - \title The K Desktop Environment - \keyword KDE -*/ - -/*! - \externalpage http://www.cmake.org/cmake/help/documentation.html - \title CMake Documentation -*/ - -/*! - \externalpage http://www.cmake.org/cmake/help/v2.8.11/cmake.html#command:find_package - \title CMake find_package Documentation -*/ - -/*! - \externalpage http://www.cmake.org/cmake/help/v2.8.11/cmake.html#prop_tgt:AUTOMOC - \title CMake AUTOMOC Documentation -*/ - - -/*! - \externalpage http://www.cmake.org/cmake/help/v2.8.11/cmake.html#prop_tgt:LOCATION - \title CMake LOCATION Documentation -*/ - -/*! - \externalpage http://www.cmake.org/cmake/help/v2.8.11/cmake.html#prop_tgt:POSITION_INDEPENDENT_CODE - \title CMake POSITION_INDEPENDENT_CODE Documentation -*/ - -/*! - \externalpage http://www.cmake.org/cmake/help/v2.8.11/cmake.html#command:target_link_libraries - \title CMake target_link_libraries Documentation -*/ - -/*! - \externalpage http://www.gnome.org/ - \title GNOME -*/ - -/*! - \externalpage http://www.gnu.org/software/emacs/ - \title GNU Emacs -*/ - -/*! - \externalpage http://gnuwin32.sourceforge.net/packages.html - \title GnuWin32 Project -*/ - -/*! - \externalpage http://www.w3.org/Graphics/SVG/About.html - \title About SVG - \keyword Scalable Vector Graphics -*/ - -/*! - \externalpage http://www.w3.org/TR/SVG/types.html#ColorKeywords - \title SVG color keyword names -*/ - -/*! - \externalpage http://www.w3.org/Graphics/SVG/ - \title SVG Working Group -*/ - -/*! - \externalpage http://www.w3.org/TR/SVGMobile/ - \title Mobile SVG Profiles - \omit - Mobile SVG Profiles: SVG Tiny and SVG Basic - \endomit -*/ - -/*! - \externalpage http://www.w3.org/TR/SVGMobile12/ - \title SVG 1.2 Tiny -*/ - -/*! - \externalpage http://www.w3.org/Graphics/SVG/feature/1.2/#SVG-static - \title SVG 1.2 Tiny Static Features -*/ - - - -/*! - \externalpage http://tdm-gcc.tdragon.net/ - \title TDM-GCC -*/ - -/*! - \externalpage http://www.dependencywalker.com/ - \title Dependency Walker -*/ - -/*! - \externalpage http://webkit.org/ - \title WebKit Open Source Project -*/ - -/*! - \externalpage http://www.informit.com/store/product.aspx?isbn=0132354160 - \title C++ GUI Programming with Qt 4, 2nd Edition -*/ - -/*! - \externalpage http://www.openssl.org/ - \title OpenSSL Toolkit -*/ - -/*! - \externalpage http://arora-browser.org/ - \title Arora Browser -*/ - -/*! - \externalpage http://www.activestate.com/Products/activeperl/index.mhtml - \title ActivePerl -*/ - -/*! - \externalpage https://chromium.googlesource.com/angle/angle/+/master/README.md - \title ANGLE -*/ - -/*! - \externalpage http://msdn.microsoft.com/en-us/directx/default.aspx - \title Direct X SDK -*/ - -/*! - \externalpage http://www.w3.org/TR/html401/ - \title HTML 4 -*/ - -/*! - \externalpage http://www.w3.org/TR/html5/ - \title HTML 5 -*/ - -/*! - \externalpage http://site.icu-project.org/ - \title ICU -*/ - -/*! - \externalpage http://www.mingw.org/ - \title MinGW -*/ - -/*! - \externalpage http://www.python.org/ - \title Python -*/ - -/*! - \externalpage http://pyxml.sourceforge.net/topics/xbel/ - \title XML Bookmark Exchange Language Resource Page -*/ - -/*! - \externalpage http://www.w3.org/TR/xquery/#errors - \title error handling in the XQuery language -*/ - -/*! - \externalpage http://xaos.sourceforge.net/ - \title XaoS -*/ - -/*! - \externalpage http://www.unixodbc.org - \title http://www.unixodbc.org -*/ - -/*! - \externalpage http://www.postgresql.org - \title http://www.postgresql.org -*/ - -/*! - \externalpage http://www.postgresql.org/docs/current/static/installation-platform-notes.html#INSTALLATION-NOTES-MINGW - \title PostgreSQL MinGW/Native Windows -*/ - -/*! - \externalpage http://www.freetds.org - \title http://www.freetds.org -*/ - -/*! - \externalpage http://www.sybase.com - \title http://www.sybase.com -*/ - -/*! - \externalpage http://linux.sybase.com - \title http://linux.sybase.com -*/ - -/*! - \externalpage http://www.sqlite.org - \title http://www.sqlite.org -*/ - -/*! - \externalpage http://www.amazon.com/Threads-Primer-Guide-Multithreaded-Programming/dp/0134436989/ref=sr_1_1?ie=UTF8&qid=1354884049&sr=8-1&keywords=a+guide+to+multithreaded+programming - \title Threads Primer: A Guide to Multithreaded Programming -*/ - -/*! - \externalpage http://www.amazon.com/Thread-Time-MultiThreaded-Programming-Guide/dp/0131900676/ref=sr_1_sc_3?ie=UTF8&qid=1354884427&sr=8-3-spell&keywords=The+Mulltithread+Programming+Guide - \title Thread Time: The Multithreaded Programming Guide -*/ - -/*! - \externalpage http://www.amazon.com/Pthreads-Programming-Standard-Multiprocessing-Nutshell/dp/1565921151/ref=sr_1_1?s=books&ie=UTF8&qid=1354884565&sr=1-1&keywords=threads+Programming%3A+A+POSIX+Standard+for+Better+Multiprocessing - \title Pthreads Programming: A POSIX Standard for Better Multiprocessing -*/ - -/*! - \externalpage http://www.amazon.com/Win32-Multithreaded-Programming-Aaron-Cohen/dp/B00007GW3Z/ref=sr_1_1?s=books&ie=UTF8&qid=1354884647&sr=1-1&keywords=Win32+Multithreaded+Programming - \title Win32 Multithreaded Programming -*/ - -/*! - \externalpage http://www.phptr.com/content/images/0131872494/samplechapter/blanchette_ch10.pdf - \title "Item View Classes" Chapter of C++ GUI Programming with Qt 4 -*/ - -/*! - \externalpage https://developer.apple.com/library/mac/#documentation/UserExperience/Conceptual/AppleHIGuidelines/Intro/Intro.html - \title Mac OS X Aqua -*/ - -/*! - \externalpage http://www.kdedevelopers.org/node/2345 - \title KDE applications -*/ - -/*! - \externalpage http://cgi.netscape.com/newsref/std/cookie_spec.html - \title Netscape Cookie Specification -*/ - -/*! - \externalpage http://msdn.microsoft.com/en-us/library/ms533046(VS.85).aspx - \title Mitigating Cross-site Scripting With HTTP-only Cookies -*/ - -/*! - \externalpage http://en.tldp.org/HOWTO/Framebuffer-HOWTO.html - \title Framebuffer HOWTO -*/ - -/*! - \externalpage http://wap.trafikanten.no - \title Trafikanten -*/ - -/*! - \externalpage http://www.w3.org/TR/scxml/ - \title State Chart XML: State Machine Notation for Control Abstraction -*/ - -/*! - \externalpage http://www.wisdom.weizmann.ac.il/~dharel/SCANNED.PAPERS/Statecharts.pdf - \title Statecharts: A visual formalism for complex systems -*/ - -/*! - \externalpage http://www.gnu.org/licenses/gpl.html - \title GNU General Public License -*/ - -/*! - \externalpage http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html - \title GNU Lesser General Public License, version 2.1 -*/ - -/*! - \externalpage http://developers.sun.com/sunstudio/downloads/patches/index.jsp - \title Sun Studio Patches -*/ - -/*! - \externalpage http://www.qtcentre.org - \title Qt Centre -*/ - -/*! - \externalpage http://www.kde.org - \title KDE -*/ - -/*! - \externalpage http://www.directfb.org/index.php?path=Main%2FDownloads&page=1 - \title DirectFB - df_window example -*/ - -/*! - \externalpage http://www.directfb.org/docs/DirectFB_Reference_1_4/IDirectFBPalette.html - \title DirectFB - IDirectFBPalette -*/ - -/*! - \externalpage http://www.cplusplus.com/reference/clibrary/cstring/memcpy/ - \title C++ Reference - memcpy -*/ - -/*! - \externalpage http://www.directfb.org/docs/DirectFB_Reference_1_4/IDirectFB_CreateInputEventBuffer.html - \title DirectFB - CreateInputEventBuffer -*/ - -/*! - \externalpage http://www.directfb.org/docs/DirectFB_Reference_1_4/types.html#DFBSurfaceBlittingFlags - \title DirectFB - DFBSurfaceBlittingFlags -*/ - -/*! - \externalpage http://directfb.org/docs/DirectFB_Reference_1_4/IDirectFBImageProvider.html - \title DirectFB - IDirectFBImageProvider -*/ - -/*! - \externalpage http://www.directfb.org/docs/DirectFB_Reference_1_4/IDirectFBSurface.html - \title DirectFB - IDirectFBSurface -*/ - -/*! - \externalpage http://www.directfb.org/docs/DirectFB_Reference_1_4/IDirectFBWindow - \title DirectFB - IDirectFBWindow -*/ - -/*! - \externalpage http://www.directfb.org/docs/DirectFB_Reference_1_4/types.html#DFBSurfaceDescription - \title DirectFB - DFBSurfaceDescription -*/ - -/*! - \externalpage http://www.w3.org/TR/REC-CSS2/selector.html#q1 - \title Standard CSS2 selector -*/ - -/*! - \externalpage http://www.w3.org/XML/Core/#Publications - \title W3C XML specifications -*/ - -/*! - \externalpage http://www.w3.org/XML/Schema - \title XML Schema -*/ - -/*! - \externalpage http://opensource.org/licenses/bsd-license.php - \title New and Modified BSD Licenses -*/ - -/*! - \externalpage http://www.ecma-international.org/publications/standards/Ecma-262.htm - \title ECMAScript Language Specification -*/ - -/*! - \externalpage https://developer.mozilla.org/en/JavaScript - \title JavaScript Resources -*/ - -/*! - \externalpage https://developer.mozilla.org/en/JavaScript/Guide - \title JavaScript Guide -*/ - -/*! - \externalpage https://developer.mozilla.org/en/JavaScript/About_JavaScript - \title About JavaScript -*/ - -/*! - \externalpage http://www.libusb.org/ - \title libusb -*/ - -/*! - \externalpage https://developer.mozilla.org/en/JavaScript/Reference/Reserved_Words - \title JavaScript Reserved Words -*/ - -/*! - \externalpage http://publicsuffix.org/ - \title publicsuffix.org -*/ - -/*! - \externalpage http://accessibility.linuxfoundation.org/a11yspecs/ia2/docs/html/_accessible_event_i_d_8idl.html - \title AccessibleEventID.idl File Reference -*/ - -/*! - \externalpage http://msdn.microsoft.com/en-us/library/dd318066.aspx - \title Microsoft Active Accessibility Event Constants -*/ - -/*! - \externalpage ftp://ftp.qt-project.org/pub/qt/solutions/lgpl/qtmotifextension-2.7_1-opensource.tar.gz - \title Motif Extension -*/ - -/*! - \externalpage http://www.opengl.org/registry/ - \title OpenGL Registry -*/ - -/*! - \externalpage http://www.khronos.org/registry/gles/ - \title Khronos OpenGL ES API Registry -*/ - -/*! - \externalpage http://git.iksaif.net/?p=qsslkey-p11.git - \title qsslkey example -*/ - -/*! - \externalpage http://www.w3.org/TR/2009/WD-webdatabase-20091029/ - \title HTML5 Web Database API -*/ - -/*! - \externalpage http://lldb.llvm.org/ - \title The LLDB Debugger -*/ - -/*! - \externalpage https://login.qt.io/ - \title Qt Account Sign-up -*/ diff --git a/qdoc/global/externalsites/qt-webpages.qdoc b/qdoc/global/externalsites/qt-webpages.qdoc deleted file mode 100644 index e70a4414959fa3ef515c5e97cdd2f897a3260af1..0000000000000000000000000000000000000000 --- a/qdoc/global/externalsites/qt-webpages.qdoc +++ /dev/null @@ -1,116 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2015 The Qt Company Ltd. -** Contact: http://www.qt.io/licensing/ -** -** This file is part of the documentation of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:FDL$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see http://www.qt.io/terms-conditions. For further -** information use the contact form at http://www.qt.io/contact-us. -** -** GNU Free Documentation License Usage -** Alternatively, this file may be used under the terms of the GNU Free -** Documentation License version 1.3 as published by the Free Software -** Foundation and appearing in the file included in the packaging of -** this file. Please review the following information to ensure -** the GNU Free Documentation License version 1.3 requirements -** will be met: http://www.gnu.org/copyleft/fdl.html. -** $QT_END_LICENSE$ -** -****************************************************************************/ -/*! - \externalpage http://qt.io/ - \title Qt Homepage -*/ -/*! - \externalpage http://bugreports.qt.io - \title Qt Bug Tracker -*/ -/*! - \externalpage http://qt.io/download - \title Downloads -*/ -/*! - \externalpage http://qt.io/licensing/ - \title Qt Licensing Overview -*/ -/*! - \externalpage http://doc.qt.io/archives/qq/ - \title Qt Quarterly -*/ -/*! - \externalpage http://doc.qt.io/archives/qq/qq19-plurals.html - \title Qt Quarterly: Plural Form in Translation -*/ -/*! - \externalpage https://code.qt.io/ - \title Public Qt Repository -*/ -/*! - \externalpage https://code.qt.io/cgit/%7bnon-gerrit%7d/qt-labs/qtestlib-tools.git/ - \title qtestlib-tools -*/ - -/*! - \externalpage http://wiki.qt.io/Qt_Coding_Style - \title Qt Coding Style -*/ -/*! - \externalpage http://doc.qt.io/archives/qt-eclipse-1.6/index.html - \title Eclipse Plugin -*/ -/*! - \externalpage http://doc.qt.io/archives/qq/qq11-events.html - \title Qt Quarterly: Another Look at Events -*/ -/*! - \externalpage http://qt-project.org/videos/watch/livecoding-video-effects-with-qt5 - \title Livecoding video effects with Qt5 -*/ -/*! - \externalpage http://blog.qt.io/2012/02/29/pimp-my-video-shader-effects-and-multimedia/ - \title Pimp my video -*/ -/*! - \externalpage http://wiki.qt.io/QtMediaHub - \title QtMediaHub -*/ -/*! - \externalpage http://wiki.qt.io/Qt_RaspberryPi - \title QtonPi -*/ - -/*! - \externalpage http://wiki.qt.io/jom - \title jom -*/ - -/*! - \externalpage http://doc.qt.io/qt-4.8 - \title Qt 4.8 Reference Documentation -*/ - -/*! - \externalpage http://doc.qt.io/qt-4.8/qtquick.html - \title Qt Quick 1 Reference Documentation -*/ - -/*! - \externalpage http://wiki.qt.io/Qt_Localization - \title external: Translating Qt Into Other Languages -*/ - -/*! - \externalpage http://wiki.qt.io/BlackBerry - \title Qt for BlackBerry -*/ -/*! - \externalpage http://wiki.qt.io/Qt_Multimedia_Backends - \title Qt Multimedia Backends -*/ diff --git a/qdoc/global/externalsites/qtcreator.qdoc b/qdoc/global/externalsites/qtcreator.qdoc deleted file mode 100644 index b8cd9dec0010a76ac359d4a7db0d9b7f99f8a45c..0000000000000000000000000000000000000000 --- a/qdoc/global/externalsites/qtcreator.qdoc +++ /dev/null @@ -1,525 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2015 The Qt Company Ltd. -** Contact: http://www.qt.io/licensing/ -** -** This file is part of the documentation of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:FDL$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see http://www.qt.io/terms-conditions. For further -** information use the contact form at http://www.qt.io/contact-us. -** -** GNU Free Documentation License Usage -** Alternatively, this file may be used under the terms of the GNU Free -** Documentation License version 1.3 as published by the Free Software -** Foundation and appearing in the file included in the packaging of -** this file. Please review the following information to ensure -** the GNU Free Documentation License version 1.3 requirements -** will be met: http://www.gnu.org/copyleft/fdl.html. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -/*! - \externalpage http://doc.qt.io/qtcreator/creator-deployment-qnx.html - \title Qt Creator: Deploying Applications to QNX Neutrino Devices -*/ -/*! - \externalpage http://doc.qt.io/qtcreator/creator-developing-baremetal.html - \title Qt Creator: Connecting Bare Metal Devices -*/ -/*! - \externalpage http://doc.qt.io/qtcreator/creator-developing-qnx.html - \title Qt Creator: Connecting QNX Devices -*/ -/*! - \externalpage http://doc.qt.io/qtcreator/creator-developing-generic-linux.html - \title Qt Creator: Connecting Embedded Linux Devices -*/ -/*! - \externalpage http://doc.qt.io/qtcreator/creator-deployment-embedded-linux.html - \title Qt Creator: Deploying Applications to Embedded Linux Devices -*/ -/*! - \externalpage http://doc.qt.io/qtcreator/creator-faq.html - \title Qt Creator: FAQ -*/ -/*! - \externalpage http://doc.qt.io/qtcreator/creator-tips.html - \title Qt Creator: Tips and Tricks -*/ -/*! - \externalpage http://doc.qt.io/qtcreator/creator-help.html - \title Qt Creator: Using the Help Mode -*/ -/*! - \externalpage http://doc.qt.io/qtcreator/creator-quick-tour.html - \title Qt Creator: User Interface -*/ -/*! - \externalpage http://doc.qt.io/qtcreator/creator-cli.html - \title Qt Creator: Using Command Line Options -*/ -/*! - \externalpage http://doc.qt.io/qtcreator/creator-task-lists.html - \title Qt Creator: Showing Task List Files in Issues Pane -*/ -/*! - \externalpage http://doc.qt.io/qtcreator/creator-project-managing-sessions.html - \title Qt Creator: Managing Sessions -*/ -/*! - \externalpage http://doc.qt.io/qtcreator/creator-editor-external.html - \title Qt Creator: Using External Tools -*/ -/*! - \externalpage http://doc.qt.io/qtcreator/creator-version-control.html - \title Qt Creator: Using Version Control Systems -*/ -/*! - \externalpage http://doc.qt.io/qtcreator/creator-keyboard-shortcuts.html - \title Qt Creator: Keyboard Shortcuts -*/ -/*! - \externalpage http://doc.qt.io/qtcreator/quick-screens.html - \title Qt Creator: Creating Screens -*/ -/*! - \externalpage http://doc.qt.io/qtcreator/creator-qtquick-designer-extensions.html - \title Qt Creator: Using Qt Quick Designer Extensions -*/ -/*! - \externalpage http://doc.qt.io/qtcreator/qmldesigner-pathview-editor.html - \title Qt Creator: Editing PathView Properties -*/ -/*! - \externalpage http://doc.qt.io/qtcreator/qmldesigner-connections.html - \title Qt Creator: Adding Connections -*/ -/*! - \externalpage http://doc.qt.io/qtcreator/qtcreator-transitions-example.html - \title Qt Creator: Creating a Qt Quick Application -*/ -/*! - \externalpage http://doc.qt.io/qtcreator/qtquick-iso-icon-browser.html - \title Qt Creator: Browsing ISO 7000 Icons -*/ -/*! - \externalpage http://doc.qt.io/qtcreator/quick-export-to-qml.html - \title Qt Creator: Exporting Designs from Graphics Software -*/ -/*! - \externalpage http://doc.qt.io/qtcreator/creator-qml-modules-with-plugins.html - \title Qt Creator: Using QML Modules with Plugins -*/ -/*! - \externalpage http://doc.qt.io/qtcreator/creator-visual-editor.html - \title Qt Creator: Developing Qt Quick Applications -*/ -/*! - \externalpage http://doc.qt.io/qtcreator/creator-using-qt-quick-designer.html - \title Qt Creator: Using Qt Quick Designer -*/ -/*! - \externalpage http://doc.qt.io/qtcreator/quick-projects.html - \title Qt Creator: Creating Qt Quick Projects -*/ -/*! - \externalpage http://doc.qt.io/qtcreator/quick-components.html - \title Qt Creator: Creating Components -*/ -/*! - \externalpage http://doc.qt.io/qtcreator/qt-quick-toolbars.html - \title Qt Creator: Using Qt Quick Toolbars -*/ -/*! - \externalpage http://doc.qt.io/qtcreator/quick-buttons.html - \title Qt Creator: Creating Buttons -*/ -/*! - \externalpage http://doc.qt.io/qtcreator/quick-scalable-image.html - \title Qt Creator: Creating Scalable Buttons and Borders -*/ -/*! - \externalpage http://doc.qt.io/qtcreator/creator-editor-options.html - \title Qt Creator: Configuring the Editor -*/ -/*! - \externalpage http://doc.qt.io/qtcreator/creator-editor-functions.html - \title Qt Creator: Writing Code -*/ -/*! - \externalpage http://doc.qt.io/qtcreator/creator-coding-navigating.html - \title Qt Creator: Working in Edit Mode -*/ -/*! - \externalpage http://doc.qt.io/qtcreator/creator-highlighting.html - \title Qt Creator: Semantic Highlighting -*/ -/*! - \externalpage http://doc.qt.io/qtcreator/creator-checking-code-syntax.html - \title Qt Creator: Checking Code Syntax -*/ -/*! - \externalpage http://doc.qt.io/qtcreator/creator-completing-code.html - \title Qt Creator: Completing Code -*/ -/*! - \externalpage http://doc.qt.io/qtcreator/creator-editor-codepasting.html - \title Qt Creator: Pasting and Fetching Code Snippets -*/ -/*! - \externalpage http://doc.qt.io/qtcreator/creator-macros.html - \title Qt Creator: Using Text Editing Macros -*/ -/*! - \externalpage http://doc.qt.io/qtcreator/creator-editor-fakevim.html - \title Qt Creator: Using FakeVim Mode -*/ -/*! - \externalpage http://doc.qt.io/qtcreator/creator-indenting-code.html - \title Qt Creator: Indenting Text or Code -*/ -/*! - \externalpage http://doc.qt.io/qtcreator/creator-editor-finding.html - \title Qt Creator: Finding and Replacing -*/ -/*! - \externalpage http://doc.qt.io/qtcreator/creator-editor-refactoring.html - \title Qt Creator: Refactoring -*/ -/*! - \externalpage http://doc.qt.io/qtcreator/creator-editor-locator.html - \title Qt Creator: Searching with the Locator -*/ -/*! - \externalpage http://doc.qt.io/qtcreator/creator-coding.html - \title Qt Creator: Coding -*/ -/*! - \externalpage http://doc.qt.io/qtcreator/creator-editor-options-text.html - \title Qt Creator: Specifying Text Editor Settings -*/ -/*! - \externalpage http://doc.qt.io/qtcreator/creator-finding-overview.html - \title Qt Creator: Finding -*/ -/*! - \externalpage http://doc.qt.io/qtcreator/creator-mime-types.html - \title Qt Creator: Editing MIME Types -*/ -/*! - \externalpage http://doc.qt.io/qtcreator/creator-modeling.html - \title Qt Creator: Modeling -*/ -/*! - \externalpage http://doc.qt.io/qtcreator/creator-qml-debugging-example.html - \title Qt Creator: Debugging a Qt Quick Example Application -*/ -/*! - \externalpage http://doc.qt.io/qtcreator/creator-debugging-example.html - \title Qt Creator: Debugging a C++ Example Application -*/ -/*! - \externalpage http://doc.qt.io/qtcreator/creator-debugger-engines.html - \title Qt Creator: Setting Up Debugger -*/ -/*! - \externalpage http://doc.qt.io/qtcreator/creator-debugging-qml.html - \title Qt Creator: Debugging Qt Quick Projects -*/ -/*! - \externalpage http://doc.qt.io/qtcreator/creator-debugging.html - \title Qt Creator: Debugging -*/ -/*! - \externalpage http://doc.qt.io/qtcreator/creator-debugger-operating-modes.html - \title Qt Creator: Launching the Debugger -*/ -/*! - \externalpage http://doc.qt.io/qtcreator/creator-debug-mode.html - \title Qt Creator: Interacting with the Debugger -*/ -/*! - \externalpage http://doc.qt.io/qtcreator/creator-debugging-helpers.html - \title Qt Creator: Using Debugging Helpers -*/ -/*! - \externalpage http://doc.qt.io/qtcreator/creator-troubleshooting-debugging.html - \title Qt Creator: Troubleshooting Debugger -*/ -/*! - \externalpage http://doc.qt.io/qtcreator/index.html - \title Qt Creator Manual -*/ -/*! - \externalpage http://doc.qt.io/qtcreator/creator-advanced.html - \title Qt Creator: Advanced Use -*/ -/*! - \externalpage http://doc.qt.io/qtcreator/creator-os-supported-platforms.html - \title Qt Creator: Supported Platforms -*/ -/*! - \externalpage http://doc.qt.io/qtcreator/creator-connecting-mobile.html - \title Qt Creator: Connecting Mobile Devices -*/ -/*! - \externalpage http://doc.qt.io/qtcreator/creator-usability.html - \title Qt Creator: Optimizing Applications for Mobile Devices -*/ -/*! - \externalpage http://doc.qt.io/qtcreator/creator-acknowledgements.html - \title Qt Creator: Acknowledgements -*/ -/*! - \externalpage http://doc.qt.io/qtcreator/creator-help-overview.html - \title Qt Creator: Getting Help -*/ -/*! - \externalpage http://doc.qt.io/qtcreator/technical-support.html - \title Qt Creator: Technical Support -*/ -/*! - \externalpage http://doc.qt.io/qtcreator/creator-overview.html - \title Qt Creator: IDE Overview -*/ -/*! - \externalpage http://doc.qt.io/qtcreator/creator-testing.html - \title Qt Creator: Testing -*/ -/*! - \externalpage http://doc.qt.io/qtcreator/creator-deployment.html - \title Qt Creator: Deploying to Mobile Devices -*/ -/*! - \externalpage http://doc.qt.io/qtcreator/creator-tutorials.html - \title Qt Creator: Tutorials -*/ -/*! - \externalpage http://doc.qt.io/qtcreator/creator-known-issues.html - \title Qt Creator: Known Issues -*/ -/*! - \externalpage http://doc.qt.io/qtcreator/creator-design-mode.html - \title Qt Creator: Designing User Interfaces -*/ -/*! - \externalpage http://doc.qt.io/qtcreator/creator-glossary.html - \title Qt Creator: Glossary -*/ -/*! - \externalpage http://doc.qt.io/qtcreator/creator-getting-started.html - \title Qt Creator: Getting Started -*/ -/*! - \externalpage http://doc.qt.io/qtcreator/creator-analyzer.html - \title Qt Creator: Detecting Memory Leaks -*/ -/*! - \externalpage http://doc.qt.io/qtcreator/creator-cache-profiler.html - \title Qt Creator: Profiling Function Execution -*/ -/*! - \externalpage http://doc.qt.io/qtcreator/creator-running-valgrind-remotely.html - \title Qt Creator: Running Valgrind Tools Remotely -*/ -/*! - \externalpage http://doc.qt.io/qtcreator/creator-valgrind-overview.html - \title Qt Creator: Using Valgrind Code Analysis Tools -*/ -/*! - \externalpage http://doc.qt.io/qtcreator/creator-analyze-mode.html - \title Qt Creator: Analyzing Code -*/ -/*! - \externalpage http://doc.qt.io/qtcreator/creator-qml-performance-monitor.html - \title Qt Creator: Profiling QML Applications -*/ -/*! - \externalpage http://doc.qt.io/qtcreator/creator-deploying-android.html - \title Qt Creator: Deploying Applications to Android Devices -*/ - -/*! - \externalpage http://doc.qt.io/qtcreator/creator-developing-ios.html - \title Qt Creator: Connecting iOS devices -*/ - -/*! - \externalpage http://doc.qt.io/qtcreator/creator-developing-android.html - \title Qt Creator: Connecting Android Devices -*/ -/*! - \externalpage http://doc.qt.io/qtcreator/creator-build-example-application.html - \title Qt Creator: Building and Running an Example -*/ -/*! - \externalpage http://doc.qt.io/qtcreator/creator-project-generic.html - \title Qt Creator: Setting Up a Generic Project -*/ -/*! - \externalpage http://doc.qt.io/qtcreator/creator-sharing-project-settings.html - \title Qt Creator: Sharing Project Settings -*/ -/*! - \externalpage http://doc.qt.io/qtcreator/creator-project-opening.html - \title Qt Creator: Opening Projects -*/ -/*! - \externalpage http://doc.qt.io/qtcreator/creator-project-managing.html - \title Qt Creator: Managing Projects -*/ -/*! - \externalpage http://doc.qt.io/qtcreator/creator-project-cmake.html - \title Qt Creator: Setting Up a CMake Project -*/ -/*! - \externalpage http://doc.qt.io/qtcreator/creator-targets.html - \title Qt Creator: Adding Kits -*/ -/*! - \externalpage http://doc.qt.io/qtcreator/creator-tool-chains.html - \title Qt Creator: Adding Compilers -*/ -/*! - \externalpage http://doc.qt.io/qtcreator/creator-project-qbs.html - \title Qt Creator: Setting Up a Qbs Project -*/ -/*! - \externalpage http://doc.qt.io/qtcreator/creator-project-creating.html - \title Qt Creator: Creating Projects -*/ -/*! - \externalpage http://doc.qt.io/qtcreator/creator-project-wizards.html - \title Qt Creator: Adding New Custom Wizards -*/ -/*! - \externalpage http://doc.qt.io/qtcreator/creator-project-wizards-json.html - \title Qt Creator: Adding JSON-Based Wizards -*/ -/*! - \externalpage http://doc.qt.io/qtcreator/creator-project-wizards-xml.html - \title Qt Creator: Adding XML-Based Wizards -*/ -/*! - \externalpage http://doc.qt.io/qtcreator/creator-projects-autotools.html - \title Qt Creator: Setting Up an Autotools Project -*/ -/*! - \externalpage http://doc.qt.io/qtcreator/creator-configuring-projects.html - \title Qt Creator: Configuring Projects -*/ -/*! - \externalpage http://doc.qt.io/qtcreator/creator-build-process-customizing.html - \title Qt Creator: Customizing the Build Process -*/ -/*! - \externalpage http://doc.qt.io/qtcreator/creator-build-settings.html - \title Qt Creator: Specifying Build Settings -*/ -/*! - \externalpage http://doc.qt.io/qtcreator/creator-code-style-settings.html - \title Qt Creator: Specifying Code Style Settings -*/ -/*! - \externalpage http://doc.qt.io/qtcreator/creator-run-settings.html - \title Qt Creator: Specifying Run Settings -*/ -/*! - \externalpage http://doc.qt.io/qtcreator/creator-project-qmake-libraries.html - \title Qt Creator: Adding Libraries to Projects -*/ -/*! - \externalpage http://doc.qt.io/qtcreator/creator-project-other.html - \title Qt Creator: Using Other Build Systems -*/ -/*! - \externalpage http://doc.qt.io/qtcreator/creator-running-targets.html - \title Qt Creator: Running on Multiple Platforms -*/ -/*! - \externalpage http://doc.qt.io/qtcreator/creator-build-dependencies.html - \title Qt Creator: Specifying Dependencies -*/ -/*! - \externalpage http://doc.qt.io/qtcreator/creator-building-running.html - \title Qt Creator: Building and Running -*/ -/*! - \externalpage http://doc.qt.io/qtcreator/creator-editor-settings.html - \title Qt Creator: Specifying Editor Settings -*/ -/*! - \externalpage http://doc.qt.io/qtcreator/creator-project-qmake.html - \title Qt Creator: Adding Qt Versions -*/ -/*! - \externalpage http://doc.qt.io/qtcreator/creator-building-targets.html - \title Qt Creator: Building for Multiple Platforms -*/ -/*! - \externalpage http://doc.qt.io/qtcreator/creator-using-qt-designer.html - \title Qt Creator: Developing Widget Based Applications -*/ -/*! - \externalpage http://doc.qt.io/qtcreator/creator-writing-program.html - \title Qt Creator: Creating a Qt Widget Based Application -*/ -/*! - \externalpage http://doc.qt.io/qtcreator/adding-plugins.html - \title Qt Creator: Adding Qt Designer Plugins -*/ -/*! - \externalpage http://doc.qt.io/qtcreator/creator-configuring.html - \title Qt Creator: Configuring Qt Creator -*/ -/*! - \externalpage http://doc.qt.io/qtcreator/creator-debuggers.html - \title Qt Creator: Adding Debuggers -*/ -/*! - \externalpage http://doc.qt.io/qtcreator/qtcreator-accelbubble-example.html - \title Qt Creator: Creating a Mobile Application -*/ -/*! - \externalpage http://doc.qt.io/qtcreator/creator-diff-editor.html - \title Qt Creator: Comparing Files -*/ -/*! - \externalpage http://doc.qt.io/qtcreator/creator-beautifier.html - \title Qt Creator: Beautifying Source Code -*/ -/*! - \externalpage http://doc.qt.io/qtcreator/creator-developing-winrt.html - \title Qt Creator: Connecting Windows Runtime Devices -*/ -/*! - \externalpage http://doc.qt.io/qtcreator/creator-clang-codemodel.html - \title Qt Creator: Parsing C++ Files -*/ -/*! - \externalpage http://doc.qt.io/qtcreator/creator-quick-ui-forms.html - \title Qt Creator: Qt Quick UI Forms -*/ -/*! - \externalpage http://doc.qt.io/qtcreator/qtcreator-uiforms-example.html - \title Qt Creator: Using Qt Quick UI Forms -*/ -/*! - \externalpage http://doc.qt.io/qtcreator/creator-clang-static-analyzer.html - \title Qt Creator: Using Clang Static Analyzer -*/ -/*! - \externalpage http://doc.qt.io/qtcreator/creator-cpu-usage-analyzer.html - \title Qt Creator: Analyzing CPU Usage -*/ -/*! - \externalpage http://doc.qt.io/qtcreator/creator-autotest.html - \title Qt Creator: Running Autotests -*/ diff --git a/qdoc/global/externalsites/rfc.qdoc b/qdoc/global/externalsites/rfc.qdoc deleted file mode 100644 index a12363da7cc1426fad0377324832fbd66f73dbaf..0000000000000000000000000000000000000000 --- a/qdoc/global/externalsites/rfc.qdoc +++ /dev/null @@ -1,94 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2015 The Qt Company Ltd. -** Contact: http://www.qt.io/licensing/ -** -** This file is part of the documentation of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:FDL$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see http://www.qt.io/terms-conditions. For further -** information use the contact form at http://www.qt.io/contact-us. -** -** GNU Free Documentation License Usage -** Alternatively, this file may be used under the terms of the GNU Free -** Documentation License version 1.3 as published by the Free Software -** Foundation and appearing in the file included in the packaging of -** this file. Please review the following information to ensure -** the GNU Free Documentation License version 1.3 requirements -** will be met: http://www.gnu.org/copyleft/fdl.html. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -/*! - \externalpage http://www.ietf.org/rfc/rfc1179.txt - \title RFC 1179 - \keyword lpr -*/ - -/*! - \externalpage http://www.rfc-editor.org/rfc/rfc1738.txt - \title RFC 1738 -*/ - -/*! - \externalpage http://www.rfc-editor.org/rfc/rfc1928.txt - \title RFC 1928 -*/ - -/*! - \externalpage http://www.rfc-editor.org/rfc/rfc1929.txt - \title RFC 1929 -*/ - -/*! - \externalpage http://www.rfc-editor.org/rfc/rfc2045.txt - \title RFC 2045 -*/ - -/*! - \externalpage http://www.rfc-editor.org/rfc/rfc2109.txt - \title RFC 2109 - HTTP State Management Mechanism -*/ - -/*! - \externalpage http://www.rfc-editor.org/rfc/rfc2965.txt - \title RFC 2965 - HTTP State Management Mechanism -*/ - -/*! - \externalpage http://www.rfc-editor.org/rfc/rfc3174.txt - \title RFC 3174 -*/ - -/*! - \externalpage http://www.rfc-editor.org/rfc/rfc3491.txt - \title RFC 3491 -*/ - -/*! - \externalpage http://www.rfc-editor.org/rfc/rfc3986.txt - \title RFC 3986 -*/ - -/*! - \externalpage http://www.rfc-editor.org/rfc/rfc2822.txt - \title RFC 2822 -*/ - -/*! - \externalpage http://www.rfc-editor.org/rfc/rfc1036.txt - \title RFC 1036 -*/ - -/*! - \externalpage http://www.rfc-editor.org/rfc/rfc850.txt - \title RFC 850 -*/ diff --git a/qdoc/global/fileextensions.qdocconf b/qdoc/global/fileextensions.qdocconf deleted file mode 100644 index 7ff387628c6f86a66521c505fc6c2b904569fdbd..0000000000000000000000000000000000000000 --- a/qdoc/global/fileextensions.qdocconf +++ /dev/null @@ -1,10 +0,0 @@ -naturallanguage = zhcn -outputencoding = UTF-8 -sourceencoding = UTF-8 - -examples.fileextensions = "*.cpp *.h *.js *.xq *.svg *.xml *.ui *.qhp *.qhcp *.qml *.css *.glsl" -examples.imageextensions = "*.png *.jpg *.gif" - -headers.fileextensions = "*.ch *.h *.h++ *.hh *.hpp *.hxx" -sources.fileextensions = "*.c++ *.cc *.cpp *.cxx *.mm *.qml *.qdoc" - diff --git a/qdoc/global/html-config.qdocconf b/qdoc/global/html-config.qdocconf deleted file mode 100644 index 9b3b05b7d3e75e112007e76183f14a7701d1a363..0000000000000000000000000000000000000000 --- a/qdoc/global/html-config.qdocconf +++ /dev/null @@ -1,31 +0,0 @@ -#Additional HTML settings - -HTML.nonavigationbar = "false" - -HTML.tocdepth = 2 - -HTML.extraimages += template/images/arrow_bc.png \ - template/images/home.png \ - template/images/ico_out.png \ - template/images/ico_note.png \ - template/images/ico_note_attention.png \ - template/images/btn_prev.png \ - template/images/btn_next.png \ - template/images/bullet_dn.png \ - template/images/bullet_sq.png \ - template/images/bgrContent.png \ - template/images/logo.png - -#specify which files in the output directory should be packed into the qch file. -#these files are assumed to be in each module's output directory."qtquick/images/ico_out.png" for example. -qhp.extraFiles += images/arrow_bc.png \ - images/home.png \ - images/ico_out.png \ - images/ico_note.png \ - images/ico_note_attention.png \ - images/btn_prev.png \ - images/btn_next.png \ - images/bullet_dn.png \ - images/bullet_sq.png \ - images/bgrContent.png \ - images/logo.png diff --git a/qdoc/global/html-footer.qdocconf b/qdoc/global/html-footer.qdocconf deleted file mode 100644 index 9ba6e29139bb983d46ea0f77ea095e81a73288dd..0000000000000000000000000000000000000000 --- a/qdoc/global/html-footer.qdocconf +++ /dev/null @@ -1,14 +0,0 @@ -#Default HTML footer for QDoc builds. - -HTML.footer = \ - " </div>\n" \ - " </div>\n" \ - " </div>\n" \ - " </div>\n" \ - "</div>\n" \ - "<div class=\"footer\">\n" \ - " <acronym title=\"Copyright\">©</acronym> 2020 TopLinker Co.,Ltd.\n" \ - " Documentation contributions included herein are the copyrights of\n" \ - " their respective owners.<br>" \ - " <a href=\"http://www.topibd.com\">æ— é”¡ä¸œé¢†æ™ºèƒ½ç§‘æŠ€è‚¡ä»½æœ‰é™å…¬å¸" </a> \ - "</div>\n" \ diff --git a/qdoc/global/html-header-offline.qdocconf b/qdoc/global/html-header-offline.qdocconf deleted file mode 100644 index d84f38fef871a217b07184c671a46ffbe53695f9..0000000000000000000000000000000000000000 --- a/qdoc/global/html-header-offline.qdocconf +++ /dev/null @@ -1,31 +0,0 @@ -#Default HTML header for QDoc builds. - -#specify the CSS file used by this template -HTML.stylesheets = template/style/offline.css - -#for including files into the qch file -qhp.extraFiles += style/offline.css - -HTML.headerstyles = \ - " <link rel=\"stylesheet\" type=\"text/css\" href=\"style/offline.css\" />\n" - -HTML.endheader = \ - "</head>\n" - -HTML.postheader = \ - "<body>\n" \ - "<div class=\"header\" id=\"qtdocheader\">\n"\ - " <div class=\"main\">\n" \ - " <div class=\"main-rounded\">\n" \ - " <div class=\"navigationbar\">\n"\ - " <ul>\n"\ - - - -HTML.postpostheader = \ - " </ul>\n"\ - " </div>\n" \ - "</div>\n" \ - "<div class=\"content\">\n" \ - "<div class=\"line\">\n" \ - "<div class=\"content mainContent\">\n" \ diff --git a/qdoc/global/includes-online/search.qdoc b/qdoc/global/includes-online/search.qdoc deleted file mode 100644 index 170848286e55062dfd7323813541780f4b1b532e..0000000000000000000000000000000000000000 --- a/qdoc/global/includes-online/search.qdoc +++ /dev/null @@ -1,39 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2015 The Qt Company Ltd. -** Contact: http://www.qt.io/licensing/ -** -** This file is part of the documentation of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:FDL$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see http://www.qt.io/terms-conditions. For further -** information use the contact form at http://www.qt.io/contact-us. -** -** GNU Free Documentation License Usage -** Alternatively, this file may be used under the terms of the GNU Free -** Documentation License version 1.3 as published by the Free Software -** Foundation and appearing in the file included in the packaging of -** this file. Please review the following information to ensure -** the GNU Free Documentation License version 1.3 requirements -** will be met: http://www.gnu.org/copyleft/fdl.html. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -/*! -\page search-results.html -\title Search Results - -\raw HTML -<link rel="stylesheet" type="text/css" href="style/gsc.css" /> -<script type="text/javascript"> -$(function(){ $(".title").append(": " + decodeURIComponent(location.search.split('=')[1]).substring(0,32)); }); -</script> -<gcse:searchresults-only></gcse:searchresults-only> -\endraw -*/ diff --git a/qdoc/global/includes/examples-run.qdocinc b/qdoc/global/includes/examples-run.qdocinc deleted file mode 100644 index e9b8575650eaed0f36ee5341b4c285ea947ecabb..0000000000000000000000000000000000000000 --- a/qdoc/global/includes/examples-run.qdocinc +++ /dev/null @@ -1,5 +0,0 @@ -\section1 Running the Example - -To run the example from \l{Qt Creator Manual}{Qt Creator}, open the \gui Welcome -mode and select the example from \gui Examples. For more information, visit -\l{Qt Creator: Building and Running an Example}{Building and Running an Example}. diff --git a/qdoc/global/macros.qdocconf b/qdoc/global/macros.qdocconf deleted file mode 100644 index da583aedcd3be8a0e36e68cef8cd0342b5396ceb..0000000000000000000000000000000000000000 --- a/qdoc/global/macros.qdocconf +++ /dev/null @@ -1,39 +0,0 @@ -macro.aacute.HTML = "á" -macro.Aring.HTML = "Å" -macro.aring.HTML = "å" -macro.Auml.HTML = "Ä" -macro.author = "\\b{Author:}" -macro.BR.HTML = "<br />" -macro.copyright.HTML = "©" -macro.eacute.HTML = "é" -macro.gui = "\\b" -macro.HR.HTML = "<hr />" -macro.iacute.HTML = "í" -macro.key = "\\b" -macro.macos = "macOS" -macro.menu = "\\b" -macro.oslash.HTML = "ø" -macro.ouml.HTML = "ö" -macro.QA = "\\e{Qt Assistant}" -macro.QD = "\\e{Qt Designer}" -macro.QL = "\\e{Qt Linguist}" -macro.QQV = "\\e{Qt QML Viewer}" -macro.param = "\\e" -macro.raisedaster.HTML = "<sup>*</sup>" -macro.rarrow.HTML = "→" -macro.reg.HTML = "<sup>®</sup>" -macro.return = "Returns" -macro.starslash = "\\c{*/}" -macro.begincomment = "\\c{/*}" -macro.endcomment = "\\c{*/}" -macro.uuml.HTML = "ü" -macro.mdash.HTML = "—" -macro.pi.HTML = "Π" -macro.beginqdoc.HTML = "/*!" -macro.endqdoc.HTML = "*/" - -macro.beginfloatleft.HTML = "<div style=\"float: left; margin-right: 2em\">" -macro.beginfloatright.HTML = "<div style=\"float: right; margin-left: 2em\">" -macro.endfloat.HTML = "</div>" -macro.clearfloat.HTML = "<br style=\"clear: both\" />" -macro.emptyspan.HTML = "<span></span>" diff --git a/qdoc/global/manifest-meta.qdocconf b/qdoc/global/manifest-meta.qdocconf deleted file mode 100644 index a51d0d3b29b378a27ebf43eabff81bc2169d2b77..0000000000000000000000000000000000000000 --- a/qdoc/global/manifest-meta.qdocconf +++ /dev/null @@ -1,260 +0,0 @@ -# Additional meta information (attributes for matched entries, as well as tags) -# to be added to manifest.xml files. -# -# manifestmeta.filters = <filter1>,<filter2>,... -# -# manifestmeta.<filter>.names = <Module1>/<name1>,<Module2>/<name2>,.. -# manifestmeta.<filter>.attributes = <attribute1:value1>,<attribute2:value2>,.. -# manifestmeta.<filter>.tags = <tag1>,<tag2>,.. -# -# <filter>.names specify all the module/name combinations to apply the -# attributes/tags to. You can use simple wildcard matching by appending -# '*' at the end of name. -# -# Note: You cannot use operators (+, =, -) in the names. -# -# Examples: add a 'isHighlighted' attribute for two 'Analog Clock' examples, -# add a 'database' tag for QtSql examples, and a 'qt5' tag for all examples -# -# manifestmeta.filters = highlighted sql global -# -# manifestmeta.highlighted.names = "QtGui/Analog Clock Window Example" \ -# "QtWidgets/Analog Clock Example" -# manifestmeta.highlighted.attributes = isHighlighted:true -# -# manifestmeta.sql.names = "QtSql/*" -# manifestmeta.sql.tags = database -# -# manifestmeta.global.names = * -# manifestmeta.global.tags = qt5 - -manifestmeta.filters = highlighted android thumbnail ios - -manifestmeta.highlighted.names = "QtQuick/Qt Quick Demo - Same Game" \ - "QtQuick/Qt Quick Demo - Photo Surface" \ - "QtQuick/Qt Quick Demo - Tweet Search" \ - "QtQuick/Qt Quick Demo - Maroon*" \ - "QtQuick/Qt Quick Demo - Calqlatr" \ - "QtQuick/Qt Quick Demo - StocQt" \ - "QtQuick/Qt Quick Demo - Clocks" \ - "QtQuick/Qt Quick Examples - Shader Effects" \ - "QtQuickExtras/Qt Quick Extras - Dashboard" \ - "QtQuickExtras/Qt Quick Extras - Flat" \ - "QtQuickExtras/Qt Quick Extras - Gallery" \ - "QtQuickControls/Qt Quick Controls - Gallery" \ - "QtQuickControls/Qt Quick Controls - Text Editor Example" \ - "QtQuickControls/Qt Quick Controls - Table View Example" \ - "QtQuickControls/Qt Quick Controls - Calendar Example" \ - "QtQuickControls/Qt Quick Controls - File System Browser Example" \ - "QtQuickDialogs/Qt Quick System Dialog Examples" \ - "QtWinExtras/Quick Player" \ - "QtMultimedia/QML Video Shader Effects Example" \ - "QtCanvas3D/Planets Example" \ - "QtCanvas3D/Interactive Mobile Phone Example" \ - "QtLocation/Map Viewer (QML)" - -manifestmeta.highlighted.attributes = isHighlighted:true - -manifestmeta.android.names = "QtQuick/Qt Quick Demo - Maroon*" \ - "QtQuick/Qt Quick Demo - Calqlatr" \ - "QtWidgets/Application Chooser Example" \ - "QtWidgets/Stickman Example" \ - "QtWidgets/Move Blocks Example" \ - "QtWidgets/Border Layout Example" \ - "QtWidgets/Flow Layout Example" \ - "QtWidgets/Dock Widgets Example" \ - "QtWidgets/Recent Files Example" \ - "QtWidgets/Concentric Circles Example" \ - "QtWidgets/Gradients" \ - "QtWidgets/Font Sampler Example" \ - "QtWidgets/Path Stroking" \ - "QtWidgets/Transformations Example" \ - "QtWidgets/Syntax Highlighter Example" \ - "QtWidgets/Calendar Example" \ - "QtWidgets/Analog Clock Example" \ - "QtWidgets/Calculator Example" \ - "QtWidgets/Mouse Button Tester" \ - "QtWidgets/Character Map Example" \ - "QtWidgets/Digital Clock Example" \ - "QtWidgets/Elided Label Example" \ - "QtWidgets/Sliders Example" \ - "QtWidgets/Tetrix Example" \ - "QtWidgets/Group Box Example" \ - "QtWidgets/Undo Framework" \ - "QtWidgets/Colliding Mice Example" \ - "QtWidgets/Diagram Scene Example" \ - "QtWidgets/Elastic Nodes Example" \ - "QtWidgets/Weather Anchor Layout Example" \ - "QtNetwork/Torrent Example" \ - "QtNetwork/Network Chat Example" \ - "QtSQL/Master Detail Example" \ - "QtLinguist/Arrow Pad Example" \ - "QtGui/Raster Window Example" \ - "QtGui/Analog Clock Window Example" \ - "QtAndroidExtras/Qt Notifier" \ - "QtMultimedia/QML Video Shader Effects Example" \ - "QtMultimedia/QML Video Example" \ - "QtMultimedia/QML Camera Example" \ - "QtSVG/Text Object Example" \ - "QtQML/Qt Quick Examples - XMLHttpRequest" \ - "QtQuick/Qt Quick Particles Examples - *" \ - "QtQuick/Qt Quick Examples - Touch Interaction" \ - "QtQuick/Scene Graph - Custom Geometry" \ - "QtQuick/Scene Graph - Graph" \ - "QtQuick/Scene Graph - OpenGL Under QML" \ - "QtQuick/Scene Graph - Painted Item" \ - "QtQuick/Scene Graph - Rendering FBOs" \ - "QtQuick/Scene Graph - Simple Material" \ - "QtQuick/Qt Quick Examples - Image Elements" \ - "QtQuick/Qt Quick Examples - Key Interaction" \ - "QtQuick/Qt Quick Examples - Text" \ - "QtQuick/Qt Quick Examples - Animation" \ - "QtQuick/Qt Quick Examples - Shader Effects" \ - "QtQuick/Qt Quick Examples - Canvas" \ - "QtQuick/Qt Quick Examples - MouseArea" \ - "QtQuick/Qt Quick Examples - Positioners" \ - "QtQuick/Qt Quick Examples - Right to Left" \ - "QtWidgets/Interview" \ - "QtWidgets/Spreadsheet" \ - "QtWidgets/Pixelator Example" \ - "QtWidgets/Animated Tiles Example" \ - "QtWidgets/Affine Transformations" \ - "QtWidgets/Image Composition Example" \ - "QtWidgets/Basic Drawing Example" \ - "QtWidgets/Vector Deformation" \ - "QtWidgets/Painter Paths Example" \ - "QtWidgets/Style Sheet Example" \ - "QtWidgets/Code Editor Example" \ - "QtWidgets/Scribble Example" \ - "QtWidgets/Line Edits Example" \ - "QtWidgets/Calendar Widget Example" \ - "QtWidgets/Completer Example" \ - "QtWidgets/I18N Example" \ - "QtQML/Extending QML - Grouped Properties Example" \ - "QtQML/Extending QML - Methods Example" \ - "QtQML/Extending QML - Signal Support Example" \ - "QtQML/Extending QML - Attached Properties Example" - -manifestmeta.android.tags = android - -manifestmeta.ios.names = "QtCore/Contiguous Cache Example" \ - "QtCore/Mandelbrot Example" \ - "QtCore/Queued Custom Type Example" \ - "QtGui/Analog Clock Window Example" \ - "QtGui/OpenGL Window Example" \ - "QtGui/Raster Window Example" \ - "QtNetwork/Loopback Example" \ - "QtNetwork/Network Chat Example" \ - "QtNetwork/Torrent Example" \ - "QtOpenGL/2D Painting Example" \ - "QtOpenGL/Textures Example" \ - "QtWidgets/Animated Tiles Example" \ - "QtWidgets/Application Chooser Example" \ - "QtWidgets/Easing Curves Example" \ - "QtWidgets/Move Blocks Example" \ - "QtWidgets/States Example" \ - "QtWidgets/Class Wizard Example" \ - "QtWidgets/Find Files Example" \ - "QtWidgets/License Wizard Example" \ - "QtWidgets/Standard Dialogs Example" \ - "QtWidgets/Tab Dialog Example" \ - "QtWidgets/Trivial Wizard Example" \ - "QtWidgets/Draggable Text Example" \ - "QtWidgets/Fridge Magnets Example" \ - "QtWidgets/Blur Picker Effect Example" \ - "QtWidgets/Fade Message Effect Example" \ - "QtWidgets/Lighting Effect Example" \ - "QtWidgets/Anchor Layout Example" \ - "QtWidgets/Basic Graphics Layouts Example" \ - "QtWidgets/40000 Chips" \ - "QtWidgets/Colliding Mice Example" \ - "QtWidgets/Diagram Scene Example" \ - "QtWidgets/Elastic Nodes Example" \ - "QtWidgets/Embedded Dialogs" \ - "QtWidgets/Graphics View Flow Layout Example" \ - "QtWidgets/Simple Anchor Layout Example" \ - "QtWidgets/Weather Anchor Layout Example" \ - "QtWidgets/Address Book Example" \ - "QtWidgets/Basic Sort/Filter Model Example" \ - "QtWidgets/Chart Example" \ - "QtWidgets/Custom Sort/Filter Model Example" \ - "QtWidgets/Dir View Example" \ - "QtWidgets/Editable Tree Model Example" \ - "QtWidgets/Frozen Column Example" \ - "QtWidgets/Interview" \ - "QtWidgets/Simple Tree Model Example" \ - "QtWidgets/Simple Widget Mapper Example" \ - "QtWidgets/Basic Layouts Example" \ - "QtWidgets/Border Layout Example" \ - "QtWidgets/Flow Layout Example" \ - "QtWidgets/Basic Drawing Example" \ - "QtWidgets/Concentric Circles Example" \ - "QtWidgets/Font Sampler Example" \ - "QtWidgets/Gradients" \ - "QtWidgets/Image Composition Example" \ - "QtWidgets/Painter Paths Example" \ - "QtWidgets/Transformations Example" \ - "QtWidgets/Calendar Example" \ - "QtWidgets/Order Form Example" \ - "QtWidgets/Syntax Highlighter Example" \ - "QtWidgets/Text Edit" \ - "QtWidgets/Traffic Light Example" \ - "QtWidgets/Two-way Button Example" \ - "QtWidgets/Completer Example" \ - "QtWidgets/Custom Completer Example" \ - "QtWidgets/Undo Framework" \ - "QtWidgets/Analog Clock Example" \ - "QtWidgets/Calculator Example" \ - "QtWidgets/Calendar Widget Example" \ - "QtWidgets/Character Map Example" \ - "QtWidgets/Code Editor Example" \ - "QtWidgets/Digital Clock Example" \ - "QtWidgets/Elided Label Example" \ - "QtWidgets/Line Edits Example" \ - "QtWidgets/Scribble Example" \ - "QtWidgets/Shaped Clock Example" \ - "QtWidgets/Sliders Example" \ - "QtWidgets/Validators Example" \ - "QtWidgets/Window Flags Example" \ - "QtWidgets/Wiggly Example" \ - "QtQuick/Qt Quick Examples - Animation" \ - "QtQuick/Qt Quick Examples - Canvas" \ - "QtQuick/Qt Quick Examples - Drag and Drop" \ - "QtQuick/Qt Quick Examples - Image Elements" \ - "QtQuick/Qt Quick Examples - MouseArea" \ - "QtQuick/Qt Quick Examples - Positioners" \ - "QtQuick/Qt Quick Examples - Right to Left" \ - "QtQuick/Scene Graph - OpenGL Under QML" \ - "QtQuick/Qt Quick Examples - Shader Effects" \ - "QtQuick/Qt Quick Examples - Text" \ - "QtQuick/Qt Quick Examples - Touch Interaction" \ - "QtQuick/Qt Quick Examples - Views" \ - "QtQuick/Qt Quick Examples - Window and Screen" - -manifestmeta.ios.tags = ios - -# add a generic thumbnail image to examples that do not have any images in their documentation -#manifestmeta.thumbnail.attributes = "imageUrl:qthelp\://org.qt-project.qtdoc.$QT_VERSION_TAG/qtdoc/images/qt-codesample.png" - -manifestmeta.thumbnail.names = "QtCore/Contiguous Cache Example" \ - "QtCore/Custom Type Example" \ - "QtCore/JSON Save Game Example" \ - "QtCore/Semaphores Example" \ - "QtCore/Wait Conditions Example" \ - "QtConcurrent/Map Example" \ - "QtConcurrent/QtConcurrent Word Count Example" \ - "QtConcurrent/Run Function Example" \ - "QtGui/Raster Window Example" \ - "QtNetwork/Network Download*" \ - "QtWidgets/Dynamic Layouts Example" \ - "QtWidgets/Event Transitions Example" \ - "QtWidgets/Two-way Button Example" \ - "QtWidgets/Validators Example" \ - "QtDbus/*" \ - "QtHelp/*" \ - "QtMultimedia/AudioEngine Example" \ - "QtQml/Extending QML*" \ - "QtQuick/C++ Extensions: Image Response Provider Example" \ - "QtQuick/Qt Quick Examples - Accessibility" \ - "QtSensors/Qt Sensors - SensorGesture QML Type example" \ - "QtWinExtras/Icon Extractor" diff --git a/qdoc/global/qt-cpp-defines.qdocconf b/qdoc/global/qt-cpp-defines.qdocconf deleted file mode 100644 index 54d2cbbe4eaa9f85f07ada4a7d497340150fcc8c..0000000000000000000000000000000000000000 --- a/qdoc/global/qt-cpp-defines.qdocconf +++ /dev/null @@ -1,167 +0,0 @@ -versionsym = QT_VERSION_STR - -defines += Q_QDOC \ - QT_.*_SUPPORT \ - QT_.*_LIB \ - QT_COMPAT \ - QT_KEYPAD_NAVIGATION \ - QT_NO_EGL \ - QT3_SUPPORT \ - Q_DEAD_CODE_FROM_QT4_.* \ - Q_OS_.* \ - Q_BYTE_ORDER \ - QT_DEPRECATED \ - QT_DEPRECATED_* \ - Q_NO_USING_KEYWORD \ - __cplusplus \ - Q_COMPILER_INITIALIZER_LISTS \ - Q_COMPILER_UNIFORM_INIT \ - Q_COMPILER_RVALUE_REFS - -Cpp.ignoretokens += \ - ENGINIOCLIENT_EXPORT \ - PHONON_EXPORT \ - Q_AUTOTEST_EXPORT \ - Q_BLUETOOTH_EXPORT \ - Q_COMPAT_EXPORT \ - Q_CORE_EXPORT \ - Q_CORE_EXPORT_INLINE \ - Q_DBUS_EXPORT \ - Q_DECL_CONSTEXPR \ - Q_DECL_RELAXED_CONSTEXPR \ - Q_DECL_CONST_FUNCTION \ - Q_DECL_DEPRECATED \ - Q_DECL_NOEXCEPT \ - Q_DECL_FINAL \ - Q_DECL_OVERRIDE \ - Q_DECL_NOTHROW \ - Q_DECL_PURE_FUNCTION \ - Q_DECL_UNUSED \ - Q_DECL_CF_RETURNS_RETAINED \ - Q_DECL_NS_RETURNS_AUTORELEASED \ - Q_DECL_EQ_DEFAULT \ - Q_DECLARATIVE_EXPORT \ - Q_EXPLICIT \ - Q_EXPORT \ - Q_EXPORT_CODECS_CN \ - Q_EXPORT_CODECS_JP \ - Q_EXPORT_CODECS_KR \ - Q_EXPORT_PLUGIN \ - Q_EXPORT_PLUGIN2 \ - Q_GADGET \ - Q_GFX_INLINE \ - Q_GUI_EXPORT \ - Q_GUI_EXPORT_INLINE \ - Q_GUI_EXPORT_STYLE_CDE \ - Q_GUI_EXPORT_STYLE_COMPACT \ - Q_GUI_EXPORT_STYLE_MAC \ - Q_GUI_EXPORT_STYLE_MOTIF \ - Q_GUI_EXPORT_STYLE_MOTIFPLUS \ - Q_GUI_EXPORT_STYLE_PLATINUM \ - Q_GUI_EXPORT_STYLE_POCKETPC \ - Q_GUI_EXPORT_STYLE_SGI \ - Q_GUI_EXPORT_STYLE_WINDOWS \ - Q_GUI_EXPORT_STYLE_WINDOWSXP \ - Q_INLINE_TEMPLATE \ - Q_INTERNAL_WIN_NO_THROW \ - Q_INVOKABLE \ - Q_LOCATION_EXPORT \ - Q_POSITIONING_EXPORT \ - Q_MULTIMEDIA_EXPORT \ - Q_NETWORK_EXPORT \ - Q_NEVER_INLINE \ - Q_NORETURN \ - Q_OPENGL_EXPORT \ - Q_OPENVG_EXPORT \ - Q_OUTOFLINE_TEMPLATE \ - Q_PRINTSUPPORT_EXPORT \ - Q_QML_EXPORT \ - Q_REQUIRED_RESULT \ - Q_SCRIPT_EXPORT \ - Q_SCRIPTTOOLS_EXPORT \ - Q_SERIALBUS_EXPORT \ - Q_SQL_EXPORT \ - Q_SVG_EXPORT \ - Q_TESTLIB_EXPORT \ - Q_TYPENAME \ - Q_WIDGETS_EXPORT \ - Q_WINEXTRAS_EXPORT \ - Q_XML_EXPORT \ - Q_XMLPATTERNS_EXPORT \ - Q_XMLSTREAM_EXPORT \ - QAXFACTORY_EXPORT \ - QDBUS_EXPORT \ - QDESIGNER_COMPONENTS_LIBRARY \ - QDESIGNER_EXTENSION_LIBRARY \ - QDESIGNER_SDK_LIBRARY \ - QDESIGNER_SHARED_LIBRARY \ - QDESIGNER_UILIB_LIBRARY \ - QHELP_EXPORT \ - QM_AUTOTEST_EXPORT \ - QM_EXPORT_CANVAS \ - QM_EXPORT_DNS \ - QM_EXPORT_DOM \ - QM_EXPORT_FTP \ - QM_EXPORT_HTTP \ - QM_EXPORT_ICONVIEW \ - QM_EXPORT_NETWORK \ - QM_EXPORT_OPENGL \ - QM_EXPORT_OPENVG \ - QM_EXPORT_SQL \ - QM_EXPORT_TABLE \ - QM_EXPORT_WORKSPACE \ - QM_EXPORT_XML \ - QT_ASCII_CAST_WARN \ - QT_ASCII_CAST_WARN_CONSTRUCTOR \ - QT_BEGIN_INCLUDE_NAMESPACE \ - QT_BEGIN_NAMESPACE \ - QT_BOOTSTRAPPED \ - QT_DESIGNER_STATIC \ - QT_END_INCLUDE_NAMESPACE \ - QT_END_NAMESPACE \ - QT_FASTCALL \ - QT_MUTEX_LOCK_NOEXCEPT \ - QT_WARNING_PUSH \ - QT_WARNING_POP \ - QT_WIDGET_PLUGIN_EXPORT \ - QWEBKIT_EXPORT - -Cpp.ignoredirectives += \ - __attribute__ \ - K_DECLARE_PRIVATE \ - PHONON_HEIR \ - PHONON_OBJECT \ - Q_CLASSINFO \ - Q_DECLARE_INTERFACE \ - Q_DECLARE_METATYPE \ - Q_DECLARE_OPERATORS_FOR_FLAGS \ - Q_DECLARE_PRIVATE \ - Q_DECLARE_PRIVATE_D \ - Q_DECLARE_PUBLIC \ - Q_DECLARE_SHARED \ - Q_DECLARE_SHARED_NOT_MOVABLE_UNTIL_QT6 \ - Q_DECLARE_TR_FUNCTIONS \ - Q_DECLARE_TYPEINFO \ - Q_DECL_NOEXCEPT_EXPR \ - QT_DEPRECATED_X \ - Q_DISABLE_COPY \ - Q_DUMMY_COMPARISON_OPERATOR \ - Q_ENUM \ - Q_ENUMS \ - Q_FLAG \ - Q_FLAGS \ - Q_INTERFACES \ - Q_PRIVATE_PROPERTY \ - QT_FORWARD_DECLARE_CLASS \ - Q_DECLARE_HANDLE \ - Q_REVISION \ - QT_WARNING_DISABLE_CLANG \ - QT_WARNING_DISABLE_GCC \ - QT_WARNING_DISABLE_INTEL \ - QT_WARNING_DISABLE_MSVC \ - Q_ATTRIBUTE_FORMAT_PRINTF \ - Q_MV_IOS - -# Qt 6: Remove -falsehoods += \ - "QT_VERSION >= QT_VERSION_CHECK\\(6,0,0\\)" diff --git a/qdoc/global/qt-html-templates-offline-simple.qdocconf b/qdoc/global/qt-html-templates-offline-simple.qdocconf deleted file mode 100644 index 1fea752a16862f4d6985d8c02c9a625f1eb9dfb3..0000000000000000000000000000000000000000 --- a/qdoc/global/qt-html-templates-offline-simple.qdocconf +++ /dev/null @@ -1,35 +0,0 @@ -# Specify a custom CSS file used by this template -HTML.stylesheets += template/style/offline-simple.css -qhp.extraFiles += style/offline-simple.css - -# Override the header styles -HTML.headerstyles = \ - " <link rel=\"stylesheet\" type=\"text/css\" href=\"style/offline-simple.css\" />\n" \ - " <script type=\"text/javascript\">\n" \ - " document.getElementsByTagName(\"link\").item(0).setAttribute(\"href\", \"style/offline.css\");\n" \ - " </script>\n" - -HTML.postheader = \ - "<body>\n" \ - "<div class=\"header\" id=\"qtdocheader\">\n"\ - " <div class=\"main\">\n" \ - " <div class=\"main-rounded\">\n" \ - " <div class=\"navigationbar\">\n" \ - " <table><tr>\n" - -HTML.postpostheader = \ - " </tr></table>\n"\ - " </div>\n" \ - " </div>\n" \ - "<div class=\"content\">\n" \ - "<div class=\"line\">\n" \ - "<div class=\"content mainContent\">\n" - -HTML.navigationseparator = \ - "<span class=\"naviSeparator\"> ◦ </span>\n" - -# Add some padding around code snippets, as we cannot -# currectly style them for QTextBrowser using only CSS. -codeindent = 2 -codeprefix = "\n\n" -codesuffix = "\n\n" diff --git a/qdoc/global/qt-html-templates-offline.qdocconf b/qdoc/global/qt-html-templates-offline.qdocconf deleted file mode 100644 index d5780a35da8cd15d0eb190f0d81035e8a6069093..0000000000000000000000000000000000000000 --- a/qdoc/global/qt-html-templates-offline.qdocconf +++ /dev/null @@ -1,33 +0,0 @@ -#include standard set of HTML header and footer. -include(html-config.qdocconf) -include(html-header-offline.qdocconf) -include(html-footer.qdocconf) - -#uncomment if navigation bar is not wanted -#HTML.nonavigationbar = "true" - -HTML.stylesheets = template/style/offline.css -HTML.extraimages += template/images/ico_out.png \ - template/images/ico_note.png \ - template/images/ico_note_attention.png \ - template/images/btn_prev.png \ - template/images/btn_next.png \ - template/images/bullet_dn.png \ - template/images/bullet_sq.png \ - template/images/bgrContent.png - -#specify which files in the output directory should be packed into the qch file. -qhp.extraFiles += style/offline.css \ - images/ico_out.png \ - images/ico_note.png \ - images/ico_note_attention.png \ - images/btn_prev.png \ - images/btn_next.png \ - images/bullet_dn.png \ - images/bullet_sq.png \ - images/bgrContent.png - -# By default, include override definitions for a simplified template/CSS, -# suited for rendering HTML with QTextBrowser. Comment out this line to -# select the standard CSS. -include(qt-html-templates-offline-simple.qdocconf) diff --git a/qdoc/global/qt-module-defaults-offline.qdocconf b/qdoc/global/qt-module-defaults-offline.qdocconf deleted file mode 100644 index 608ff1091d0879b90800991b5e2e66e50eb2b225..0000000000000000000000000000000000000000 --- a/qdoc/global/qt-module-defaults-offline.qdocconf +++ /dev/null @@ -1,17 +0,0 @@ -#The default configuration for a Qt 5 module, including Add-Ons and Tools. -#Include this file for a standard Qt 5 module; builds with the offline style. - -#include standard set of macros and C++ defines and ignores -include(macros.qdocconf) -include(qt-cpp-defines.qdocconf) -include(compat.qdocconf) -#include(manifest-meta.qdocconf) -include(fileextensions.qdocconf) - -include(qt-html-templates-offline.qdocconf) - -#extra configuration data such as file extensions -include(config.qdocconf) - -# Show Qt version as part of the navigation bar -buildversion = "TopIKM6 Reference Documentation" diff --git a/qdoc/global/template/images/Qt-dark_gradient.png b/qdoc/global/template/images/Qt-dark_gradient.png deleted file mode 100644 index 6ae10f37bf4b40ac6e8b44e08bdf95ca2adc1449..0000000000000000000000000000000000000000 Binary files a/qdoc/global/template/images/Qt-dark_gradient.png and /dev/null differ diff --git a/qdoc/global/template/images/Qt-footer-bg.jpg b/qdoc/global/template/images/Qt-footer-bg.jpg deleted file mode 100644 index c0ff209b7e77f1b83e9d5040dbda6c490c53b5e8..0000000000000000000000000000000000000000 Binary files a/qdoc/global/template/images/Qt-footer-bg.jpg and /dev/null differ diff --git a/qdoc/global/template/images/Qt-footer_shadow.png b/qdoc/global/template/images/Qt-footer_shadow.png deleted file mode 100644 index 5a7063dfee63fabed6bf07bf710fa8c312fe54c5..0000000000000000000000000000000000000000 Binary files a/qdoc/global/template/images/Qt-footer_shadow.png and /dev/null differ diff --git a/qdoc/global/template/images/Qt-gradient.png b/qdoc/global/template/images/Qt-gradient.png deleted file mode 100644 index aa38227cbb1741460f81157e38091c1a939cde78..0000000000000000000000000000000000000000 Binary files a/qdoc/global/template/images/Qt-gradient.png and /dev/null differ diff --git a/qdoc/global/template/images/Qt-header-bg.jpg b/qdoc/global/template/images/Qt-header-bg.jpg deleted file mode 100644 index c9a6d96db4539c1a0f56e409fede5a7a3664ed27..0000000000000000000000000000000000000000 Binary files a/qdoc/global/template/images/Qt-header-bg.jpg and /dev/null differ diff --git a/qdoc/global/template/images/Qt-logo.png b/qdoc/global/template/images/Qt-logo.png deleted file mode 100644 index 01256ab08dcf24aa990dc786723439f8dca192cc..0000000000000000000000000000000000000000 Binary files a/qdoc/global/template/images/Qt-logo.png and /dev/null differ diff --git a/qdoc/global/template/images/arrow.png b/qdoc/global/template/images/arrow.png deleted file mode 100644 index f2a83a5740683d31d9aab1e7da51c875d8b122fe..0000000000000000000000000000000000000000 Binary files a/qdoc/global/template/images/arrow.png and /dev/null differ diff --git a/qdoc/global/template/images/arrow_bc.png b/qdoc/global/template/images/arrow_bc.png deleted file mode 100644 index f2a83a5740683d31d9aab1e7da51c875d8b122fe..0000000000000000000000000000000000000000 Binary files a/qdoc/global/template/images/arrow_bc.png and /dev/null differ diff --git a/qdoc/global/template/images/arrow_down.png b/qdoc/global/template/images/arrow_down.png deleted file mode 100644 index 9d01e97f6a959434811ae2bc02107903f47734f8..0000000000000000000000000000000000000000 Binary files a/qdoc/global/template/images/arrow_down.png and /dev/null differ diff --git a/qdoc/global/template/images/bg_l.png b/qdoc/global/template/images/bg_l.png deleted file mode 100644 index 90b1da10b9b9f85eff333ba71fcc66803ce9dca2..0000000000000000000000000000000000000000 Binary files a/qdoc/global/template/images/bg_l.png and /dev/null differ diff --git a/qdoc/global/template/images/bg_l_blank.png b/qdoc/global/template/images/bg_l_blank.png deleted file mode 100644 index 5a9673d81bd4792d4789fc0089caf221b8bad42e..0000000000000000000000000000000000000000 Binary files a/qdoc/global/template/images/bg_l_blank.png and /dev/null differ diff --git a/qdoc/global/template/images/bg_ll_blank.png b/qdoc/global/template/images/bg_ll_blank.png deleted file mode 100644 index 95a1c45e04b99502491f0775c4a21100cbd1bdb9..0000000000000000000000000000000000000000 Binary files a/qdoc/global/template/images/bg_ll_blank.png and /dev/null differ diff --git a/qdoc/global/template/images/bg_r.png b/qdoc/global/template/images/bg_r.png deleted file mode 100644 index f0fb121dea583b5df61fbc11d75069beb6e0c42f..0000000000000000000000000000000000000000 Binary files a/qdoc/global/template/images/bg_r.png and /dev/null differ diff --git a/qdoc/global/template/images/bg_ul_blank.png b/qdoc/global/template/images/bg_ul_blank.png deleted file mode 100644 index 70512614cc78c36f2798da87e7c65af3a950440e..0000000000000000000000000000000000000000 Binary files a/qdoc/global/template/images/bg_ul_blank.png and /dev/null differ diff --git a/qdoc/global/template/images/bgrContent.png b/qdoc/global/template/images/bgrContent.png deleted file mode 100644 index 1a81b03087771415eeb8cbd0f020aed766cd1219..0000000000000000000000000000000000000000 Binary files a/qdoc/global/template/images/bgrContent.png and /dev/null differ diff --git a/qdoc/global/template/images/blu_dot.png b/qdoc/global/template/images/blu_dot.png deleted file mode 100644 index c332148f74538db9b3438dc33655dffbba42d5d0..0000000000000000000000000000000000000000 Binary files a/qdoc/global/template/images/blu_dot.png and /dev/null differ diff --git a/qdoc/global/template/images/box_bg.png b/qdoc/global/template/images/box_bg.png deleted file mode 100644 index 3322f923f81d060c50ca8e7a50182837c16f7bd9..0000000000000000000000000000000000000000 Binary files a/qdoc/global/template/images/box_bg.png and /dev/null differ diff --git a/qdoc/global/template/images/breadcrumb.png b/qdoc/global/template/images/breadcrumb.png deleted file mode 100644 index 0ded5514d236b9ccf458c0cc3f0afe7f89a1f8f1..0000000000000000000000000000000000000000 Binary files a/qdoc/global/template/images/breadcrumb.png and /dev/null differ diff --git a/qdoc/global/template/images/btn_next.png b/qdoc/global/template/images/btn_next.png deleted file mode 100644 index c649f18572e23f65f8485e7fe35c21bee8973831..0000000000000000000000000000000000000000 Binary files a/qdoc/global/template/images/btn_next.png and /dev/null differ diff --git a/qdoc/global/template/images/btn_prev.png b/qdoc/global/template/images/btn_prev.png deleted file mode 100644 index d1d29895b27ef56c21b6a1e185fe0ca584f00601..0000000000000000000000000000000000000000 Binary files a/qdoc/global/template/images/btn_prev.png and /dev/null differ diff --git a/qdoc/global/template/images/bullet_dn.png b/qdoc/global/template/images/bullet_dn.png deleted file mode 100644 index f7762472e2379b57e203b684bb20b95af9d97229..0000000000000000000000000000000000000000 Binary files a/qdoc/global/template/images/bullet_dn.png and /dev/null differ diff --git a/qdoc/global/template/images/bullet_gt.png b/qdoc/global/template/images/bullet_gt.png deleted file mode 100644 index 7561b4edc4ccfcadf17fe199c8ffda8a9c154109..0000000000000000000000000000000000000000 Binary files a/qdoc/global/template/images/bullet_gt.png and /dev/null differ diff --git a/qdoc/global/template/images/bullet_sq.png b/qdoc/global/template/images/bullet_sq.png deleted file mode 100644 index a84845e3c7e7a9dde3388ef851bd1bac74a6c40f..0000000000000000000000000000000000000000 Binary files a/qdoc/global/template/images/bullet_sq.png and /dev/null differ diff --git a/qdoc/global/template/images/bullet_up.png b/qdoc/global/template/images/bullet_up.png deleted file mode 100644 index 7de2f06954bb18c44791abe8e7b3e15c8ce666de..0000000000000000000000000000000000000000 Binary files a/qdoc/global/template/images/bullet_up.png and /dev/null differ diff --git a/qdoc/global/template/images/feedbackground.png b/qdoc/global/template/images/feedbackground.png deleted file mode 100644 index 3a38d995d7fa681a7bd2bbc4f5130abb35c8b1b4..0000000000000000000000000000000000000000 Binary files a/qdoc/global/template/images/feedbackground.png and /dev/null differ diff --git a/qdoc/global/template/images/header_bg.png b/qdoc/global/template/images/header_bg.png deleted file mode 100644 index a436aa61eff96c18f4fbb6e050d79f8d8da6146a..0000000000000000000000000000000000000000 Binary files a/qdoc/global/template/images/header_bg.png and /dev/null differ diff --git a/qdoc/global/template/images/home.png b/qdoc/global/template/images/home.png deleted file mode 100644 index 8de6d0c81f64dde8554f376925b458cae8585949..0000000000000000000000000000000000000000 Binary files a/qdoc/global/template/images/home.png and /dev/null differ diff --git a/qdoc/global/template/images/horBar.png b/qdoc/global/template/images/horBar.png deleted file mode 100644 index 100fe91c6c541706112335f854ca4698dd91f25a..0000000000000000000000000000000000000000 Binary files a/qdoc/global/template/images/horBar.png and /dev/null differ diff --git a/qdoc/global/template/images/ico_note.png b/qdoc/global/template/images/ico_note.png deleted file mode 100644 index 13794046cf2fec79410bb09f19f688cad261d217..0000000000000000000000000000000000000000 Binary files a/qdoc/global/template/images/ico_note.png and /dev/null differ diff --git a/qdoc/global/template/images/ico_note_attention.png b/qdoc/global/template/images/ico_note_attention.png deleted file mode 100644 index b85b696b10eb2275f9e52eebc1227890d9016d0d..0000000000000000000000000000000000000000 Binary files a/qdoc/global/template/images/ico_note_attention.png and /dev/null differ diff --git a/qdoc/global/template/images/ico_out.png b/qdoc/global/template/images/ico_out.png deleted file mode 100644 index 790a05e51dd7b87629fa2942b8f1a5e015cd6e30..0000000000000000000000000000000000000000 Binary files a/qdoc/global/template/images/ico_out.png and /dev/null differ diff --git a/qdoc/global/template/images/logo.png b/qdoc/global/template/images/logo.png deleted file mode 100644 index 698dde9215ca0c91d27745031000fdf83dc48ed0..0000000000000000000000000000000000000000 Binary files a/qdoc/global/template/images/logo.png and /dev/null differ diff --git a/qdoc/global/template/images/page.png b/qdoc/global/template/images/page.png deleted file mode 100644 index 1db151bd31e81a632d27236f7416ff3df5a02a89..0000000000000000000000000000000000000000 Binary files a/qdoc/global/template/images/page.png and /dev/null differ diff --git a/qdoc/global/template/images/page_bg.png b/qdoc/global/template/images/page_bg.png deleted file mode 100644 index 9b3bd999dfb5b4988ff40bbf82de81f762a5d034..0000000000000000000000000000000000000000 Binary files a/qdoc/global/template/images/page_bg.png and /dev/null differ diff --git a/qdoc/global/template/images/spinner.gif b/qdoc/global/template/images/spinner.gif deleted file mode 100644 index 1ed786f2ece49ec5db07dee13a56ef38025b628c..0000000000000000000000000000000000000000 Binary files a/qdoc/global/template/images/spinner.gif and /dev/null differ diff --git a/qdoc/global/template/images/sprites-combined.png b/qdoc/global/template/images/sprites-combined.png deleted file mode 100644 index c4f01c4bb956e8d627e411b08886ddf4f5db3435..0000000000000000000000000000000000000000 Binary files a/qdoc/global/template/images/sprites-combined.png and /dev/null differ diff --git a/qdoc/global/template/scripts/extras.js b/qdoc/global/template/scripts/extras.js deleted file mode 100644 index ba7a4a50fb0459a3edb5e672e2130755979edeb8..0000000000000000000000000000000000000000 --- a/qdoc/global/template/scripts/extras.js +++ /dev/null @@ -1,80 +0,0 @@ -var vOffset_init = 65; -var vOffset = vOffset_init; -var c = 'collapsed'; - -function toggleList(toggle, content, maxItems) { - if (toggle.css('display') == 'none') { - vOffset = vOffset_init; - toggle.removeClass(c); - content.show(); - return; - } else - vOffset = 8; - - if (maxItems > content.children().length) - return; - content.hide(); - toggle.addClass(c); -} - -$(function () { - $('a[href*=#]:not([href=#])').on('click', function (e) { - if (e.which == 2 || e.metaKey || e.ctrlKey || e.shiftKey) - return true; - var target = $(this.hash.replace(/(\.)/g, "\\$1")); - target = target.length ? target : $('[name=' + this.hash.slice(1) + ']'); - if (target.length) { - setTimeout(function () { - $('html, body').animate({scrollTop: target.offset().top - vOffset}, 50);}, 50); - } - }); -}); - -$(window).load(function () { - var hashChanged = function() { - var h = window.location.hash; - var re = /[^a-z0-9_\.\#\-]/i - if (h.length > 1 && !re.test(h)) { - setTimeout(function () { - var tgt = $(h.replace(/(\.)/g, "\\$1")); - tgt = tgt.length ? tgt : $('[name=' + h.slice(1) + ']'); - $(window).scrollTop(tgt.offset().top - vOffset); - }, 0); - } - } - $(window).bind('hashchange', hashChanged); - hashChanged.call(); - - if (!$('.sidebar toc').is(':empty')) { - $('<div id="toc-toggle"></div>').prependTo('.sidebar .toc'); - var toc = $('.sidebar .toc ul'); - var tocToggle = $('#toc-toggle'); - var tocCallback = function() { toggleList(tocToggle, toc, 4); }; - - $('#toc-toggle').on('click', function(e) { - e.stopPropagation(); - toc.toggle(); - tocToggle.toggleClass(c); - }); - - tocCallback.call(); - $(window).resize(tocCallback); - } - - if (!$('#sidebar-content').is(':empty')) { - $('#sidebar-content h2').first().clone().prependTo('#sidebar-content'); - $('<div id="sidebar-toggle"></div>').prependTo('#sidebar-content'); - var sb = $('#sidebar-content .sectionlist'); - var sbToggle = $('#sidebar-toggle'); - var sbCallback = function() { toggleList(sbToggle, sb, 0); }; - - $('#sidebar-toggle').on('click', function(e) { - e.stopPropagation(); - sb.toggle(); - sbToggle.toggleClass(c); - }); - - sbCallback.call(); - $(window).resize(sbCallback); - } -}); diff --git a/qdoc/global/template/scripts/main.js b/qdoc/global/template/scripts/main.js deleted file mode 100644 index 823cebecf85ac7639153643b0683913a050b4254..0000000000000000000000000000000000000000 --- a/qdoc/global/template/scripts/main.js +++ /dev/null @@ -1,241 +0,0 @@ -"use strict"; - -function createCookie(name, value, days) { - var expires; - if (days) { - var date = new Date(); - date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000)); - expires = "; expires=" + date.toGMTString(); - } else { - expires = ""; - } - document.cookie = escape(name) + "=" + escape(value) + expires + "; path=/"; - $('.cookies_yum').click(function() { - $(this).fadeOut() - }); -} -function readCookie(name) { - var nameEQ = escape(name) + "="; - var ca = document.cookie.split(';'); - for (var i = 0; i < ca.length; i++) { - var c = ca[i]; - while (c.charAt(0) === ' ') c = c.substring(1, c.length); - if (c.indexOf(nameEQ) === 0) return unescape(c.substring(nameEQ.length, c.length)); - } - return null; -} -function eraseCookie(name) { - createCookie(name, "", -1); -} -function load_sdk(s, id, src) { - var js, fjs = document.getElementsByTagName(s)[0]; - if (document.getElementById(id)) return; - js = document.createElement(s); - js.id = id; - js.src = src; - fjs.parentNode.insertBefore(js, fjs); -} -$(document).ready(function($) { - if (document.documentElement.clientWidth < 1280) { - oneQt.extraLinksToMain(); - } - - $('#menuextras .search').click(function(e){ - e.preventDefault(); - $('.big_bar.account').slideUp(); - $('.big_bar.search').slideToggle(); - $('.big_bar_search').focus(); - $(this).toggleClass('open'); - }); - $('.cookies_yum').click(function() { - $('.cookies_yum').fadeOut(); - createCookie("cookies_nom", "yum", 180); - var cookie_added = 1; - }); - if (!(readCookie('cookies_nom') == 'yum')) { - $('.cookies_yum').fadeIn(); - } else { - var cookie_added = 1; - } - - Modernizr.load({test: Modernizr.input.placeholder, - nope: wpThemeFolder + '/js/placeholders.min.js'}); - - $('#navbar .navbar-toggle').click(function(e) { - e.preventDefault(); - if ($(this).hasClass('opened')) { - $(this).removeClass('opened'); - $('#navbar .navbar-menu').css('max-height', '0px'); - } - else { - $(this).addClass('opened'); - $('#navbar .navbar-menu').css('max-height', $('#navbar .navbar-menu ul').outerHeight() + 'px'); - } - }); - - $(window).resize(function() { - oneQt.stickySidebar(); - oneQt.footerPosition(); - if (document.documentElement.clientWidth < 1280) { - oneQt.extraLinksToMain(); - } else { - oneQt.mainLinkstoExtra(); - } - }); - - $(window).scroll(function() { - oneQt.stickySidebar(); - oneQt.stickyHeader(); - }); - - oneQt.stickySidebar(); - oneQt.footerPosition(); - oneQt.tabContents(); -}); - -$( window ).load(function() { - load_sdk('script', 'facebook-jssdk','//connect.facebook.net/en_US/sdk.js#xfbml=1&appId=207346529386114&version=v2.0'); - load_sdk('script', 'twitter-wjs', '//platform.twitter.com/widgets.js'); - $.getScript("//www.google.com/jsapi", function(){ - google.load("feeds", "1", {"callback": oneQt.liveFeeds}); - }); -}); - -var oneQt = { - stickySidebar: function() { - if ($('#sidebar').length && $('#sidebar').outerHeight() > 20) { - var $sidebar = $('#sidebar'); - var $win = $(window); - var $sidebarContainer = $sidebar.parent(); - var headerHeight = $('#navbar').outerHeight(); - if ($win.outerHeight() - headerHeight > $sidebar.innerHeight() && - $win.scrollTop() > $sidebarContainer.offset().top) { - var newTop = headerHeight + $win.scrollTop() - $sidebarContainer.offset().top; - if (newTop + $sidebar.innerHeight() > $sidebarContainer.innerHeight()) - newTop = $sidebarContainer.innerHeight() - $sidebar.innerHeight(); - - $sidebar.css({top: newTop +'px'}) - } - else { - $sidebar.css({top: '0'}) - } - } - }, - - footerPosition: function () { - $('#footerbar').removeClass('fixed'); - if (($('.hbspt-form').length > 0) || ($('#customerInfo').length > 0) || ($('.purchase_bar').length > 0)) { - var footerBottomPos = $('#footerbar').offset().top + $('#footerbar').outerHeight(); - if (footerBottomPos < $(window).height()) - $('#footerbar').addClass('fixed'); - } - }, - - stickyHeader: function () { - var originalHeaderHeight = 79; - if ($(window).scrollTop() > originalHeaderHeight) { - $('#navbar').addClass('fixed'); - $('#bottom_header').fadeOut(); - - if (!(cookie_added == 1)) { - $('.cookies_yum').fadeOut(); - createCookie("cookies_nom", "yum", 180); - var cookie_added = 1; - } - } - else { - $('#navbar').removeClass('fixed'); - $('#bottom_header').fadeIn(); - } - }, - - tabContents: function () { - $('.tab-container').each(function(i) { - var $el = $(this); - $el.find('.tab-titles li:eq(0)').addClass('active'); - $el.find('.tab-contents .tab:eq(0)').addClass('active'); - $el.find('.tab-titles a').click(function(e) { - e.preventDefault(); - var index = $(this).parent().index(); - $el.find('.tab-titles li').removeClass('active'); - $el.find('.tab-contents .tab').removeClass('active'); - $(this).parent().addClass('active'); - $el.find('.tab-contents .tab').eq(index).addClass('active'); - }) - }); - }, - - liveFeeds: function () { - $('.feed-container').each(function(i) { - var feedUrl = $(this).data('url'); - if (feedUrl != "") oneQt.blogFeed($(this), feedUrl); - }); - }, - - blogFeed: function ($container, feedUrl) { - var feed = new google.feeds.Feed(feedUrl); - feed.setNumEntries(3); - feed.load(function(result) { - $container.html(''); - if (!result.error) { - for (var i = 0; i < result.feed.entries.length; i++) { - var entry = result.feed.entries[i]; - var $article = $('<article class="discussion-tile cf"></article>'); - $container.append($article); - var html = ' <div class="author retina">'; - html += ' <img src="'+wpThemeFolder+'/assets/images/author_placeholder.png" alt="">'; - html += ' </div>'; - html += ' <div class="discussion-item">'; - html += ' <h4><a href="'+encodeURI(entry.link)+'"></a></h4>' - html += ' <h3><a href="'+encodeURI(entry.link)+'" target="_blank"></a></h3>' - html += ' <p><a href="'+encodeURI(entry.link)+'" target="_blank"></a></p>'; - html += ' <ul class="taglist cf">'; - html += ' </ul>'; - html += ' </div>'; - $article.append(html); - $article.find('h4 a').text(result.feed.title); - $article.find('h3 a').text(entry.title); - $article.find('p a').text(entry.author); - try { - for (var j=0; j<entry.categories.length; j++) { - var $li = $('<li><a href="'+encodeURI(entry.link)+'" target="_blank" class="btn btn-tag"></a></li>'); - $li.find('a').text(entry.categories[j]); - $article.find('.taglist').append($li); - } - } catch(e) {} - } - if (result.feed.link && result.feed.link != "") { - var linkHtml = '<a href="'+encodeURI(result.feed.link)+'" class="text-lightgrey" target="_blank">Show all</a>'; - $container.append(linkHtml); - } - } - }); - }, - - extraLinksToMain: function() { - var extramenuLinks = $('#menuextras').find('li'); - var mainmenu = $('#mainmenu'); - var count = 0; - if ($(extramenuLinks).length > 2) { - $(extramenuLinks).each(function() { - if (count < 3) { - var newLink = $(this); - $(newLink).addClass('dynamic-add'); - $(mainmenu).append(newLink); - } - count++; - }); - } - }, - - mainLinkstoExtra: function() { - var mainmenuLinks = $('#mainmenu').find('.dynamic-add'); - var extramenu = $('#menuextras'); - var count = 0; - $(mainmenuLinks).each(function() { - var newLink = $(this); - $(extramenu).prepend(newLink); - count++; - }); - } -} diff --git a/qdoc/global/template/style/cookiebar-x.png b/qdoc/global/template/style/cookiebar-x.png deleted file mode 100644 index 6aea1e62d132f50051a8602d9fb9386d22024328..0000000000000000000000000000000000000000 Binary files a/qdoc/global/template/style/cookiebar-x.png and /dev/null differ diff --git a/qdoc/global/template/style/doc_search.png b/qdoc/global/template/style/doc_search.png deleted file mode 100644 index 0d7bccd46f95748946bad81b2cecb8d0df7f6ca2..0000000000000000000000000000000000000000 Binary files a/qdoc/global/template/style/doc_search.png and /dev/null differ diff --git a/qdoc/global/template/style/gsc.css b/qdoc/global/template/style/gsc.css deleted file mode 100644 index e3d6391d6b59de514c080bf1e203ca3c09efd1b4..0000000000000000000000000000000000000000 --- a/qdoc/global/template/style/gsc.css +++ /dev/null @@ -1,192 +0,0 @@ -.gsc-control-cse table, table td, table th { - border: none !important; - margin-bottom: 10px !important -} -.gsc-control-cse { - width: 100% !important; - box-sizing: border-box !important -} -.gsc-control-cse * { - font-family: 'Open Sans', Arial, Helvetica, sans-serif !important; - line-height: 1.5 !important; - font-weight: 300 !important -} -.gsc-control-cse, -.gsc-control-cse .gsc-table-result { - width: 100% !important; - font-family: 'Open Sans', Arial, Helvetica, sans-serif !important; - font-weight: 300 !important; - font-size: 13px !important -} -.gsc-resultsHeader { - width: 100% !important; - clear: both !important -} -.gsc-resultsHeader td.gsc-twiddleRegionCell { - width: 75% !important -} -.gsc-resultsbox-visible { - display: block !important -} -.gsc-resultsbox-invisible { - display: none !important -} -.gsc-results { - padding-bottom: 2px !important; - width: 99% !important -} -.gsc-result { - margin-bottom: 10px !important -} -.gsc-result .gs-title { - height: 1.4em !important; - overflow: hidden !important -} -.gsc-result div.gs-watermark { - display: none !important -} -.gsc-results .gsc-result img.gs-ad-marker { - display: none !important -} -.gsc-webResult:after { - content: "." !important; - display: block !important; - height: 0 !important; - clear: both !important; - visibility: hidden !important -} -.gsc-webResult { - zoom: 1 !important -} -.gsc-webResult .gsc-result { - margin: 0 !important; - padding: .5em 0 !important; - border-bottom: 1px solid #ebebeb !important -} -.gsc-above-wrapper-area { - border-bottom: 1px solid #E9E9E9 !important; - padding: 5px 0 5px 0 !important -} -.gsc-above-wrapper-area-invisible { - display: none !important -} -.gsc-above-wrapper-area-container { - width: 100% !important -} -.gsc-result-info { - text-align: left !important; - color: #676767 !important; - font-size: 13px !important; - padding-left: 8px !important; - margin: 10px 0 10px 0 !important -} -.gsc-result-info-container { - text-align: left !important -} -.gsc-result-info-invisible { - display: none !important -} -.gsc-orderby-container { - text-align: right !important; - background: transparent !important -} -.gsc-orderby-invisible { - display: none !important -} -.gsc-orderby-label { - color: #676767 !important; - padding: 5px 5px 6px 0 !important -} -.gsc-selected-option-container { - background-color: transparent !important; - border: 1px solid #eee !important; - border: 1px solid rgba(0, 0, 0, 0.1) !important; - border-radius: 2px !important; - box-shadow: none !important; - color: #444 !important; - cursor: default !important; - font-size: 11px !important; - font-weight: bold !important; - height: 20px !important; - line-height: 20px !important; - max-width: 90% !important; - min-width: 54px !important; - outline: 0 !important; - padding: 0 28px 0 6px !important; - position: relative !important; - text-align: center !important; - width: 50px !important !important -} -.gsc-selected-option { - position: relative !important; - width: 100% !important; -} -.gsc-control-cse .gsc-option-selector { - border: none !important; - height: 11px !important; - margin-top: -4px !important; - position: absolute !important; - right: 5px !important; - top: 8px !important; - width: 7px !important; - padding: 0 5px 0 5px !important; - background: url(//ssl.gstatic.com/ui/v1/disclosure/small-grey-disclosure-arrow-down.png) center no-repeat -} -.gsc-results .gsc-cursor-box .gsc-trailing-more-results { - margin-bottom: 0 !important; - display: inline !important -} -.gsc-results .gsc-cursor { - display: inline !important -} -.gsc-results .gsc-cursor-box { - margin: 10px 5px 10px !important -} -.gsc-results .gsc-cursor-box .gsc-cursor-page { - cursor: pointer !important; - color: #000000 !important; - text-decoration: underline !important; - margin-right: 8px !important; - display: inline !important -} -.gsc-results .gsc-cursor-box .gsc-cursor-current-page { - cursor: default !important; - color: white !important; - background-color: #5caa15 !important; - font-weight: bold !important; - text-decoration: none !important; - padding: 0 3px 0 3px !important; - margin-top: 10px !important; - cursor: pointer !important -} -.gs-result .gs-title, -.gs-result .gs-title * { - color: #5caa15 !important; - text-decoration: underline !important -} -.gs-webResult div.gs-visibleUrl-long, -.gs-promotion div.gs-visibleUrl-long { - overflow: hidden !important; - display: none !important -} -.gs-webResult div.gs-per-result-labels a.gs-label { - text-decoration: underline !important; - cursor: pointer !important; - padding: 3px !important; - color: #26282a !important -} -.gs-webResult div.gs-per-result-labels a.gs-label.gs-labelActive { - cursor: default !important; - text-decoration: none !important -} -.gsc-control-cse:after { - content: "." !important; - display: block !important; - clear: both !important; - height: 0 !important; - visibility: hidden !important -} - -*:first-child + html .gsc-inline-block { - display: inline !important -} diff --git a/qdoc/global/template/style/icomoon.eot b/qdoc/global/template/style/icomoon.eot deleted file mode 100644 index 68f0fa6ae6f0c2e28b928f3cb3d8b78abeede398..0000000000000000000000000000000000000000 Binary files a/qdoc/global/template/style/icomoon.eot and /dev/null differ diff --git a/qdoc/global/template/style/icomoon.svg b/qdoc/global/template/style/icomoon.svg deleted file mode 100644 index 3246f83769d65a2371ae0c66e6d4591ca2de6069..0000000000000000000000000000000000000000 --- a/qdoc/global/template/style/icomoon.svg +++ /dev/null @@ -1,20 +0,0 @@ -<?xml version="1.0" standalone="no"?> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" > -<svg xmlns="http://www.w3.org/2000/svg"> -<metadata>Generated by IcoMoon</metadata> -<defs> -<font id="icomoon" horiz-adv-x="512"> -<font-face units-per-em="512" ascent="480" descent="-32" /> -<missing-glyph horiz-adv-x="512" /> -<glyph unicode=" " d="" horiz-adv-x="256" /> -<glyph unicode="" d="M70.281 478.981c-38.026 6.451-70.281-21.729-70.281-62.472v-448.51l347.671 58.398c24.106 4.075 42.78 32.255 42.78 62.812v337.486l-320.17 52.286zM232.233 147.608c-10.185-23.767-25.464-39.045-46.175-46.514 2.037-10.865 5.433-17.655 9.506-21.729 2.376-2.037 5.772-3.735 9.846-3.735h11.544c-2.376 0-4.414-0.679-6.451-0.679l0.339-0.339c2.037 0 3.055 0 6.451 0.339v-31.915l-14.939-2.037c-4.414-0.679-8.488-0.679-12.223-0.679-12.902 0-23.088 3.055-30.897 9.507-10.185 8.149-17.994 24.106-22.748 47.533-22.409 4.753-39.724 19.014-51.608 42.78-12.223 24.106-18.334 59.416-18.334 105.931 0 49.91 8.488 86.578 25.124 110.005 14.26 19.692 33.953 29.538 58.737 29.538 4.075 0 8.149-0.339 12.223-0.679 29.199-3.395 50.25-16.976 64.17-41.082 13.581-23.427 20.032-56.7 20.032-100.838 0-40.403-4.754-71.979-14.6-95.406zM346.313 125.199c-13.581-5.433-24.785-8.827-37.008-9.846-1.697 0-3.395-0.339-5.093-0.339-10.865 0-19.692 3.055-25.464 9.507-6.791 7.469-10.525 19.353-10.525 35.65v125.623l-13.581 0.679v33.273l17.994-1.358 11.884 49.57 27.841-3.055v-49.231l30.557-2.376v-30.897l-30.557 1.358v-113.061c0-9.846 1.019-16.297 3.055-19.014s5.093-3.735 9.167-3.735c0.339 0 1.019 0 1.358 0 6.111 0.339 13.581 2.377 20.372 5.772v-28.52zM162.631 347.586c-1.018 0-1.697 0-2.716 0-10.525 0-18.673-6.111-24.446-18.673-6.112-13.581-9.167-41.422-9.167-84.202 0-41.082 3.055-70.281 9.167-87.257 5.772-16.297 14.26-24.445 25.803-24.445 0.339 0 1.018 0 1.358 0 11.204 0.679 19.692 8.488 25.464 23.427 5.772 14.599 8.488 43.798 8.488 86.918 0 38.706-2.716 65.528-8.488 80.127-5.433 14.939-13.921 23.088-25.464 24.106zM206.090 75.289v0zM206.090 75.289c1.358 0 2.716 0 4.414 0 2.037 0 4.075 0.679 6.451 0.679h-11.544l0.679-0.679z" horiz-adv-x="391" /> -<glyph unicode="" d="M511.589 224.206c0-141.272-114.523-255.794-255.794-255.794s-255.794 114.523-255.794 255.794c0 141.271 114.523 255.794 255.794 255.794s255.794-114.523 255.794-255.794zM192.565 127.717c0-18.066-14.781-32.436-32.436-32.436s-32.847 14.37-32.847 32.436c0 18.066 14.781 32.436 32.436 32.436s32.847-14.37 32.847-32.436zM127.281 367.91v-50.502c133.030 0 221.716-89.097 221.716-222.127h50.502c0 165.466-107.163 272.628-272.218 272.628zM142.473 262.8c-3.696 0-11.496 0-15.192-0.411v-45.164c3.695 0.411 11.497 0.411 15.192 0.411 61.999 0 107.163-45.164 107.163-107.163 0-3.695 0-11.907-0.411-15.192h45.575c0.411 3.695 0.411 11.497 0.411 15.192-0.411 94.024-58.714 152.327-152.738 152.327z" /> -<glyph unicode="" d="M511.589 224.206c0-141.272-114.523-255.794-255.794-255.794s-255.794 114.523-255.794 255.794c0 141.271 114.523 255.794 255.794 255.794s255.794-114.523 255.794-255.794zM382.666 298.111h-253.331c-8.212 0-14.781 6.57-14.781 14.781v18.887c0 8.212 6.57 14.781 14.781 14.781h253.331c8.212 0 14.781-6.57 14.781-14.781v-18.887c0-8.212-6.57-14.781-14.781-14.781zM382.666 199.981h-253.331c-8.212 0-14.781 6.57-14.781 14.781v18.887c0 8.212 6.57 14.781 14.781 14.781h253.331c8.212 0 14.781-6.57 14.781-14.781v-18.887c0-8.212-6.57-14.781-14.781-14.781zM382.666 101.44h-253.331c-8.212 0-14.781 6.57-14.781 14.781v18.887c0 8.212 6.57 14.781 14.781 14.781h253.331c8.212 0 14.781-6.57 14.781-14.781v-18.887c0-7.801-6.57-14.781-14.781-14.781z" /> -<glyph unicode="" d="M511.795 224c0-141.272-114.524-255.795-255.795-255.795s-255.795 114.524-255.795 255.795c0 141.272 114.523 255.795 255.795 255.795s255.795-114.524 255.795-255.795zM405.529 256.947l-103.168 14.797-46.566 92.646-46.080-92.646-103.245-14.797 74.471-71.68-17.664-101.581 92.416 47.974 93.056-48.051-17.69 101.657z" /> -<glyph unicode="" d="M511.589 224.206c0-141.272-114.523-255.794-255.794-255.794s-255.794 114.523-255.794 255.794c0 141.271 114.523 255.794 255.794 255.794s255.794-114.523 255.794-255.794zM379.381 126.486l-74.726 75.137c12.728 17.245 20.118 39.005 20.118 61.998 0 29.152-11.907 55.429-30.794 74.316-18.887 19.298-45.575 31.204-74.726 31.204s-55.429-11.907-74.316-30.794c-18.887-18.887-30.794-45.575-30.794-74.316 0-29.151 11.907-55.429 30.794-74.316s45.575-30.794 74.316-30.794c20.119 0 38.595 5.748 54.608 15.192l75.959-75.959c5.337-5.337 13.96-5.337 19.298 0l9.854 9.854c5.748 4.517 5.748 13.139 0.411 18.476zM165.055 209.424c-13.96 13.96-22.582 32.847-22.582 54.197s8.623 40.238 22.582 54.197c13.96 13.96 32.847 22.582 54.197 22.582s40.238-8.623 54.197-22.582c13.96-13.96 22.582-32.847 22.582-54.197s-8.623-40.238-22.582-54.197c-13.96-13.96-32.847-22.582-54.197-22.582-20.94 0-40.238 8.623-54.197 22.582z" /> -<glyph unicode="" d="M511.589 224.206c0-141.272-114.523-255.794-255.794-255.794s-255.794 114.523-255.794 255.794c0 141.271 114.523 255.794 255.794 255.794s255.794-114.523 255.794-255.794zM255.794-22.557c67.746 0 129.335 27.509 174.088 71.442-5.748 4.106-11.907 8.623-18.887 13.55-22.993 15.602-52.966 34.9-92.382 59.535-1.642 1.232-2.874 2.464-3.284 3.695-0.821 1.232-1.232 2.464-1.232 3.284-0.411 2.053-0.821 4.106-0.821 6.159 0 4.927 0.821 10.264 2.874 16.423 1.642 6.159 4.517 12.317 7.801 18.476 2.053 3.695 4.927 9.854 7.39 17.655s4.927 17.655 7.39 28.741c4.517 22.172 7.39 49.681 7.39 79.243 0 13.138-5.337 29.973-14.781 45.575-9.854 15.602-23.404 29.972-39.827 38.595-11.086 5.748-22.993 9.033-35.721 9.033v0 0c-18.476-0.411-35.31-7.801-49.681-19.708s-25.867-27.92-32.847-43.933c-4.517-10.675-6.57-20.94-6.57-29.562 0-22.171 1.643-43.112 4.517-61.588s6.57-34.489 10.264-45.986c2.464-7.801 5.338-13.96 7.391-17.655 3.696-5.748 6.159-12.317 7.801-18.476s2.874-11.497 2.874-16.423c0-1.642 0-2.874-0.411-4.517s-0.821-3.284-1.643-4.927c-0.821-1.232-1.643-2.464-3.285-3.695-51.323-32.026-87.044-55.429-111.679-73.084 43.933-44.343 105.52-71.853 173.267-71.853z" /> -<glyph unicode="" d="M511.087 224.411c0-141.109-114.392-255.502-255.501-255.502s-255.501 114.392-255.501 255.501c0 141.109 114.392 255.501 255.501 255.501s255.501-114.392 255.501-255.501zM369.577 360.185h-227.981c-2.263-0.003-4.095-1.838-4.098-4.098v-263.767c0.003-2.263 1.838-4.095 4.098-4.098h227.981c2.263 0.003 4.095 1.838 4.098 4.098v263.767c-0.007 2.263-1.838 4.095-4.098 4.098zM291.959 165.217c0-4.507-3.688-8.197-8.197-8.197h-112.482c-4.507 0-8.196 3.688-8.196 8.197v2.263c0 4.507 3.689 8.197 8.197 8.197h112.482c4.507 0 8.197-3.688 8.197-8.197v-2.263zM348.089 210.007c0-4.507-3.688-8.197-8.197-8.197h-168.612c-4.507 0-8.196 3.688-8.196 8.197v2.263c0 4.507 3.689 8.197 8.197 8.197h168.608c4.507 0 8.197-3.688 8.197-8.197v-2.263zM348.089 254.796c0-4.507-3.688-8.197-8.197-8.197h-168.612c-4.507 0-8.196 3.689-8.196 8.197v2.263c0 4.508 3.689 8.197 8.197 8.197h168.608c4.507 0 8.197-3.688 8.197-8.197v-2.263zM348.089 299.584c0-4.507-3.688-8.197-8.197-8.197h-168.612c-4.507 0-8.196 3.689-8.196 8.197v2.263c0 4.508 3.689 8.197 8.197 8.197h168.608c4.507 0 8.197-3.688 8.197-8.197v-2.263z" /> -<glyph unicode="" d="M0 139.988v153.96c0 19.471 0.36 36.417 3.966 50.84 36.056 11.538 85.093 18.389 127.279 18.389 23.797 0 53.724-2.524 75.719-5.409v122.231h55.166v-340.012c0-18.389-0.361-35.335-3.966-51.56-34.254-11.538-86.535-18.389-126.918-18.389-42.547 0-89.059 6.49-126.197 17.668-3.606 16.947-5.048 34.253-5.048 52.281zM57.33 308.372c-1.443-7.572-2.163-19.471-2.163-34.974v-113.578c0-18.389 0.721-29.927 2.163-34.974 20.191-5.409 49.758-7.933 73.916-7.933 27.042 0 56.248 3.245 73.555 8.293 1.442 5.048 2.163 16.586 2.163 34.614v150.355c-21.634 3.606-51.921 5.769-76.44 5.769-23.436 0.361-51.56-3.245-73.195-7.572zM389.048 360.293v-287.009h-55.887v287.009h55.887zM658.028 28.214c1.442 6.49 2.163 15.144 2.163 24.879v29.566c-22.355-2.524-50.479-4.327-72.112-4.327-41.826 0-89.059 6.13-123.673 17.668-2.885 16.947-4.327 33.893-4.327 51.2v146.75c0 18.028 1.442 34.974 4.327 50.839 34.254 11.538 81.848 18.389 123.673 18.389 41.465 0 87.256-6.851 123.673-18.389 3.606-16.586 3.966-32.812 3.966-50.839v-271.865c-15.865-46.512-64.18-54.084-124.034-54.084-25.961 0-62.377 4.327-91.583 10.096v43.988c29.206-5.769 72.834-9.735 108.169-7.933 19.11 0.721 40.383 5.769 49.758 14.062zM660.192 129.533v143.865c0 16.586-0.361 27.403-2.524 34.975-19.471 4.327-45.792 7.933-69.588 7.933-23.437 0-50.119-3.245-69.588-7.933-1.803-7.572-2.885-19.471-2.885-34.975v-107.087c0-15.865 1.082-27.403 2.885-34.974 18.389-5.409 45.431-7.933 69.228-7.933 23.076 0.361 50.479 2.163 72.473 6.13zM842.276 360.293v-287.009h-55.888v287.009h55.888zM1159.211 344.067c-36.417 12.62-73.555 18.75-115.741 18.75-36.057 0-91.583-5.769-123.673-15.144v-51.2h27.403c5.048 4.327 9.014 10.096 11.899 16.226 10.457 2.524 32.812 5.048 74.637 5.048 23.797 0 51.2-3.966 71.752-8.293 1.443-13.341 2.524-26.681 2.524-38.941v-23.076h-120.067c-22.355 0-51.2-3.245-75.357-12.619-3.606-15.143-4.688-32.451-5.048-44.71v-50.118c0-18.028 1.442-35.335 5.048-51.921 36.778-11.538 84.011-17.668 126.557-17.668 40.383 0 85.814 6.13 120.068 17.668 3.605 15.865 3.966 32.812 3.966 51.2v143.504c0 15.504-0.361 34.974-3.966 61.296zM998.039 206.693h110.333v-35.696c0-14.423 0.361-34.614-1.803-46.152-17.307-5.048-40.023-7.572-66.704-7.572-1.443 0-2.884 0-3.966 0-23.076 0-52.282 2.524-71.391 7.572-1.803 10.817-2.885 26.321-2.885 35.696v3.606c0 8.293 0.361 27.043 3.606 38.581 8.293 2.885 19.11 3.966 32.812 3.966zM912.586 234.817c-3.606-15.144-5.048-44.71-5.048-44.71v-50.118zM387.966 476.034v-59.493h-55.887v59.493h55.887zM842.276 476.034v-59.493h-55.888v59.493h55.888z" horiz-adv-x="1163" /> -<glyph unicode="" d="M512.419 224.922c0-141.385-114.615-256-256-256s-256 114.615-256 256c0 141.385 114.615 256 256 256s256-114.615 256-256zM414.157 260.356l-108.984 15.832-48.921 98.764-7.456-15.246-41.047-83.519-108.984-15.832 78.744-76.9-18.597-108.565 97.424 51.267 97.759-51.267-18.597 108.565 78.659 76.9zM256.252 145.005l-75.142-39.539 14.409 83.769-60.817 59.309 84.189 12.314 37.362 76.231 37.78-76.231 84.188-12.231-60.817-59.309 14.409-83.853-75.56 39.539z" horiz-adv-x="513" /> -<glyph unicode="" d="M511.795 224c0-141.272-114.524-255.795-255.795-255.795s-255.795 114.524-255.795 255.795c0 141.272 114.523 255.795 255.795 255.795s255.795-114.524 255.795-255.795zM418.457 266.368l-112.435 16.128-50.279 100.070-11.392-22.912-38.4-77.159-112.409-16.102 81.229-78.183-19.174-110.157 100.224 51.993 100.582-51.942-19.175 110.106 81.229 78.157z" /> -</font></defs></svg> \ No newline at end of file diff --git a/qdoc/global/template/style/icomoon.ttf b/qdoc/global/template/style/icomoon.ttf deleted file mode 100644 index 4518527c8b4cadba1fdb54c4f9987cb5877e605d..0000000000000000000000000000000000000000 Binary files a/qdoc/global/template/style/icomoon.ttf and /dev/null differ diff --git a/qdoc/global/template/style/icomoon.woff b/qdoc/global/template/style/icomoon.woff deleted file mode 100644 index 5c8466c40fbeb6d98c53192c2e9fcfc0507f8c83..0000000000000000000000000000000000000000 Binary files a/qdoc/global/template/style/icomoon.woff and /dev/null differ diff --git a/qdoc/global/template/style/list_arrow.png b/qdoc/global/template/style/list_arrow.png deleted file mode 100644 index 7bb07b32d0232b3a65e3cd214ca7fa78c162bf4d..0000000000000000000000000000000000000000 Binary files a/qdoc/global/template/style/list_arrow.png and /dev/null differ diff --git a/qdoc/global/template/style/list_expand.png b/qdoc/global/template/style/list_expand.png deleted file mode 100644 index d2145145fdf21404a8d90fb98dadd773bedb3839..0000000000000000000000000000000000000000 Binary files a/qdoc/global/template/style/list_expand.png and /dev/null differ diff --git a/qdoc/global/template/style/offline-simple.css b/qdoc/global/template/style/offline-simple.css deleted file mode 100644 index a805b924a30c1abaabbbe52ca2a295ea1df49546..0000000000000000000000000000000000000000 --- a/qdoc/global/template/style/offline-simple.css +++ /dev/null @@ -1,162 +0,0 @@ -pre, .LegaleseLeft { - background-color: #f0f0f0; - font-family: Courier, monospace; - font-weight: 600; - vertical-align: top; - margin: 15px 85px 15px 35px; - padding: 25px; - width: 90%; - overflow-x:auto; -} - -pre a[href] { - color: #5caa15; -} - -p { - width: 70%; - margin: 15px 0px 10px 15px; -} - -table p { - margin: 0px; - padding: 0px; -} - -a[href] { - color: #007330; - text-decoration: none; -} - -/* Different color for ext. links */ -a[href|="http://"], a[href|="https://"] { - color: #6bb8db; -} - -h1.title { - margin-top: 30px; - margin-left: 6px; - padding: 6px; -} - -h2, p.h2 { - background-color: #F2F3F4; - padding: 4px; - margin: 30px 0px 20px 10px; -} - -h3 { - margin: 30px 0px 30px 6px; -} - -ul, ol { - margin-top: 4px; - margin-bottom: 0px; -} - -ul li, ol li { - margin-bottom: 8px; -} - -.mainContent li.level2 { - margin-left: 16px; -} - -.rightAlign { - text-align: right; -} - -h3.fn, span.fn { - border-width: 3px; - border-style: solid; - border-color: #aaaaaa; - background-color: #eeeeee; - word-spacing: 3px; - padding: 5px; - text-decoration: none; - font-weight: 400; - margin: 45px 0px 0px 6px; -} - -table { - max-width: 80%; - padding: 15px 45px 15px 15px; -} - -table th { - text-align: left; - padding: 8px; -} - -table td { - padding: 6px 10px 6px 10px; -} - -table tr.odd { - background-color: #eeeeee; -} - -table.qmlname td { - padding: 0px; - margin-left: 6px; -} - -table.qmlname p .name, -h3.fn .name, h3.fn .type { - font-weight: bold; -} - -.context h3.fn { - font-weight: 400; -} - -.qmlreadonly, .qmldefault { - font-family: Courier, monospace; - margin-right: 6px; -} - -code { - font-family: Courier, monospace; - font-weight: 400; -} - -p.naviNextPrevious { - text-align: right; - margin-right: 20px; -} - -span.naviSeparator { - white-space: pre; -} - -.toc h3 { - margin: 0px 0px 10px 6px; -} - -.toc ul { - list-style-type: none; -} - -.navigationbar table { - padding: 0; - margin: 0; -} - -.navigationbar table tr { - background-color: #eeeeee; -} - -td#buildversion { - background-color: #ffffff; -} - -.footer, .footer p { - padding: 5px 0px 5px 0px; - margin: 45px 15px 5px 15px; - font-size: 8.5pt; - background-color: #cccccc; -} - -.footer p { - margin: 0px; -} diff --git a/qdoc/global/template/style/offline.css b/qdoc/global/template/style/offline.css deleted file mode 100644 index b943dbb7ac372031afa4691509933f9558e65b11..0000000000000000000000000000000000000000 --- a/qdoc/global/template/style/offline.css +++ /dev/null @@ -1,778 +0,0 @@ -body { - font: normal 400 14px/1.2 Arial; - margin-top: 85px; - font-family: Arial, Helvetica; - text-align: left; - margin-left: 5px; - margin-right: 5px; - background-color: #fff; -} - -p { - line-height: 20px -} - -img { - margin-left: 0px; - max-width: 800px; - height: auto; -} - -.content { - -} - -.content .indexboxcont li { - font: normal bold 13px/1 Verdana - } - -.content .normallist li { - font: normal 13px/1 Verdana - } - -.descr { - margin-top: 35px; - margin-bottom: 45px; - margin-left: 5px; - text-align: left; - vertical-align: top; -} - -.name { - max-width: 75%; - font-weight: 100; -} - -tt { - text-align: left -} - -/* ------------ -links ------------ -*/ - -a:link { - color: #007330; - text-decoration: none; - text-align: left; -} - -a.qa-mark:target:before { - content: "***"; - color: #ff0000; -} - -a:hover { - color: #44a51c; - text-align: left; -} - -a:visited { - color: #007330; - text-align: left; -} - -a:visited:hover { - color: #44a51c; - text-align: left; -} - -/* ------------ -offline viewing: HTML links display an icon ------------ -*/ - -a[href*="http://"], a[href*="ftp://"], a[href*="https://"] { - text-decoration: none; - background-image: url(../images/ico_out.png); - background-repeat: no-repeat; - background-position: left; - padding-left: 20px; - text-align: left; -} - -.flags { - text-decoration: none; - text-height: 24px; -} - -.flags:target { - background-color: #FFFFD6; -} - -/* -------------------------------- -NOTE styles -------------------------------- -*/ - -.notetitle, .tiptitle, .fastpathtitle { - font-weight: bold -} - -.attentiontitle, .cautiontitle, .dangertitle, .importanttitle, .remembertitle, .restrictiontitle { - font-weight: bold -} - -.note, .tip, .fastpath { - background: #F2F2F2 url(../images/ico_note.png); - background-repeat: no-repeat; - background-position: top left; - padding: 5px; - padding-left: 40px; - padding-bottom: 10px; - border: #999 1px dotted; - color: #666666; - margin: 5px; -} - -.attention, .caution, .danger, .important, .remember, .restriction { - background: #F2F2F2 url(../images/ico_note_attention.png); - background-repeat: no-repeat; - background-position: top left; - padding: 5px; - padding-left: 40px; - padding-bottom: 10px; - border: #999 1px dotted; - color: #666666; - margin: 5px; -} - -/* -------------------------------- -Top navigation -------------------------------- -*/ - -.qtref { - display: block; - position: relative; - height: 15px; - z-index: 1; - font-size: 11px; - padding-right: 10px; - float: right; -} - -.naviNextPrevious { - clear: both; - display: block; - position: relative; - text-align: right; - top: -47px; - float: right; - height: 20px; - z-index: 1; - padding-right: 10px; - padding-top: 2px; - vertical-align: top; - margin: 0px; -} - -.naviNextPrevious > a:first-child { - background-image: url(../images/btn_prev.png); - background-repeat: no-repeat; - background-position: left; - padding-left: 20px; - height: 20px; - padding-left: 20px; - } - -.naviNextPrevious > a:last-child { - background-image: url(../images/btn_next.png); - background-repeat: no-repeat; - background-position: right; - padding-right: 20px; - height: 20px; - margin-left: 30px; - } - -.naviSeparator { display: none } -/* ------------ -footer and license ------------ -*/ - -.footer { - text-align: left; - padding-top: 45px; - padding-left: 5px; - margin-top: 45px; - margin-bottom: 45px; - font-size: 10px; - border-top: 1px solid #999; -} - -.footer p { - line-height: 14px; - font-size: 11px; - padding: 0; - margin: 0; -} - -.footer a[href*="http://"], a[href*="ftp://"], a[href*="https://"] { - font-weight: bold; -} - -.footerNavi { - width: auto; - text-align: right; - margin-top: 50px; - z-index: 1; -} - -.navigationbar { - display: block; - position: relative; - top: -20px; - border-top: 1px solid #cecece; - border-bottom: 1px solid #cecece; - background-color: #F2F2F2; - z-index: 1; - height: 20px; - padding-left: 7px; - margin: 0px; - padding-top: 2px; - margin-left: -5px; - margin-right: -5px; -} - -.navigationbar .first { - background: url(../images/home.png); - background-position: left; - background-repeat: no-repeat; - padding-left: 20px; - } - -.navigationbar ul { - margin: 0px; - padding: 0px; - } - - .navigationbar ul li { - list-style-type: none; - padding-top: 2px; - padding-left: 4px; - margin: 0; - height: 20px; - } - -.navigationbar li { - float: left - } - - .navigationbar li a, .navigationbar td a { - display: block; - text-decoration: none; - background: url(../images/arrow_bc.png); - background-repeat: no-repeat; - background-position: right; - padding-right: 17px; - } - -table.buildversion { - float: right; - margin-top: -18px !important; -} - -.navigationbar table { - border-radius: 0; - border: 0 none; - background-color: #F2F2F2; - margin: 0; -} - -.navigationbar table td { - padding: 0; - border: 0 none; -} - -#buildversion { - font-style: italic; - font-size: small; - float: right; - margin-right: 5px; -} - -/* - -/* table of content -no display -*/ - -/* ------------ -headers ------------ -*/ - -@media screen { - .title { - color: #313131; - font-size: 24px; - font-weight: normal; - left: 0; - padding-bottom: 20px; - padding-left: 10px; - padding-top: 20px; - position: absolute; - right: 0; - top: 0; - background-color: #E6E6E6; - border-bottom: 1px #CCC solid; - border-top: 2px #CCC solid; - font-weight: bold; - margin-left: 0px; - margin-right: 0px; - } - .subtitle, .small-subtitle { - display: block; - clear: left; - } -} - -h1 { - margin: 0 -} - -h2, p.h2 { - font: 500 16px/1.2 Arial; - font-weight: 100; - background-color: #F2F3F4; - padding: 4px; - margin-bottom: 30px; - margin-top: 30px; - border-top: #E0E0DE 1px solid; - border-bottom: #E0E0DE 1px solid; - max-width: 99%; -} - -h2:target { - background-color: #F2F3D4; -} - -h3 { - font: 500 14px/1.2 Arial; - font-weight: 100; - text-decoration: underline; - margin-bottom: 30px; - margin-top: 30px; -} - -h3.fn, span.fn { - border-width: 1px; - border-style: solid; - border-color: #E6E6E6; - -moz-border-radius: 7px 7px 7px 7px; - -webkit-border-radius: 7px 7px 7px 7px; - border-radius: 7px 7px 7px 7px; - background-color: #F6F6F6; - word-spacing: 3px; - padding: 5px 5px; - text-decoration: none; - font-weight: bold; - max-width: 75%; - font-size: 14px; - margin: 0px; - margin-top: 45px; -} -h3.fn code { - float: right; -} -h3.fn:target { - background-color: #F6F6D6; -} - -.name { - color: #1A1A1A -} - -.type { - color: #808080 -} - -@media print { - .title { - color: #0066CB; - font-family: Arial, Helvetica; - font-size: 32px; - font-weight: normal; - left: 0; - position: absolute; - right: 0; - top: 0; - } -} - -/* ------------------ -table styles ------------------ -*/ - -.table img { - border: none; - margin-left: 0px; - -moz-box-shadow: 0px 0px 0px #fff; - -webkit-box-shadow: 0px 0px 0px #fff; - box-shadow: 0px 0px 0px #fff; -} - -/* table with border alternative colours*/ - -table, pre, .LegaleseLeft { - -moz-border-radius: 7px 7px 7px 7px; - -webkit-border-radius: 7px 7px 7px 7px; - border-radius: 7px 7px 7px 7px; - background-color: #F6F6F6; - border: 1px solid #E6E6E6; - border-collapse: separate; - margin-bottom: 25px; - margin-left: 15px; - font-size: 12px; - line-height: 1.2; -} - - table tr.even { - background-color: white; - color: #66666E; - } - - table tr.odd { - background-color: #F6F6F6; - color: #66666E; - } - - table tr:target { - background-color: #F6F6D6; - } - - table thead { - text-align: left; - padding-left: 20px; - background-color: #e1e0e0; - border-left: none; - border-right: none; - } - - table thead th { - padding-top: 5px; - padding-left: 10px; - padding-bottom: 5px; - border-bottom: 2px solid #D1D1D1; - padding-right: 10px; - } - - table th { - text-align: left; - padding-left: 20px; - } - - table td { - padding: 3px 15px 3px 20px; - border-bottom: #CCC dotted 1px; - } - - table p { - margin: 0px - } - -.LegaleseLeft { - font-family: monospace; - white-space: pre-wrap; -} -/* table bodless & white*/ - -.borderless { - border-radius: 0px 0px 0px 0px; - background-color: #fff; - border: 1px solid #fff; -} - -.borderless tr { - background-color: #FFF; - color: #66666E; - } - -.borderless td { - border: none; - border-bottom: #fff dotted 1px; - } - -/* ------------ -List ------------ -*/ - -ul { - margin-top: 10px; -} - -li { - margin-bottom: 10px; - padding-left: 8px; - list-style: outside; - text-align: left; -} - - ul > li { - list-style-type: square; - } - -ol { - margin: 10px; - padding: 0; -} - -ol.A > li { - list-style-type: upper-alpha; -} - -ol.a > li{ - list-style-type: lower-alpha; -} - - ol > li { - margin-left: 30px; - padding-left: 8px; - list-style: decimal; - } - -.centerAlign { - text-align: left -} - -.cpp, .LegaleseLeft { - display: block; - margin: 10px; - overflow: auto; - padding: 20px 20px 20px 20px; -} - -.js { - display: block; - margin: 10px; - overflow: auto; - padding: 20px 20px 20px 20px; -} - -.memItemLeft { - padding-right: 3px -} - -.memItemRight { - padding: 3px 15px 3px 0 -} - -.qml { - display: block; - margin: 10px; - overflow: auto; - padding: 20px 20px 20px 20px; -} - -.qmldefault { - padding-left: 5px; - float: right; - color: red; -} - -.qmlreadonly { - padding-left: 5px; - float: right; - color: #254117; -} - -.rightAlign { - padding: 3px 5px 3px 10px; - text-align: right; -} - -.qmldoc { - margin-left: 15px -} - -.flowList { - padding: 25px -} -.flowList dd { - display: inline-block; - margin-left: 10px; - width: 255px; - line-height: 1.15em; - overflow-x: hidden; - text-overflow: ellipsis -} -.alphaChar { - font-size: 2em; - position: relative -} -/* ------------ -Content table ------------ -*/ - -@media print { - .toc { - float: right; - clear: right; - padding-bottom: 10px; - padding-top: 50px; - width: 100%; - background-image: url(../images/bgrContent.png); - background-position: top; - background-repeat: no-repeat; - } -} - -@media screen { - .toc { - float: right; - clear: right; - vertical-align: top; - -moz-border-radius: 7px 7px 7px 7px; - -webkit-border-radius: 7px 7px 7px 7px; - border-radius: 7px 7px 7px 7px; - background: #FFF url('../images/bgrContent.png'); - background-position: top; - background-repeat: repeat-x; - border: 1px solid #E6E6E6; - padding-left: 5px; - padding-bottom: 10px; - height: auto; - width: 200px; - text-align: left; - margin-left: 20px; - } -} - - -.toc h3 { - text-decoration: none -} - -.toc h3 { - font: 500 14px/1.2 Arial; - font-weight: 100; - padding: 0px; - margin: 0px; - padding-top: 5px; - padding-left: 5px; -} - -.toc ul { - padding-left: 10px; - padding-right: 5px; -} - -.toc ul li { - margin-left: 15px; - list-style-image: url(../images/bullet_dn.png); - marker-offset: 0px; - margin-bottom: 8px; - padding-left: 0px; - } - -.toc .level1 { - border: none -} - -.toc .level2 { - border: none; - margin-left: 25px; -} - -.level3 { - border: none; - margin-left: 30px; -} - -.clearfix { - clear: both -} - -/* ------------ -Landing page ------------ -*/ - -.col-group { - white-space: nowrap; - vertical-align: top; -} - - -.landing h2 { - background-color: transparent; - border: none; - margin-bottom: 0px; - font-size: 18px; -} - -.landing a, .landing li { - font-size: 13px; - font-weight: bold !important; -} - -.col-1 { - display: inline-block; - white-space: normal; - width: 70%; - height: 100%; - float: left; -} - -.col-2 { - display: inline-block; - white-space: normal; - width: 20%; - margin-left: 5%; - position: relative; - top: -20px; -} - -.col-1 h1 { - margin: 20px 0 0 0; - } - -.col-1 h2 { - font-size: 18px; - font-weight: bold !important; -} - -.landingicons { - display: inline-block; - width: 100%; -} - -.icons1of3 { - display: inline-block; - width: 33.3333%; - float: left; -} - -.icons1of3 h2, .doc-column h2 { - font-size: 15px; - margin: 0px; - padding: 0px; -} - -div.multi-column { - position: relative; -} - -div.multi-column div { - display: -moz-inline-box; - display: inline-block; - vertical-align: top; - margin-top: 1em; - margin-right: 4em; - width: 24em; -} diff --git a/qdoc/global/template/style/online.css b/qdoc/global/template/style/online.css deleted file mode 100644 index c0caa84027fc8673238029f92e229151fd2e07cb..0000000000000000000000000000000000000000 --- a/qdoc/global/template/style/online.css +++ /dev/null @@ -1,1717 +0,0 @@ -#navbar { - position:fixed; - top:0; - left:0; - z-index:100; - background:#fff; - width:100% -} -#navbar .container { - overflow:visible -} -.fixed .container { - overflow:visible -} -.box-shadowed-nav #navbar { - border-bottom:1px solid #eee -} -#navbar .navbar-header { - position:relative -} -#navbar .navbar-toggle { - display:none; - float:right; - line-height:18px; - min-width:95px; - position:relative; - text-align:center; - border-left:1px solid #eee; - border-right:1px solid #eee; - padding:10px 0 10px 0 -} -#navbar .navbar-toggle:hover figure { - background:#5caa15 -} -#navbar .navbar-toggle span { - color:#bdbebf; - font-weight:300 -} -#navbar .navbar-toggle figure { - background:#7fc241; - border-radius:100%; - -webkit-border-radius:100%; - -moz-border-radius:100%; - transition:all 0.2s ease-in-out; - -webkit-transition:all 0.2s ease-in-out; - -moz-transition:all 0.2s ease-in-out; - -ms-transition:all 0.2s ease-in-out; - -o-transition:all 0.2s ease-in-out; - height:26px; - width:34px; - padding:8px 0 0 0; - margin-top:3px; - margin-left:auto; - margin-right:auto; - text-align:center -} -#navbar .navbar-toggle figure span.line { - display:inline-block; - width:1.125em; - height:0.1875em; - background:#fff; - transition:0.3s; - position:relative; - vertical-align:middle; - margin-top:-3px -} -#navbar .navbar-toggle figure span.line:before,#navbar .navbar-toggle figure span.line:after { - display:inline-block; - width:1.125em; - height:0.1875em; - background:#fff; - position:absolute; - left:0; - content:''; - -webkit-transform-origin:0.28571rem center; - transform-origin:0.28571rem center; - transition:0.3s; - -webkit-transition:0.3s; - -moz-transition:0.3s; - -ms-transition:0.3s; - -o-transition:0.3s -} -#navbar .navbar-toggle figure span.line:before { - top:6px -} -#navbar .navbar-toggle figure span.line:after { - top:-6px -} -#navbar .navbar-toggle.opened figure { - background:#5caa15 -} -#navbar .navbar-toggle.opened span { - color:#5caa15 -} -#navbar .navbar-toggle.opened span.line { - background:transparent -} -#navbar .navbar-toggle.opened span.line:before,#navbar .navbar-toggle.opened span.line:after { - -webkit-transform-origin:50% 50%; - -moz-transform-origin:50% 50%; - transform-origin:50% 50%; - top:0; - width:23px; - margin-left:-2px -} -#navbar .navbar-toggle.opened span.line:before { - transform:rotate3d(0, 0, 1, 45deg); - -webkit-transform:rotate3d(0, 0, 1, 45deg); - -moz-transform:rotate3d(0, 0, 1, 45deg); - -ms-transform:rotate3d(0, 0, 1, 45deg); - -o-transform:rotate3d(0, 0, 1, 45deg); - left:0 -} -#navbar .navbar-toggle.opened span.line:after { - transform:rotate3d(0, 0, 1, -45deg); - -webkit-transform:rotate3d(0, 0, 1, -45deg); - -moz-transform:rotate3d(0, 0, 1, -45deg); - -ms-transform:rotate3d(0, 0, 1, -45deg); - -o-transform:rotate3d(0, 0, 1, -45deg) -} -#navbar .navbar-oneQt { - display:inline; - float:left; - width:31px; - padding:20px 8px; - margin:0 15px 0 0 -} -#navbar .navbar-oneQt:before { - content:attr(data-icon); - position:absolute; - top:15px; - left:0; - color:#80c342; - font-family:'Qt Icons'; - line-height:1; - font-size:3.125em; - transition:all 0.2s ease-in-out; - -webkit-transition:all 0.2s ease-in-out; - -moz-transition:all 0.2s ease-in-out; - -ms-transition:all 0.2s ease-in-out; - -o-transition:all 0.2s ease-in-out -} -.navbar-oneQt { - color: #80c342 !important; -} -.navbar-oneQt:hover { - color: #80c342; -} -#navbar .navbar-menu { - width:auto; - float:left -} -.lt-ie9 #navbar { - border-bottom:1px solid #ddd -} -#mainmenu { - float:left; - list-style:none; - margin-left:16px -} -#mainmenu li { - float:left; - margin-left:0; - list-style-type:none !important -} -#mainmenu li a { - display:block; - padding:29px 0.7em; - font-size:1.125em; - font-weight:300; - line-height:20px; - height:80px; - color:#26282a; - text-decoration:none; - border:0px solid #80c342; - -webkit-transition:all 0.2s ease-in-out; - box-sizing:border-box; - -webkit-box-sizing:border-box; - -moz-box-sizing:border-box; - *behavior:url(boxsizing.htc) -} -#mainmenu li a:hover { - color:#5caa15; - border-bottom:4px solid #80C342 -} -#mainmenu li.current-menu-item a { - color:#5caa15; - border-bottom:4px solid #80C342 -} -#menuextras, #mainmenu, #menuextraslanguages { - margin-bottom:0 - } -#menuextras { - display:inline-block; - float:right; - list-style-type:none; - margin-right:0; - margin-left:0; - letter-spacing:-0.31em; - line-height:0 -} -#menuextras li { - letter-spacing:normal; - float:left; - display:inline-block -} -#menuextras li a { - display:inline-block; - text-align:center; - height:80px; - border-left:1px solid #eee; - padding-top:14px; - box-sizing:border-box; - overflow:hidden; - min-width:85px; - font-weight:100 -} -#menuextras li:last-child a { - border-right:1px solid #eee; -} -#menuextras li a:before { - display:inline-block; - font-family:'Qt Icons'; - content:attr(data-icon); - font-size:2.125em; - width:100%; - color:#80c342; - line-height:1; - transition:all 0.2s ease-in-out; - -webkit-transition:all 0.2s ease-in-out; - -moz-transition:all 0.2s ease-in-out; - -ms-transition:all 0.2s ease-in-out; - -o-transition:all 0.2s ease-in-out -} -#menuextras li a:hover:before { - color:#5caa15 -} -#menuextras .search.open a { - color:#006325 -} -#menuextras .search a { - border-right:1px solid #eee -} -#menuextras li a span { - color:#bdbebf; - display:inline-block; - overflow:hidden; - max-height:30px; - transition:max-height 0.2s ease-in-out; - -webkit-transition:max-height 0.2s ease-in-out; - -moz-transition:max-height 0.2s ease-in-out; - -ms-transition:max-height 0.2s ease-in-out; - -o-transition:max-height 0.2s ease-in-out; - line-height:1.4; - font-size:0.875em -} -@media (min-width: 1320px) { - .context .flowListDiv dl.flowList { - -webkit-column-count:3; - -moz-column-count:3; - column-count:3 - } -} -@media (min-width: 1120px) { - #navbar.fixed,#navbar.shadow_bottom { - -moz-box-shadow:0px 0px 8px rgba(0,0,0,0.2); - -webkit-box-shadow:0px 0px 8px rgba(0,0,0,0.2); - box-shadow:0px 0px 8px rgba(0,0,0,0.2) - } - #navbar.fixed #menuextras li a,#navbar.shadow_bottom #menuextras li a { - padding-top:9px; - height:50px - } - #navbar.fixed #menuextras li a span,#navbar.shadow_bottom #menuextras li a span { - max-height:0 - } - #navbar.fixed #menuextras li a:before,#navbar.shadow_bottom #menuextras li a:before { - font-size:30px - } - #navbar.fixed #mainmenu li a { - height:50px; - padding:14px 0.7em - } - #navbar.fixed #mainmenu li a:hover { - border-bottom:4px solid #5caa15 - } - #navbar.fixed .navbar-toggle { - padding:13px 14px 9px - } - #navbar.fixed #menuextras li.navbar-search { - padding:0px 0 - } - #navbar.fixed #menuextras ul.menuextraslinks,#navbar.fixed #menuextras ul.menuextraslanguages { - display:none - } - #navbar.fixed .navbar-oneQt:before { - font-size:35px; - top:7px - } - #navbar.fixed #mainmenu li.current-menu-item a { - border-bottom:4px solid #80C342 - } - .flowListDiv dl.flowList { - -webkit-column-count:2; - -moz-column-count:2; - column-count:2 - } -} -@media (max-width: 1120px) { - #navbar { - padding:0; - position:relative - } - #navbar .container { - max-width:100% - } - #navbar .menuextraslanguages { - bottom:10px !important; - right:0 - } - #navbar .menuextraslanguages li a { - color:#7fc241 !important - } - #navbar .menuextraslanguages li.active a,#navbar .menuextraslanguages li a:hover { - border-color:#7fc241 !important - } - #navbar .container { - padding:0 - } - #navbar .navbar-toggle { - display:block - } - #navbar .navbar-oneQt,#navbar.fixed .navbar-oneQt,#navbar .navbar-oneQt:hover { - margin-left:0; - height:26px; - width:22px; - padding:7px 20px 7px 15px - } - #navbar .navbar-oneQt:before { - left:20px - } - #navbar .navbar-menu { - max-height:0; - overflow:hidden; - width:100%; - border-top:1px solid #eee; - -webkit-transition:all 600ms ease-in-out; - -moz-transition:all 600ms ease-in-out; - -o-transition:all 600ms ease-in-out; - transition:all 600ms ease-in-out; - position:relative - } - #mainmenu { - float:none; - width:100%; - padding:0; - margin:0 - } - #mainmenu li { - float:none; - list-style:none - } - #mainmenu li:nth-child(odd) { - background:rgba(0,0,0,0) - } - #mainmenu li a,#navbar.fixed #mainmenu li a { - padding:10px; - border-left:3px solid #fff; - height:auto; - width:100% - } - #mainmenu li.current-menu-item a,#navbar.fixed #mainmenu li.current-menu-item a { - border-bottom:none; - border-left:3px solid #5caa15; - padding:10px - } - #mainmenu li a:hover { - border-bottom:0; - padding:10px; - border-left:3px solid #5caa15 - } - #navbar.fixed { - -moz-box-shadow:0px 0px 0px rgba(0,0,0,0); - -webkit-box-shadow:0px 0px 0px rgba(0,0,0,0); - box-shadow:0px 0px 0px rgba(0,0,0,0) - } - .lt-ie9 #navbar.fixed { - border-bottom:none - } - #menuextras li.navbar-search { - padding:5px 0 - } - #footerbar .container { - padding:0 - } - body .main { - margin-top:0px - } - #footerbar .footer-main .footer-nav { - padding:3.9% 0 3.9% 3%; - border-bottom:1px solid #413d3b; - float:none; - display:block; - width:auto - } - #footerbar .footer-main .theqtcompany { - clear:both; - float:left; - margin:30px 0 28px 3% - } - #footerbar .footer-main .footer-social { - float:left; - padding:30px 0px 0px 3% - } - #footerbar #menu-footer-submenu { - clear:both; - float:none; - display:block; - padding:0px 0px 3.9% 3% - } - ul#menu-footer-submenu { - margin-left: 0 - } -} -.in-page-nav { - width:100%; - background:#eeeeee -} -.in-page-nav ul { - margin:0 auto; - letter-spacing:-0.31em; - max-width:1180px; - text-align:center -} -.in-page-nav ul li { - display:inline-block; - letter-spacing:normal -} -.in-page-nav ul li a { - color:#26282a; - padding:25px 10px; - display:inline-block -} -body.qt-account #navbar .navbar-oneQt { - width:auto; - height:auto -} -body.qt-account #navbar .navbar-oneQt:before { - left:0; - position:relative; - display:inline-block; - vertical-align:middle; - top:0; - margin-right:20px -} -body.qt-account #navbar .navbar-oneQt h2 { - margin:0; - color:#000; - display:inline-block; - vertical-align:middle -} -.landing header[role="banner"] { - background:#26282a -} -.landing header[role="banner"] figure { - max-width:1180px; - margin:auto; - position:relative -} -.landing header[role="banner"] figure img { - max-width:100% -} -.landing header[role="banner"] figcaption { - color:#fff; - position:absolute; - left:0px; - width:100%; - text-align:center -} -.landing header[role="banner"] figcaption.top { - top:0 -} -.landing header[role="banner"] figcaption.bottom { - bottom:0 -} -.landing header[role="banner"] figcaption h1 { - margin:50px auto 0 auto; - max-width:70%; - font-weight:600 -} -.landing header[role="banner"] figcaption h3 { - margin-bottom:40px -} -.cookies_yum { - background-color:#d6d6d6; - display:none; - line-height:1.625em; - width:100% -} -.cookies_yum img { - width:25px; - top:6px; - display:inline-block; - position:absolute; - left:6px -} -.cookies_yum div { - margin:0 auto; - max-width:1280px; - min-height:30px; - padding:6px 0px 6px 0px; - position:relative -} -.cookies_yum p { - color:#585a5c; - margin:0px; - font-size:0.79em; - display:inline-block; - line-height:1.2; - padding:0 30px 0 50px -} -.cookies_yum p a { - white-space:nowrap -} -.cookies_yum a:hover { - color:white -} -.cookies_yum .close { - width:15px; - height:15px; - background-image:url("cookiebar-x.png"); - background-size:15px 30px; - background-position:top left; - cursor:pointer; - top:13px; - right:13px; - position:absolute; - transition:none; -} -#sidebar-toggle,#toc-toggle { - width:24px; - height:14px; - background-size:24px 28px; - cursor:pointer; - background-image:url("list_expand.png"); - float:right -} -#sidebar-toggle.collapsed, -#toc-toggle.collapsed { - background-position:bottom left -} -#sidebar-content > h2 { - display:none -} -.cookies_yum .close:hover { - background-position:bottom left -} -#bottom_header { - display:block; - position:absolute; - width:100%; - z-index:50; - padding-top:15px -} -#bottom_header .container { - overflow:visible -} -#bottom_header .left { - font-weight:bolder -} -#bottom_header a { - color:white; - transition-duration:0.3s -} -#bottom_header .left a:hover { - padding-left:10px -} -.fixed .menuextraslanguages { - opacity:0; - visibility:hidden -} -@media (max-width: 1120px) { - .fixed .menuextraslanguages { - opacity:1 !important; - visibility:visible !important - } -} -#navbar .menuextraslanguages { - position:absolute; - right:0; - bottom:-35px; - transition:all 0.2s ease-in-out; - -webkit-transition:all 0.2s ease-in-out; - -moz-transition:all 0.2s ease-in-out; - -ms-transition:all 0.2s ease-in-out; - -o-transition:all 0.2s ease-in-out -} -#navbar .menuextraslanguages li { - display:inline; - list-style:none; - margin-left:3px; - padding:0px 4px; - font-size:0.6875em -} -#navbar .menuextraslanguages li.dark a { - color:#868482 -} -#navbar .menuextraslanguages li.dark a:hover { - border:2px solid #868482 -} -#navbar .menuextraslanguages li.active.dark a { - border-color:#868482; - color:#868482 -} -#navbar .menuextraslanguages a { - color:#fff; - padding:2px 4px; - border:2px solid transparent -} -#navbar .menuextraslanguages a:hover,#navbar .menuextraslanguages li.active a { - border:2px solid #fff; - color:#fff -} -#bottom_header .dark,#bottom_header .dark.active { - color:#868482; - transition-duration:0.3s; - border-color:#868482 !important -} -#navbar .big_bar { - width:100%; - height:100px; - background-color:#80C342; - display:none; - position:relative -} -#navbar .big_bar.search { - height:auto; - overflow:hidden; - display:none -} -#navbar .big_bar ::-webkit-input-placeholder { - color:#fff -} -#navbar .big_bar :-moz-input-placeholder { - color:#fff -} -#navbar .big_bar ::-moz-input-placeholder { - color:#fff -} -#navbar .big_bar :-ms-input-placeholder { - color:#fff -} -#navbar .big_bar:hover>div .big_bar_button.account { - background-position:right bottom -} -#navbar .big_bar.account h1 { - padding-top:20px -} -#navbar .big_bar.account h1,#navbar .big_bar.account h1 a { - color:#FFF; - margin-bottom:5px -} -#navbar .big_bar.account h1 a:hover { - color:#328930 -} -#navbar .big_bar_button:hover { - background-position:left bottom; - cursor:pointer -} -#navbar .big_bar_button.account { - background-position:right top -} -#navbar .big_bar input.big_bar_search { - background:none repeat scroll 0 0 transparent; - border:medium none; - color:#fff; - display:block; - float:left; - font-size:4em; - outline:0 none; - width:70%; - line-height:1.3; - height:auto; - margin:10px 5%; - padding:0; - box-sizing:border-box; - -webkit-box-sizing:border-box; - -moz-box-sizing:border-box; - *behavior:url(boxsizing.htc) -} -#navbar .big_bar_button { - background-color:transparent; - border:none; - width:18%; - transition-duration:0.3s; - display:block; - float:left; - position:relative; - font-family:'QT Icons'; - font-size:3.5em; - color:#fff; - margin:15px 2% 0 0 !important; - text-align:right; - padding-right:2px !important; - transition:all 0.2s ease-in-out; - -webkit-transition:all 0.2s ease-in-out; - -moz-transition:all 0.2s ease-in-out; - -ms-transition:all 0.2s ease-in-out; - -o-transition:all 0.2s ease-in-out -} -#navbar .big_bar_button:focus,#navbar .big_bar_button:hover { - outline:0; - color:#ebebeb -} -.hero_slide>div { - width:80%; - margin:0 auto -} -.hero_slide>div:first-child>div { - width:80%; - margin:0 auto -} -.hero_slide .content { - margin-top:70px -} -.hero_bar { - padding-top:50px; - padding-bottom:18px -} -.hero_bar p { - font-size:0.875em; - text-align:center -} -.hero_bar .arrow { - bottom:65px; - display:block; - margin:0 auto; - position:relative; - right:260px; - width:230px -} -.hero_bar .comment { - margin:0 -} -#footerbar { - background:#26282a; - color:#fff -} -#footerbar.fixed { - bottom:0; - left:0; - width:100% -} -#footerbar .footer-nav { - display:inline; - float:left -} -#footerbar .footer-main .footer-nav li { - float:left; - margin-right:1em -} -#footerbar .footer-main .footer-nav li a { - display:block; - padding:31px 10px 15px 0; - line-height:20px; - height:20px; - color:#d6d6d6 -} -#footerbar .footer-main .footer-nav li a:hover,#footerbar .footer-main .footer-nav li.current-menu-item a { - color:#eee -} -#footerbar .footer-main .footer-nav .sub-menu { - margin-left:0; - margin-bottom:0 -} -#footerbar .footer-main .footer-nav .sub-menu li { - float:none -} -#footerbar .footer-main .footer-nav .sub-menu ul { - padding:1px 1em; - font-size:0.786em; - line-height:8px; - float:none; - color:#5d5b59; - margin-bottom:0 -} -#footerbar .footer-main .footer-nav .sub-menu li a { - padding:1px 0; - font-size:0.786em; - line-height:8px; - float:none; - color:#d6d6d6 -} -#footerbar .footer-main .footer-nav .sub-menu li a:hover,#footerbar .footer-main .footer-nav .sub-menu li.current-menu-item a { - color:#eee -} -#footerbar .theqtcompany { - background:url("theqtcompany.png") no-repeat; - background-size:100%; - width:215px; - height:68px; - display:inline; - float:right; - margin:29px 0 28px 30px -} -#footerbar .footer-social { - display:inline; - float:right; - padding-top:31px; - width:164px -} -#footerbar .footer-main .footer-social>div { - margin-left:0.1em; - margin-bottom:10px -} -#footerbar .disclaimer { - font-size:0.786em; - line-height:2.73; - color:#868584; - padding-top:20px; - padding-bottom:0.5% -} -#footerbar .disclaimer a { - color:#bdbebf -} -#footerbar .disclaimer a:hover { - color:#d6d6d6 -} -#footerbar .disclaimer ul li { - float:left; - vertical-align:middle; - margin-left:1.18em -} -#footerbar .disclaimer ul li:first-child { - margin-left:0 -} -#footerbar .disclaimer ul.lang-selector a { - color:#506a34; - color:rgba(128,195,66,0.3) -} -#footerbar .disclaimer ul.lang-selector a:hover { - color:#80c342; - color:rgba(128,195,66,0.7) -} -#menu-footer-menu, #menu-footer-menu ul { - margin-left:0; - margin-bottom:0 -} -@font-face { - font-family:'Open Sans'; - font-style:normal; - font-weight:300; - src:local("Open Sans Light"),local("OpenSans-Light"),url(//fonts.gstatic.com/s/opensans/v10/DXI1ORHCpsQm3Vp6mXoaTYnF5uFdDttMLvmWuJdhhgs.ttf) format("truetype") -} -@font-face { - font-family:'Open Sans'; - font-style:normal; - font-weight:400; - src:local("Open Sans"),local("OpenSans"),url(//fonts.gstatic.com/s/opensans/v10/cJZKeOuBrn4kERxqtaUH3aCWcynf_cDxXwCLxiixG1c.ttf) format("truetype") -} -@font-face { - font-family:'Open Sans'; - font-style:normal; - font-weight:600; - src:local("Open Sans Semibold"),local("OpenSans-Semibold"),url(//fonts.gstatic.com/s/opensans/v10/MTP_ySUJH_bn48VBG8sNSonF5uFdDttMLvmWuJdhhgs.ttf) format("truetype") -} -@font-face { - font-family:'Open Sans'; - font-style:normal; - font-weight:700; - src:local("Open Sans Bold"),local("OpenSans-Bold"),url(//fonts.gstatic.com/s/opensans/v10/k3k702ZOKiLJc3WVjuplzInF5uFdDttMLvmWuJdhhgs.ttf) format("truetype") -} -@font-face { - font-family:'Open Sans'; - font-style:normal; - font-weight:800; - src:local("Open Sans Extrabold"),local("OpenSans-Extrabold"),url(//fonts.gstatic.com/s/opensans/v10/EInbV5DfGHOiMmvb1Xr-honF5uFdDttMLvmWuJdhhgs.ttf) format("truetype") -} -@font-face { - font-family:'Droid Sans Mono'; - font-style:normal; - font-weight:400; - src:local("Droid Sans Mono"),local("DroidSansMono"),url(//fonts.gstatic.com/s/droidsansmono/v7/ns-m2xQYezAtqh7ai59hJUYuTAAIFFn5GTWtryCmBQ4.woff) format("woff") -} -@font-face { - font-family:'Qt Icons'; - src:url("../style/icomoon.eot?-tgjuoj"); - src:url("../style/icomoon.eot?#iefix-tgjuoj") format("embedded-opentype"),url("../style/icomoon.woff?-tgjuoj") format("woff"),url("../style/icomoon.ttf?-tgjuoj") format("truetype"),url("../style/icomoon.svg?-tgjuoj#icomoon") format("svg"); - font-weight:normal; - font-style:normal -} -.clearfix:before,.clearfix:after { - content:" "; - display:table -} -.clearfix:after { - clear:both -} -.clearfix { - *zoom:1 -} -.clearfix .right { - float:right -} -html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video { - margin:0; - padding:0; - border:0; - font-size:100% -} -html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,caption,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video { - vertical-align:baseline -} -body { - font-family:“Open Sansâ€, Arial, Helvetica, sans-serif; - line-height:1.5; - font-weight:400 -} -h1,h2,h3,h4,h5,h6 { - font-weight:300 -} -.context h2,.context h3,.context h4,.context h5,.context h6 { - margin:1.5em 0 1em -} -.context h1 { - margin-bottom:1em; - font-size:3.125em -} -.context h3.fn,.context h3.flags { - color:#26282a; - font-size:1.46em; - padding:15px 0 15px 0; - border-bottom:2px #eee solid; - word-wrap:break-word -} -.context h3.fn .name, -.context h3 span.type, -.qmlname span.name { - font-weight: 400 -} -.qmlname { - font-size:1.46em -} -.qmlproto table { - border:none; - border-bottom:2px #eee solid -} -.qmlproto table p { - max-width:100% -} -.qmlproto table tr { - background-color:#fff -} -.qmlname td, .qmlname th { - border:none; - text-align:left; - padding:5px 0 0 0 -} -.qmlreadonly,.qmldefault { - padding:0 5px 0 5px; - font-size:0.75em; - background-color:#eee; - float:right -} -.qmlreadonly { - color:#414141 -} -.qmldefault { - color:#D14141 -} -.rightAlign { - padding:3px 5px 3px 10px; - text-align:right -} -article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section { - display:block -} -body { - line-height:1; - font-family:"Open Sans", Arial, Helvetica, sans-serif; - transition-duration:1s -} -ol,ul { - list-style:none -} -.context ol,.context ul { - margin-top:0.75em; - margin-left:20px -} - -.context ol > li { - margin-left: 20px -} - -.mainContent ol>li { - list-style-type: decimal; -} - -.mainContent ol.a >li { - list-style-type: lower-alpha; -} - -.mainContent ol.A >li { - list-style-type: upper-alpha; -} - -blockquote,q { - quotes:none -} -blockquote:before,blockquote:after,q:before,q:after { - content:''; - content:none; - width:100% -} -table { - border-collapse:collapse; - border-spacing:0; - margin-bottom:25px; - width:100% -} -a { - color:#5caa15; - text-decoration:none; - transition-duration:0.3s -} -a:hover { - color:#46a2da -} -.main,.navbar-header,#footerbar>div { - max-width:1280px; - width:95%; - margin:0 auto -} -.main { - margin-top:100px -} -.main_index { - background-color:#fff -} -.sectionlist { - margin-bottom:2em -} -[class*="col-"] { - letter-spacing:normal -} -.landing,.main_index .row { - letter-spacing:-0.31em -} -.main_index .row>div { - letter-spacing:normal -} -.col-1,.context { - width:80%; - display:inline-block; - background-color:#fff; - padding:35px; - -webkit-box-sizing:border-box; - -moz-box-sizing:border-box; - -ms-box-sizing:border-box; - box-sizing:border-box -} -.col-1 h2 { - font-size:2.1875em; - font-weight:300; - line-height:1.1; - margin-bottom:0.83em; - margin-top:1em -} -.icons1of3 img { - display:inline-block; - float:left; - margin-right:0.75em; - margin-top:-5px; - width:2.75em -} -div.multi-column { - position:relative -} -div.multi-column div { - display:-moz-inline-box; - display:inline-block; - vertical-align:top; - margin-top:1em; - margin-right:2em; - width:16em -} -.sidebar { - display:block; - float:right; - -webkit-box-sizing:border-box; - -moz-box-sizing:border-box; - -ms-box-sizing:border-box; - box-sizing:border-box; - width:20%; - padding-left:30px -} -.toc,.sectionlist { - padding:35px; - background-color:#fff; - margin-bottom:2em -} -.sidebar-content:empty { - display:none; - visibility:hidden -} -.col-2 h2,.toc h3,.sidebar-content h2,.sidebar-content h3,.sectionlist h2 { - font-weight:400; - margin-bottom:2em -} -.toc h3 a { - color:#404244 -} -.title { - font-size:3em; - font-weight:300; - letter-spacing:-1px; - line-height:1.15em; - margin-bottom:0.5em; - word-wrap:break-word -} -.navigationbar,col-1 h2 { - font-size:0.75em -} -.navigationbar h1 { - font-size:3.125em; - margin-bottom:1em; - margin-top:1em -} -.navigationbar li { - display:inline-block; - margin-right:5px; - position:relative; - padding-right:10px; - color:#585a5c -} -.navigationbar li a { - color:#58585c -} -body { - background-color:#eee; - color:#404244 -} -.sectionlist li { - margin-bottom:5px -} -dd { - padding-bottom:0.25em; - padding-left:2em -} -.col-1 ul { - margin-bottom:1.56em -} -.mainContent li { - margin-top:0.8em; - line-height:1.25em -} -.mainContent li.level2 { - margin-left:10px; - margin-top:0.4em; - font-size:0.9375em; - line-height:1.15em; -} -.mainContent p { - line-height:1.56em; - margin-bottom:1.5em; - color:#404244; - max-width:85% -} -.mainContent b { - font-weight:600 -} -.context ul,.context ol { - margin-bottom:1.5em -} -.mainContent ul ul { - margin-top:0.5em -} -.mainContent .naviNextPrevious { - margin-top:25px; - max-width:100% -} -.naviNextPrevious.headerNavi { - display:none -} -.nextPage { - float:right -} -.prevPage:before { - content:"< " -} -.nextPage:after { - content:" >" -} -.navigationbar li:after { - color:#404244; - content:"›"; - display:inline-block; - font-size:1.5em; - line-height:1; - position:absolute; - right:-2px; - top:-4px -} -.navigationbar ul:last li a { - color:#80c342 -} -.sub-navigation { - margin-top:10px -} -.navigationbar li:last-child:after,.sub-navigation li:after { - content:none -} -.navigationbar { - margin-bottom:10px -} -#buildversion { - font-style:italic; - font-size:small; - float:right -} -.copy-notice { - width:65%; - font-size:0.75em; - margin-top:50px; - margin-bottom:25px; - line-height:1.75em; - color:#585a5c -} -li a.active { - color:#585a5c -} -.flowList { - padding:25px -} -.flowListDiv dl { - -webkit-column-count:1; - -moz-column-count:1; - column-count:1 -} -.flowList dd { - display:inline-block; - margin-left:10px; - width:90%; - line-height:1.15em; - overflow-x:hidden; - text-overflow:ellipsis -} -.alphaChar { - font-size:2em; - position:absolute -} -.flowList.odd { - background-color:#f9f9f9 -} -.context ul>li,.doc-column ul>li { - list-style-image:url("list_arrow.png"); - margin-left:15px; - color:#404244; - line-height:1.16em -} -.mainContent table p { - margin:0px; - padding:0px; - max-width:initial; - min-height:2em -} -.mainContent table p.centerAlign { - text-align:center -} -.context h2 { - font-size:2.1875em -} -.context h3 { - font-size:1.75em -} -.context h4 { - font-size:1.375em -} -.context p img { - margin-top:0.75em; - max-width:100% -} -.context table { - vertical-align:initial -} -table .odd { - background-color:#f9f9f9 -} -table thead { - text-align:left; - padding-left:20px -} -table,table td,table th { - border:1px solid #eee -} -table td,table th { - padding:5px 20px; - line-height:1.3 -} -table.alignedsummary,table.propsummary { - width:initial -} -table.valuelist td.tblval { - font-size:0.75em -} -div.main_index .row { - border-bottom:1px solid #eee -} -div.main_index .row { - position:relative -} -div.main_index .row>div { - display:inline-block; - width:50%; - vertical-align:top; - padding:50px; - -webkit-box-sizing:border-box; - -moz-box-sizing:border-box; - -ms-box-sizing:border-box; - box-sizing:border-box -} -div.main_index h2 { - font-size:2.1875em; - margin-bottom:1em -} -#search_bar { - width:40%; - float:right -} -div.main_index .row:after { - content:""; - position:absolute; - top:0; - right:50%; - height:100%; - width:1px; - background-color:#eee -} -div.table { - overflow-x:auto -} -.context tr > td > pre { - font-size:0.85em -} -p.qt_commercial { - border:3px solid #5caa15; - margin:0 auto; - padding:15px; - width:28%; - text-align:center; - clear:both -} -h1.qt_commercial { - padding:20px; - background-color:#5caa15; - display:inline; - float:right; - font-size:1.25em; - line-height:1.25em; - height:1.25em; - color:#fff -} -div.qt_commercial { - border-top:5px solid #5caa15; - margin-bottom:50px -} -pre, .LegaleseLeft { - background-color:#404244; - color:#fff; - display:block; - font-family:"Droid Sans Mono"; - line-height:1.5; - overflow-x:auto; - margin-bottom:25px; - padding:25px; - margin-top:0.75em -} -.mainContent .LegaleseLeft p { - color:#fff; - white-space: pre-wrap -} -.copy_text { - background-color:#46a2da; - color:#fff; - border:2px solid #46a2da; - padding:10px 16px; - margin-left:-10px; - margin-top:-50px; - position:absolute; - opacity:0; - cursor:pointer; - float:right -} -.copy_text:hover { - background-color:#fff; - color:#46a2da -} -code,.codelike { - font-family:"Droid Sans Mono" -} -h3.fn code { - font-size:0.75em; - float:right; - background-color:#eee; - padding:3px; - margin: 3px 0 0 20px -} -pre:hover>.copy_text { - display:inline-block; - opacity:1; - transition:0.5s ease -} -#main_title_bar { - letter-spacing:-0.31em -} -#main_title_bar .search_bar { - letter-spacing:normal; - width:50%; - display:inline-block; - -webkit-box-sizing:border-box; - -moz-box-sizing:border-box; - -ms-box-sizing:border-box; - box-sizing:border-box; - vertical-align:middle -} -#main_title_bar h1 { - letter-spacing:normal; - width:50%; - display:inline-block; - -webkit-box-sizing:border-box; - -moz-box-sizing:border-box; - -ms-box-sizing:border-box; - box-sizing:border-box; - vertical-align:middle -} -#main_title_bar .search_bar * { - letter-spacing:normal; - padding:0; - margin:0; - border:none -} -#sidebar-toggle,#toc-toggle { - display:none -} -@media (max-width: 980px) { - body { - font-size:calc-em(14px) - } - #main_title_bar { - letter-spacing:-0.31em; - width:100% - } - #main_title_bar>h1,#main_title_bar .search_bar { - display:block; - width:100% - } - #main_title_bar .search_bar { - margin-bottom:15px - } - .main { - margin-top:0px - } - .main_index .row { - border:none !important - } - .title { - font-size:1.5em; - font-weight:400; - word-wrap:break-word - } - .col-1,.context,.naviNextPrevious,.sidebar { - padding:10px - } - .sidebar { - padding-top:0 - } - .search .sidebar { - display:none; - visibility:hidden - } - .col-2 h2,.toc h3,.sidebar-content h2,.sidebar-content h3,.sectionlist h2 { - text-align:center; - margin-bottom:0 - } - div.main_index .row:after { - content:none - } - div.main_index .row>div { - display:block !important; - width:100%; - padding:0; - margin:0 - } - .context,.sidebar,.col-1 { - width:100% - } - .main_index h2,h1 { - text-align:center - } - .context h4,.context h3,.context h2 { - text-align:center - } - .sidebar-content,.col-2,.toc { - background-color:#fff; - margin-bottom:1em; - padding:20px - } - #sidebar-toggle,#toc-toggle { - display:block - } - #sidebar-toggle.collapsed + h2 { - display:block - } - .mainContent p { - line-height:1.56em; - margin-bottom:1em; - max-width:100% - } - table td,table th { - padding:5px 5px - } - .sectionlist { - padding:0 - } -} -[id]:target,[name]:target,[name]:target+* { - -webkit-animation:highlighter 3s; - animation:highlighter 3s -} -@-webkit-keyframes highlighter { - 25% { - background-color:#d1e8f6; - color:#444 - } - 75% { - background-color:#d1e8f6; - color:#444 - } -} -@keyframes highlighter { - 25% { - background-color:#d1e8f6; - color:#444 - } - 75% { - background-color:#d1e8f6; - color:#444 - } -} -@-webkit-keyframes copypaste { - 25% { - opacity:1 - } - 100% { - border-radius:10px; - margin-top:-50px; - opacity:1 - } -} -@keyframes copypaste { - 25% { - opacity:1 - } - 100% { - border-radius:10px; - margin-top:-50px; - opacity:1 - } -} -#footer { - clear:both -} -.menuextraslanguages { - display:none; - visibility:hidden -} -form.gsc-search-box { - font-size: 25px !important; - margin-top: 0 !important; - margin-right: 0 !important; - margin-bottom: 4px !important; - margin-left: 0 !important; - width: 100% !important; -} -table.gsc-search-box { - border-style: none !important; - border-width: 0 !important; - border-spacing: 0 0 !important; - width: 100% !important; - margin-bottom: 2px !important; -} - -table.gsc-search-box td { - vertical-align: middle !important; -} - -table.gsc-search-box td.gsc-input { - padding-right: 0px !important; -} -table.gsc-search-box td.gsc-input input { - background-position: 15px center !important; -} - -td.gsc-search-button { - width: 1% !important; -} - -td.gsc-clear-button { - width: 14px !important; - visibility:hidden !important; - display:none !important; -} -table.gsc-branding td, -table.gsc-branding { - margin: 0 0 0 0 !important; - padding: 0 0 0 0 !important; - border: none !important; -} - -table.gsc-branding { - border-style: none !important; - border-width: 0 !important; - border-spacing: 0 0 !important; - width: 100% !important; -} - -.gsc-branding-text { - color: #676767 !important; -} - -td.gsc-branding-text { - vertical-align: top !important; -} -td.gsc-branding-text div.gsc-branding-text { - padding-bottom: 2px !important; - text-align: right !important; - font-size: 11px !important; - margin-right: 2px !important; -} - -td.gsc-branding-img { - width: 65px !important; - vertical-align: bottom !important; -} - -img.gsc-branding-img { - padding-top: 1px !important; - margin: 0 0 0 0 !important; - padding-right: 0 !important; - padding-left: 0 !important; - padding-bottom: 0 !important; - border: none !important; - display: inline !important; -} - -input.gsc-search-button { - background-color: white !important; - height: 35px !important; - width: 25px !important; - color: transparent !important; - background-image: url("doc_search.png") !important; - background-size: 25px auto; - background-position: 0px 5px; - background-repeat: no-repeat; - margin-left: -43px !important; - overflow: hidden; - min-width: 20px !important; -} - -input.gsc-search-button:hover { - cursor: pointer; -} - -input.gsc-search-button:focus { - outline: none; - box-shadow: none; -} - -.gsc-search-box-tools .gsc-clear-button { - display: none !important; - visibility: none !important; -} - -.gsc-overflow-hidden { - overflow: hidden !important; -} - -input.gsc-input { - background-color: #fff !important; - border: 1px solid #d6d6d6 !important; - border-radius: 5px !important; - box-sizing: border-box !important; - -moz-box-sizing: border-box !important; - color: #868482 !important; - outline: 0 none !important; - padding: 9px 10px 10px !important; - transition: color 0.5s ease 0s, box-shadow 0.5s ease 0s, background-color 0.5s ease 0s !important; -} - -input { - font-family: 'Open Sans', Arial, Helvetica, sans-serif !important; - line-height: 1.5 !important; - font-weight: 300 !important; - vertical-align:middle -} - -input:focus { - border-color: #46a2da; - box-shadow: 0 0 5px #46a2da; - color: #000; -} - -a.qa-mark:target:before { - content: "***"; - color: #ff0000; -} - diff --git a/qdoc/global/template/style/theqtcompany.png b/qdoc/global/template/style/theqtcompany.png deleted file mode 100644 index fee3d26f3d1230ff2e535ae4ec9e07debeb1b118..0000000000000000000000000000000000000000 Binary files a/qdoc/global/template/style/theqtcompany.png and /dev/null differ diff --git a/qdoc/src/templateclass-index.qdoc b/qdoc/src/templateclass-index.qdoc deleted file mode 100644 index c5d892b280e13e4310fac80eefa9be847ef73dcf..0000000000000000000000000000000000000000 --- a/qdoc/src/templateclass-index.qdoc +++ /dev/null @@ -1,9 +0,0 @@ -/*! - -\page templateclass-index.html - -\title templateclass - -\l {templateclass C++ Classes} - -*/ diff --git a/qdoc/src/templateclass.qdoc b/qdoc/src/templateclass.qdoc deleted file mode 100644 index fd951fdde08c34feb1cb68472467c7c6895f75da..0000000000000000000000000000000000000000 --- a/qdoc/src/templateclass.qdoc +++ /dev/null @@ -1,4 +0,0 @@ -/*! - \module templateclass - \title templateclass C++ Classes -*/ diff --git a/qdoc/topikm6-templateclass-qdoc.pro b/qdoc/topikm6-templateclass-qdoc.pro deleted file mode 100644 index 4d09148c666b248cce1dfb4e07bd0fbc2f78354a..0000000000000000000000000000000000000000 --- a/qdoc/topikm6-templateclass-qdoc.pro +++ /dev/null @@ -1,39 +0,0 @@ -TEMPLATE = aux - -TargetName=templateclass - -HELPGENERATOR = $$shell_path($$[QT_INSTALL_BINS]/qhelpgenerator) -QDOC_BIN = $$shell_path($$[QT_INSTALL_BINS]/qdoc) -QDOC_GLOBAL = QT_INSTALL_DOCS=$$[QT_INSTALL_DOCS]/src -QDOC_INDEX_DIR=$$[QT_INSTALL_DOCS] - -QHP_FILE = $$PWD/html/$${TargetName}.qhp -QCH_FILE = $$PWD/$${TargetName}.qch - -doc_generate.TARGET = $$TargetName.qhp -doc_generate.commands = $$QDOC_BIN $$PWD/config/doc.qdocconf -indexdir $${QDOC_INDEX_DIR} -qch_docs.TARGET=$$TargetName.qch -qch_docs.commands = $$HELPGENERATOR -o $$QCH_FILE $$QHP_FILE -qch_docs.depends += doc_generate - -QMAKE_EXTRA_TARGETS += doc_generate qch_docs - -PRE_TARGETDEPS += qch_docs - -DISTFILES += \ - config/doc.qdocconf \ - global/compat.qdocconf \ - global/config.qdocconf \ - global/externalsites.qdocconf \ - global/fileextensions.qdocconf \ - global/html-config.qdocconf \ - global/html-footer.qdocconf \ - global/html-header-offline.qdocconf \ - global/macros.qdocconf \ - global/manifest-meta.qdocconf \ - global/qt-cpp-defines.qdocconf \ - global/qt-html-templates-offline-simple.qdocconf \ - global/qt-html-templates-offline.qdocconf \ - global/qt-module-defaults-offline.qdocconf \ - src/templateclass.qdoc \ - src/templateclass-index.qdoc diff --git a/sincpm.json b/sincpm.json index eda09dad6e54ee63de451e4686acb3595d224624..8146e7663155e59ed086733a4b5e9a4d78aed44d 100644 --- a/sincpm.json +++ b/sincpm.json @@ -1,7 +1,7 @@ [ { - "name": "topikm6-templateclass", - "version": "1.2.8", + "name": "topikm6-topsys", + "version": "6.1.63", "os": "windows", "arch": "x86", "compiler": "msvc2015", @@ -9,25 +9,28 @@ "noqt": false, "devDependencies": { "topikm6-frame": "^6.0.0", - "topikm6-topsys": "^6.1.0" + "topikm6-templateclass": "^1.0.0" }, "prefix": "dist/topikm/qt5.6.3-win32-msvc2015/", "dist_comment": "The following dist is written like this for compatibility with the topikm6 directory structure.", "dist": "dist/topikm/qt5.6.3-win32-msvc2015/", "dependencies": { - "topikm6-frame": "^6.0.0" + "topikm6-frame": "^6.0.0", + "topikm6-templateclass": "^1.0.0" }, "packageFiles": [ - "/bin/plugins/toptemplateclassplugin.dll", - "/bin/plugins/toptemplateclassplugin.lib", - "/bin/plugins/toptemplateclassplugin.pdb", - "/language/toptemplateclass_zhcn.qm", - "/language/toptemplateclass_zhtw.qm" + "/bin/plugins/topikm6-topsys-plugin.dll", + "/bin/plugins/topikm6-topsys-plugin.lib", + "/bin/plugins/topikm6-topsys-plugin.pdb", + "/language/topikm6_topsys_en.qm", + "/language/topikm6_topsys_zhcn.qm", + "/language/topikm6_topsys_zhtw.qm", + "/resource/res/topsys.rcc" ] }, { - "name": "topikm6-templateclass", - "version": "1.2.8", + "name": "topikm6-topsys", + "version": "6.1.63", "os": "linux", "arch": "x64", "compiler": "gcc", @@ -35,23 +38,26 @@ "noqt": false, "devDependencies": { "topikm6-frame": "^6.0.0", - "topikm6-topsys": "^6.1.0" + "topikm6-templateclass": "^1.0.0" }, "prefix": "dist/topikm/qt5.6.3-linuxx86_64/", "dist_comment": "The following dist is written like this for compatibility with the topikm6 directory structure.", "dist": "dist/topikm/qt5.6.3-linuxx86_64/", "dependencies": { - "topikm6-frame": "^6.0.0" + "topikm6-frame": "^6.0.0", + "topikm6-templateclass": "^1.0.0" }, "packageFiles": [ - "/bin/libtoptemplateclassplugin.so", - "/language/toptemplateclass_zhcn.qm", - "/language/toptemplateclass_zhtw.qm" + "/bin/libtopikm6-topsys-plugin.so", + "/language/topikm6_topsys_en.qm", + "/language/topikm6_topsys_zhcn.qm", + "/language/topikm6_topsys_zhtw.qm", + "/resource/res/topsys.rcc" ] }, { - "name": "topikm6-templateclass-debug", - "version": "1.2.8", + "name": "topikm6-topsys-debug", + "version": "6.1.63", "os": "windows", "arch": "x86", "compiler": "msvc2015", @@ -59,21 +65,23 @@ "noqt": false, "devDependencies": { "topikm6-frame-debug": "^6.0.0", - "topikm6-topsys-debug": "^6.1.0", - "topikm6-stackup-viewer-debug": "^1.0.0" + "topikm6-templateclass-debug": "^1.0.0" }, "prefix": "dist/topikm/qt5.6.3-win32-msvc2015/", "dist_comment": "The following dist is written like this for compatibility with the topikm6 directory structure.", "dist": "dist/topikm/qt5.6.3-win32-msvc2015/", "dependencies": { - "topikm6-frame-debug": "^6.0.0" + "topikm6-frame-debug": "^6.0.0", + "topikm6-templateclass-debug": "^1.0.0" }, "packageFiles": [ - "/bin_dbg/plugins/toptemplateclassplugind.dll", - "/bin_dbg/plugins/toptemplateclassplugind.lib", - "/bin_dbg/plugins/toptemplateclassplugind.pdb", - "/language/toptemplateclass_zhcn.qm", - "/language/toptemplateclass_zhtw.qm" + "/bin_dbg/plugins/topikm6-topsys-plugind.dll", + "/bin_dbg/plugins/topikm6-topsys-plugind.lib", + "/bin_dbg/plugins/topikm6-topsys-plugind.pdb", + "/language/topikm6_topsys_en.qm", + "/language/topikm6_topsys_zhcn.qm", + "/language/topikm6_topsys_zhtw.qm", + "/resource/res/topsys.rcc" ] } ] \ No newline at end of file diff --git a/demo/examples/templatemain/appicon.rc b/src/class/main/appicon.rc similarity index 100% rename from demo/examples/templatemain/appicon.rc rename to src/class/main/appicon.rc diff --git a/demo/examples/templatemain/applogo.ico b/src/class/main/applogo.ico similarity index 100% rename from demo/examples/templatemain/applogo.ico rename to src/class/main/applogo.ico diff --git a/demo/examples/templatemain/main.cpp b/src/class/main/main.cpp similarity index 100% rename from demo/examples/templatemain/main.cpp rename to src/class/main/main.cpp diff --git a/src/class/main/main.pro b/src/class/main/main.pro new file mode 100644 index 0000000000000000000000000000000000000000..d49b761c701f90a65cf7d79294a164a918093184 --- /dev/null +++ b/src/class/main/main.pro @@ -0,0 +1,51 @@ +############################### COPYRIGHT ################################## +# # +# Copyright (c) 2009-2017 TopLinker Co.,Ltd. (http://www.toplinker.net) # +# ALL RIGHTS RESERVED # +# # +# The entire contents of this file is protected by copyright law and # +# international treaties. Unauthorized reproduction, reverse-engineering # +# and distribution of all or any portion of the code contained in this # +# file is strictly prohibited and may result in severe civil and # +# criminal penalties and will be prosecuted to the maximum extent # +# possible under the law. # +# # +# RESTRICTIONS # +# # +# THE SOURCE CODE CONTAINED WITHIN THIS FILE AND ALL RELATED # +# FILES OR ANY PORTION OF ITS CONTENTS SHALL AT NO TIME BE # +# COPIED, TRANSFERRED, SOLD, DISTRIBUTED, OR OTHERWISE MADE # +# AVAILABLE TO OTHER INDIVIDUALS WITHOUT WRITTEN CONSENT # +# AND PERMISSION FROM DEVELOPER MACHINES # +# # +# CONSULT THE END USER LICENSE AGREEMENT FOR INFORMATION ON # +# ADDITIONAL RESTRICTIONS. # +# # +############################################################################# + +QT += widgets + +TARGET = Top +TEMPLATE = app + +SOURCES += main.cpp + +RC_FILE = appicon.rc + +OTHER_FILES += \ + appicon.rc + +LIB_LIST = tsec tbaseutil tdatabaseutil twidget topcore toputil + +linux { + LIB_LIST = tsec tbaseutil thoconwrapper boost_locale boost_system boost_thread tsec quazip twidget QtitanBase QtitanGrid tchart tdatabaseutil xl texcelxs topcore toputil +} + +win32 { + LIBS += -ldbghelp +} + +DIST_DIR = $$PWD/../../../dist +include(../shared/shared.pri) + +LIBS += -L$$DESTDIR diff --git a/src/class/misc/icon/chart_dev.svg b/src/class/misc/icon/chart_dev.svg new file mode 100644 index 0000000000000000000000000000000000000000..219e3603f770575cac1a5b555f3d82e30b1a02b3 --- /dev/null +++ b/src/class/misc/icon/chart_dev.svg @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 23.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + viewBox="0 0 45 45" style="enable-background:new 0 0 45 45;" xml:space="preserve"> +<g> + <path d="M11.27,32.46L11.27,32.46c-0.81,0-1.46,0.66-1.46,1.46v4.41c0,0.81,0.66,1.46,1.46,1.46h0c0.81,0,1.46-0.66,1.46-1.46 + v-4.41C12.74,33.11,12.08,32.46,11.27,32.46z"/> + <path d="M18.85,28.16L18.85,28.16c-0.81,0-1.46,0.66-1.46,1.46v8.71c0,0.81,0.66,1.46,1.46,1.46h0c0.81,0,1.46-0.66,1.46-1.46 + v-8.71C20.31,28.81,19.66,28.16,18.85,28.16z"/> + <path d="M26.42,24.55L26.42,24.55c-0.81,0-1.46,0.66-1.46,1.46v12.32c0,0.81,0.66,1.46,1.46,1.46h0c0.81,0,1.46-0.66,1.46-1.46 + V26.01C27.89,25.2,27.23,24.55,26.42,24.55z"/> + <path d="M34,30.44L34,30.44c-0.81,0-1.46,0.66-1.46,1.46v6.42c0,0.81,0.66,1.46,1.46,1.46h0c0.81,0,1.46-0.66,1.46-1.46v-6.42 + C35.46,31.1,34.8,30.44,34,30.44z"/> + <path d="M41.73,20.28c-0.24-0.32-0.63-0.54-1.06-0.54h-6.22c-1.84-2.49-4.44-4.38-7.46-5.34c1.93-1.4,3.19-3.65,3.19-6.21 + c0-4.25-3.44-7.69-7.69-7.69c-4.25,0-7.69,3.44-7.69,7.69c0,2.56,1.27,4.82,3.19,6.21c-3.02,0.96-5.61,2.85-7.46,5.34H4.06 + c0,0,0,0,0,0c0,0,0,0,0,0c-0.73,0-1.33,0.59-1.33,1.33V42.9c0,0.44,0.21,0.82,0.54,1.06c0.25,0.32,0.63,0.54,1.06,0.54h36.61 + c0,0,0,0,0,0c0,0,0,0,0,0c0.73,0,1.33-0.59,1.33-1.33V21.35C42.27,20.91,42.06,20.53,41.73,20.28z M17.01,8.19 + c0-3.03,2.46-5.49,5.49-5.49c3.03,0,5.49,2.46,5.49,5.49c0,3.03-2.46,5.49-5.49,5.49C19.47,13.68,17.01,11.22,17.01,8.19z + M22.5,15.95c3.53,0,6.71,1.46,8.99,3.79H13.51C15.79,17.41,18.97,15.95,22.5,15.95z M39.61,41.83H5.39V22.42h34.22V41.83z"/> +</g> +</svg> diff --git a/src/class/misc/icon/chart_navi.svg b/src/class/misc/icon/chart_navi.svg new file mode 100644 index 0000000000000000000000000000000000000000..93e163052991386c2e281915feb20bd2cbb46bde --- /dev/null +++ b/src/class/misc/icon/chart_navi.svg @@ -0,0 +1,20 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 23.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + viewBox="0 0 45 45" style="enable-background:new 0 0 45 45;" xml:space="preserve"> +<g> + <path d="M42.92,15.33C45.2,9.66,44.99,5.1,42.43,2.54c-3.11-3.11-9.95-2.7-15.96,0.97c-0.33,0.17-0.56,0.47-0.66,0.83 + c-0.09,0.36-0.03,0.73,0.17,1.04c0.17,0.33,0.47,0.56,0.83,0.66c0.36,0.09,0.73,0.03,1.04-0.17c5.39-3.25,10.71-3.25,12.58-1.38 + c1.73,1.73,1.66,5.25-0.14,9.82c-0.75,1.84-1.76,3.76-2.98,5.7c-1.66-2.21-3.57-4.43-5.74-6.6C20.38,2.2,7.66-2.57,2.55,2.54 + C-1.2,6.24,0.37,14.09,5.87,22.4c-5.5,8.32-7.07,16.15-3.33,19.89c1.38,1.38,3.32,2.08,5.67,2.08c3.95,0,9.02-1.91,14.29-5.37 + c5.25,3.47,10.32,5.37,14.26,5.37c2.28,0,4.22-0.62,5.67-1.94c3.71-3.76,2.14-11.62-3.38-19.96 + C40.66,20.05,41.98,17.64,42.92,15.33z M4.48,40.43c-2.36-2.41-1.35-8.45,3.1-15.59c1.68,2.24,3.62,4.49,5.82,6.67 + c2.2,2.2,4.45,4.12,6.7,5.79C12.97,41.83,6.86,42.85,4.48,40.43z M22.48,35.68c-2.33-1.68-4.74-3.7-7.14-6.1 + c-2.42-2.4-4.45-4.81-6.14-7.14c1.69-2.38,3.72-4.84,6.14-7.3c1.24-1.25,2.56-2.42,3.87-3.53c0.56-0.5,0.62-1.36,0.14-1.94 + c-0.5-0.56-1.36-0.62-1.94-0.14c-1.31,1.18-2.7,2.42-4.01,3.73c-2.22,2.22-4.17,4.49-5.85,6.75C3.07,12.94,2.07,6.89,4.48,4.48 + c3.46-3.45,14.38,0.07,25.09,10.85c2.29,2.29,4.33,4.7,6.07,7.12c-1.74,2.42-3.78,4.83-6.07,7.12 + C27.19,31.97,24.8,33.99,22.48,35.68z M40.29,30.61c1.8,4.49,1.87,8.09,0.14,9.82c-2.41,2.36-8.46,1.35-15.53-3.11 + c2.24-1.66,4.49-3.57,6.68-5.74c2.14-2.14,4.06-4.38,5.75-6.64C38.54,26.87,39.54,28.78,40.29,30.61z"/> + <polygon points="19.64,25.27 20.53,32.46 28.51,16.4 12.45,24.39 "/> +</g> +</svg> diff --git a/src/class/misc/icon/enum_mgt.svg b/src/class/misc/icon/enum_mgt.svg new file mode 100644 index 0000000000000000000000000000000000000000..d1fdbc21417fe322c5e19af484dd5e95898ce863 --- /dev/null +++ b/src/class/misc/icon/enum_mgt.svg @@ -0,0 +1,44 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 23.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + viewBox="0 0 45 45" style="enable-background:new 0 0 45 45;" xml:space="preserve"> +<g> + <path d="M8.07,5.28c0.36,0,1.06-0.4,2.1-1.2v5.59c0,0.33,0.08,0.58,0.23,0.74c0.15,0.17,0.35,0.25,0.6,0.25 + c0.56,0,0.84-0.41,0.84-1.23V2.4c0-0.29-0.07-0.53-0.2-0.69c-0.13-0.17-0.31-0.25-0.52-0.25c-0.19,0-0.32,0.04-0.39,0.11 + c-0.07,0.07-0.22,0.27-0.45,0.59c-0.23,0.32-0.49,0.61-0.79,0.87C9.19,3.28,8.8,3.52,8.3,3.76C7.97,3.91,7.74,4.04,7.61,4.14 + c-0.13,0.1-0.2,0.25-0.2,0.46c0,0.18,0.07,0.34,0.2,0.48C7.74,5.21,7.9,5.28,8.07,5.28z"/> + <path d="M12.67,25.63H9.41c0.1-0.16,0.21-0.29,0.31-0.41c0.23-0.28,0.66-0.68,1.29-1.19c0.63-0.51,1.07-0.89,1.34-1.13 + c0.27-0.24,0.53-0.57,0.78-0.99c0.26-0.42,0.38-0.89,0.38-1.41c0-0.33-0.06-0.65-0.18-0.95c-0.12-0.31-0.29-0.58-0.52-0.81 + c-0.22-0.23-0.48-0.42-0.77-0.55c-0.45-0.2-0.99-0.3-1.63-0.3c-0.53,0-0.99,0.08-1.38,0.23c-0.39,0.16-0.72,0.36-0.97,0.62 + C7.8,19,7.61,19.28,7.48,19.59c-0.13,0.31-0.19,0.61-0.19,0.9c0,0.24,0.07,0.42,0.21,0.56c0.14,0.14,0.31,0.21,0.52,0.21 + c0.24,0,0.42-0.08,0.54-0.23c0.12-0.15,0.23-0.36,0.33-0.64c0.1-0.28,0.17-0.45,0.21-0.51c0.31-0.48,0.74-0.72,1.29-0.72 + c0.26,0,0.5,0.06,0.72,0.18c0.22,0.12,0.39,0.28,0.52,0.49c0.13,0.21,0.19,0.45,0.19,0.72c0,0.25-0.06,0.5-0.18,0.75 + c-0.12,0.26-0.29,0.51-0.52,0.75c-0.23,0.24-0.51,0.49-0.85,0.73c-0.19,0.13-0.51,0.4-0.96,0.81c-0.45,0.41-0.95,0.9-1.5,1.48 + c-0.13,0.14-0.26,0.34-0.37,0.58c-0.11,0.25-0.17,0.45-0.17,0.6c0,0.23,0.09,0.44,0.26,0.61c0.17,0.17,0.42,0.26,0.73,0.26h4.6 + c0.28,0,0.48-0.07,0.62-0.21c0.14-0.14,0.2-0.31,0.2-0.52c0-0.23-0.09-0.41-0.26-0.54C13.24,25.7,13,25.63,12.67,25.63z"/> + <path d="M12.87,39.05c-0.22-0.22-0.49-0.42-0.81-0.59c0.33-0.28,0.59-0.56,0.77-0.86c0.18-0.29,0.27-0.64,0.27-1.05 + c0-0.31-0.06-0.6-0.18-0.87c-0.12-0.27-0.31-0.51-0.55-0.71c-0.24-0.21-0.53-0.36-0.85-0.47c-0.33-0.11-0.69-0.16-1.09-0.16 + c-0.46,0-0.87,0.06-1.24,0.19c-0.37,0.13-0.68,0.3-0.93,0.51c-0.25,0.21-0.44,0.44-0.57,0.67c-0.13,0.24-0.19,0.46-0.19,0.67 + c0,0.22,0.07,0.4,0.21,0.53c0.14,0.13,0.29,0.2,0.45,0.2c0.14,0,0.26-0.02,0.37-0.07c0.11-0.05,0.18-0.12,0.22-0.2 + c0.07-0.16,0.15-0.33,0.23-0.51c0.08-0.18,0.17-0.33,0.27-0.44c0.09-0.11,0.22-0.21,0.38-0.28c0.16-0.07,0.37-0.1,0.62-0.1 + c0.37,0,0.66,0.11,0.88,0.34c0.22,0.23,0.33,0.5,0.33,0.81c0,0.41-0.14,0.73-0.41,0.95c-0.27,0.22-0.6,0.33-0.97,0.33H9.81 + c-0.29,0-0.51,0.06-0.66,0.18c-0.15,0.12-0.22,0.28-0.22,0.48c0,0.2,0.06,0.36,0.18,0.47c0.12,0.11,0.3,0.17,0.52,0.17 + c0.05,0,0.16-0.01,0.33-0.02c0.17-0.02,0.3-0.02,0.38-0.02c0.47,0,0.83,0.14,1.09,0.41c0.26,0.27,0.39,0.65,0.39,1.13 + c0,0.32-0.08,0.61-0.23,0.86c-0.15,0.25-0.35,0.43-0.58,0.56c-0.24,0.13-0.48,0.19-0.74,0.19c-0.44,0-0.79-0.14-1.03-0.42 + c-0.24-0.28-0.47-0.7-0.69-1.27c-0.03-0.09-0.1-0.18-0.21-0.24c-0.11-0.07-0.22-0.1-0.33-0.1c-0.23,0-0.42,0.07-0.57,0.22 + c-0.15,0.15-0.23,0.34-0.23,0.58c0,0.18,0.06,0.42,0.19,0.7c0.13,0.28,0.32,0.56,0.57,0.82c0.25,0.26,0.57,0.48,0.96,0.66 + c0.39,0.18,0.83,0.26,1.32,0.26c0.48,0,0.93-0.08,1.33-0.23c0.4-0.15,0.75-0.37,1.04-0.64c0.29-0.27,0.51-0.58,0.66-0.93 + c0.15-0.35,0.22-0.71,0.22-1.08c0-0.31-0.06-0.6-0.17-0.87C13.25,39.52,13.09,39.28,12.87,39.05z"/> + <path d="M1.99,0.5H1.75C1.06,0.5,0.5,1.06,0.5,1.75v8.63c0,0.69,0.56,1.25,1.25,1.25h0.24c0.69,0,1.25-0.56,1.25-1.25V1.75 + C3.24,1.06,2.68,0.5,1.99,0.5z"/> + <path d="M1.99,16.94H1.75c-0.69,0-1.25,0.56-1.25,1.25v8.63c0,0.69,0.56,1.25,1.25,1.25h0.24c0.69,0,1.25-0.56,1.25-1.25v-8.63 + C3.24,17.5,2.68,16.94,1.99,16.94z"/> + <path d="M1.99,33.38H1.75c-0.69,0-1.25,0.56-1.25,1.25v8.63c0,0.69,0.56,1.25,1.25,1.25h0.24c0.69,0,1.25-0.56,1.25-1.25v-8.63 + C3.24,33.93,2.68,33.38,1.99,33.38z"/> + <path d="M43.14,11.63c0.69,0,1.25-0.56,1.25-1.25V1.75c0-0.69-0.56-1.25-1.25-1.25H19.33c-0.69,0-1.25,0.56-1.25,1.25v8.63 + c0,0.69,0.56,1.25,1.25,1.25h10.47v5.31H19.33c-0.69,0-1.25,0.56-1.25,1.25v8.63c0,0.69,0.56,1.25,1.25,1.25h10.47v5.31H19.33 + c-0.69,0-1.25,0.56-1.25,1.25v8.63c0,0.69,0.56,1.25,1.25,1.25h23.81c0.69,0,1.25-0.56,1.25-1.25v-8.63c0-0.69-0.56-1.25-1.25-1.25 + H32.67v-5.31h10.47c0.69,0,1.25-0.56,1.25-1.25v-8.63c0-0.69-0.56-1.25-1.25-1.25H32.67v-5.31H43.14z M41.69,41.69h-20.9v-5.5h20.9 + V41.69z M41.69,25.25h-20.9v-5.5h20.9V25.25z M20.79,3.31h20.9v5.5h-20.9V3.31z"/> +</g> +</svg> diff --git a/src/class/misc/icon/module_upload.svg b/src/class/misc/icon/module_upload.svg new file mode 100644 index 0000000000000000000000000000000000000000..7d9f6e3d2571976719ae7081e1dbd4571416c34e --- /dev/null +++ b/src/class/misc/icon/module_upload.svg @@ -0,0 +1,18 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 23.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + viewBox="0 0 45 45" style="enable-background:new 0 0 45 45;" xml:space="preserve"> +<g> + <path d="M30.49,25.89c0.5-0.5,0.5-1.3,0-1.78l-7.09-7.09c-0.24-0.24-0.56-0.37-0.89-0.37c-0.33,0-0.67,0.13-0.89,0.37l-7.22,7.22 + c-0.5,0.5-0.5,1.3,0,1.8c0.24,0.24,0.57,0.37,0.89,0.37c0.33,0,0.65-0.13,0.89-0.37l4.98-5v17.33c0,0.7,0.57,1.26,1.26,1.26 + s1.26-0.57,1.26-1.26V20.87l5.02,5.02C29.19,26.39,29.99,26.39,30.49,25.89z"/> + <path d="M41.44,19.16c-1.43-1.45-3.17-2.42-5.1-2.86c-0.65-2.74-2.07-5.18-4.14-7.11c-2.64-2.46-6.08-3.81-9.69-3.81 + c-3.36,0-6.61,1.19-9.16,3.35c-2.01,1.69-3.52,3.97-4.33,6.46C4.04,16.37,0.5,20.81,0.5,26.02c0,2.89,1.09,5.62,3.07,7.69 + c1.98,2.08,4.65,3.3,7.56,3.44h4.57c0.69,0,1.25-0.56,1.25-1.25s-0.56-1.25-1.25-1.25l-4.51,0C8.98,34.56,6.91,33.61,5.37,32 + c-1.53-1.61-2.38-3.73-2.38-5.97c0-4.26,3.03-7.85,7.21-8.54l0.8-0.13l0.2-0.78c0.6-2.3,1.93-4.41,3.75-5.94 + c2.11-1.78,4.79-2.76,7.56-2.76c2.98,0,5.81,1.12,7.99,3.14c1.89,1.75,3.12,4.03,3.56,6.57l0.16,0.9l0.9,0.12 + c1.72,0.24,3.29,1.03,4.54,2.3c1.51,1.53,2.34,3.55,2.34,5.68c0,2.15-0.84,4.18-2.36,5.7c-1.53,1.53-3.49,2.34-5.68,2.34h-4.97 + c-0.69,0-1.25,0.56-1.25,1.25s0.56,1.25,1.25,1.25h4.97c2.82,0,5.46-1.09,7.44-3.07c1.99-1.99,3.09-4.64,3.09-7.46 + C44.5,23.79,43.41,21.16,41.44,19.16z"/> +</g> +</svg> diff --git a/src/misc/misc.pro b/src/class/misc/misc.pro similarity index 51% rename from src/misc/misc.pro rename to src/class/misc/misc.pro index 1e5d737a7a66e01f505441e2fcb0d1fe5d98cae9..7c455175c916a2f1ac432a70158c7190b557c08b 100644 --- a/src/misc/misc.pro +++ b/src/class/misc/misc.pro @@ -1,6 +1,6 @@ TEMPLATE = aux -DIST_DIR = $$PWD/../../dist +DIST_DIR = $$PWD/../../../dist include(../shared/shared.pri) COPY=cp @@ -8,6 +8,11 @@ win32: COPY=copy SHELL_SUFFIX=sh win32: SHELL_SUFFIX=bat +!exists($$system_path($${TOPIKM_SDKPATH})) { + mkpath($$system_path($${TOPIKM_SDKPATH})) +} + + # å¤åˆ¶topikm.cfg !exists($$system_path($${DIST_DIR}/topikm/config)) { mkpath($$system_path($${DIST_DIR}/topikm/config)) @@ -16,5 +21,14 @@ win32: SHELL_SUFFIX=bat system($${COPY} topikm.cfg $$system_path($${DIST_DIR}/topikm/config/)) } +# 编译rccåˆ°ç›®æ ‡ç›® +!exists($$system_path($${TOPIKM_SDKPATH}\resource\res)) { + mkpath($$system_path($${TOPIKM_SDKPATH}\resource\res)) +} +system($${QTBIN}/rcc -binary res.qrc -o $${TOPIKM_SDKPATH}/resource/res/topsys.rcc) + DISTFILES += \ topikm.cfg + +RESOURCES += \ + res.qrc diff --git a/src/class/misc/res.qrc b/src/class/misc/res.qrc new file mode 100644 index 0000000000000000000000000000000000000000..0e30eb17427318876312519661879811d37c7fed --- /dev/null +++ b/src/class/misc/res.qrc @@ -0,0 +1,8 @@ +<RCC> + <qresource prefix="/topsys"> + <file>icon/chart_dev.svg</file> + <file>icon/chart_navi.svg</file> + <file>icon/enum_mgt.svg</file> + <file>icon/module_upload.svg</file> + </qresource> +</RCC> diff --git a/src/class/misc/topikm.cfg b/src/class/misc/topikm.cfg new file mode 100644 index 0000000000000000000000000000000000000000..366e2bd4b7220eea7e91792a1575407713c94fc9 --- /dev/null +++ b/src/class/misc/topikm.cfg @@ -0,0 +1,11 @@ +{ + "debug_mode": "5", + "http_url": "http://139.196.104.13:9181/api/TOPMES6_PRODUCT_V6/ikm6", + "module_dirs_dev": [ + "../../../src/module/TOPSYS", + "../../../src/module/DEMO" + ], + "module_dirs_prod": [], + "module_dirs_project": [], + "product_category": "topsys" +} diff --git a/src/toptemplateclass.pro b/src/class/mtopsys.pro similarity index 53% rename from src/toptemplateclass.pro rename to src/class/mtopsys.pro index 0fbd2be1a935b4b743ed202d0e12f6d19b81318d..77697c5e4db21e2cc1927aab38aeee566be69dd8 100644 --- a/src/toptemplateclass.pro +++ b/src/class/mtopsys.pro @@ -3,8 +3,6 @@ TEMPLATE = subdirs SUBDIRS += \ misc \ plugin \ - examples - -examples.file = $$PWD/../demo/examples/examples.pro + main CONFIG += ordered diff --git a/src/class/plugin/lupdate.bat b/src/class/plugin/lupdate.bat new file mode 100644 index 0000000000000000000000000000000000000000..58c211c8da70a1137f840b9f581deeccca922ba5 --- /dev/null +++ b/src/class/plugin/lupdate.bat @@ -0,0 +1,3 @@ +@echo off +%QTBIN%/lupdate plugin.pro + diff --git a/src/class/plugin/plugin.pro b/src/class/plugin/plugin.pro new file mode 100644 index 0000000000000000000000000000000000000000..d7f0fc5411c4bd07add2300cf6abe636ed20e667 --- /dev/null +++ b/src/class/plugin/plugin.pro @@ -0,0 +1,87 @@ +############################### COPYRIGHT ################################## +# # +# Copyright (c) 2009-2020 TopLinker Co.,Ltd. (http://www.topibd.com) # +# ALL RIGHTS RESERVED # +# # +# The entire contents of this file is protected by copyright law and # +# international treaties. Unauthorized reproduction, reverse-engineering # +# and distribution of all or any portion of the code contained in this # +# file is strictly prohibited and may result in severe civil and # +# criminal penalties and will be prosecuted to the maximum extent # +# possible under the law. # +# # +# RESTRICTIONS # +# # +# THE SOURCE CODE CONTAINED WITHIN THIS FILE AND ALL RELATED # +# FILES OR ANY PORTION OF ITS CONTENTS SHALL AT NO TIME BE # +# COPIED, TRANSFERRED, SOLD, DISTRIBUTED, OR OTHERWISE MADE # +# AVAILABLE TO OTHER INDIVIDUALS WITHOUT WRITTEN CONSENT # +# AND PERMISSION FROM DEVELOPER MACHINES # +# # +# CONSULT THE END USER LICENSE AGREEMENT FOR INFORMATION ON # +# ADDITIONAL RESTRICTIONS. # +# # +############################################################################# + +TARGET = $$qtLibraryTarget(musermgt-plugin) + +QT += core sql widgets script network xml scripttools printsupport +win32 { + QT += axcontainer +} + +TEMPLATE = lib + +CONFIG += plugin + +SOURCES += \ + topsysplugin.cpp + +HEADERS += \ + topsysplugin.h + +LIB_LIST = tsec tbaseutil tdatabaseutil twidget topcore toputil tchart +win32 { + LIB_LIST += tole +} + +win32 { + LIBS += -ldbghelp + LIBS += -luser32 +} + +include (sysmainwindow/sysmainwindow.pri) +include (sysusermgt/sysusermgt.pri) + +DIST_DIR = $$PWD/../../../dist +include(../shared/shared.pri) + +INCLUDEPATH += ../lib + +LIBS += -L$$DESTDIR +win32 { + LIBS += -L$${DESTDIR}/plugins +} +win32{ + DESTDIR = $${DESTDIR}/plugins +} + +TRANSLATIONS += topikm6_topsys_zhcn.ts \ + topikm6_topsys_en.ts \ + topikm6_topsys_zhtw.ts + +QM_LIST = $$PWD/*.qm + +DEST_LANGUAGE_PATH = $$system_path($${TOPIKM_SDKPATH}/language) +!exists($${DEST_LANGUAGE_PATH}) { + mkpath($${DEST_LANGUAGE_PATH}) +} + +for(qm, QM_LIST) { + win32{ + system(copy $$system_path($${qm}) $${DEST_LANGUAGE_PATH}) + } + else{ + system(cp $$system_path($${qm}) $${DEST_LANGUAGE_PATH}) + } +} diff --git a/src/class/plugin/sysmainwindow/sysmainwindow.cpp b/src/class/plugin/sysmainwindow/sysmainwindow.cpp new file mode 100644 index 0000000000000000000000000000000000000000..293b336b0ff8c7df1189ce68c90494849adc7858 --- /dev/null +++ b/src/class/plugin/sysmainwindow/sysmainwindow.cpp @@ -0,0 +1,153 @@ +#include "SysMainWindow.h" +#include <QCloseEvent> +#include <QDesktopServices> +#include <QProcess> +#include <QGraphicsDropShadowEffect> +#include <QHBoxLayout> +#include <QMenu> +#include <QDateTime> +#include <QResource> +#include <QTabBar> +#include <QFileDialog> +#include <QFileInfo> +#include <QToolBar> +#include <QApplication> +#include <QVBoxLayout> +#include <QPainter> +#include <tbaseutil/tdataparse.h> +#include <tbaseutil/tfileio.h> +#include <tbaseutil/tlogger.h> +#include <tbaseutil/tresource.h> +#include <tbaseutil/ttheme.h> +#include <tdatabaseutil/tsqlqueryv2.h> +#include <tdatabaseutil/tsqlconnectionpoolv2.h> +#include <toputil/topaboutusdialog.h> +#include <topcore/topclasssqlthread.h> +#include <topcore/topcore.h> +#include <toputil/toploginpwdrestdialog.h> +#include <topcore/topmessagecontroller.h> +#include <twidget/tmessagebox.h> +#include <twidget/tpushbutton.h> +#include <twidget/tuiloaderdialog.h> +#include <twidget/tpanelmenu.h> +#include <twidget/twebview.h> +#include <twidget/ttoolbutton.h> +#include <twidget/tdialog.h> +#include <twidget/tradiobox.h> +#include <twidget/tcheckbox.h> +#include <twidget/tgroupbox.h> +#include <twidget/tdialogbuttonbox.h> + + + + +SysMainWindow::SysMainWindow(const QString &iModuleNameStr, + const QVariantMap &iUrlPars, + QWidget *iParent) + :TopClassAbs(iParent) +{ + initModule(iModuleNameStr,iUrlPars); + if (this->isHookExists("afterModuleInit")) { + this->callHooks("afterModuleInit"); + } + + setHasWindowTitleBar(false); + + QStringList rccLst = config("resource.rcc").toStringList(); + for (QString rcc : rccLst) { + TRES->loadRcc(rcc); + } + + initMainWidget(); + + setMinimumSize(TTHEME_DP(800), TTHEME_DP(600)); + QVariantMap defalutSize = config("default_size").toMap(); + if (!defalutSize.isEmpty() && defalutSize["width"].toInt() > 0 + && defalutSize["height"].toInt() > 0) { + resize(TTHEME_DP(defalutSize["width"].toInt()), + TTHEME_DP(defalutSize["height"].toInt())); + } else { + showMaximized(); + } + + refreshActionState(); +} + +SysMainWindow::~SysMainWindow() +{ + if (this->isHookExists("onDestory")) { + this->callHooks("onDestory"); + } +} + +//åˆå§‹åŒ–ä¸»ç•Œé¢ +void SysMainWindow::initMainWidget() +{ + mBodySplitter = new QSplitter(this); + mBodySplitter->setObjectName("mBodySplitter"); + setCentralWidget(mBodySplitter); + mMgtSplitter = new QSplitter(this); + mBodySplitter->addWidget(mMgtSplitter); + + mBodyWgt = new QWidget(this); + QVBoxLayout *bodyLayout = new QVBoxLayout(mBodyWgt); + bodyLayout->setMargin(0); + bodyLayout->setSpacing(0); + mMgtSplitter->addWidget(mBodyWgt); +} + +//打开当å‰é€‰æ‹©æ¨¡å— +void SysMainWindow::openModule(const QString &iUrl, + const QVariant &iConfig) +{ + bool exists = false; + TopClassAbs *module = APP->openModule(iUrl, &exists); + if (module == nullptr) { + TLOG_ERROR(QString("open module(%1) failed!").arg(iUrl)); + return; + } + + QVariantMap paramMap = iConfig.toMap(); + QString title = paramMap.value("title_" + APP->language()).toString(); + if (title.isEmpty()) { + title = paramMap.value("title").toString(); + } + module->setTitle(title); + module->setIconName(paramMap.value("icon").toString()); + + const QString url = module->url().toUpper(); + if (!exists) { + connect(module, SIGNAL(windowTitleChanged(QString)), + this, SLOT(onModuleWindowTitleChanged()), + Qt::UniqueConnection); + connect(module, SIGNAL(windowModifyChanged(bool)), + this, SLOT(onModuleWindowTitleChanged()), + Qt::UniqueConnection); + } + + if (!mUrlAddressWidgetMap.contains(url)) { + mUrlAddressWidgetMap.insert(url, module); + mUrlAddressConfigMap.insert(url, iConfig.toMap()); + } + QVariantMap config; + config.insert("title", module->title()); + config.insert("icon", module->iconName()); + mStackedWidget->addWidget(module); + mStackedWidget->setCurrentWidget(module); +} + + +void StackedWidget::setBackground(const QString &iBackground) +{ + mBackground = iBackground; +} + +void StackedWidget::paintEvent(QPaintEvent *iEvent) +{ + Q_UNUSED(iEvent) + + if (!mBackground.isEmpty()) { + QPainter p(this); + p.drawPixmap(this->rect(), QPixmap(mBackground)); + } +} diff --git a/src/class/plugin/sysmainwindow/sysmainwindow.h b/src/class/plugin/sysmainwindow/sysmainwindow.h new file mode 100644 index 0000000000000000000000000000000000000000..92668991361e82b27566cffce87c758dbc263d74 --- /dev/null +++ b/src/class/plugin/sysmainwindow/sysmainwindow.h @@ -0,0 +1,67 @@ +#ifndef MWINDOWS_H +#define MWINDOWS_H + +#include <QStackedWidget> +#include <topcore/topclassabs.h> +#include <topcore/topclasshelper.h> +#include <tdatabaseutil/tsqlselectorv2.h> +#include <QSystemTrayIcon> +#include <QLineEdit> +#include <QSplitter> +#include <QPushButton> + +class QHBoxLayout; +class QLabel; +class QPropertyAnimation; +class QStackedWidget; +class QTabBar; +class QDateTime; +class QVBoxLayout; +class TFramelessWindowBar; +class TPanelMenu; +class TopMessageController; +class TopQuickToolBar; +class TopQuickButton; +class TToolButton; +class TSplitter; + +class StackedWidget : public QStackedWidget { + Q_OBJECT +public: + StackedWidget(QWidget *iParent = nullptr); + void setBackground(const QString &iBackground); +protected: + void paintEvent(QPaintEvent *iEvent); +private: + QString mBackground; +}; + + +class SysMainWindow:public TopClassAbs +{ + Q_OBJECT + +public: + explicit SysMainWindow(const QString &iModuleNameStr = QString(""), + const QVariantMap &iUrlPars = QVariantMap(), + QWidget *iParent = nullptr); + ~SysMainWindow(); + +public slots: + void openModule(const QString &iUrl, const QVariant &iConfig); +private: + QMap<QString, QWidget *> mUrlAddressWidgetMap; // urlAddress:QWidget + QMap<QString, QVariantMap> mUrlAddressConfigMap; + QHBoxLayout *Hboxlayout; + QLineEdit Title; + QLabel *mMessageLabel = nullptr; + StackedWidget *mStackedWidget = nullptr; + QSplitter *mBodySplitter = nullptr; + QSplitter *mMgtSplitter = nullptr; + QWidget *mBodyWgt; + + void initMainWidget(); +}; + + +#endif diff --git a/src/class/plugin/sysmainwindow/sysmainwindow.pri b/src/class/plugin/sysmainwindow/sysmainwindow.pri new file mode 100644 index 0000000000000000000000000000000000000000..6137e2608aef10c9a41be54b0ee9ae843a42880a --- /dev/null +++ b/src/class/plugin/sysmainwindow/sysmainwindow.pri @@ -0,0 +1,4 @@ +HEADERS += \ + $$PWD/sysmainwindow.h +SOURCES += \ + $$PWD/sysmainwindow.cpp diff --git a/src/plugin/toptemplateclass3.cpp b/src/class/plugin/sysusermgt/musermgt.cpp similarity index 52% rename from src/plugin/toptemplateclass3.cpp rename to src/class/plugin/sysusermgt/musermgt.cpp index 8de381da53083998f33ea2698b19c88dff80c3fb..80c2846fff5835fcebe46f1d1bf5244b2f7a0078 100644 --- a/src/plugin/toptemplateclass3.cpp +++ b/src/class/plugin/sysusermgt/musermgt.cpp @@ -1,38 +1,41 @@ -#include "toptemplateclass3.h" -#include <QtWidgets> +#include "musermgt.h" +#include <QGraphicsDropShadowEffect> +#include <QToolBar> +#include <QVBoxLayout> #include <tbaseutil/tdataparse.h> #include <tbaseutil/tdataresponse.h> #include <tbaseutil/tenumlist.h> #include <tbaseutil/ttheme.h> +#include <tbaseutil/tlogger.h> +#include <tdatabaseutil/tsqlconnectionpoolv2.h> #include <tdatabaseutil/tsqlqueryv2.h> #include <tdatabaseutil/tsqlselectorv2.h> -#include <tdatabaseutil/tsqlconnectionpoolv2.h> -#include <topcore/topcore.h> #include <topcore/topclasssqlthread.h> #include <topcore/topenummanager.h> -#include <twidget/tsplitter.h> +#include <topcore/topcore.h> +#include <toputil/t.h> #include <twidget/ttableview.h> #include <twidget/tsearchentry.h> #include <twidget/tpagetool.h> -#include <twidget/tuiloader.h> - -/*! - * \class TopTemplateClass3 - * \inmodule templateclass - * \brief 带详细信æ¯çš„å•è¡¨å±•ç¤ºã€‚æ”¯æŒæ–°å»ºã€å¤åˆ¶æ–°å»ºã€åˆ 除。 - */ - -TopTemplateClass3::TopTemplateClass3(const QString &iModuleName, - const QVariantMap &iUrlPars, - QWidget *iParent) - : TopClassAbs(iParent) +#include <twidget/tmessagebar.h> +#include <twidget/tcategorytreeview.h> +#include <twidget/ttableviewdialog.h> +#include <twidget/tmessagebox.h> +#include <twidget/taccordion.h> +#include <twidget/tsplitter.h> + + +Musermgt::Musermgt(const QString &iModuleNameStr, + const QVariantMap &iUrlPars, + QWidget *iParent): + TopClassAbs(iParent) { - initModule(iModuleName, iUrlPars); - QString licenseKey = config("sys_license_key").toString(); + initModule(iModuleNameStr, iUrlPars); + QString licenseKey = config("sys_common").toString(); if (!licenseKey.isEmpty()) { setLicenseKey(licenseKey); } - QStringList langLst = config("sys_lang_list").toStringList(); + QStringList langLst = config("lang.conf").toStringList(); for (const auto &lang : langLst) { appendLanguage(lang); } @@ -40,7 +43,7 @@ TopTemplateClass3::TopTemplateClass3(const QString &iModuleName, callHooks("afterModuleInit"); } TopClassHelper::parseTableConf0(this, "view", &mTableConf); - initUi(); + initTableView(); connect(this, SIGNAL(detailSaved(QString)), this, SLOT(onDetailSaved(QString))); connect(this, SIGNAL(isDetailModifiedChanged(bool)), @@ -53,256 +56,131 @@ TopTemplateClass3::TopTemplateClass3(const QString &iModuleName, restoreSizeState(); restoreObjectState(mBodySplitter); restoreObjectState(mTableView); + refreshActionState(); QTimer::singleShot(0, this, SLOT(refresh())); auto refreshInterval = config("view.timing_refresh_interval", 0).toInt(); if (refreshInterval > 0) { mRefreshTimer = new QTimer(this); - connect(mRefreshTimer, SIGNAL(timeout()), this, SLOT(refresh())); + connect(mRefreshTimer, &QTimer::timeout, [=]() { + this->callAction("refresh"); + }); mRefreshTimer->start(refreshInterval * 1000); } } -TopTemplateClass3::~TopTemplateClass3() +Musermgt::~Musermgt() { - saveSizeState(); - saveObjectState(mBodySplitter); - saveObjectState(mTableView); - if (isHookExists("onDestroy")) { - callHooks("onDestroy"); - } - if (mRefreshTimer != nullptr) { - if (mRefreshTimer->isActive()) { - mRefreshTimer->stop(); - } - mRefreshTimer->deleteLater(); - } + this->saveSizeState(); + this->saveObjectState(mTableView); } -/*! - * \brief è¿”å›žè¯¦ç»†ä¿¡æ¯æ¨¡å—是å¦å‘ç”Ÿæ•°æ®æ”¹å˜ - */ -bool TopTemplateClass3::isDetailModified() const +void Musermgt::reload() { - return mIsDetailModified; + setDetailUid(mLastDetailUid.isEmpty() ? mDetailUid : mLastDetailUid, true); } -/*! - * \brief 刷新数æ®ï¼Œ\a iResetPage 表示是å¦è¦é‡ç½®åˆ†é¡µ - */ -void TopTemplateClass3::refresh(bool iResetPage) +bool Musermgt::DetailModified() const { - TSqlSelectorV2 selector; - if (!mTableConf.dbSql.isEmpty()) { - selector.setTable(QString("(%1) _TEMP_TABLE_").arg(mTableConf.dbSql)); - } else { - selector.setTable(mTableConf.dbTableName); - } - selector.setField(mTableConf.queryFields); - selector.setReturnRowCount(true); - selector.setFieldFormat(mTableConf.fieldFormatMap); - // æœç´¢åˆ†é¡µ - TopClassHelper::handleSearchPageOnQuery(mSearchEntry, mPageTool, iResetPage, &selector); - // æŽ’åº - TopClassHelper::handleOrderOnQuery(mTableView, &mTableConf, &selector); - // åªèŽ·å–æœ‰æ•ˆæ•°æ® - if (!mTableConf.dbDelFlagKey.isEmpty()) { - selector.addWhere(QString("%1 = 0 OR %1 IS NULL").arg(mTableConf.dbDelFlagKey)); - } - // 过滤项 - if(!mTableConf.dbFilter.isEmpty()) { - selector.addWhere(mTableConf.dbFilter); - } - loading(ttr("Loading")); - QVariant data = doThreadWork(new TopClassSqlThread(this), TOPSQLTHREAD_SELECT_ARRAYMAP, QVariant::fromValue(selector)); - unloading(); - TDataResponse response(data.toMap()); - if (response.hasError()) { - alertError(ttr("Load data failed!")); - } else { - if (mPageTool != nullptr) { - mPageTool->setRowCount(response.dataCount(), true); - } - QVariantList tableData = response.data().toList(); - TopClassHelper::formatTableData(this, &mTableConf, tableData); - mTableView->loadData(tableData); - mSelectedItems.clear(); - alertOk(ttr("Data loaded")); - if (isHookExists("afterDataRefresh")) { - callHooks("afterDataRefresh"); - } - } + return IsDetailchange; } -/*! - * \brief åˆ·æ–°è¯¦ç»†ä¿¡æ¯ - */ -void TopTemplateClass3::refreshDetail(const QString &iUid) +void Musermgt::setIsDetailModified(bool iIsDetailModified) { - if (iUid.isEmpty()) { - mDetailView->loadValues(QVariantMap(), true); - } else { - if (!mTableConf.dbTableName.isEmpty()) { - TSqlSelectorV2 selector; - selector.setTable(mTableConf.dbTableName); - selector.setField(mTableConf.queryFields); - selector.setWhere(mTableConf.primaryKey, iUid); - selector.setFieldFormat(mTableConf.fieldFormatMap); - TError err; - QVariant data = runSqlQueryOnThreadSync(TOPSQLTHREAD_SELECT_MAP, - QVariant::fromValue(selector), - &err); - if (err.isValid()) { - alertError(ttr("Load data failed!"), err.text()); - return; - } - QVariantMap dataMap = data.toMap(); - mDetailView->loadValues(dataMap, true); - } + if (IsDetailchange == iIsDetailModified) { + qDebug()<<iIsDetailModified; + return; } - setIsDetailModified(false); + IsDetailchange = iIsDetailModified; + emit isDetailModifiedChanged(iIsDetailModified); } -/*! - * \brief 当å‰çš„详细信æ¯çš„UID - */ -QString TopTemplateClass3::detailUid() const +QVariantList Musermgt::selectedItems() { - return mDetailUid; + return mSelectedItems; } -/*! - * \brief 设置详细信æ¯çš„UID为 \a iUid, - * 如果 \a iForceRefresh 为 true, è¡¨ç¤ºæ— è®ºUIDå‘生改å˜ï¼Œéƒ½å¼ºåˆ¶åˆ·æ–° - */ -void TopTemplateClass3::setDetailUid(const QString &iUid, bool iForceRefresh) +QString Musermgt::detailUid() const { - if (iForceRefresh || mDetailUid != iUid) { - mDetailUid = iUid; - emit detailUidChanged(iUid); - } + return mDetailUid; } -/*! - * \brief 设置详细信æ¯çš„æ•°æ®æ”¹å˜çŠ¶æ€ - */ -void TopTemplateClass3::setIsDetailModified(bool iIsDetailModified) +void Musermgt::setDetailUid(const QString &iUid, bool iForceRefresh) { - if (mIsDetailModified == iIsDetailModified) { - return; + if (iForceRefresh || mDetailUid != iUid) { + mDetailUid = iUid; + emit detailUidChanged(iUid); } - mIsDetailModified = iIsDetailModified; - emit isDetailModifiedChanged(iIsDetailModified); } -/*! - * \brief 当å‰é€‰ä¸æ¡ç›®çš„primaryKey - */ -QVariantList TopTemplateClass3::selectedItems() const -{ - return mSelectedItems; -} - -/*! - * \brief 当å‰é€‰ä¸æ¡ç›®çš„æ‰€æœ‰æ•°æ® - */ -QVariantList TopTemplateClass3::selectedDataMaps() const -{ - return mTableView->selectedRowDataMaps(true); -} - -/*! - * \brief 新建æ¡ç›® - */ -void TopTemplateClass3::newItem() +void Musermgt::newItem() { mLastDetailUid = mDetailUid; setDetailUid(QString()); setIsDetailModified(true); } -/*! - * \brief ä¿å˜æ¡ç›® - */ -void TopTemplateClass3::saveItem() +//新增用户 +void Musermgt::addUser() { - QVariantList errLst = mDetailView->validateAll("COMMIT", true, "ERROR"); + //éªŒè¯æœ‰æ•ˆæ€§ + QVariantList errLst = DetailView->validateAll("COMMIT", true, "ERROR"); if (!errLst.isEmpty()) { QStringList errStrLst; for (QVariant err : errLst) { errStrLst.append(err.toMap().value("text").toString()); } - alertError(ttr("Save data failed!"), errStrLst.join("\n")); + alertError(ttr("saved failed!"), errStrLst.join("\n")); return; } - TSqlInserterV2 inserter; - inserter.setTable(mTableConf.dbTableName); + + //使用TopClassTableConf类对象é…ç½®å„é¡¹ä¿¡æ¯ + TSqlInserterV2 insertor; + insertor.setTable(mTableConf.dbTableName); QVariantMap saveData; QMap<QString, QString> updatePolicy; - TopClassHelper::fetchSaveFieldsFromUi(mDetailView, saveData, updatePolicy); - inserter.setUniqueField(mTableConf.primaryKey); - inserter.setAutoIncrementField(mTableConf.primaryKey); + TopClassHelper::fetchSaveFieldsFromUi(DetailView, saveData, updatePolicy); + insertor.addUniqueField(mTableConf.primaryKey); + insertor.setAutoIncrementField(mTableConf.primaryKey); saveData.insert(mTableConf.primaryKey, mDetailUid); - // æ·»åŠ è¿‡æ»¤é¡¹æ•°æ® - if (config("view.data_set.db_filter").type() == QVariant::Map) { - QVariantMap dbFilterMap = config("view.data_set.db_filter").toMap(); - QMapIterator<QString, QVariant> i(dbFilterMap); - while (i.hasNext()) { - i.next(); - saveData.insert(i.key(), i.value()); - } - } - inserter.setData(saveData); - QStringList fields = saveData.keys(); - fields.removeOne(mTableConf.primaryKey); - inserter.setField(fields); - // 设置更新ç–ç•¥ - { - QMapIterator<QString, QString> i(updatePolicy); - while (i.hasNext()) { - i.next(); - inserter.setUpdatePolicy(i.key(), i.value()); - } - } - TError err; - QVariant result = runSqlQueryOnThreadSync(TOPSQLTHREAD_REPLACE_ROW, - QVariant::fromValue(inserter), - &err); - if (err.isValid()) { - alertError(ttr("Save data failed!"), err.text()); - return; - } - setIsDetailModified(false); - emit detailSaved(result.toString()); - alertOk(ttr("Data saved")); -} - -/*! - * \brief 釿–°è½½å…¥æ¡ç›® - */ -void TopTemplateClass3::reloadItem() -{ - setDetailUid(mLastDetailUid.isEmpty() ? mDetailUid : mLastDetailUid, true); -} -/*! - * \brief å¤åˆ¶æ¡ç›® - */ -void TopTemplateClass3::copyItem() -{ - mLastDetailUid = mDetailUid; - mDetailUid = ""; - setIsDetailModified(true); + if (config("view.data_set.db_filter").type() == QVariant::Map) { + QVariantMap dbFilterMap = config("view.data_set.db_filter").toMap(); + QMapIterator<QString, QVariant> i(dbFilterMap); + while (i.hasNext()) { + i.next(); + saveData.insert(i.key(), i.value()); //å‘saveData里æ’å…¥å„项数æ®çš„键和值 + } + } + insertor.setData(saveData); + QStringList fields = saveData.keys(); + fields.removeOne(mTableConf.primaryKey); + insertor.setField(fields); + { + QMapIterator<QString, QString> i(updatePolicy); + while (i.hasNext()) { + i.next(); + insertor.setUpdatePolicy(i.key(), i.value()); + } + } + TError err; + QVariant result = runSqlQueryOnThreadSync(TOPSQLTHREAD_REPLACE_ROW, + QVariant::fromValue(insertor), + &err); + if (err.isValid()) { + alertError(ttr("Save data failed!"), err.text()); + return; + } + emit detailSaved(result.toString()); + setIsDetailModified(false); + alertOk(ttr("Data saved")); } -/*! - * \brief åˆ é™¤æ¡ç›® - */ -void TopTemplateClass3::deleteItems(const QVariantList &iItems) +//åˆ é™¤ç”¨æˆ· +void Musermgt::removeUser(const QVariantList &iItems) { if (mTableConf.dbDelFlagKey.isEmpty()) { - // 物ç†åˆ 除 TSqlDeleterV2 deleter; deleter.setTable(mTableConf.dbTableName); deleter.setWhere(mTableConf.primaryKey, iItems); @@ -317,7 +195,6 @@ void TopTemplateClass3::deleteItems(const QVariantList &iItems) alertOk(ttr("Data deleted")); } } else { - // é€»è¾‘åˆ é™¤ TSqlUpdaterV2 updater; updater.setTable(mTableConf.dbTableName); updater.setWhere(mTableConf.primaryKey, iItems); @@ -335,26 +212,12 @@ void TopTemplateClass3::deleteItems(const QVariantList &iItems) } } -/*! - * \brief è¡¨æ ¼æŽ§ä»¶å¯¹è±¡ - */ -TTableView *TopTemplateClass3::tableView() const -{ - return mTableView; -} - -/*! - * \brief 详细信æ¯çš„表å•对象 - */ -TUiLoader *TopTemplateClass3::uiLoader() const +void Musermgt::onPageChanged() { - return mDetailView; + refresh(false); } -/*! - * \brief 当选ä¸å‘ç”Ÿæ”¹å˜æ—¶çš„æ§½å‡½æ•° - */ -void TopTemplateClass3::onSelectionChanged() +void Musermgt::onSelectionChanged() { mSelectedItems = mTableView->selectedPrimaryKeys(); QString curId; @@ -363,74 +226,136 @@ void TopTemplateClass3::onSelectionChanged() } if (mDetailUid != curId) { mLastDetailUid = curId; - if (!mIsDetailModified) { + if (!IsDetailchange) { setDetailUid(curId); } } refreshActionState(); } -/*! - * \brief 当分页å‘ç”Ÿæ”¹å˜æ—¶çš„æ§½å‡½æ•° - */ -void TopTemplateClass3::onPageChanged() +void Musermgt::onDetailSaved(const QVariant &iUidStr) { - refresh(false); + this->refresh(false); + mTableView->selectRow(iUidStr); } -/*! - * \brief 当详细信æ¯è¡¨å•æ•°æ®å‘ç”Ÿæ”¹å˜æ—¶çš„æ§½å‡½æ•° - */ -void TopTemplateClass3::onDetailDataChanged() +void Musermgt::onDetailDataChanged() { setIsDetailModified(true); } -/*! - * \brief 当详细信æ¯è¡¨å•ä¿å˜æˆåŠŸæ—¶çš„æ§½å‡½æ•° - */ -void TopTemplateClass3::onDetailSaved(const QString &iUid) -{ - refresh(false); - mTableView->selectRow(iUid); -} - -/*! - * \brief 当详细信æ¯è¡¨å•æ•°æ®æ”¹å˜çжæ€å‘生å˜åŒ–时的槽函数 - */ -void TopTemplateClass3::onDetailChanged(bool iIsDetailModified) -{ +void Musermgt::onDetailChanged(bool iIsDetailModified) +{ mTableView->setEnabled(!iIsDetailModified); if (iIsDetailModified) { - showMaskFrame(mBodyWgt); + showMaskFrame(mBodyWidget); } else { hideMaskFrame(); } refreshActionState(); } -/*! - * \brief åˆå§‹åŒ–ç•Œé¢ - */ -void TopTemplateClass3::initUi() +//åˆ·æ–°è¡¨æ ¼ +void Musermgt::refresh(bool iResetPage) +{ + TSqlSelectorV2 selector; + if (!mTableConf.dbSql.isEmpty()) { + selector.setTable(QString("(1% TEMP_TABLE)").arg(mTableConf.dbSql)); + } else if (!mTableConf.dbTableName.isEmpty()) { + selector.setTable(mTableConf.dbTableName); + } + selector.setField(mTableConf.queryFields); + selector.setFieldFormat(mTableConf.fieldFormatMap); + + selector.setReturnRowCount(true); + TopClassHelper::handleSearchPageOnQuery(mSearchEntry, mPageTool, iResetPage, &selector); + TopClassHelper::handleOrderOnQuery(mTableView, &mTableConf, &selector); + if (!mTableConf.dbDelFlagKey.isEmpty()) { + selector.addWhere(QString("%1 = 0 OR %1 IS NULL").arg(mTableConf.dbDelFlagKey)); + } + if(!mTableConf.dbFilter.isEmpty()) { + selector.addWhere(mTableConf.dbFilter); + } + t::loading(this); + QVariant data = doThreadWork(new TopClassSqlThread(this), TOPSQLTHREAD_SELECT_ARRAYMAP, QVariant::fromValue(selector)); + unloading(); + TDataResponse response(data.toMap()); + if (response.hasError()) { + alertError(ttr("Load data failed!")); + } else { + if (mPageTool != nullptr) { + mPageTool->setRowCount(response.dataCount(), true); + } + QVariantList tableData = response.data().toList(); + TopClassHelper::formatTableData(this, &mTableConf, tableData); + if (isHookExists("handleTableData")) { + tableData = callHooksQuick("handleTableData", QVariantList() << QVariant(tableData)).toVariant().toList(); + } + mTableView->loadData(tableData); + mTableView->adjustViewSpan(mTableConf.mergeKeys); + mSelectedItems.clear(); + setDetailUid(QString()); + alertOk(ttr("Data loaded")); + } + return; +} + +//åˆ·æ–°è¯¦ç»†è¡¨å• +void Musermgt::refreshDetail(const QString &iUid) +{ + if (iUid.isEmpty()) { + DetailView->loadValues(QVariantMap(), true); + } else { + TSqlSelectorV2 selector; + if (!mTableConf.dbSql.isEmpty()) { + selector.setTable(QString("(%1) _TEMP_TABLE_").arg(mTableConf.dbSql)); + } else if (!mTableConf.dbTableName.isEmpty()) { + selector.setTable(mTableConf.dbTableName); + } else { + return; + } + selector.setField(mTableConf.queryFields); + selector.setWhere(mTableConf.primaryKey, iUid); + selector.setFieldFormat(mTableConf.fieldFormatMap); + TError err; + QVariant data = runSqlQueryOnThreadSync(TOPSQLTHREAD_SELECT_MAP, + QVariant::fromValue(selector), + &err); + if (err.isValid()) { + alertError(ttr("Load data failed!"), err.text()); + return; + } + QVariantMap dataMap = data.toMap(); + DetailView->loadValues(dataMap, true); + } + alertOk(ttr("Data loaded")); + setIsDetailModified(false); +} + +//åˆå§‹åŒ–ç•Œé¢ +void Musermgt::initTableView() { mBodySplitter = new TSplitter(this); mBodySplitter->setObjectName("mBodySplitter"); setCentralWidget(mBodySplitter); + mBodyWidget = new TSplitter(this); + mBodySplitter->addWidget(mBodyWidget); mBodyWgt = new QWidget(this); QVBoxLayout *bodyLayout = new QVBoxLayout(mBodyWgt); bodyLayout->setMargin(0); bodyLayout->setSpacing(0); + mBodyWidget->addWidget(mBodyWgt); mTableView = new TTableView(this); - mTableView->setObjectName("mTableView"); + mTableView->setObjectName("__view__"); + mTableView->setHeaderPopupEnabled(true); connect(mTableView->horizontalHeader(), SIGNAL(sortIndicatorChanged(int,Qt::SortOrder)), this, SLOT(refresh())); connect(mTableView->selectionModel(), SIGNAL(selectionChanged(QItemSelection,QItemSelection)), - this, SIGNAL(selectionChanged())); - connect(this, SIGNAL(selectionChanged()), this, SLOT(onSelectionChanged())); + connect(mTableView->selectionModel(), SIGNAL(selectionChanged(QItemSelection,QItemSelection)), + this, SIGNAL(selectionChanged())); mTableView->setDataKeyList(mTableConf.dataKeys); mTableView->setPrimaryKey(mTableConf.primaryKey); QVariantList headerItems = mTableConf.horizontalHeaders; @@ -461,8 +386,6 @@ void TopTemplateClass3::initUi() } } - mBodySplitter->addWidget(mBodyWgt); - QWidget *detailWgt = new QWidget(this); QVBoxLayout *detailLayout = new QVBoxLayout(detailWgt); detailLayout->setSpacing(0); @@ -471,20 +394,25 @@ void TopTemplateClass3::initUi() if (QToolBar *toolbar = qobject_cast<QToolBar*>(uim()->getWidget("DETAIL_TOOLBAR"))) { detailLayout->addWidget(toolbar, 0); } - mDetailView = new TUiLoader(this); + DetailView = new TUiLoader(this); + DetailView->setObjectName("__detail__"); const QStringList typePlugins = config("uiloader_plugins").toStringList(); if (typePlugins.size() > 0) { - TopClassHelper::setUiLoaderPluginCallback(mDetailView,this,typePlugins); + TopClassHelper::setUiLoaderPluginCallback(DetailView,this,typePlugins); + } + connect(DetailView, SIGNAL(dataChanged()), this, SLOT(onDetailDataChanged())); + DetailView->setProperty("SS_BG", "PANEL"); + DetailView->setSelf(this); + DetailView->setScriptEngine(APP->scriptEngine()); + DetailView->setUiStr(ui("detail").toString()); + detailLayout->addWidget(DetailView); + + if (!ui("detail").isNull()) { + mBodySplitter->addWidget(detailWgt); + mBodySplitter->setStretchFactor(0, 1); + mBodySplitter->setSizes(QList<int>{1, config("detail.perfect_width", 600).toInt()}); + } else { + detailWgt->setVisible(false); } - connect(mDetailView, SIGNAL(dataChanged()), this, SLOT(onDetailDataChanged())); - mDetailView->setProperty("SS_BG", "PANEL"); - mDetailView->setSelf(this); - mDetailView->setScriptEngine(APP->scriptEngine()); - mDetailView->setUiStr(ui("detail").toString()); - detailLayout->addWidget(mDetailView); - - mBodySplitter->addWidget(detailWgt); - - mBodySplitter->setStretchFactor(0, 1); - mBodySplitter->setSizes(QList<int>{1, config("detail.perfect_width", 600).toInt()}); } + diff --git a/src/class/plugin/sysusermgt/musermgt.h b/src/class/plugin/sysusermgt/musermgt.h new file mode 100644 index 0000000000000000000000000000000000000000..c3f323eb7ad229c94d02f4e2f4d3b59ba6773780 --- /dev/null +++ b/src/class/plugin/sysusermgt/musermgt.h @@ -0,0 +1,71 @@ +#ifndef MUSERMGT +#define MUSERMGT + +#include <topcore/topclassabs.h> +#include <tdatabaseutil/tsqlselectorv2.h> +#include <tbaseutil/tdataresponse.h> +#include <topcore/topclasshelper.h> + +class TCategoryTreeView; +class TTableView; +class TSearchEntry; +class TPageTool; +class TSplitter; + +class Musermgt : public TopClassAbs +{ + Q_OBJECT + +public: + + explicit Musermgt(const QString &iModuleNameStr = QString(""), + const QVariantMap &iUrlPars = QVariantMap(), + QWidget *iParent = nullptr); + + ~Musermgt(); + +public slots: + void refresh(bool iResetPageBol = true); //åˆ·æ–°è¡¨æ ¼ä¿¡æ¯ + void refreshDetail(const QString &iUid); //刷新å³ä¾§è¯¦ç»†ä¿¡æ¯ + void reload(); //详细表å•刷新åŽé‡æ–°è½½å…¥æ•°æ® + bool DetailModified() const; //用于判æ–详细表å•çš„æ•°æ®æ˜¯å¦å‘ç”Ÿæ”¹å˜ + void setIsDetailModified(bool iIsDetailModified); //设置详细表å•的状æ€(是å¦å‘生改å˜) + QVariantList selectedItems(); //返回选ä¸çš„è¡¨æ ¼æ•°æ®LIST + void newItem(); //"新建"功能 + void addUser(); //新增用户,对应action-ä¿å˜ + void removeUser(const QVariantList &iItems); //åˆ é™¤è¡¨æ ¼é‡Œçš„ç”¨æˆ·,对应å³é”®èœå•里的action-åˆ é™¤ + + QString detailUid() const; //è¿”å›žå½“å‰æ¡ç›®çš„uid + void setDetailUid(const QString &iUid, bool iForceRefresh = false); //设置æ¡ç›®çš„uid +private slots: + void onPageChanged(); //翻页对应的槽函数 + void onSelectionChanged(); //当表å•ä¸é€‰æ‹©æ”¹å˜æ—¶å¯¹åº”的槽函数 + void onDetailSaved(const QVariant &iUidStr); //ä¿å˜è¯¦ç»†è¡¨å•时对应的槽函数 + void onDetailChanged(bool iIsDetailModified); //详细表å•å†…å®¹æ”¹å˜æ—¶çš„æ§½å‡½æ•° + void onDetailDataChanged(); +signals: + void isDetailModifiedChanged(bool iIsDetailModified); //详细表å•å‘ç”Ÿæ”¹å˜æ—¶å‘å°„è¯¥ä¿¡å· + void detailUidChanged(const QString &iDetailUid); //当左侧选䏿¡ç›®æ”¹å˜æ—¶è¯¦ç»†è¡¨å•çš„UIDå˜åŒ–,å‘é€è¯¥ä¿¡å·åˆ·æ–°è¯¦ç»†è¡¨å• + void detailSaved(const QString &iUid); //å½“è¯¦ç»†è¡¨å•æ•°æ®ä¿å˜æ—¶å‘é€ + void selectionChanged(); //左侧表å•选䏿¡ç›®å˜åŒ–æ—¶å‘é€è¯¥ä¿¡å· +private: + void initTableView(); //åˆå§‹åŒ–ç•Œé¢ + +private: + TSplitter *mBodySplitter = nullptr; + TSplitter *mBodyWidget = nullptr; + TTableView* mTableView = nullptr; + TSearchEntry* mSearchEntry = nullptr; + TPageTool* mPageTool = nullptr; + TUiLoader *DetailView; + QWidget *mBodyWgt = nullptr; + QString mLastDetailUid; + QString mDetailUid; + + bool IsDetailchange = false; + TopClassTableConf mTableConf; + QTimer *mRefreshTimer = nullptr; + QVariantList mSelectedItems; +}; + +#endif //MUSERMGT diff --git a/src/class/plugin/sysusermgt/sysusermgt.pri b/src/class/plugin/sysusermgt/sysusermgt.pri new file mode 100644 index 0000000000000000000000000000000000000000..3fdbd78eb2c5b85934c6ee7c3c5ed805e12165d1 --- /dev/null +++ b/src/class/plugin/sysusermgt/sysusermgt.pri @@ -0,0 +1,6 @@ +HEADERS += \ + $$PWD/musermgt.h \ + +SOURCES += \ + $$PWD/musermgt.cpp \ + diff --git a/src/class/plugin/topikm6_topsys_en.ts b/src/class/plugin/topikm6_topsys_en.ts new file mode 100644 index 0000000000000000000000000000000000000000..04847cef7d995eb0d4257b4a071071b886f5b13f --- /dev/null +++ b/src/class/plugin/topikm6_topsys_en.ts @@ -0,0 +1,376 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.1" language="en_US"> +<context> + <name>QObject</name> + <message> + <location filename="sysmainwindowv2/topdesktop/topdesktopitemabs.cpp" line="559"/> + <source>Title</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topdesktopitemabs.cpp" line="560"/> + <source>Title(English)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topdesktopitemabs.cpp" line="561"/> + <source>Title(Chinese Simplified)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topdesktopitemabs.cpp" line="562"/> + <source>Title(Chinese Tranditional)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topdesktopitemabs.cpp" line="563"/> + <location filename="sysmainwindowv2/topdesktop/topwin8desktopgroup.cpp" line="76"/> + <source>Icon Name</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topdesktopitemabs.cpp" line="564"/> + <source>Search Code</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topdesktopitemabs.cpp" line="565"/> + <source>Layout Size</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topdesktopitemabs.cpp" line="566"/> + <location filename="sysmainwindowv2/topdesktop/topwin8desktop.cpp" line="85"/> + <location filename="sysmainwindowv2/topdesktop/topwin8desktopgroup.cpp" line="78"/> + <source>Background Color</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topdesktopitemabs.cpp" line="567"/> + <source>Url Address</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktop.cpp" line="86"/> + <source>Background Image</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktop.cpp" line="87"/> + <source>DockArea Alignment</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktop.cpp" line="88"/> + <source>Horizontal</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktop.cpp" line="89"/> + <source>Vertical</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktop.cpp" line="90"/> + <source>Module Click Type</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktop.cpp" line="91"/> + <source>Double Click</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktop.cpp" line="92"/> + <source>Click</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktopgroup.cpp" line="72"/> + <source>GroupName</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktopgroup.cpp" line="73"/> + <source>GroupName(English)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktopgroup.cpp" line="74"/> + <source>GroupName(Chinese Simplified)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktopgroup.cpp" line="75"/> + <source>GroupName(Chinese Tranditional)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktopgroup.cpp" line="77"/> + <source>Title Color</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktopgroup.cpp" line="79"/> + <source>Size</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktopgroup.cpp" line="80"/> + <source>Top Left</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktopgroup.cpp" line="81"/> + <source>Top</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktopgroup.cpp" line="82"/> + <source>Top Right</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktopgroup.cpp" line="83"/> + <source>Left</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktopgroup.cpp" line="84"/> + <source>Center</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktopgroup.cpp" line="85"/> + <source>Right</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktopgroup.cpp" line="86"/> + <source>Bottom Left</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktopgroup.cpp" line="87"/> + <source>Bottom</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktopgroup.cpp" line="88"/> + <source>Bottom Right</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktopgroup.cpp" line="89"/> + <source>Absolute Position</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktopgroup.cpp" line="90"/> + <source>Dock Area</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktopgroup.cpp" line="91"/> + <source>Dock Sequence</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>TopDesktopItemAbs</name> + <message> + <location filename="sysmainwindowv2/topdesktop/topdesktopitemabs.cpp" line="214"/> + <source>1X1</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topdesktopitemabs.cpp" line="218"/> + <source>2X1</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topdesktopitemabs.cpp" line="222"/> + <source>2X2</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topdesktopitemabs.cpp" line="226"/> + <source>2X4</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topdesktopitemabs.cpp" line="230"/> + <source>4X1</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topdesktopitemabs.cpp" line="234"/> + <source>4X2</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topdesktopitemabs.cpp" line="238"/> + <source>4x4</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topdesktopitemabs.cpp" line="253"/> + <source>Adjust size</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topdesktopitemabs.cpp" line="257"/> + <source>Setting Module</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topdesktopitemabs.cpp" line="258"/> + <source>Delete Module</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>TopQuickButtonV2</name> + <message> + <location filename="sysmainwindowv2/topquickbuttonv2.cpp" line="200"/> + <source>Close</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="sysmainwindowv2/topquickbuttonv2.cpp" line="211"/> + <source>Unpin On Toolbar</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="sysmainwindowv2/topquickbuttonv2.cpp" line="217"/> + <source>Pin On Toolbar</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>TopWin8Desktop</name> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktop.cpp" line="145"/> + <source>Search</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktop.cpp" line="156"/> + <source>Refresh</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktop.cpp" line="161"/> + <location filename="sysmainwindowv2/topdesktop/topwin8desktop.cpp" line="759"/> + <source>Edit Desktop</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktop.cpp" line="166"/> + <source>Save Desktop</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktop.cpp" line="171"/> + <source>Desktop Config</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktop.cpp" line="176"/> + <source>Add Group</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktop.cpp" line="428"/> + <source>Open File</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktop.cpp" line="428"/> + <source>Images (*.png *.jpeg *.jpg)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktop.cpp" line="448"/> + <source>Copy image to resource directory failed.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktop.cpp" line="553"/> + <source>Unknow Error!</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktop.cpp" line="590"/> + <source>Edit Config</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktop.cpp" line="754"/> + <source>Cancel Edit</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>TopWin8DesktopGroup</name> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktopgroup.cpp" line="629"/> + <source>Edit - %1</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktopgroup.cpp" line="634"/> + <source>New Group</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktopgroup.cpp" line="666"/> + <source>Are you sure to delete category group %1?</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktopgroup.cpp" line="669"/> + <source>Delete</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktopgroup.cpp" line="670"/> + <source>Yes</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktopgroup.cpp" line="670"/> + <source>No</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktopgroup.cpp" line="734"/> + <source>Setting Group</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktopgroup.cpp" line="735"/> + <source>Delete Group</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktopgroup.cpp" line="736"/> + <source>Add Module</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>TopWin8DesktopItem</name> + <message> + <location filename="sysmainwindowv2/topdesktop/topdesktopitemabs.cpp" line="752"/> + <source>Edit - %1</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topdesktopitemabs.cpp" line="757"/> + <source>New Module</source> + <translation type="unfinished"></translation> + </message> +</context> +</TS> diff --git a/src/class/plugin/topikm6_topsys_zhcn.qm b/src/class/plugin/topikm6_topsys_zhcn.qm new file mode 100644 index 0000000000000000000000000000000000000000..f1a820f672adbf05f80c25c60eb41cb12fefe991 Binary files /dev/null and b/src/class/plugin/topikm6_topsys_zhcn.qm differ diff --git a/src/class/plugin/topikm6_topsys_zhcn.ts b/src/class/plugin/topikm6_topsys_zhcn.ts new file mode 100644 index 0000000000000000000000000000000000000000..8d4a1256fa2e3b954d824ceb697b39ee754be8c5 --- /dev/null +++ b/src/class/plugin/topikm6_topsys_zhcn.ts @@ -0,0 +1,377 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.1" language="zh_CN"> +<context> + <name>QObject</name> + <message> + <location filename="sysmainwindowv2/topdesktop/topdesktopitemabs.cpp" line="559"/> + <source>Title</source> + <translation>æ ‡é¢˜</translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topdesktopitemabs.cpp" line="560"/> + <source>Title(English)</source> + <translation>æ ‡é¢˜ï¼ˆè‹±æ–‡ï¼‰</translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topdesktopitemabs.cpp" line="561"/> + <source>Title(Chinese Simplified)</source> + <translation>æ ‡é¢˜ï¼ˆç®€ä½“ä¸æ–‡ï¼‰</translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topdesktopitemabs.cpp" line="562"/> + <source>Title(Chinese Tranditional)</source> + <translation>æ ‡é¢˜ï¼ˆç¹ä½“䏿–‡ï¼‰</translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topdesktopitemabs.cpp" line="563"/> + <location filename="sysmainwindowv2/topdesktop/topwin8desktopgroup.cpp" line="76"/> + <source>Icon Name</source> + <translation>å›¾æ ‡</translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topdesktopitemabs.cpp" line="564"/> + <source>Search Code</source> + <translation>æœç´¢ç </translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topdesktopitemabs.cpp" line="565"/> + <source>Layout Size</source> + <translation>尺寸</translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topdesktopitemabs.cpp" line="566"/> + <location filename="sysmainwindowv2/topdesktop/topwin8desktop.cpp" line="85"/> + <location filename="sysmainwindowv2/topdesktop/topwin8desktopgroup.cpp" line="78"/> + <source>Background Color</source> + <translation>背景色</translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topdesktopitemabs.cpp" line="567"/> + <source>Url Address</source> + <translation>模å—地å€</translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktop.cpp" line="86"/> + <source>Background Image</source> + <translation>背景图片</translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktop.cpp" line="87"/> + <source>DockArea Alignment</source> + <translation>åœé 区域对é½</translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktopgroup.cpp" line="81"/> + <source>Top</source> + <translation>上</translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktop.cpp" line="91"/> + <source>Double Click</source> + <oldsource>Left Dock</oldsource> + <translation>é¼ æ ‡åŒå‡»</translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktop.cpp" line="88"/> + <source>Horizontal</source> + <translation>æ°´å¹³</translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktop.cpp" line="89"/> + <source>Vertical</source> + <translation>垂直</translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktop.cpp" line="90"/> + <source>Module Click Type</source> + <translation>如何打开模å—</translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktop.cpp" line="92"/> + <source>Click</source> + <translation>é¼ æ ‡å•击</translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktopgroup.cpp" line="72"/> + <source>GroupName</source> + <translation>组å</translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktopgroup.cpp" line="73"/> + <source>GroupName(English)</source> + <translation>组å(英文)</translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktopgroup.cpp" line="74"/> + <source>GroupName(Chinese Simplified)</source> + <translation>组åï¼ˆç®€ä½“ä¸æ–‡ï¼‰</translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktopgroup.cpp" line="75"/> + <source>GroupName(Chinese Tranditional)</source> + <translation>组å(ç¹ä½“䏿–‡ï¼‰</translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktopgroup.cpp" line="77"/> + <source>Title Color</source> + <translation>æ ‡é¢˜é¢œè‰²</translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktopgroup.cpp" line="79"/> + <source>Size</source> + <translation>尺寸</translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktopgroup.cpp" line="80"/> + <source>Top Left</source> + <translation>左上</translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktopgroup.cpp" line="82"/> + <source>Top Right</source> + <translation>å³ä¸Š</translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktopgroup.cpp" line="83"/> + <source>Left</source> + <translation>å·¦</translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktopgroup.cpp" line="84"/> + <source>Center</source> + <translation>ä¸é—´</translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktopgroup.cpp" line="85"/> + <source>Right</source> + <translation>å³</translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktopgroup.cpp" line="86"/> + <source>Bottom Left</source> + <translation>左下</translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktopgroup.cpp" line="87"/> + <source>Bottom</source> + <translation>下</translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktopgroup.cpp" line="88"/> + <source>Bottom Right</source> + <translation>å³ä¸‹</translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktopgroup.cpp" line="89"/> + <source>Absolute Position</source> + <translation>ç»å¯¹ä½ç½®</translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktopgroup.cpp" line="90"/> + <source>Dock Area</source> + <translation>åœé 区域</translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktopgroup.cpp" line="91"/> + <source>Dock Sequence</source> + <translation>åœé åºåˆ—</translation> + </message> +</context> +<context> + <name>TopDesktopItemAbs</name> + <message> + <location filename="sysmainwindowv2/topdesktop/topdesktopitemabs.cpp" line="214"/> + <source>1X1</source> + <translation></translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topdesktopitemabs.cpp" line="218"/> + <source>2X1</source> + <translation></translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topdesktopitemabs.cpp" line="222"/> + <source>2X2</source> + <translation></translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topdesktopitemabs.cpp" line="226"/> + <source>2X4</source> + <translation></translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topdesktopitemabs.cpp" line="230"/> + <source>4X1</source> + <translation></translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topdesktopitemabs.cpp" line="234"/> + <source>4X2</source> + <translation></translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topdesktopitemabs.cpp" line="238"/> + <source>4x4</source> + <translation></translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topdesktopitemabs.cpp" line="253"/> + <source>Adjust size</source> + <translation>调整大å°</translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topdesktopitemabs.cpp" line="257"/> + <source>Setting Module</source> + <translation>模å—设置</translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topdesktopitemabs.cpp" line="258"/> + <source>Delete Module</source> + <translation>åˆ é™¤æ¨¡å—</translation> + </message> +</context> +<context> + <name>TopQuickButtonV2</name> + <message> + <location filename="sysmainwindowv2/topquickbuttonv2.cpp" line="200"/> + <source>Close</source> + <translation>å…³é—</translation> + </message> + <message> + <location filename="sysmainwindowv2/topquickbuttonv2.cpp" line="211"/> + <source>Unpin On Toolbar</source> + <translation>å–æ¶ˆå›ºå®š</translation> + </message> + <message> + <location filename="sysmainwindowv2/topquickbuttonv2.cpp" line="217"/> + <source>Pin On Toolbar</source> + <translation>固定在工具æ 上</translation> + </message> +</context> +<context> + <name>TopWin8Desktop</name> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktop.cpp" line="145"/> + <source>Search</source> + <translation>æœç´¢</translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktop.cpp" line="156"/> + <source>Refresh</source> + <translation>刷新</translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktop.cpp" line="161"/> + <location filename="sysmainwindowv2/topdesktop/topwin8desktop.cpp" line="759"/> + <source>Edit Desktop</source> + <translation>编辑桌é¢</translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktop.cpp" line="166"/> + <source>Save Desktop</source> + <translation>ä¿å˜æ¡Œé¢</translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktop.cpp" line="171"/> + <source>Desktop Config</source> + <translation>桌é¢é…ç½®</translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktop.cpp" line="176"/> + <source>Add Group</source> + <translation>æ·»åŠ ç»„</translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktop.cpp" line="428"/> + <source>Open File</source> + <translation>打开文件</translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktop.cpp" line="428"/> + <source>Images (*.png *.jpeg *.jpg)</source> + <translation></translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktop.cpp" line="448"/> + <source>Copy image to resource directory failed.</source> + <translation>æ‹·è´å›¾ç‰‡åˆ°èµ„æºç›®å½•失败。</translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktop.cpp" line="553"/> + <source>Unknow Error!</source> + <translation>未知错误ï¼</translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktop.cpp" line="590"/> + <source>Edit Config</source> + <translation>编辑é…ç½®</translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktop.cpp" line="754"/> + <source>Cancel Edit</source> + <translation>å–æ¶ˆç¼–辑</translation> + </message> +</context> +<context> + <name>TopWin8DesktopGroup</name> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktopgroup.cpp" line="629"/> + <source>Edit - %1</source> + <translation>编辑 - %1</translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktopgroup.cpp" line="634"/> + <source>New Group</source> + <translation>新建组</translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktopgroup.cpp" line="666"/> + <source>Are you sure to delete category group %1?</source> + <translation>确定è¦åˆ 除%1组å—?</translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktopgroup.cpp" line="669"/> + <source>Delete</source> + <translation>åˆ é™¤</translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktopgroup.cpp" line="670"/> + <source>Yes</source> + <translation>确定</translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktopgroup.cpp" line="670"/> + <source>No</source> + <translation>å–æ¶ˆ</translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktopgroup.cpp" line="734"/> + <source>Setting Group</source> + <translation>组设置</translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktopgroup.cpp" line="735"/> + <source>Delete Group</source> + <translation>åˆ é™¤ç»„</translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktopgroup.cpp" line="736"/> + <source>Add Module</source> + <translation>æ·»åŠ æ¨¡å—</translation> + </message> +</context> +<context> + <name>TopWin8DesktopItem</name> + <message> + <location filename="sysmainwindowv2/topdesktop/topdesktopitemabs.cpp" line="752"/> + <source>Edit - %1</source> + <translation>编辑 - %1</translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topdesktopitemabs.cpp" line="757"/> + <source>New Module</source> + <translation>æ·»åŠ æ¨¡å—</translation> + </message> +</context> +</TS> diff --git a/src/class/plugin/topikm6_topsys_zhtw.ts b/src/class/plugin/topikm6_topsys_zhtw.ts new file mode 100644 index 0000000000000000000000000000000000000000..c3d4ea63a0bfc232b2789841cab3a36d62db64e0 --- /dev/null +++ b/src/class/plugin/topikm6_topsys_zhtw.ts @@ -0,0 +1,376 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.1"> +<context> + <name>QObject</name> + <message> + <location filename="sysmainwindowv2/topdesktop/topdesktopitemabs.cpp" line="559"/> + <source>Title</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topdesktopitemabs.cpp" line="560"/> + <source>Title(English)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topdesktopitemabs.cpp" line="561"/> + <source>Title(Chinese Simplified)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topdesktopitemabs.cpp" line="562"/> + <source>Title(Chinese Tranditional)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topdesktopitemabs.cpp" line="563"/> + <location filename="sysmainwindowv2/topdesktop/topwin8desktopgroup.cpp" line="76"/> + <source>Icon Name</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topdesktopitemabs.cpp" line="564"/> + <source>Search Code</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topdesktopitemabs.cpp" line="565"/> + <source>Layout Size</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topdesktopitemabs.cpp" line="566"/> + <location filename="sysmainwindowv2/topdesktop/topwin8desktop.cpp" line="85"/> + <location filename="sysmainwindowv2/topdesktop/topwin8desktopgroup.cpp" line="78"/> + <source>Background Color</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topdesktopitemabs.cpp" line="567"/> + <source>Url Address</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktop.cpp" line="86"/> + <source>Background Image</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktop.cpp" line="87"/> + <source>DockArea Alignment</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktop.cpp" line="88"/> + <source>Horizontal</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktop.cpp" line="89"/> + <source>Vertical</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktop.cpp" line="90"/> + <source>Module Click Type</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktop.cpp" line="91"/> + <source>Double Click</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktop.cpp" line="92"/> + <source>Click</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktopgroup.cpp" line="72"/> + <source>GroupName</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktopgroup.cpp" line="73"/> + <source>GroupName(English)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktopgroup.cpp" line="74"/> + <source>GroupName(Chinese Simplified)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktopgroup.cpp" line="75"/> + <source>GroupName(Chinese Tranditional)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktopgroup.cpp" line="77"/> + <source>Title Color</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktopgroup.cpp" line="79"/> + <source>Size</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktopgroup.cpp" line="80"/> + <source>Top Left</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktopgroup.cpp" line="81"/> + <source>Top</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktopgroup.cpp" line="82"/> + <source>Top Right</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktopgroup.cpp" line="83"/> + <source>Left</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktopgroup.cpp" line="84"/> + <source>Center</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktopgroup.cpp" line="85"/> + <source>Right</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktopgroup.cpp" line="86"/> + <source>Bottom Left</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktopgroup.cpp" line="87"/> + <source>Bottom</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktopgroup.cpp" line="88"/> + <source>Bottom Right</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktopgroup.cpp" line="89"/> + <source>Absolute Position</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktopgroup.cpp" line="90"/> + <source>Dock Area</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktopgroup.cpp" line="91"/> + <source>Dock Sequence</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>TopDesktopItemAbs</name> + <message> + <location filename="sysmainwindowv2/topdesktop/topdesktopitemabs.cpp" line="214"/> + <source>1X1</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topdesktopitemabs.cpp" line="218"/> + <source>2X1</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topdesktopitemabs.cpp" line="222"/> + <source>2X2</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topdesktopitemabs.cpp" line="226"/> + <source>2X4</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topdesktopitemabs.cpp" line="230"/> + <source>4X1</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topdesktopitemabs.cpp" line="234"/> + <source>4X2</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topdesktopitemabs.cpp" line="238"/> + <source>4x4</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topdesktopitemabs.cpp" line="253"/> + <source>Adjust size</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topdesktopitemabs.cpp" line="257"/> + <source>Setting Module</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topdesktopitemabs.cpp" line="258"/> + <source>Delete Module</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>TopQuickButtonV2</name> + <message> + <location filename="sysmainwindowv2/topquickbuttonv2.cpp" line="200"/> + <source>Close</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="sysmainwindowv2/topquickbuttonv2.cpp" line="211"/> + <source>Unpin On Toolbar</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="sysmainwindowv2/topquickbuttonv2.cpp" line="217"/> + <source>Pin On Toolbar</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>TopWin8Desktop</name> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktop.cpp" line="145"/> + <source>Search</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktop.cpp" line="156"/> + <source>Refresh</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktop.cpp" line="161"/> + <location filename="sysmainwindowv2/topdesktop/topwin8desktop.cpp" line="759"/> + <source>Edit Desktop</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktop.cpp" line="166"/> + <source>Save Desktop</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktop.cpp" line="171"/> + <source>Desktop Config</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktop.cpp" line="176"/> + <source>Add Group</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktop.cpp" line="428"/> + <source>Open File</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktop.cpp" line="428"/> + <source>Images (*.png *.jpeg *.jpg)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktop.cpp" line="448"/> + <source>Copy image to resource directory failed.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktop.cpp" line="553"/> + <source>Unknow Error!</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktop.cpp" line="590"/> + <source>Edit Config</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktop.cpp" line="754"/> + <source>Cancel Edit</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>TopWin8DesktopGroup</name> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktopgroup.cpp" line="629"/> + <source>Edit - %1</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktopgroup.cpp" line="634"/> + <source>New Group</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktopgroup.cpp" line="666"/> + <source>Are you sure to delete category group %1?</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktopgroup.cpp" line="669"/> + <source>Delete</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktopgroup.cpp" line="670"/> + <source>Yes</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktopgroup.cpp" line="670"/> + <source>No</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktopgroup.cpp" line="734"/> + <source>Setting Group</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktopgroup.cpp" line="735"/> + <source>Delete Group</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topwin8desktopgroup.cpp" line="736"/> + <source>Add Module</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>TopWin8DesktopItem</name> + <message> + <location filename="sysmainwindowv2/topdesktop/topdesktopitemabs.cpp" line="752"/> + <source>Edit - %1</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="sysmainwindowv2/topdesktop/topdesktopitemabs.cpp" line="757"/> + <source>New Module</source> + <translation type="unfinished"></translation> + </message> +</context> +</TS> diff --git a/src/class/plugin/topsysplugin.cpp b/src/class/plugin/topsysplugin.cpp new file mode 100644 index 0000000000000000000000000000000000000000..2ac0b8afc173fbc5dbfe1b4011285b21ba57eb0d --- /dev/null +++ b/src/class/plugin/topsysplugin.cpp @@ -0,0 +1,20 @@ +#include "topsysplugin.h" +//#include "sysmainwindow/sysmainwindow.h" +#include "sysusermgt/musermgt.h" +//#include "sysusermgt/sysuser.h" + + +QStringList TopSysPlugin::getClassList() +{ + return QStringList()<< QStringLiteral("Musermgt"); +} + +TopClassAbs *TopSysPlugin::newClass(const QString &iClassName, + const QString &iModuleName, + const QVariantMap &iUrlPars) +{ + if (iClassName == QStringLiteral("Musermgt")) { + return new Musermgt(iModuleName, iUrlPars, nullptr); + } + return nullptr; +} diff --git a/src/plugin/toptemplateclassplugin.h b/src/class/plugin/topsysplugin.h similarity index 75% rename from src/plugin/toptemplateclassplugin.h rename to src/class/plugin/topsysplugin.h index d0c54bec7e420d6800a859db6414e4f69e6b6f61..be1a25ab121da695abc0859212b88a730597b26e 100644 --- a/src/plugin/toptemplateclassplugin.h +++ b/src/class/plugin/topsysplugin.h @@ -1,11 +1,11 @@ -#ifndef TEMPLATEPLUGIN_H -#define TEMPLATEPLUGIN_H +#ifndef SYSADMINPLUGIN_H +#define SYSADMINPLUGIN_H #include <QtPlugin> #include <QVariantMap> #include <topcore/topclasspluginabs.h> -class TemplatePlugin : public QObject, public TopClassPluginAbs +class TopSysPlugin : public QObject, TopClassPluginAbs { Q_OBJECT Q_PLUGIN_METADATA(IID "net.toplinker.TopClassAbsPlugin") @@ -18,4 +18,4 @@ public: const QVariantMap &iUrlPars = QVariantMap()) override; }; -#endif // TEMPLATEPLUGIN_H +#endif // SYSADMINPLUGIN_H diff --git a/src/shared/shared.pri b/src/class/shared/shared.pri similarity index 79% rename from src/shared/shared.pri rename to src/class/shared/shared.pri index 3e3bd41cfba6db8fc8ac9bb2237d9037014240f6..66fbd0c5b22291cbea8db6aca30e9c2f10bb5be5 100644 --- a/src/shared/shared.pri +++ b/src/class/shared/shared.pri @@ -1,9 +1,16 @@ +# set QTBIN +TEMPNAME = $${QMAKE_QMAKE} +QTBIN = $$dirname(TEMPNAME) + +# never use foreach or Q_FOREACH DEFINES += QT_NO_FOREACH win32-msvc* { # support windows xp QMAKE_LFLAGS_WINDOWS = /SUBSYSTEM:WINDOWS,5.01 # generating pdb in release mode + # QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE_WITH_DEBUGINGO + # QMAKE_LFLAGS_RELEASE = $$QMAKE_LFLAGS_RELEASE_WITH_DEBUGINFO QMAKE_CXXFLAGS_RELEASE += /Zi QMAKE_LFLAGS_RELEASE += /DEBUG } @@ -57,6 +64,11 @@ CONFIG(debug, debug | release) { # libs LIBS += -L$$DESTDIR -for(lib, LIB_LIST) { +for (lib, LIB_LIST) { LIBS += -l$${lib}$${DEBUG_SUFFIX} } + +linux { + QMAKE_RPATHDIR += . + QMAKE_RPATHDIR += ./party3libs/pg +} diff --git a/src/misc/topikm.cfg b/src/misc/topikm.cfg deleted file mode 100644 index 2c056def254b5c13a31f5368ff0d3f9ae85ab064..0000000000000000000000000000000000000000 --- a/src/misc/topikm.cfg +++ /dev/null @@ -1,11 +0,0 @@ -{ - "debug_mode": "5", - "http_url": "http://139.196.104.13:9181/api/TOPMESV6_DEV_V6/ikm6", - "module_dirs_dev": [ - "F:\\workspace\\toplinker\\gitlab\\topikm6-sysadmin\\src\\module\\01_TOP", - "F:\\workspace\\toplinker\\gitlab\\topikm6-templateclass\\demo\\examples\\module\\TEMPLATEDEMO" - ], - "module_dirs_prod": [], - "module_dirs_project": [], - "product_category": "templateclass" -} diff --git a/src/module/TEMPLATEDEMO/temp/actions/add.js b/src/module/TEMPLATEDEMO/temp/actions/add.js new file mode 100644 index 0000000000000000000000000000000000000000..2ee2e83d5d58c885bd05b1ec5b8ae958ef661a9a --- /dev/null +++ b/src/module/TEMPLATEDEMO/temp/actions/add.js @@ -0,0 +1,28 @@ +try { + this.addUser(); +} catch (e) { + print(e); +} + +/*---ACTION--- +ICON: "plus" +LABEL: "Add" +LABEL_ZHCN: "æ·»åŠ å®¢æˆ·" +LABEL_ZHTW: "æ·»åŠ å®¢æˆ¶" +ACCEL: "Ctrl+N" +TOOLTIP: "Add Customer" +TOOLTIP_ZHCN: "æ·»åŠ å®¢æˆ·" +TOOLTIP_ZHTW: "æ·»åŠ å®¢æˆ¶" +CHECKED: "" +GROUP: "" +LABEL_EN: "" +LABEL_JP: "" +TOOLTIP_EN: "" +TOOLTIP_JP: "" +PERMISSION: "" +STYLE: "button_style=both" +LANG: "JavaScript" +STATUS: "Release" +VERSION: "1" +STATEHOOK: "return (this.state() != 'EDIT') ? 'enable' : 'hide';" +---ACTION---*/ \ No newline at end of file diff --git a/src/module/TEMPLATEDEMO/temp/actions/cancel_detail.js b/src/module/TEMPLATEDEMO/temp/actions/cancel_detail.js index 9eb4ceb8f1ed8d7103adaacc679446dacfd8d620..f6042baa5948889a9d238580e39d48e539ddf2d4 100644 --- a/src/module/TEMPLATEDEMO/temp/actions/cancel_detail.js +++ b/src/module/TEMPLATEDEMO/temp/actions/cancel_detail.js @@ -1,5 +1,5 @@ try { - this.reloadItem(); + this.reload(); } catch(e) { print(e); } @@ -19,5 +19,5 @@ STYLE: "button_style=text" LANG: "JavaScript" STATUS: "Release" VERSION: "1" -STATEHOOK: "return (this.isDetailModified()) ? 'enable' : 'hide';" +STATEHOOK: "return (this.DetailModified()) ? 'enable' : 'hide';" ---ACTION---*/ \ No newline at end of file diff --git a/src/module/TEMPLATEDEMO/temp/actions/copy_detail.js b/src/module/TEMPLATEDEMO/temp/actions/copy_detail.js index b6575ff3d9da682bdcbad460ec22be224f71c1c3..18a3032aa8c87cba226a74f27727313453a75e72 100644 --- a/src/module/TEMPLATEDEMO/temp/actions/copy_detail.js +++ b/src/module/TEMPLATEDEMO/temp/actions/copy_detail.js @@ -1,5 +1,5 @@ try { - this.copyItem(); + this.copy(); } catch(e) { print(e); } @@ -20,5 +20,5 @@ STYLE: "button_style=icon" LANG: "JavaScript" STATUS: "Release" VERSION: "1" -STATEHOOK: "return this.isDetailModified() ? 'hide' : 'enable';" +STATEHOOK: "return this.DetailModified() ? 'hide' : 'enable';" ---ACTION---*/ \ No newline at end of file diff --git a/src/module/TEMPLATEDEMO/temp/actions/delete.js b/src/module/TEMPLATEDEMO/temp/actions/delete.js index d840dea86623cce996b33795cd4e213cc8635d3b..1c24f1677a2ddedbb567e9f62718ece74c5732cc 100644 --- a/src/module/TEMPLATEDEMO/temp/actions/delete.js +++ b/src/module/TEMPLATEDEMO/temp/actions/delete.js @@ -1,13 +1,13 @@ try { - var ans = TMessageBox.question(this, this.ttr("Are you sure to delete selected items?"), '', '', - [this.ttr('Delete')+':Yes:Yes:Primary', this.ttr('Cancel')+':Cancel:Cancel:Normal']); - if (ans != 'Yes') { - return; + var ans = TMessageBox.question(this, this.ttr("Are you sure to delete selected items?"), '', '', + [this.ttr('Delete')+':Yes:Yes:Primary', this.ttr('Cancel')+':Cancel:Cancel:Normal']); + if (ans != 'Yes') { + return; + } + this.removeUser(this.selectedItems()); + } catch (e) { + print(e); } - this.deleteItems(this.selectedItems()); -} catch (e) { - print(e); -} /*---ACTION--- @@ -26,5 +26,5 @@ STYLE: "size=small button_style=both" LANG: "JavaScript" STATUS: "Release" VERSION: "1" -STATEHOOK: "if(this.selectedItems().length > 0 && !this.isDetailModified()){return 'enable'}else{return 'disable'}" +STATEHOOK: "if(this.selectedItems().length > 0 && !this.DetailModified()){return 'enable'}else{return 'disable'}" ---ACTION---*/ \ No newline at end of file diff --git a/src/module/TEMPLATEDEMO/temp/actions/new.js b/src/module/TEMPLATEDEMO/temp/actions/new.js index 590fc7ea676bd1fd2e02117d64f074b32ffe53ee..5e98a48f1e8a11fc7c962ba52085b4d0300a0349 100644 --- a/src/module/TEMPLATEDEMO/temp/actions/new.js +++ b/src/module/TEMPLATEDEMO/temp/actions/new.js @@ -20,5 +20,5 @@ STYLE: "button_style=both" LANG: "JavaScript" STATUS: "Release" VERSION: "1" -STATEHOOK: "if (!this.isDetailModified()){return 'enable'} else {return 'disable'}" +STATEHOOK: "if (!this.DetailModified()){return 'enable'} else {return 'disable'}" ---ACTION---*/ \ No newline at end of file diff --git a/src/module/TEMPLATEDEMO/temp/actions/refresh_detail.js b/src/module/TEMPLATEDEMO/temp/actions/refresh_detail.js index 6d474848a9ce3fd9dc56b30305d3cc0fca6c5692..7f59891c68ad9264547b12ec1a80f1bf5dd1cd0f 100644 --- a/src/module/TEMPLATEDEMO/temp/actions/refresh_detail.js +++ b/src/module/TEMPLATEDEMO/temp/actions/refresh_detail.js @@ -1,5 +1,5 @@ try { - this.reloadItem(); + this.reload(); } catch(e) { print(e); } @@ -18,5 +18,5 @@ STYLE: "button_style=icon" LANG: "JavaScript" STATUS: "Release" VERSION: "1" -STATEHOOK: "return this.isDetailModified() ? 'hide' : 'enable';" +STATEHOOK: "return this.DetailModified() ? 'hide' : 'enable';" ---ACTION---*/ \ No newline at end of file diff --git a/src/module/TEMPLATEDEMO/temp/actions/save_detail.js b/src/module/TEMPLATEDEMO/temp/actions/save_detail.js index 49420e218089e83f861149ba43a0f0584f014afb..f24eb2b5f262f4e2e1909db9bbdeece813b1dde6 100644 --- a/src/module/TEMPLATEDEMO/temp/actions/save_detail.js +++ b/src/module/TEMPLATEDEMO/temp/actions/save_detail.js @@ -1,5 +1,5 @@ try { - this.saveItem(); + this.addUser(); } catch(e) { print(e); } @@ -19,5 +19,5 @@ STYLE: " button_style=both" LANG: "JavaScript" STATUS: "Release" VERSION: "1" -STATEHOOK: "return (this.isDetailModified()) ? 'enable' : 'disable';" +STATEHOOK: "return (this.DetailModified()) ? 'enable' : 'disable';" ---ACTION---*/ \ No newline at end of file diff --git a/src/module/TEMPLATEDEMO/temp/detail.ui.js b/src/module/TEMPLATEDEMO/temp/detail.ui.js index 486e9f87892fa6e4616c7680a9c75053e4cba423..6b5c7c156e712f9fde18402a93635c8883502d5d 100644 --- a/src/module/TEMPLATEDEMO/temp/detail.ui.js +++ b/src/module/TEMPLATEDEMO/temp/detail.ui.js @@ -40,18 +40,6 @@ } }, }, - { - name: "password", - type: "LineEdit", - title :self.ttr("Password"), - validate: function (obj, val, title, moment, self) { - if (val.trim() == '') { - return [title + self.ttr(" can not be null"), 'Error']; - } else if (!val.match(new RegExp('^[A-Za-z0-9_]+$'))) { - return [title + self.ttr(" can only contain [A-Za-z0-9]!"), 'Error']; - } - }, - }, { name: "fullname", type: "LineEdit", diff --git a/src/module/TEMPLATEDEMO/temp/module.conf b/src/module/TEMPLATEDEMO/temp/module.conf index edae8732bbd84aa1b241e3ef3315a808123890a0..e1991fab9139803c456bacdc7bf319df5fa3bbe9 100644 --- a/src/module/TEMPLATEDEMO/temp/module.conf +++ b/src/module/TEMPLATEDEMO/temp/module.conf @@ -1,14 +1,14 @@ -# æ¨¡å—æ ‡é¢˜ -sys_title: "Template Demo - Table With Category And Detail" -sys_title_en: "Template Demo - Table With Category And Detail" -sys_title_zhcn: "带导航æ 和详细信æ¯çš„å•表展示" +# æ¨¡å—æ ‡é¢˜ +sys_title: "My test program" +sys_title_en: "My test program" +sys_title_zhcn: "我的测试程åº" sys_title_zhtw: "" # 模å—å›¾æ ‡ sys_icon: "wpforms" # 模å—对应的æ’ä»¶DLLåç§° -sys_plugin: "toptemplateclassplugin" +sys_plugin: "musermgt-plugin" # 模å—对应的类å -sys_class: "TopTemplateClass4" +sys_class: "Musermgt" # 许å¯è¯éªŒè¯é”® sys_license_key: "" # 打开模å—çš„æƒé™ @@ -46,36 +46,7 @@ navi: { ] } -# 高级查询 -# advance: { -# "advanced_items" : [ -# {"name" : "username", "title" : "username" , "widgetType" : "LineEdit" , "wgt_prop" : "" , "optionList" : []}, -# {"name" : "fullname", "title" : "fullname" , "widgetType" : "LineEdit" , "wgt_prop" : "" , "optionList" : []}, -# {"name" : "attr_data.age", "title" : "age" , "widgetType" : "LineEdit" , "wgt_prop" : "" , "optionList" : []}, -# {"name" : "attr_data.gender", "title" : "gender" , "widgetType" : "ComboBox" , "wgt_prop" : "" , "optionList" : "enum(tpm-machine-maintenance-plan-gender)"} -# ], -# "condition" :{ -# "condition": "1 and 2", -# "value": [ -# { -# "ignoreEmpty": false, -# "name": "attr_data.gender", -# "operator": "LIKE", -# "title": "attr_data.gender", -# "valid": true, -# "value1": "man" -# }, -# { -# "ignoreEmpty": false, -# "name": "attr_data.gender", -# "operator": "LIKE", -# "title": "attr_data.gender", -# "valid": true, -# "value1": "woman" -# } -# ] -# } -# } + # ä¸»è¡¨æ ¼ view { @@ -108,7 +79,7 @@ view { { "name": "status", "display": "状æ€", - "displayRole": "$status", + "displayRole": "$status.text", "size": 100, "format": "enum(tpm-machine-maintenance-plan-status)" }, @@ -121,8 +92,9 @@ view { { "name": "attr_data.gender", "display": "性别", - "displayRole": "$attr_data.gender", + "displayRole": "$attr_data.gender.text", "size": 100 + "format": "enum(tpm-machine-maintenance-plan-gender)" }, ] # 默认排åºåˆ— diff --git a/src/plugin/lupdate.bat b/src/plugin/lupdate.bat deleted file mode 100644 index 24f47951774df912bb9ac8f1534e70e7d1e5b9a6..0000000000000000000000000000000000000000 --- a/src/plugin/lupdate.bat +++ /dev/null @@ -1,3 +0,0 @@ -@echo off -%QT_BIN%/lupdate plugin.pro - diff --git a/src/plugin/plugin.pro b/src/plugin/plugin.pro deleted file mode 100644 index 4ddf87b2f93f206283bfe1dd9460084430c49fd5..0000000000000000000000000000000000000000 --- a/src/plugin/plugin.pro +++ /dev/null @@ -1,63 +0,0 @@ -TARGET = $$qtLibraryTarget(toptemplateclassplugin) - -CONFIG += plugin - -QT += core sql widgets script network xml scripttools - -TEMPLATE = lib - -LIB_LIST = tsec tbaseutil tdatabaseutil twidget topcore toputil -win32 { - LIB_LIST += tole -} -SOURCES += \ - toptemplateclass4.cpp \ - -HEADERS += \ - toptemplateclass4.h \ - -win32 { - LIBS += -ldbghelp -} - -DIST_DIR = $$PWD/../../dist -include(../shared/shared.pri) - -INCLUDEPATH += ../lib - -LIBS += -L$$DESTDIR -win32 { - LIBS += -L$${DESTDIR}/plugins -} -win32{ - DESTDIR = $${DESTDIR}/plugins -} - -HEADERS += \ - toptemplateclassplugin.h - -SOURCES += \ - toptemplateclassplugin.cpp - -# i18n -TRANSLATIONS += toptemplateclass_en.ts toptemplateclass_zhcn.ts toptemplateclass_zhtw.ts - -QM_LIST = $$PWD/*.qm -DEST_LANGUAGE_PATH = $$system_path($${TOPIKM_SDKPATH}/language) -!exists($${DEST_LANGUAGE_PATH}) { - mkpath($${DEST_LANGUAGE_PATH}) -} -for(qm, QM_LIST) { - win32 { - system(copy $$system_path($${qm}) $${DEST_LANGUAGE_PATH}) - } else { - system(cp $$system_path($${qm}) $${DEST_LANGUAGE_PATH}) - } -} - -#ç‰ˆæœ¬ä¿¡æ¯ -CONFIG += skip_target_version_ext -VERSION = 1.2.8.0 -QMAKE_TARGET_PRODUCT = toptemplateclass -QMAKE_TARGET_COMPANY = TopLinker Co.,Ltd. -QMAKE_TARGET_COPYRIGHT = Copyright(C) 2020 TopLinker diff --git a/src/plugin/toptemplateclass0.cpp b/src/plugin/toptemplateclass0.cpp deleted file mode 100644 index b55b310fd4bdd743ac685ca07d9f6810122237b2..0000000000000000000000000000000000000000 --- a/src/plugin/toptemplateclass0.cpp +++ /dev/null @@ -1,44 +0,0 @@ -#include "toptemplateclass0.h" - -/*! - * \class TopTemplateClass0 - * \brief ç©ºæ¨¡æ¿ - */ - -TopTemplateClass0::TopTemplateClass0(const QString &iModuleName, - const QVariantMap &iUrlPars, - QWidget *iParent) - : TopClassAbs(iParent) -{ - initModule(iModuleName, iUrlPars); - QString licenseKey = config("sys_license_key").toString(); - if (!licenseKey.isEmpty()) { - setLicenseKey(licenseKey); - } - QStringList langLst = config("sys_lang_list").toStringList(); - for (const auto &lang : langLst) { - appendLanguage(lang); - } - if (isHookExists("afterModuleInit")) { - callHooks("afterModuleInit"); - } - initUi(); - if (isHookExists("afterViewInit")) { - callHooks("afterViewInit"); - } -} - -TopTemplateClass0::~TopTemplateClass0() -{ - if (isHookExists("onDestroy")) { - callHooks("onDestroy"); - } -} - -/*! - * \brief åˆå§‹åŒ–ç•Œé¢ - */ -void TopTemplateClass0::initUi() -{ - // Do nothing -} diff --git a/src/plugin/toptemplateclass0.h b/src/plugin/toptemplateclass0.h deleted file mode 100644 index 3b3cd7369cce62aa3440823e97fdb9ffd0c830b9..0000000000000000000000000000000000000000 --- a/src/plugin/toptemplateclass0.h +++ /dev/null @@ -1,18 +0,0 @@ -#ifndef TEMPLATECLASS0_H -#define TEMPLATECLASS0_H - -#include <topcore/topclassabs.h> - -class TopTemplateClass0 : public TopClassAbs -{ - Q_OBJECT -public: - explicit TopTemplateClass0(const QString &iModuleName = QString(""), - const QVariantMap &iUrlPars = QVariantMap(), - QWidget *iParent = nullptr); - ~TopTemplateClass0(); -private: - void initUi(); -}; - -#endif // TEMPLATECLASS0_H diff --git a/src/plugin/toptemplateclass0a.cpp b/src/plugin/toptemplateclass0a.cpp deleted file mode 100644 index 6290e4d09bb07f14ed19fb0247556b1ca3b29a84..0000000000000000000000000000000000000000 --- a/src/plugin/toptemplateclass0a.cpp +++ /dev/null @@ -1,71 +0,0 @@ -#include "toptemplateclass0a.h" -#include <QtWidgets> -#include <topcore/topcore.h> - -/*! - * \class TopTemplateClass0A - * \inmodule templateclass - * \brief 带背景的空模æ¿ï¼Œå¸¸ç”¨æ¥åšé¦–页 - */ - -TopTemplateClass0A::TopTemplateClass0A(const QString &iModuleName, - const QVariantMap &iUrlPars, - QWidget *iParent) - : TopClassAbs(iParent) -{ - initModule(iModuleName, iUrlPars); - QString licenseKey = config("sys_license_key").toString(); - if (!licenseKey.isEmpty()) { - setLicenseKey(licenseKey); - } - QStringList langLst = config("sys_lang_list").toStringList(); - for (const auto &lang : langLst) { - appendLanguage(lang); - } - if (isHookExists("afterModuleInit")) { - callHooks("afterModuleInit"); - } - initUi(); - if (isHookExists("afterViewInit")) { - callHooks("afterViewInit"); - } -} - -TopTemplateClass0A::~TopTemplateClass0A() -{ - if (isHookExists("onDestroy")) { - callHooks("onDestroy"); - } -} - -/*! - * \brief åˆå§‹åŒ–ç•Œé¢ - */ -void TopTemplateClass0A::initUi() -{ - QWidget *centerWgt = new QWidget(this); - setCentralWidget(centerWgt); - QVBoxLayout *layout = new QVBoxLayout(centerWgt); - layout->setMargin(0); - layout->setSpacing(0); - QLabel *label = new QLabel(this); - QString backgroundImagePath = config("background_image_path").toString(); - backgroundImagePath = QDir(APP->appPlatformPath()).filePath(backgroundImagePath); - QPixmap pixmap(backgroundImagePath); -#if 0 - // 下é¢çš„ä»£ç æ˜¯ä¹‹å‰çš„首页实现,暂时注释掉 - QPixmap temp(pixmap.size()); - temp.fill(Qt::transparent); - QPainter painter(&temp); - painter.setCompositionMode(QPainter::CompositionMode_Source); - painter.drawPixmap(0, 0, pixmap); - painter.setCompositionMode(QPainter::CompositionMode_DestinationIn); - painter.fillRect(temp.rect(), QColor(0, 0, 0, 200)); - painter.end(); - pixmap = temp; -#endif - label->setPixmap(pixmap); - label->setScaledContents(true); - label->setMinimumSize(100, 100); - layout->addWidget(label); -} diff --git a/src/plugin/toptemplateclass0a.h b/src/plugin/toptemplateclass0a.h deleted file mode 100644 index 0ea415286685d50e1aa1bcc80a8b227a2356bbc5..0000000000000000000000000000000000000000 --- a/src/plugin/toptemplateclass0a.h +++ /dev/null @@ -1,18 +0,0 @@ -#ifndef TOPTEMPLATECLASS0A_H -#define TOPTEMPLATECLASS0A_H - -#include <topcore/topclassabs.h> - -class TopTemplateClass0A : public TopClassAbs -{ - Q_OBJECT -public: - explicit TopTemplateClass0A(const QString &iModuleName = QString(""), - const QVariantMap &iUrlPars = QVariantMap(), - QWidget *iParent = nullptr); - ~TopTemplateClass0A(); -private: - void initUi(); -}; - -#endif // TOPTEMPLATECLASS0A_H diff --git a/src/plugin/toptemplateclass1.cpp b/src/plugin/toptemplateclass1.cpp deleted file mode 100644 index a0cda90dbbdd69e2c24e3fedb1c70a110cdd5ea6..0000000000000000000000000000000000000000 --- a/src/plugin/toptemplateclass1.cpp +++ /dev/null @@ -1,186 +0,0 @@ -#include "toptemplateclass1.h" -#include <QtWidgets> -#include <tbaseutil/tdataparse.h> -#include <tbaseutil/tdataresponse.h> -#include <tbaseutil/tenumlist.h> -#include <tdatabaseutil/tsqlqueryv2.h> -#include <tdatabaseutil/tsqlselectorv2.h> -#include <tdatabaseutil/tsqlconnectionpoolv2.h> -#include <topcore/topcore.h> -#include <topcore/topclasssqlthread.h> -#include <topcore/topenummanager.h> -#include <twidget/tsplitter.h> -#include <twidget/ttableview.h> -#include <twidget/tsearchentry.h> -#include <twidget/tpagetool.h> - -/*! - * \class TopTemplateClass1 - * \inmodule templateclass - * \brief 该模æ¿åªæœ‰ä¸€ä¸ªè¡¨æ ¼ï¼Œæ”¯æŒæœç´¢åˆ†é¡µ - */ - -TopTemplateClass1::TopTemplateClass1(const QString &iModuleName, - const QVariantMap &iUrlPars, - QWidget *iParent) - : TopClassAbs(iParent) -{ - initModule(iModuleName, iUrlPars); - QString licenseKey = config("sys_license_key").toString(); - if (!licenseKey.isEmpty()) { - setLicenseKey(licenseKey); - } - QStringList langLst = config("sys_lang_list").toStringList(); - for (const auto &lang : langLst) { - appendLanguage(lang); - } - if (isHookExists("afterModuleInit")) { - callHooks("afterModuleInit"); - } - TopClassHelper::parseTableConf0(this, "view", &mTableConf); - initUi(); - if (isHookExists("afterViewInit")) { - callHooks("afterViewInit"); - } - restoreSizeState(); - restoreObjectState(mTableView); - QTimer::singleShot(0, this, SLOT(refresh())); -} - -TopTemplateClass1::~TopTemplateClass1() -{ - saveSizeState(); - saveObjectState(mTableView); - if (isHookExists("onDestroy")) { - callHooks("onDestroy"); - } -} - -/*! - * \brief 刷新数æ®ï¼Œ\a iResetPage 表示是å¦è¦é‡ç½®åˆ†é¡µ - */ -void TopTemplateClass1::refresh(bool iResetPage) -{ - QString sql = config("table.data_set.db_sql").toString(); - if (sql.isEmpty()) { - TSqlSelectorV2 selector; - selector.setTable(mTableConf.dbTableName); - selector.setField(mTableConf.queryFields); - selector.setReturnRowCount(true); - // æœç´¢åˆ†é¡µ - TopClassHelper::handleSearchPageOnQuery(mSearchEntry, mPageTool, iResetPage, &selector); - // æŽ’åº - TopClassHelper::handleOrderOnQuery(mTableView, &mTableConf, &selector); - loading(ttr("Loading")); - QVariant data = doThreadWork(new TopClassSqlThread(this), TOPSQLTHREAD_SELECT_ARRAYMAP, QVariant::fromValue(selector)); - unloading(); - TDataResponse response(data.toMap()); - if (response.hasError()) { - alertError(ttr("Load data failed!")); - } else { - if (mPageTool != nullptr) { - mPageTool->setRowCount(response.dataCount(), true); - } - QVariantList tableData = response.data().toList(); - TopClassHelper::formatTableData(this, &mTableConf, tableData); - mTableView->loadData(tableData); - alertOk(ttr("Data loaded")); - } - } else { - // @todo - } -} - -/*! - * \brief è¡¨æ ¼æŽ§ä»¶å¯¹è±¡ - */ -TTableView *TopTemplateClass1::tableView() const -{ - return mTableView; -} - -/*! - * \brief 当å‰é€‰ä¸æ¡ç›®çš„primaryKey - */ -QVariantList TopTemplateClass1::selectedItems() const -{ - return mSelectedLst; -} - -/*! - * \brief 当å‰é€‰ä¸æ¡ç›®çš„æ‰€æœ‰æ•°æ® - */ -QVariantList TopTemplateClass1::selectedDataMaps() const -{ - return mTableView->selectedRowDataMaps(true); -} - -/*! - * \brief 当选ä¸å‘ç”Ÿæ”¹å˜æ—¶çš„æ§½å‡½æ•° - */ -void TopTemplateClass1::onSelectionChanged() -{ - mSelectedLst = mTableView->selectedPrimaryKeys(); - refreshActionState(); -} - -/*! - * \brief 当分页å‘ç”Ÿæ”¹å˜æ—¶çš„æ§½å‡½æ•° - */ -void TopTemplateClass1::onPageChanged() -{ - refresh(false); -} - -/*! - * \brief åˆå§‹åŒ–ç•Œé¢ - */ -void TopTemplateClass1::initUi() -{ - TSplitter *bodySplitter = new TSplitter(this); - setCentralWidget(bodySplitter); - - mBodyWgt = new QWidget(this); - QVBoxLayout *bodyLayout = new QVBoxLayout(mBodyWgt); - bodyLayout->setMargin(0); - bodyLayout->setSpacing(0); - - mTableView = new TTableView(this); - mTableView->setObjectName("mTableView"); - connect(mTableView->horizontalHeader(), SIGNAL(sortIndicatorChanged(int,Qt::SortOrder)), - this, SLOT(refresh())); - connect(mTableView->selectionModel(), SIGNAL(selectionChanged(QItemSelection,QItemSelection)), - this, SLOT(onSelectionChanged())); - mTableView->setDataKeyList(mTableConf.dataKeys); - mTableView->setPrimaryKey(mTableConf.primaryKey); - QVariantList headerItems = mTableConf.horizontalHeaders; - headerItems.prepend(QVariant()); - mTableView->setHeaderItem(headerItems); - - if (QToolBar *toolbar = qobject_cast<QToolBar*>(uim()->getWidget("MAIN_TOOLBAR"))) { - bodyLayout->addWidget(toolbar, 0); - mSearchEntry = qobject_cast<TSearchEntry *>(uim()->getWidget("MAIN_TOOLBAR/SEARCH_ENTRY")); - if (mSearchEntry != nullptr) { - connect(mSearchEntry, SIGNAL(search(QString,QVariant)), this, SLOT(refresh())); - mSearchEntry->setOptionList(TDataParse::headerItem2searchList(mTableView->headerItem())); - mSearchEntry->setPlaceholderText(ttr("Search %1")); - } - } - if (QMenu *tablePopup = qobject_cast<QMenu *>(uim()->getWidget("TABLEVIEW_POPUP"))) { - mTableView->setContextMenu(tablePopup); - } - - bodyLayout->addWidget(mTableView, 1); - - if (QToolBar *toolbar = qobject_cast<QToolBar*>(uim()->getWidget("BOTTOM_TOOLBAR"))) { - bodyLayout->addWidget(toolbar, 0); - mPageTool = qobject_cast<TPageTool *>(uim()->getWidget("BOTTOM_TOOLBAR/PAGE_TOOL")); - if (mPageTool != nullptr) { - mPageTool->setPageSizeVisible(true); - connect(mPageTool, SIGNAL(pageChanged(int,int)), this, SLOT(onPageChanged())); - } - } - - bodySplitter->addWidget(mBodyWgt); - bodySplitter->setStretchFactor(0, 1); -} diff --git a/src/plugin/toptemplateclass1.h b/src/plugin/toptemplateclass1.h deleted file mode 100644 index dd054713d5a8d001862eb8da42b38aa7dadd030a..0000000000000000000000000000000000000000 --- a/src/plugin/toptemplateclass1.h +++ /dev/null @@ -1,39 +0,0 @@ -#ifndef TEMPLATECLASS1_H -#define TEMPLATECLASS1_H - -#include <topcore/topclassabs.h> -#include <topcore/topclasshelper.h> - -class QWidget; -class TSearchEntry; -class TPageTool; -class TTableView; - -class TopTemplateClass1 : public TopClassAbs -{ - Q_OBJECT -public: - explicit TopTemplateClass1(const QString &iModuleName = QString(""), - const QVariantMap &iUrlPars = QVariantMap(), - QWidget *iParent = nullptr); - ~TopTemplateClass1(); -public slots: - void refresh(bool iResetPage = true); - TTableView *tableView() const; - QVariantList selectedItems() const; - QVariantList selectedDataMaps() const; -private slots: - void onSelectionChanged(); - void onPageChanged(); -private: - void initUi(); -private: - QWidget *mBodyWgt = nullptr; - TTableView *mTableView = nullptr; - TSearchEntry *mSearchEntry = nullptr; - TPageTool *mPageTool = nullptr; - TopClassTableConf mTableConf; - QVariantList mSelectedLst; -}; - -#endif // TEMPLATECLASS1_H diff --git a/src/plugin/toptemplateclass1a.cpp b/src/plugin/toptemplateclass1a.cpp deleted file mode 100644 index 1075f7a417c0f4794cc0cd557b3e7b013146fabc..0000000000000000000000000000000000000000 --- a/src/plugin/toptemplateclass1a.cpp +++ /dev/null @@ -1,399 +0,0 @@ -#include "toptemplateclass1a.h" -#include <QtWidgets> -#include <tbaseutil/tconcurrent.h> -#include <tbaseutil/tdataparse.h> -#include <tbaseutil/tdataresponse.h> -#include <tbaseutil/tenumlist.h> -#include <tdatabaseutil/tsqlqueryv2.h> -#include <tdatabaseutil/tsqlselectorv2.h> -#include <tdatabaseutil/tsqlconnectionpoolv2.h> -#include <topcore/topcore.h> -#include <topcore/topclasssqlthread.h> -#include <topcore/topenummanager.h> -#include <twidget/tsplitter.h> -#include <twidget/ttreeview.h> -#include <twidget/tsearchentry.h> - -/*! - * \class TopTemplateClass1A - * \inmodule templateclass - * \brief 该模æ¿åªæœ‰ä¸€ä¸ªTreeViewï¼Œæ”¯æŒæœç´¢ - */ - -TopTemplateClass1A::TopTemplateClass1A(const QString &iModuleName, - const QVariantMap &iUrlPars, - QWidget *iParent) - : TopClassAbs(iParent) -{ - initModule(iModuleName, iUrlPars); - QString licenseKey = config("sys_license_key").toString(); - if (!licenseKey.isEmpty()) { - setLicenseKey(licenseKey); - } - QStringList langLst = config("sys_lang_list").toStringList(); - for (const auto &lang : langLst) { - appendLanguage(lang); - } - if (isHookExists("afterModuleInit")) { - callHooks("afterModuleInit"); - } - TopClassHelper::parseTableConf0(this, "view", &mTreeConf); - initUi(); - if (isHookExists("afterViewInit")) { - callHooks("afterViewInit"); - } - restoreSizeState(); - restoreObjectState(mTreeView); - QTimer::singleShot(0, this, SLOT(refresh())); -} - -TopTemplateClass1A::~TopTemplateClass1A() -{ - saveSizeState(); - saveObjectState(mTreeView); - if (isHookExists("onDestroy")) { - callHooks("onDestroy"); - } -} - -/*! - * \brief åˆ·æ–°æ•°æ® - */ -void TopTemplateClass1A::refresh() -{ - if (mTreeConf.dbSql.isEmpty() && mTreeConf.dbTableName.isEmpty()) { - return; - } - - QString groupKey = config("view.group_key").toString(); - QString parentKey = config("view.parent_key").toString(); - QString childKey = config("view.child_key").toString(); - QString seqKey = config("view.seq_key").toString(); - - if (mTreeConf.dbSql.isEmpty()) { - TSqlSelectorV2 selector; - selector.setTable(mTreeConf.dbTableName); - QStringList fields = mTreeConf.queryFields; - fields.removeOne("_category"); - selector.setField(fields); - selector.setReturnRowCount(false); - loading(ttr("Loading")); - QVariant data = doThreadWork(new TopClassSqlThread(this), - TOPSQLTHREAD_SELECT_ARRAYMAP, - QVariant::fromValue(selector)); - unloading(); - TDataResponse response(data.toMap()); - if (response.hasError()) { - alertError(ttr("Load data failed!")); - } else { - QVariantList tableData = response.data().toList(); - if (!groupKey.isEmpty()) { - loadDataByGrouping(tableData, groupKey, seqKey); - } else if (!parentKey.isEmpty() && !childKey.isEmpty()) { - loadDataByParent(tableData, parentKey, childKey, seqKey); - } else { - Q_ASSERT(false); - } - alertOk(ttr("Data loaded")); - } - } else { - TError err; - loading(ttr("Loading")); - QVariantList tableData = TConcurrent::runSync([this, &err](){ - TSqlQueryV2 query(T_SQLCNT_POOL->getSqlDatabase()); - QVariantList v = query.selectArrayMap(mTreeConf.dbSql, QVariantMap()); - if (query.lastError().isValid()) { - err = query.lastError(); - return QVariantList(); - } - return v; - }).toList(); - unloading(); - if (err.isValid()) { - alertError(ttr("Load data failed!"), err.text()); - return; - } - loadTableData(tableData, groupKey, parentKey, seqKey); - alertOk(ttr("Data loaded")); - } -} - -/*! - * \brief æ ‘å½¢æŽ§ä»¶å¯¹è±¡ - */ -TTreeView *TopTemplateClass1A::treeView() const -{ - return mTreeView; -} - -/*! - * \brief æ ¹æ®é…置生æˆçš„æŸ¥è¯¢æ•°æ®åº“çš„å—æ®µ - */ -QStringList TopTemplateClass1A::queryFields() const -{ - return mTreeConf.queryFields; -} - -/*! - * \brief 当å‰é€‰ä¸æ¡ç›®çš„primaryKey - */ -QVariantList TopTemplateClass1A::selectedItems() const -{ - return mSelectedLst; -} - -/*! - * \brief 当å‰é€‰ä¸æ¡ç›®çš„æ‰€æœ‰æ•°æ® - */ -QVariantList TopTemplateClass1A::selectedDataMaps() const -{ - return mTreeView->selectedRowDataMaps(true); -} - -/*! - * \brief å¯¼å…¥æ ‘å½¢ç»“æž„çš„æ•°æ® - * [ - * { - * "name": "", - * "CHILDREN": [ - * { - * "name": "" - * } - * ] - * } - * ] - */ -void TopTemplateClass1A::loadTreeData(const QVariantList &iTreeData, - const QString &iChildKey) -{ - mTreeView->loadTreeData(iTreeData, iChildKey); -} - -/*! - * \brief 导入列表数æ®ï¼Œæ¤æŽ¥å£å·²åºŸå¼ƒ - * \param iGroupKey 分组Key - * \param iParentKey 父结点Key, æ¤å€¼ä¸ºç©ºæ—¶åªæŒ‰iGroupKeyåˆ†ç»„ï¼Œæ ‘å½¢åªæœ‰ä¸€çº§ - * \param iSeqKey åŒçº§ç»“点排åºçš„Key - */ -void TopTemplateClass1A::loadTableData(const QVariantList &iTableData, - const QString &iGroupKey, - const QString &iParentKey, - const QString &iSeqKey) -{ - Q_UNUSED(iSeqKey) - - QVariantList tableData = iTableData; - TopClassHelper::formatTableData(this, &mTreeConf, tableData); - QVariantList data; - if (iParentKey.isEmpty()) { - QVariantMap categoryMap; - for (const auto & i : tableData) { - QVariantMap iMap = i.toMap(); - QString category = iMap.value(iGroupKey).toString(); - QVariantList items = categoryMap.value(category).toList(); - items.append(i); - categoryMap.insert(category, items); - } - QMapIterator<QString, QVariant> iter(categoryMap); - while (iter.hasNext()) { - iter.next(); - QVariantMap item; - item.insert("_category", iter.key()); - item.insert("CHILDREN", iter.value()); - data.append(item); - } - } else { - // æ¤æŽ¥å£å·²åºŸå¼ƒï¼Œä¸æ”¯æŒæ¤åˆ†æ”¯ - Q_ASSERT(false); - } - mTreeView->loadTreeData(data); -} - -/*! - * \brief 导入列表数æ®ï¼Œæ ¹æ® \a iGroupKey è¿›è¡Œåˆ†ç»„ï¼Œæ¤æ ‘å½¢ç»“æž„åªæœ‰ä¸€çº§ - */ -void TopTemplateClass1A::loadDataByGrouping(const QVariantList &iTableData, - const QString &iGroupKey, - const QString &iSeqKey) -{ - Q_UNUSED(iSeqKey) - QVariantList tableData = iTableData; - TopClassHelper::formatTableData(this, &mTreeConf, tableData); - QVariantList data; - QVariantMap categoryMap; - for (const auto & i : tableData) { - QVariantMap iMap = i.toMap(); - QString category = iMap.value(iGroupKey).toString(); - QVariantList items = categoryMap.value(category).toList(); - items.append(i); - categoryMap.insert(category, items); - } - QMapIterator<QString, QVariant> iter(categoryMap); - while (iter.hasNext()) { - iter.next(); - QVariantMap item; - item.insert("_category", iter.key()); - item.insert("CHILDREN", iter.value()); - data.append(item); - } - mTreeView->loadTreeData(data); -} - -/*! - * \brief 导入列表数æ®ï¼Œæ ¹æ® \a iParentKey å’Œ \a iChildKey ç”Ÿæˆæ ‘ï¼Œæ¤æ ‘形结构å¯èƒ½æœ‰å¤šçº§ - */ -void TopTemplateClass1A::loadDataByParent(const QVariantList &iTableData, - const QString &iParentKey, - const QString &iChildKey, - const QString &iSeqKey) -{ - QVariantList tableData = iTableData; - TopClassHelper::formatTableData(this, &mTreeConf, tableData); - mTreeView->loadTreeData(buildTree(tableData, iParentKey, iChildKey, iSeqKey)); -} - -/*! - * \brief 当选ä¸é¡¹å‘ç”Ÿæ”¹å˜æ—¶çš„æ§½å‡½æ•° - */ -void TopTemplateClass1A::onSelectionChanged() -{ - mSelectedLst = mTreeView->selectedPrimaryKeys(); - refreshActionState(); -} - -/*! - * \brief æœç´¢ - */ -void TopTemplateClass1A::onSearch(const QString &iText, const QVariant &iFields) -{ - QRegExp regex(iText); - regex.setPatternSyntax(QRegExp::Wildcard); - regex.setCaseSensitivity(Qt::CaseInsensitive); - auto searchCols = iFields.toStringList(); - if (searchCols.isEmpty()) { - searchCols = mSearchCols; - } - mTreeView->findRows(regex, searchCols); -} - -/*! - * \brief åˆå§‹åŒ–ç•Œé¢ - */ -void TopTemplateClass1A::initUi() -{ - TSplitter *bodySplitter = new TSplitter(this); - setCentralWidget(bodySplitter); - - mBodyWgt = new QWidget(this); - QVBoxLayout *bodyLayout = new QVBoxLayout(mBodyWgt); - bodyLayout->setMargin(0); - bodyLayout->setSpacing(0); - - mTreeView = new TTreeView(this); - mTreeView->setObjectName("mTreeView"); - mTreeView->header()->setStretchLastSection(true); - connect(mTreeView->selectionModel(), SIGNAL(selectionChanged(QItemSelection,QItemSelection)), - this, SLOT(onSelectionChanged())); - QStringList dataKeys = mTreeConf.dataKeys; - dataKeys.append("_category"); - mTreeView->setDataKeyList(dataKeys); - mTreeView->setPrimaryKey(mTreeConf.primaryKey); - mTreeView->setHeaderItem(mTreeConf.horizontalHeaders); - - if (QToolBar *toolbar = qobject_cast<QToolBar*>(uim()->getWidget("MAIN_TOOLBAR"))) { - bodyLayout->addWidget(toolbar, 0); - mSearchEntry = qobject_cast<TSearchEntry *>(uim()->getWidget("MAIN_TOOLBAR/SEARCH_ENTRY")); - if (mSearchEntry != nullptr) { - auto searchLst = TDataParse::headerItem2searchList(mTreeView->headerItem()); - for (auto i : searchLst) { - mSearchCols.push_back(i.toMap().value("name").toString()); - } - mSearchEntry->setOptionList(searchLst); - mSearchEntry->setPlaceholderText(ttr("Search %1")); - connect(mSearchEntry, SIGNAL(search(QString,QVariant)), - this, SLOT(onSearch(QString,QVariant))); - } - } - if (QMenu *tablePopup = qobject_cast<QMenu *>(uim()->getWidget("TREEVIEW_POPUP"))) { - mTreeView->setContextMenu(tablePopup); - } - - bodyLayout->addWidget(mTreeView, 1); - - if (QToolBar *toolbar = qobject_cast<QToolBar*>(uim()->getWidget("BOTTOM_TOOLBAR"))) { - bodyLayout->addWidget(toolbar, 0); - } - - bodySplitter->addWidget(mBodyWgt); - bodySplitter->setStretchFactor(0, 1); -} - -/*! - * \brief æ ¹æ®åˆ—表数æ®ç”Ÿæˆæ ‘å½¢æ•°æ® - */ -QVariantList TopTemplateClass1A::buildTree(const QVariantList &iDataLst, - const QString &iParentKey, - const QString &iChildKey, - const QString &iSeqKey) -{ - if (iDataLst.isEmpty()) { - return QVariantList(); - } - - QVariantList ret; - QVariantList toplevel; - QVariantMap parentDataMap; - QVariantMap tmpDataMap; - - auto sequencePred = [iSeqKey](const QVariant &left, const QVariant &right) ->bool { - return left.toMap().value(iSeqKey).toInt() < right.toMap().value(iSeqKey).toInt(); - }; - std::function<QVariantList(const QVariantMap &)> getChildren; - getChildren = [&getChildren, &parentDataMap, &iChildKey, &sequencePred](const QVariantMap &iRowMap) ->QVariantList { - if (parentDataMap.contains(iRowMap.value(iChildKey).toString())) { - QVariantList childLst; - QVariantList tmp = parentDataMap.value(iRowMap.value(iChildKey).toString()).toList(); - for (const auto & child : tmp) { - QVariantMap childMap = child.toMap(); - QVariantList children = getChildren(childMap); - if (!children.isEmpty()) { - std::sort(children.begin(), children.end(), sequencePred); - childMap.insert("CHILDREN", children); - } - childLst.append(childMap); - } - return childLst; - } else { - return QVariantList(); - } - }; - - for (const auto & i : iDataLst) { - QVariantMap iMap = i.toMap(); - QVariantList childrenList = parentDataMap.value( - iMap.value(iParentKey).toString()).toList(); - childrenList.append(iMap); - parentDataMap.insert(iMap.value(iParentKey).toString(), childrenList); - tmpDataMap.insert(iMap.value(iChildKey).toString(), iMap); - } - - for (const auto & i : iDataLst) { - QVariantMap dataMap = i.toMap(); - QString parentId = dataMap.value(iParentKey).toString(); - if (!tmpDataMap.contains(parentId)) { - toplevel.append(dataMap); - } - } - - for (const auto & i : toplevel) { - QVariantMap iMap = i.toMap(); - QVariantList children = getChildren(iMap); - if (!children.isEmpty()) { - std::sort(children.begin(), children.end(), sequencePred); - iMap.insert("CHILDREN", children); - } - ret.append(iMap); - } - std::sort(ret.begin(), ret.end(), sequencePred); - return ret; -} diff --git a/src/plugin/toptemplateclass1a.h b/src/plugin/toptemplateclass1a.h deleted file mode 100644 index 9b8dd7d911836c53f4a4e5e18764b3ac5bda088f..0000000000000000000000000000000000000000 --- a/src/plugin/toptemplateclass1a.h +++ /dev/null @@ -1,56 +0,0 @@ -#ifndef TEMPLATECLASS1A_H -#define TEMPLATECLASS1A_H - -#include <topcore/topclassabs.h> -#include <topcore/topclasshelper.h> - -class QWidget; -class TTreeView; -class TSearchEntry; - -class TopTemplateClass1A : public TopClassAbs -{ - Q_OBJECT -public: - explicit TopTemplateClass1A(const QString &iModuleName = QString(""), - const QVariantMap &iUrlPars = QVariantMap(), - QWidget *iParent = nullptr); - ~TopTemplateClass1A(); -public slots: - void refresh(); - TTreeView *treeView() const; - QStringList queryFields() const; - QVariantList selectedItems() const; - QVariantList selectedDataMaps() const; - void loadTreeData(const QVariantList &iTreeData, - const QString &iChildKey = QString("CHILDREN")); - Q_DECL_DEPRECATED void loadTableData(const QVariantList &iTableData, - const QString &iGroupKey, - const QString &iParentKey, - const QString &iSeqKey); - void loadDataByGrouping(const QVariantList &iTableData, - const QString &iGroupKey, - const QString &iSeqKey); - void loadDataByParent(const QVariantList &iTableData, - const QString &iParentKey, - const QString &iChildKey, - const QString &iSeqKey); -private slots: - void onSelectionChanged(); - void onSearch(const QString &iText, const QVariant &iFields); -private: - void initUi(); - QVariantList buildTree(const QVariantList &iDataLst, - const QString &iParentKey, - const QString &iChildKey, - const QString &iSeqKey); -private: - QWidget *mBodyWgt = nullptr; - TTreeView *mTreeView = nullptr; - TSearchEntry *mSearchEntry = nullptr; - QStringList mSearchCols; - TopClassTableConf mTreeConf; - QVariantList mSelectedLst; -}; - -#endif // TEMPLATECLASS1A_H diff --git a/src/plugin/toptemplateclass2.cpp b/src/plugin/toptemplateclass2.cpp deleted file mode 100644 index d16547bbe0c28270804d99d3a4e5cf91a58274ff..0000000000000000000000000000000000000000 --- a/src/plugin/toptemplateclass2.cpp +++ /dev/null @@ -1,182 +0,0 @@ -#include "toptemplateclass2.h" -#include <QtWidgets> -#include <tbaseutil/tconcurrent.h> -#include <tdatabaseutil/tsqlqueryv2.h> -#include <tdatabaseutil/tsqlselectorv2.h> -#include <tdatabaseutil/tsqlconnectionpoolv2.h> -#include <topcore/topcore.h> -#include <topcore/topclasshelper.h> -#include <topcore/topclasssqlthread.h> -#include <twidget/tuiloader.h> - -/*! - * \class TopTemplateClass2 - * \inmodule templateclass - * \brief è¡¨å•æ¨¡æ¿ã€‚常用åšè¡¨å•展示。 - */ - -TopTemplateClass2::TopTemplateClass2(const QString &iModuleName, - const QVariantMap &iUrlPars, - QWidget *iParent) - : TopClassAbs(iParent) -{ - initModule(iModuleName, iUrlPars); - QString licenseKey = config("sys_license_key").toString(); - if (!licenseKey.isEmpty()) { - setLicenseKey(licenseKey); - } - QStringList langLst = config("sys_lang_list").toStringList(); - for (const auto &lang : langLst) { - appendLanguage(lang); - } - if (isHookExists("afterModuleInit")) { - callHooks("afterModuleInit"); - } - initUi(); - if (isHookExists("afterViewInit")) { - callHooks("afterViewInit"); - } - QTimer::singleShot(0, this, SLOT(refresh())); -} - -TopTemplateClass2::~TopTemplateClass2() -{ - if (isHookExists("onDestroy")) { - callHooks("onDestroy"); - } -} - -/*! - * \brief 设置表å•,\a iKey 为 该模å—ä¸å¯¹åº”çš„ui.js文件 - */ -void TopTemplateClass2::setUiKey(const QString &iKey) -{ - if (mUiLoader == nullptr) { - return; - } - mUiLoader->setUiStr(ui(iKey).toString()); -} - -/*! - * \brief 设置表å•,\a iUi 为表å•界é¢çš„å—符串 - */ -void TopTemplateClass2::setUiStr(const QString &iUi) -{ - if (mUiLoader == nullptr) { - return; - } - mUiLoader->setUiStr(iUi); -} - -/*! - * \brief åˆ·æ–°æ•°æ® - */ -void TopTemplateClass2::refresh() -{ - QString sql = config("uiloader.data_set.db_sql").toString(); - if (sql.isEmpty()) { - QString tableName = config("uiloader.data_set.db_table_name").toString(); - if (!tableName.isEmpty()) { - TSqlSelectorV2 selector; - selector.setTable(tableName); - selector.setField(TopClassHelper::fetchQueryFieldsFromUi(mUiLoader)); - QVariantMap filterMap = config("uiloader.data_set.db_filter").toMap(); - if (!filterMap.isEmpty()) { - QMapIterator<QString, QVariant> i(filterMap); - while (i.hasNext()) { - i.next(); - selector.addWhere(i.key(), i.value()); - } - } - TError err; - QVariantMap data = runSqlQueryOnThreadSync(TOPSQLTHREAD_SELECT_MAP, QVariant::fromValue(selector), &err).toMap(); - if (err.isValid()) { - alertError(ttr("Load data failed!"), err.text()); - return; - } - mUiLoader->loadValues(data); - } - } else { - TError err; - QVariantMap data = TConcurrent::runSync([this, &err, sql](){ - TSqlQueryV2 query(T_SQLCNT_POOL->getSqlDatabase()); - QVariantMap v = query.selectMap(sql, QVariantMap()); - if (query.lastError().isValid()) { - err = query.lastError(); - return QVariantMap(); - } - return v; - }).toMap(); - if (err.isValid()) { - alertError(ttr("Load data failed!"), err.text()); - return; - } - mUiLoader->loadValues(data); - } -} - -/*! - * \brief 表å•的查询数æ®åº“çš„å—æ®µ - */ -QStringList TopTemplateClass2::queryFields() const -{ - return TopClassHelper::fetchQueryFieldsFromUi(mUiLoader); -} - -/*! - * \brief è¡¨å•æŽ§ä»¶ - */ -TUiLoader *TopTemplateClass2::uiLoader() -{ - return mUiLoader; -} - -/*! - * \brief 表å•当å‰çš„æ•°æ® - */ -QVariant TopTemplateClass2::uiLoaderValues() const -{ - return mUiLoader->getAllValues(true).toVariant(); -} - -/*! - * \brief å½“è¡¨å•æ•°æ®å‘ç”Ÿæ”¹å˜æ—¶çš„æ§½å‡½æ•° - */ -void TopTemplateClass2::onDataChanged() -{ - setDataModified(true); -} - -/*! - * \brief åˆå§‹åŒ–ç•Œé¢ - */ -void TopTemplateClass2::initUi() -{ - QWidget *bodyWgt = new QWidget(this); - setCentralWidget(bodyWgt); - - QVBoxLayout *bodyLayout = new QVBoxLayout(bodyWgt); - bodyLayout->setSpacing(0); - bodyLayout->setMargin(0); - - if (QToolBar *toolbar = qobject_cast<QToolBar*>(uim()->getWidget("MAIN_TOOLBAR"))) { - bodyLayout->addWidget(toolbar, 0); - } - - mUiLoader = new TUiLoader(this); - const QStringList typePlugins = config("uiloader_plugins").toStringList(); - if (typePlugins.size() > 0) { - TopClassHelper::setUiLoaderPluginCallback(mUiLoader,this,typePlugins); - } - connect(mUiLoader, SIGNAL(dataChanged()), this, SLOT(onDataChanged())); - bodyLayout->addWidget(mUiLoader, 1); - - mUiLoader->setScriptEngine(APP->scriptEngine()); - mUiLoader->setSelf(this); - - QString uiStr = config("uiloader.ui_str").toString(); - if (uiStr.isEmpty()) { - uiStr = ui(config("uiloader.ui_key").toString()).toString(); - } - setUiStr(uiStr); -} diff --git a/src/plugin/toptemplateclass2.h b/src/plugin/toptemplateclass2.h deleted file mode 100644 index 30710ea5298360a8692af699f2ce913ee3ae7f12..0000000000000000000000000000000000000000 --- a/src/plugin/toptemplateclass2.h +++ /dev/null @@ -1,31 +0,0 @@ -#ifndef TOPTEMPLATECLASS2_H -#define TOPTEMPLATECLASS2_H - -#include <topcore/topclassabs.h> - -class TUiLoader; - -class TopTemplateClass2 : public TopClassAbs -{ - Q_OBJECT -public: - explicit TopTemplateClass2(const QString &iModuleName = QString(""), - const QVariantMap &iUrlPars = QVariantMap(), - QWidget *iParent = nullptr); - ~TopTemplateClass2(); -public slots: - void setUiKey(const QString &iKey); - void setUiStr(const QString &iUi); - void refresh(); - QStringList queryFields() const; - TUiLoader *uiLoader(); - QVariant uiLoaderValues() const; -private slots: - void onDataChanged(); -private: - void initUi(); -private: - TUiLoader *mUiLoader = nullptr; -}; - -#endif // TOPTEMPLATECLASS2_H diff --git a/src/plugin/toptemplateclass3.h b/src/plugin/toptemplateclass3.h deleted file mode 100644 index 4ab89c2809c4ba748bd7d5e785e2a558cb7a68ba..0000000000000000000000000000000000000000 --- a/src/plugin/toptemplateclass3.h +++ /dev/null @@ -1,65 +0,0 @@ -#ifndef TEMPLATECLASS3_H -#define TEMPLATECLASS3_H - -#include <topcore/topclassabs.h> -#include <topcore/topclasshelper.h> - -class TTableView; -class TUiLoader; -class TSearchEntry; -class TPageTool; -class TSplitter; - -class TopTemplateClass3 : public TopClassAbs -{ - Q_OBJECT -public: - explicit TopTemplateClass3(const QString &iModuleName = QString(""), - const QVariantMap &iUrlPars = QVariantMap(), - QWidget *iParent = nullptr); - ~TopTemplateClass3(); -public slots: - void refresh(bool iResetPage = true); - void refreshDetail(const QString &iUid); - QString detailUid() const; - void setDetailUid(const QString &iUid, bool iForceRefresh = false); - bool isDetailModified() const; - void setIsDetailModified(bool iIsDetailModified); - QVariantList selectedItems() const; - QVariantList selectedDataMaps() const; - void newItem(); - void saveItem(); - void reloadItem(); - void copyItem(); - void deleteItems(const QVariantList &iItems); - TTableView *tableView() const; - TUiLoader *uiLoader() const; -signals: - void isDetailModifiedChanged(bool iIsDetailModified); - void detailUidChanged(const QString &iDetailUid); - void detailSaved(const QString &iUid); - void selectionChanged(); -private slots: - void onPageChanged(); - void onDetailDataChanged(); - void onDetailSaved(const QString &iUid); - void onDetailChanged(bool iIsDetailModified); - void onSelectionChanged(); -private: - void initUi(); -private: - TSplitter *mBodySplitter = nullptr; - QWidget *mBodyWgt = nullptr; - TTableView *mTableView = nullptr; - TSearchEntry *mSearchEntry = nullptr; - TPageTool *mPageTool = nullptr; - TUiLoader *mDetailView = nullptr; - TopClassTableConf mTableConf; - bool mIsDetailModified = false; - QVariantList mSelectedItems; - QString mLastDetailUid; - QString mDetailUid; - QTimer *mRefreshTimer = nullptr; -}; - -#endif // TEMPLATECLASS3_H diff --git a/src/plugin/toptemplateclass4.cpp b/src/plugin/toptemplateclass4.cpp deleted file mode 100644 index 6a376108e378560470929760f5995a06e7057a13..0000000000000000000000000000000000000000 --- a/src/plugin/toptemplateclass4.cpp +++ /dev/null @@ -1,1372 +0,0 @@ -#include "toptemplateclass4.h" -#include <QtWidgets> -#include <tbaseutil/tdataparse.h> -#include <tbaseutil/tdataresponse.h> -#include <tbaseutil/tenumlist.h> -#include <tbaseutil/tfileio.h> -#include <tbaseutil/ttheme.h> -#include <tbaseutil/tresource.h> -#include <tdatabaseutil/tsqlqueryv2.h> -#include <tdatabaseutil/tsqlconnectionpoolv2.h> -#include <topcore/topcore.h> -#include <topcore/topclasssqlthread.h> -#include <topcore/topenummanager.h> -#include <toputil/t.h> -#include <twidget/tsplitter.h> -#include <twidget/ttableview.h> -#include <twidget/tcategorytreeview.h> -#include <twidget/tsearchentry.h> -#include <twidget/tpagetool.h> -#include <twidget/tuiloader.h> -#include <twidget/taccordion.h> -#include <twidget/tadvancedquery.h> -#include <twidget/tmessagebox.h> -#include <twidget/tscrollarea.h> -#include <twidget/ttabwidget.h> -#include <twidget/ttablechooserdialog.h> -#include <twidget/tuiloaderdialog.h> - - - -TopTemplateClass4::TopTemplateClass4(const QString &iModuleName, - const QVariantMap &iUrlPars, - QWidget *iParent) - : TopClassAbs(iParent) -{ - initModule(iModuleName, iUrlPars); - QString licenseKey = config("sys_common").toString(); - if (!licenseKey.isEmpty()) { - setLicenseKey(licenseKey); - } - QStringList langLst = config("lang.conf").toStringList(); - for (const auto &lang : langLst) { - appendLanguage(lang); - } - if (isHookExists("afterModuleInit")) { - callHooks("afterModuleInit"); - } - TopClassHelper::parseTableConf0(this, "view", &mTableConf); - initUi(); - connect(this, SIGNAL(detailSaved(QString)), - this, SLOT(onDetailSaved(QString))); - connect(this, SIGNAL(isDetailModifiedChanged(bool)), - this, SLOT(onDetailChanged(bool))); - connect(this, SIGNAL(detailUidChanged(QString)), - this, SLOT(refreshDetail(QString))); - connect(this, SIGNAL(viewConfChanged()), - this, SLOT(onViewConfChanged())); - if (isHookExists("afterViewInit")) { - callHooks("afterViewInit"); - } - restoreSizeState(); - restoreObjectState(mBodySplitter); - restoreObjectState(mTableView); - - refreshActionState(); - QTimer::singleShot(0, this, SLOT(refresh())); - if (mNaviType == NaviType::CategoryTreeView) { - (qobject_cast<TCategoryTreeView *>(mNaviView))->refresh(); - } - - auto refreshInterval = config("view.timing_refresh_interval", 0).toInt(); - if (refreshInterval > 0) { - mRefreshTimer = new QTimer(this); - connect(mRefreshTimer, &QTimer::timeout, [=]() { - this->callAction("refresh"); - }); - mRefreshTimer->start(refreshInterval * 1000); - } -} - -TopTemplateClass4::~TopTemplateClass4() -{ - saveSizeState(); - saveObjectState(mBodySplitter); - saveObjectState(mTableView); - - if (isHookExists("onDestroy")) { - callHooks("onDestroy"); - } -} - -/*! - * \brief è¿”å›žè¯¦ç»†ä¿¡æ¯æ¨¡å—是å¦å‘ç”Ÿæ•°æ®æ”¹å˜ - */ -bool TopTemplateClass4::isDetailModified() const -{ - return mIsDetailModified; -} - -/*! - * \brief 刷新数æ®ï¼Œ\a iResetPage 表示是å¦è¦é‡ç½®åˆ†é¡µ - */ -void TopTemplateClass4::refresh(bool iResetPage) -{ - TSqlSelectorV2 selector; - if (!mTableConf.dbSql.isEmpty()) { - selector.setTable(QString("(%1) _TEMP_TABLE_").arg(mTableConf.dbSql)); - } else if (!mTableConf.dbTableName.isEmpty()) { - selector.setTable(mTableConf.dbTableName); - } else { - // db_sql为空和db_table_name为空时ä¸ä½œå¤„ç† - return; - } - selector.setField(mTableConf.queryFields); - selector.setFieldFormat(mTableConf.fieldFormatMap); - selector.setReturnRowCount(true); - // æœç´¢åˆ†é¡µ - TopClassHelper::handleSearchPageOnQuery(mSearchEntry, mPageTool, iResetPage, &selector); - // æŽ’åº - TopClassHelper::handleOrderOnQuery(mTableView, &mTableConf, &selector); - // åªèŽ·å–æœ‰æ•ˆæ•°æ® - if (!mTableConf.dbDelFlagKey.isEmpty()) { - selector.addWhere(QString("%1 = 0 OR %1 IS NULL").arg(mTableConf.dbDelFlagKey)); - } - // 过滤项 - if(!mTableConf.dbFilter.isEmpty()) { - selector.addWhere(mTableConf.dbFilter); - } - // 导航æ 过滤项 - if (mNaviType == NaviType::None) { - // do nothing - } else if (mNaviType == NaviType::UiLoader) { - QString whereStr = uiloaderWhere(); - if (!whereStr.isEmpty()) { - selector.addWhere(whereStr); - } - } else if (mNaviType == NaviType::AdvancedQuery) { - Q_ASSERT_X(false, "TopTemplateClass4", "This feature is not yet supported."); - } else if (mNaviType == NaviType::NaviFilter) { - Q_ASSERT_X(false, "TopTemplateClass4", "This feature is not yet supported."); - } else if (mNaviType == NaviType::CategoryTreeViewAndAdvancedQuery) { - if (!mCategoryWhere.isEmpty()) { - selector.addWhere(mCategoryWhere.toSql()); - } - TAdvancedQuery *advancedQuery = findAdvancedQuery(); - if (advancedQuery != nullptr) { - if (!advancedQuery->getSql().isEmpty()) { - selector.addWhere(advancedQuery->getSql()); - } - } - } else { - if (!mCategoryWhere.isEmpty()) { - selector.addWhere(mCategoryWhere.toSql()); - } - } - - t::loading(this); - QVariant data = doThreadWork(new TopClassSqlThread(this), TOPSQLTHREAD_SELECT_ARRAYMAP, QVariant::fromValue(selector)); - unloading(); - TDataResponse response(data.toMap()); - if (response.hasError()) { - alertError(ttr("Load data failed!")); - } else { - if (mPageTool != nullptr) { - mPageTool->setRowCount(response.dataCount(), true); - } - QVariantList tableData = response.data().toList(); - TopClassHelper::formatTableData(this, &mTableConf, tableData); - if (isHookExists("handleTableData")) { - tableData = callHooksQuick("handleTableData", QVariantList() << QVariant(tableData)).toVariant().toList(); - } - mTableView->loadData(tableData); - mTableView->adjustViewSpan(mTableConf.mergeKeys); - mSelectedItems.clear(); - setDetailUid(QString()); - alertOk(ttr("Data loaded")); - } -} - -/*! - * \brief åˆ·æ–°è¯¦ç»†ä¿¡æ¯ - */ -void TopTemplateClass4::refreshDetail(const QString &iUid) -{ - if (iUid.isEmpty()) { - mDetailView->loadValues(QVariantMap(), true); - } else { - TSqlSelectorV2 selector; - if (!mTableConf.dbSql.isEmpty()) { - selector.setTable(QString("(%1) _TEMP_TABLE_").arg(mTableConf.dbSql)); - } else if (!mTableConf.dbTableName.isEmpty()) { - selector.setTable(mTableConf.dbTableName); - } else { - //db_sql为空和db_table_name为空时ä¸ä½œå¤„ç† - return; - } - selector.setField(mTableConf.queryFields); - selector.setWhere(mTableConf.primaryKey, iUid); - selector.setFieldFormat(mTableConf.fieldFormatMap); - TError err; - QVariant data = runSqlQueryOnThreadSync(TOPSQLTHREAD_SELECT_MAP, - QVariant::fromValue(selector), - &err); - if (err.isValid()) { - alertError(ttr("Load data failed!"), err.text()); - return; - } - QVariantMap dataMap = data.toMap(); - mDetailView->loadValues(dataMap, true); - } - alertOk(ttr("Data loaded")); - setIsDetailModified(false); -} - -/*! - * \brief 当å‰çš„详细信æ¯çš„UID - */ -QString TopTemplateClass4::detailUid() const -{ - return mDetailUid; -} - -/*! - * \brief 设置详细信æ¯çš„UID为 \a iUid, - * 如果 \a iForceRefresh 为 true, è¡¨ç¤ºæ— è®ºUIDå‘生改å˜ï¼Œéƒ½å¼ºåˆ¶åˆ·æ–° - */ -void TopTemplateClass4::setDetailUid(const QString &iUid, bool iForceRefresh) -{ - if (iForceRefresh || mDetailUid != iUid) { - mDetailUid = iUid; - emit detailUidChanged(iUid); - } -} - -/*! - * \brief 设置详细信æ¯çš„æ•°æ®æ”¹å˜çŠ¶æ€ - */ -void TopTemplateClass4::setIsDetailModified(bool iIsDetailModified) -{ - if (mIsDetailModified == iIsDetailModified) { - return; - } - mIsDetailModified = iIsDetailModified; - emit isDetailModifiedChanged(iIsDetailModified); -} - -/*! - * \brief 当å‰é€‰ä¸æ¡ç›®çš„primaryKey - */ -QVariantList TopTemplateClass4::selectedItems() const -{ - return mSelectedItems; -} - -/*! - * \brief 当å‰é€‰ä¸æ¡ç›®çš„æ‰€æœ‰æ•°æ® - */ -QVariantList TopTemplateClass4::selectedDataMaps() const -{ - return mTableView->selectedRowDataMaps(true); -} - -/*! - * \brief 新建æ¡ç›® - */ -void TopTemplateClass4::newItem() -{ - mLastDetailUid = mDetailUid; - setDetailUid(QString()); - setIsDetailModified(true); -} - -/*! - * \brief ä¿å˜æ¡ç›® - */ -void TopTemplateClass4::saveItem() -{ - QVariantList errLst = mDetailView->validateAll("COMMIT", true, "ERROR"); - if (!errLst.isEmpty()) { - QStringList errStrLst; - for (QVariant err : errLst) { - errStrLst.append(err.toMap().value("text").toString()); - } - alertError(ttr("Save data failed!"), errStrLst.join("\n")); - return; - } - TSqlInserterV2 inserter; - inserter.setTable(mTableConf.dbTableName); - QVariantMap saveData; - QMap<QString, QString> updatePolicy; - TopClassHelper::fetchSaveFieldsFromUi(mDetailView, saveData, updatePolicy); - inserter.setUniqueField(mTableConf.primaryKey); - inserter.setAutoIncrementField(mTableConf.primaryKey); - saveData.insert(mTableConf.primaryKey, mDetailUid); - // æ·»åŠ è¿‡æ»¤é¡¹æ•°æ® - if (config("view.data_set.db_filter").type() == QVariant::Map) { - QVariantMap dbFilterMap = config("view.data_set.db_filter").toMap(); - QMapIterator<QString, QVariant> i(dbFilterMap); - while (i.hasNext()) { - i.next(); - saveData.insert(i.key(), i.value()); - } - } - inserter.setData(saveData); - QStringList fields = saveData.keys(); - fields.removeOne(mTableConf.primaryKey); - inserter.setField(fields); - // 设置更新ç–ç•¥ - { - QMapIterator<QString, QString> i(updatePolicy); - while (i.hasNext()) { - i.next(); - inserter.setUpdatePolicy(i.key(), i.value()); - } - } - TError err; - QVariant result = runSqlQueryOnThreadSync(TOPSQLTHREAD_REPLACE_ROW, - QVariant::fromValue(inserter), - &err); - if (err.isValid()) { - alertError(ttr("Save data failed!"), err.text()); - return; - } - emit detailSaved(result.toString()); - setIsDetailModified(false); - alertOk(ttr("Data saved")); -} - -/*! - * \brief 釿–°è½½å…¥æ¡ç›® - */ -void TopTemplateClass4::reloadItem() -{ - setDetailUid(mLastDetailUid.isEmpty() ? mDetailUid : mLastDetailUid, true); -} - -/*! - * \brief å¤åˆ¶æ¡ç›® - */ -void TopTemplateClass4::copyItem() -{ - mLastDetailUid = mDetailUid; - mDetailUid = ""; - setIsDetailModified(true); -} - -/*! - * \brief åˆ é™¤æ¡ç›® - */ -void TopTemplateClass4::deleteItems(const QVariantList &iItems) -{ - if (mTableConf.dbDelFlagKey.isEmpty()) { - // 物ç†åˆ 除 - TSqlDeleterV2 deleter; - deleter.setTable(mTableConf.dbTableName); - deleter.setWhere(mTableConf.primaryKey, iItems); - TError err; - runSqlQueryOnThreadSync(TOPSQLTHREAD_DELETE_ROW, - QVariant::fromValue(deleter), - &err); - if (err.isValid()) { - alertError(ttr("Delete data failed!"), err.text()); - } else { - refresh(true); - alertOk(ttr("Data deleted")); - } - } else { - // é€»è¾‘åˆ é™¤ - TSqlUpdaterV2 updater; - updater.setTable(mTableConf.dbTableName); - updater.setWhere(mTableConf.primaryKey, iItems); - updater.setData(QVariantMap {{mTableConf.dbDelFlagKey, 1}}); - TError err; - runSqlQueryOnThreadSync(TOPSQLTHREAD_UPDATE_ROW, - QVariant::fromValue(updater), - &err); - if (err.isValid()) { - alertError(ttr("Delete data failed!"), err.text()); - } else { - refresh(true); - alertOk(ttr("Moved to recycle bin")); - } - } -} - -/*! - * \brief è¡¨æ ¼æŽ§ä»¶å¯¹è±¡ - */ -TTableView *TopTemplateClass4::tableView() const -{ - return mTableView; -} - -/*! - * \brief 详细信æ¯çš„表å•对象 - */ -TUiLoader *TopTemplateClass4::uiLoader() const -{ - return mDetailView; -} - -/*! - * \brief 导航控件 - */ -QWidget *TopTemplateClass4::naviView() const -{ - return mNaviView; -} - -/*! - * \brief 当选ä¸å‘ç”Ÿæ”¹å˜æ—¶çš„æ§½å‡½æ•° - */ -void TopTemplateClass4::onSelectionChanged() -{ - mSelectedItems = mTableView->selectedPrimaryKeys(); - QString curId; - if (!mSelectedItems.isEmpty()) { - curId = mSelectedItems.first().toString(); - } - if (mDetailUid != curId) { - mLastDetailUid = curId; - if (!mIsDetailModified) { - setDetailUid(curId); - } - } - refreshActionState(); -} - -/*! - * \brief 当分页å‘ç”Ÿæ”¹å˜æ—¶çš„æ§½å‡½æ•° - */ -void TopTemplateClass4::onPageChanged() -{ - refresh(false); -} - -/*! - * \brief 当导航æ 过滤选项å‘ç”Ÿæ”¹å˜æ—¶çš„æ§½å‡½æ•° - */ -void TopTemplateClass4::onCategoryViewDataChanged(const QVariantList iDataLst) -{ - mCategoryWhere.clear(); - QString format = config("navi.format", "filter_by_enum").toString(); - if (!iDataLst.isEmpty()) { - if (format.compare("filter_by_enum") == 0) { - QVariantMap cateMap; - for (QVariant item: iDataLst) { - QVariantMap itemMap = item.toMap(); - QString data = itemMap.value("data").toString(); - QString name = itemMap.value("name").toString(); - if (data.isEmpty()) { - continue; - } - cateMap.insertMulti(data,name); - } - for (QString field: cateMap.uniqueKeys()) { - QString dbField = field; - TSqlWhereCompsiteV2 childWhere; - childWhere.setLogic(TSqlWhereCompsiteV2::Logic_Or); - for (QVariant ele: cateMap.values(field)) { - QString value = ele.toString(); - if (mTableConf.fieldFormatMap.contains(dbField)) { - QString fieldValue = mTableConf.fieldFormatMap.value(dbField).toString(); - if (fieldValue.compare("array") == 0) { - QString sqlStr = QString("%1 @> '{%2}' ").arg(dbField).arg(value); - childWhere.append(sqlStr); - } - } else { - childWhere.append(dbField, value); - } - } - mCategoryWhere.append(childWhere); - } - } else if (format.compare("filter_by_sql_where") == 0) { - QVariantMap item = iDataLst.at(0).toMap(); - QString sqlWhere = item.value("data").toString(); - if (!sqlWhere.isEmpty()) { - mCategoryWhere.append(sqlWhere); - } - } - } - refresh(); -} - -/*! - * \brief 当详细信æ¯è¡¨å•æ•°æ®å‘ç”Ÿæ”¹å˜æ—¶çš„æ§½å‡½æ•° - */ -void TopTemplateClass4::onDetailDataChanged() -{ - setIsDetailModified(true); -} - -/*! - * \brief 当详细信æ¯è¡¨å•ä¿å˜æˆåŠŸæ—¶çš„æ§½å‡½æ•° - */ -void TopTemplateClass4::onDetailSaved(const QString &iUid) -{ - refresh(false); - mTableView->selectRow(iUid); - mDetailUid = iUid; -} - -/*! - * \brief 当详细信æ¯è¡¨å•æ•°æ®æ”¹å˜çжæ€å‘生å˜åŒ–时的槽函数 - */ -void TopTemplateClass4::onDetailChanged(bool iIsDetailModified) -{ - mTableView->setEnabled(!iIsDetailModified); - if (iIsDetailModified) { - showMaskFrame(mMgtSplitter); - } else { - hideMaskFrame(); - } - refreshActionState(); -} - -/*! - * \brief 当moduleä¸viewé…ç½®æ”¹å˜æ—¶çš„æ§½å‡½æ•° - */ -void TopTemplateClass4::onViewConfChanged() -{ - TopClassHelper::parseTableConf0(this, "view", &mTableConf); -} - -/** -* \brief 当高级查询界é¢çš„æ·»åŠ æŒ‰é’®è§¦å‘æ—¶çš„æ§½å‡½æ•° -*/ -void TopTemplateClass4::onAddActionTriggered() -{ - TAdvancedQuery *advancedQuery = findAdvancedQuery(); - if (advancedQuery == nullptr) { - return; - } - - TTableChooserDialog *dialog = new TTableChooserDialog(this); - dialog->setTitle(tr("Please select field:")); - dialog->setButtons(QStringList() - << ttr("Ok") + ":Ok:Yes" - << ttr("Cancel") + ":Cancel:Cancel" - << QString("%1:UnselectAll:ResetRole").arg(tr("Clear selection"))); - QVariantList headeritems; - headeritems << QVariant() << TDataParse::stringList2VariantMap( - QStringList() << "name" << "title" << "display" << tr("Field") << "displayRole" << "$title"<<"resizeMode" << "Stretch"); - dialog->setHeaderItem(headeritems); - dialog->setDataKeyList(QStringList() << "title" << "name"); - dialog->setPrimaryKey("name"); - dialog->setSearchKeys(QStringList() << "title"); - dialog->setLeftTableSelectionMode(QAbstractItemView::ExtendedSelection); - dialog->setRightTableSelectionMode(QAbstractItemView::ExtendedSelection); - dialog->tableView()->verticalHeader()->setVisible(false); - dialog->selectedTableView()->verticalHeader()->setVisible(false); - dialog->loadAllData(getAdvancedQueryFieldList()); - dialog->loadSelectedData(advancedQuery->getQueryData().value("value").toList()); - - QVariantList ret = dialog->run(); - if (ret.isEmpty()) { - return; - } - - QStringList conditionLst; - for (QVariant var : ret) { - QString fieldName = var.toMap().value("name").toString(); - conditionLst << fieldName; - } - advancedQuery->clearSearchCondition(); - advancedQuery->addSearchCondition(conditionLst); -} - -/** -* \brief 当高级查询界é¢çš„æ¸…é™¤æŒ‰é’®è§¦å‘æ—¶çš„æ§½å‡½æ•° -*/ -void TopTemplateClass4::onClearActionTriggered() -{ - TAdvancedQuery *advancedQuery = findAdvancedQuery(); - if (advancedQuery == nullptr) { - return; - } - advancedQuery->clearSearchCondition(); -} - -/** -* \brief 当高级查询界é¢çš„å¦å˜ä¸ºæŒ‰é’®è§¦å‘时的槽函数 -*/ -void TopTemplateClass4::onSaveAsActionTriggered() -{ - TAdvancedQuery *advancedQuery = findAdvancedQuery(); - if (advancedQuery == nullptr) { - return; - } - - QString fileName = QFileDialog::getSaveFileName(this, - tr("Save query criteria as file"), - QString(), - QString("*.cond")); - if (fileName.isEmpty()) { - return; - } - - QVariantMap newConditionMap; - newConditionMap.insert("condition", advancedQuery->getQueryData()); - QString conditionStr = TDataParse::variant2JsonStr(newConditionMap); - TFileIo::writeFileString(conditionStr , fileName); -} - -/** -* \brief 当高级查询界é¢çš„æ‰“å¼€æŒ‰é’®è§¦å‘æ—¶çš„æ§½å‡½æ•° -*/ -void TopTemplateClass4::onOpenActtionTriggered() -{ - TAdvancedQuery *advancedQuery = findAdvancedQuery(); - if (advancedQuery == nullptr) { - return; - } - - QString fileName = QFileDialog::getOpenFileName(this, - tr("Open query criteria from file"), - ".", - tr("Condition file(*.cond)")); - if (fileName.isEmpty()) { - return; - } - QString conditionStr = TFileIo::readFileString(fileName); - QVariantMap dataMap = TDataParse::jsonStr2Variant(conditionStr).toMap(); - QVariantMap conditionMap = dataMap.value("condition").toMap(); - advancedQuery->setData(conditionMap); -} - -/** -* \brief 当高级查询界é¢çš„ä¿å˜æŒ‰é’®è§¦å‘时的槽函数 -*/ -void TopTemplateClass4::onSaveAsCommonQueryActionTriggered() -{ - TAdvancedQuery *advancedQuery = findAdvancedQuery(); - if (advancedQuery == nullptr) { - return; - } - - TTableView *commonQueryTable = findCommonQueryTable(); - if (commonQueryTable == nullptr) { - return; - } - - QString uiStr; - uiStr = "function func(self) {" - " return [{" - " name: 'basic_formlayout'," - "type: 'FormLayout'," - "property:{" - "label_alignment: 'Top | Right'," - "horizontal_spacing: 20, vertical_spacing: 10, margin: 20" - "}," - "child: [{" - "name: 'name'," - "type: 'LineEdit'," - "title: '" + tr("Query Name") + "'," - "pack: {" - "label: '" + tr("Query Name") + "'" - "}," - "validate: 'NOTNULL'" - "}]" - "}]}"; - - TUiloaderDialog *dialog = new TUiloaderDialog(this); - dialog->setTitle(tr("Save as a common query")); - dialog->setSelf(this); - dialog->resize(250,100); - dialog->setButtons(QStringList() << QString("%1:Ok:AcceptRole").arg(ttr("Ok")) << QString("%1:Cancel::RejectRole").arg(ttr("Cancel"))); - dialog->setUiStr(uiStr); - - QVariantMap ret = dialog->run(true); - if (ret.isEmpty()) { - return; - } - - // 判æ–name是å¦å·²ç»å˜åœ¨ - QString conditionName = ret.value("name").toString(); - QVariantList conditionList = mAdvancedQueryTableDataMap.value("advance").toList(); - for (QVariant var: conditionList) { - QVariantMap itemMap = var.toMap(); - if (conditionName == itemMap.value("title")) { - TMessageBox::error(this, tr("Save as common condition"), tr("This name already exists!")); - return; - } - } - - // å–æ–°çš„æŸ¥è¯¢æ¡ä»¶ - QVariantMap conditionMap = advancedQuery->getQueryData(); - QVariantMap newConditionMap; - newConditionMap.insert("title", conditionName); - newConditionMap.insert("condition", conditionMap); - conditionList << QVariant(newConditionMap); - - commonQueryTable->loadData(conditionList); - mAdvancedQueryTableDataMap.insert("advance", conditionList); - - // 生æˆjsonæ ¼å¼æ•°æ® - QString newConditionStr = TDataParse::variant2JsonStr(mAdvancedQueryTableDataMap); - TSqlInserterV2 inserter; - inserter.setTable("sys_conf"); - QVariantMap saveMap; - saveMap.insert("data", newConditionStr); - saveMap.insert("path", QStringList() << this->moduleName() << "AdvancedQuery"); - inserter.setData(saveMap); - inserter.setField(saveMap.uniqueKeys()); - inserter.setAutoIncrementField("id"); - inserter.uniqueFieldRef() << "path"; - - QVariant data = doThreadWork(new TopClassSqlThread(this), TOPSQLTHREAD_REPLACE_ROW, QVariant::fromValue(inserter)); - TDataResponse dataRes(data.toMap()); - if (dataRes.hasError()) { - alertError(ttr("Load data failed!"), dataRes.errText()); - return; - } -} - -/** -* \brief 当常用查询界é¢çš„è¡¨æ ¼åŒå‡»æ¡ç›®æ—¶çš„æ§½å‡½æ•° -*/ -void TopTemplateClass4::onCommonQueryTableDoubleClicked(const QModelIndex &index) -{ - TAdvancedQuery *advancedQuery = findAdvancedQuery(); - if (advancedQuery == nullptr) { - return; - } - - TTableView *commonQueryTable = findCommonQueryTable(); - if (commonQueryTable == nullptr) { - return; - } - - TTabWidget *advancedQueryTabWidget = findAdvancedQueryTabWidget(); - if (advancedQueryTabWidget == nullptr) { - return; - } - - advancedQuery->clearSearchCondition(); - TTableModel *tableModel = qobject_cast<TTableModel *>(commonQueryTable->model()); - QVariantMap rowDataMap = tableModel->rowDataMap(index); - QVariantMap conditionMap = rowDataMap.value("condition").toMap(); - advancedQuery->setData(conditionMap); - advancedQueryTabWidget->setCurrentIndex(0); -} - -/** -* \brief 当常用查询界é¢çš„è¡¨æ ¼åˆ é™¤æ¡ç›®æ—¶çš„æ§½å‡½æ•° -*/ -void TopTemplateClass4::onDeleleCommonQueryActtionTriggered() -{ - TTableView *commonQueryTable = findCommonQueryTable(); - if (commonQueryTable == nullptr) { - return; - } - - QVariantMap selectedConditionMap = commonQueryTable->currentRowDataMap().toMap(); - if (selectedConditionMap.isEmpty()) { - return; - } - - QString selectedTitle = selectedConditionMap.value("title").toString(); - QVariantList conditionList = mAdvancedQueryTableDataMap.value("advance").toList();; - QVariantList conditionDataList; - for (QVariant var : conditionList){ - QString title = var.toMap().value("title").toString(); - // å¦‚æžœä¸æ˜¯é€‰ä¸çš„项,表示需è¦ä¿ç•™ - if (title != selectedTitle) { - conditionDataList << QVariant(var.toMap()); - } - } - commonQueryTable->loadData(conditionDataList); - mAdvancedQueryTableDataMap.insert("advance", conditionDataList); - - //生æˆjsonæ ¼å¼æ•°æ® - QString newConditionStr = TDataParse::variant2JsonStr(mAdvancedQueryTableDataMap); - TSqlInserterV2 inserter; - inserter.setTable("sys_conf"); - QVariantMap saveMap; - saveMap.insert("data", newConditionStr); - saveMap.insert("path", QStringList() << this->moduleName() << "AdvancedQuery"); - inserter.setData(saveMap); - inserter.setField(saveMap.uniqueKeys()); - inserter.setAutoIncrementField("id"); - inserter.uniqueFieldRef() << "path"; - QVariant data = doThreadWork(new TopClassSqlThread(this), TOPSQLTHREAD_REPLACE_ROW, QVariant::fromValue(inserter)); - TDataResponse dataRes(data.toMap()); - if (dataRes.hasError()) { - alertError(ttr("Load data failed!"), dataRes.errText()); - return; - } -} - -/*! - * \brief åˆå§‹åŒ–ç•Œé¢ - */ -void TopTemplateClass4::initUi() -{ - mBodySplitter = new TSplitter(this); - mBodySplitter->setObjectName("mBodySplitter"); - setCentralWidget(mBodySplitter); - mMgtSplitter = new TSplitter(this); - mBodySplitter->addWidget(mMgtSplitter); - - mBodyWgt = new QWidget(this); - QVBoxLayout *bodyLayout = new QVBoxLayout(mBodyWgt); - bodyLayout->setMargin(0); - bodyLayout->setSpacing(0); - mMgtSplitter->addWidget(mBodyWgt); - initNaviView(); - - mTableView = new TTableView(this); - // æ¤ObjectNameåœ¨å…¶ä»–é€»è¾‘ä¸æ˜¯æœ‰æ„ä¹‰çš„ï¼Œè¯·å‹¿åˆ é™¤ - mTableView->setObjectName("__view__"); - mTableView->setHeaderPopupEnabled(true); - connect(mTableView->horizontalHeader(), SIGNAL(sortIndicatorChanged(int,Qt::SortOrder)), - this, SLOT(refresh())); - connect(mTableView->selectionModel(), SIGNAL(selectionChanged(QItemSelection,QItemSelection)), - this, SLOT(onSelectionChanged())); - connect(mTableView->selectionModel(), SIGNAL(selectionChanged(QItemSelection,QItemSelection)), - this, SIGNAL(selectionChanged())); - mTableView->setDataKeyList(mTableConf.dataKeys); - mTableView->setPrimaryKey(mTableConf.primaryKey); - QVariantList headerItems = mTableConf.horizontalHeaders; - headerItems.prepend(QVariant()); - mTableView->setHeaderItem(headerItems); - - if (QToolBar *toolbar = qobject_cast<QToolBar*>(uim()->getWidget("MAIN_TOOLBAR"))) { - bodyLayout->addWidget(toolbar, 0); - mSearchEntry = qobject_cast<TSearchEntry *>(uim()->getWidget("MAIN_TOOLBAR/SEARCH_ENTRY")); - if (mSearchEntry != nullptr) { - connect(mSearchEntry, SIGNAL(search(QString,QVariant)), this, SLOT(refresh())); - mSearchEntry->setOptionList(TDataParse::headerItem2searchList(mTableView->headerItem())); - mSearchEntry->setPlaceholderText(ttr("Search %1")); - } - } - if (QMenu *tablePopup = qobject_cast<QMenu *>(uim()->getWidget("TABLEVIEW_POPUP"))) { - mTableView->setContextMenu(tablePopup); - } - - bodyLayout->addWidget(mTableView, 1); - - if (QToolBar *toolbar = qobject_cast<QToolBar*>(uim()->getWidget("BOTTOM_TOOLBAR"))) { - bodyLayout->addWidget(toolbar, 0); - mPageTool = qobject_cast<TPageTool *>(uim()->getWidget("BOTTOM_TOOLBAR/PAGE_TOOL")); - if (mPageTool != nullptr) { - mPageTool->setPageSizeVisible(true); - connect(mPageTool, SIGNAL(pageChanged(int,int)), this, SLOT(onPageChanged())); - } - } - - QWidget *detailWgt = new QWidget(this); - QVBoxLayout *detailLayout = new QVBoxLayout(detailWgt); - detailLayout->setSpacing(0); - detailLayout->setMargin(0); - - if (QToolBar *toolbar = qobject_cast<QToolBar*>(uim()->getWidget("DETAIL_TOOLBAR"))) { - detailLayout->addWidget(toolbar, 0); - } - mDetailView = new TUiLoader(this); - // æ¤ObjectNameåœ¨å…¶ä»–é€»è¾‘ä¸æ˜¯æœ‰æ„ä¹‰çš„ï¼Œè¯·å‹¿åˆ é™¤ - mDetailView->setObjectName("__detail__"); - const QStringList typePlugins = config("uiloader_plugins").toStringList(); - if (typePlugins.size() > 0) { - TopClassHelper::setUiLoaderPluginCallback(mDetailView,this,typePlugins); - } - connect(mDetailView, SIGNAL(dataChanged()), this, SLOT(onDetailDataChanged())); - mDetailView->setProperty("SS_BG", "PANEL"); - mDetailView->setSelf(this); - mDetailView->setScriptEngine(APP->scriptEngine()); - mDetailView->setUiStr(ui("detail").toString()); - detailLayout->addWidget(mDetailView); - - if (!ui("detail").isNull()) { - mBodySplitter->addWidget(detailWgt); - mBodySplitter->setStretchFactor(0, 1); - mBodySplitter->setSizes(QList<int>{1, config("detail.perfect_width", 600).toInt()}); - } else { - detailWgt->setVisible(false); - } -} - -/*! - * \brief åˆå§‹åŒ–导航æ - */ -void TopTemplateClass4::initNaviView() -{ - mNaviType = str2NaviType(config("navi.__type__", "CategoryTreeView").toString()); - if (mNaviType == NaviType::None) { - return; - } - - TAccordion *accordion = new TAccordion(this); - // æ¤ObjectNameåœ¨å…¶ä»–é€»è¾‘ä¸æ˜¯æœ‰æ„ä¹‰çš„ï¼Œè¯·å‹¿åˆ é™¤ - accordion->setObjectName("__navi__"); - accordion->setProperty("SS_BG","NAVI"); - accordion->setMinimumWidth(TTHEME_DP(config("navi.min_width", 150).toInt())); - accordion->setMaximumWidth(TTHEME_DP(config("navi.max_width", 300).toInt())); - accordion->setAccordionLocation(TAccordion::AccordionLocation::Left); - QVBoxLayout *naviLayout = new QVBoxLayout(accordion); - naviLayout->setMargin(0); - naviLayout->setSpacing(0); - QLabel *naviLabel = new QLabel(tr("Navigation")); - naviLabel->setProperty("SS_TYPE", "SUBHEADER"); - naviLayout->addWidget(naviLabel,0); - naviLayout->addSpacing(TTHEME_DP(4)); - accordion->expandButton()->setFixedHeight(TTHEME_DP(40)); - accordion->expandButton()->setToolTip(tr("Show Navigation")); - accordion->collapseButton()->setToolTip(tr("Hide Navigation")); - accordion->setIsExpanded(config("navi.is_expanded", false).toBool()); - mMgtSplitter->insertWidget(0,accordion); - - if (mNaviType == NaviType::UiLoader) { - mNaviView = new TUiLoader(this); - TUiLoader *filterUi = qobject_cast<TUiLoader*>(mNaviView); - filterUi->setSelf(this); - filterUi->setScriptEngine(APP->scriptEngine()); - filterUi->setUiStr(ui("navi").toString()); - - QFrame *naviWgt = new QFrame(this); - QVBoxLayout *leftLayout = new QVBoxLayout(naviWgt); - leftLayout->addWidget(mNaviView); - QHBoxLayout *leftBtnsLayout = new QHBoxLayout(); - leftLayout->addLayout(leftBtnsLayout); - QPushButton *resetBtn = new QPushButton(this); - connect(resetBtn, SIGNAL(clicked(bool)), filterUi, SLOT(clearValues())); - leftBtnsLayout->addWidget(resetBtn); - resetBtn->setText(tr("Reset")); - resetBtn->setIcon(TRES->icon("rotate-right")); - QPushButton *filterBtn = new QPushButton(this); - connect(filterBtn, SIGNAL(clicked(bool)), this, SLOT(refresh())); - leftBtnsLayout->addWidget(filterBtn); - filterBtn->setText(tr("Filter")); - filterBtn->setIcon(TRES->icon("filter")); - leftLayout->addStretch(1); - naviLayout->addWidget(naviWgt); - } else if (mNaviType == NaviType::AdvancedQuery) { - Q_ASSERT_X(false, "TopTemplateClass4", "This feature is not yet supported."); - } else if (mNaviType == NaviType::NaviFilter) { - Q_ASSERT_X(false, "TopTemplateClass4", "This feature is not yet supported."); - } else if (mNaviType == NaviType::CategoryTreeViewAndAdvancedQuery) { - // tab1-CategoryTreeView - TCategoryTreeView *categoryTreeView = new TCategoryTreeView(this); - categoryTreeView->setStyleSheet("TCategoryTreeView{border:NONE;background-color:transparent}"); - QVariantList rootChildList = parseCategoryConfig(); - if (rootChildList.isEmpty()) { - mNaviView->setVisible(false); - return; - } - categoryTreeView->setItemList(rootChildList); - categoryTreeView->setCheckable(config("navi.is_checkable").toBool()); - connect(categoryTreeView, SIGNAL(selectionChanged(QVariantList)), - this, SLOT(onCategoryViewDataChanged(QVariantList))); - - // tab2-tab1-ToolBar - QToolBar *toolbar = new QToolBar(this); - toolbar->setToolButtonStyle(Qt::ToolButtonTextBesideIcon); - toolbar->setProperty("SS_SIZE", "SMALL"); - toolbar->setMovable(false); - - QAction *queryAction = toolbar->addAction(APP->getResIcon("search"), tr("Query")); - connect(queryAction, SIGNAL(triggered()), this, SLOT(refresh())); - toolbar->addSeparator(); - - QAction* addAction = toolbar->addAction(APP->getResIcon("addto-circle-o"), tr("Add")); - addAction->setToolTip(tr("Add query criteria")); - connect(addAction, SIGNAL(triggered()), this, SLOT(onAddActionTriggered())); - - QAction* clearAction = toolbar->addAction(APP->getResIcon("eraser"), tr("Clear")); - clearAction->setToolTip(tr("Clear all query criteria")); - connect(clearAction, SIGNAL(triggered()), this, SLOT(onClearActionTriggered())); - - QAction* saveAsAction = toolbar->addAction(APP->getResIcon("save"), tr("Save As")); - saveAsAction->setToolTip(tr("Save query criteria as file")); - connect(saveAsAction, SIGNAL(triggered()), this, SLOT(onSaveAsActionTriggered())); - - QAction* openActtion = toolbar->addAction(APP->getResIcon("folder-open-o"), tr("Open")); - openActtion->setToolTip(tr("Open query criteria from file")); - connect(openActtion, SIGNAL(triggered()), this, SLOT(onOpenActtionTriggered())); - - QAction* saveAsCommonQueryAction = toolbar->addAction(APP->getResIcon("save-as"), tr("Save")); - saveAsCommonQueryAction->setToolTip(tr("Save as a common query")); - connect(saveAsCommonQueryAction, SIGNAL(triggered()), this, SLOT(onSaveAsCommonQueryActionTriggered())); - - // tab2-tab1-AdvancedQuery - TAdvancedQuery *advancedQuery = new TAdvancedQuery(this); - advancedQuery->setObjectName("AdvancedQuery"); - initAdvanceCfgMap(); - advancedQuery->setItemList(mAdvancedQueryCfgMap.value("advanced_items").toList()); - advancedQuery->setData(getDefaultQueryDataFromCfgMap()); - - TScrollArea *scrollArea = new TScrollArea(this); - scrollArea->setWidgetResizable(true); - scrollArea->setWidget(advancedQuery); - - // tab2-tab1 - QMainWindow *mainWindow = new QMainWindow(this); - mainWindow->addToolBar(toolbar); - mainWindow->setCentralWidget(scrollArea); - - // tab2-tab2-TableView - TTableView *commonQueryTable = new TTableView(this); - commonQueryTable->setObjectName("CommonQueryTable"); - commonQueryTable->setShowGrid(false); - commonQueryTable->setSelectionMode(QAbstractItemView::ExtendedSelection); - commonQueryTable->verticalHeader()->setVisible(false); - QVariantList headerItem; - headerItem << QVariant() << TDataParse::variantList2Map( - QVariantList() <<"name" << "title" << "display" << tr("Query Name") << "resizeMode" << "Stretch" << "displayRole" << "$title"); - commonQueryTable->setHeaderItem(headerItem); - commonQueryTable->setDataKeyList(QStringList() << "title" << "condition"); - commonQueryTable->setPrimaryKey("condition"); - connect(commonQueryTable, SIGNAL(doubleClicked(const QModelIndex &)), this, SLOT(onCommonQueryTableDoubleClicked(const QModelIndex &))); - - QAction *deleleCommonQueryActtion = new QAction(APP->getResIcon("remove"), tr("Delete query"), this); - connect(deleleCommonQueryActtion, SIGNAL(triggered()), this, SLOT(onDeleleCommonQueryActtionTriggered())); - QMenu *contextMenu = new QMenu(this); - contextMenu->addAction(deleleCommonQueryActtion); - commonQueryTable->setContextMenu(contextMenu); - - // åˆ·æ–°å¸¸ç”¨æŸ¥è¯¢è¡¨æ ¼æ•°æ® - initCommonQueryMap(); - commonQueryTable->loadData(mAdvancedQueryTableDataMap.value("advance").toList()); - - // 高级查询Tab - TTabWidget *advancedQueryTabWidget = new TTabWidget(this); - advancedQueryTabWidget->setObjectName("AdvancedQueryTabWidget"); - advancedQueryTabWidget->addTab(mainWindow, tr("Advanced Query")); - advancedQueryTabWidget->addTab(commonQueryTable, tr("Common Query")); - - // 导航Tab - mNaviView = new TTabWidget(this); - TTabWidget *tabWidget = qobject_cast<TTabWidget *>(mNaviView); - tabWidget->addTab(categoryTreeView, tr("Category")); - tabWidget->addTab(advancedQueryTabWidget, tr("Advanced Query")); - naviLayout->addWidget(mNaviView); - } else { - mNaviView = new TCategoryTreeView(this); - mNaviView->setStyleSheet("TCategoryTreeView{border:NONE;background-color:transparent}"); - QVariantList rootChildList = parseCategoryConfig(); - if (rootChildList.isEmpty()) { - mNaviView->setVisible(false); - return; - } - TCategoryTreeView *categoryTreeView = qobject_cast<TCategoryTreeView *>(mNaviView); - categoryTreeView->setItemList(rootChildList); - categoryTreeView->setCheckable(config("navi.is_checkable").toBool()); - connect(categoryTreeView, SIGNAL(selectionChanged(QVariantList)), - this, SLOT(onCategoryViewDataChanged(QVariantList))); - naviLayout->addWidget(mNaviView); - } -} - -/** -* \brief åˆå§‹åŒ–高级查询é…ç½®æ•°æ® -* mAdvancedQueryCfgMap结构如下: -* \code - advance: { - "advanced_items" : [ - {"name" : "attr_data.machine_code", "title" : "Machine Code" , "widgetType" : "LineEdit" , "wgt_prop" : "" , "optionList" : []}, - {"name" : "attr_data.machine_name", "title" : "Machine Name" , "widgetType" : "LineEdit" , "wgt_prop" : "" , "optionList" : []}, - {"name" : "title", "title" : "Title" , "widgetType" : "LineEdit" , "wgt_prop" : "" , "optionList" : []}, - {"name" : "class", "title" : "Class" , "widgetType" : "ComboBox" , "wgt_prop" : "" , "optionList" : "enum(tpm-machine-maintenance-plan-class)"} - ], - "file_suffix": ".conf" - "condition" :{ - "condition": "1 and 2", - "value": [ - { - "ignoreEmpty": false, - "name": "attr_data.machine_code", - "operator": "LIKE", - "title": "Machine Code", - "valid": true, - "value1": "00" - }, - { - "ignoreEmpty": false, - "name": "attr_data.machine_name", - "operator": "LIKE", - "title": "Machine Name", - "valid": true, - "value1": "4" - } - ] - } - } -* \endcode -*/ -void TopTemplateClass4::initAdvanceCfgMap() -{ - mAdvancedQueryCfgMap = config("advance").toMap(); - QVariantList queryItems = mAdvancedQueryCfgMap.value("advanced_items").toList(); - QVariantList newQueryItems; - for (QVariant var : queryItems) { - QVariantMap m = var.toMap(); - // 翻译title - m.insert("title", ttr(m.value("title").toString())); - // è½¬æ¢æžšä¸¾ - QVariantList optionList; - QRegExp regExp("enum(.*)"); - if ((m.value("optionList").type() == QVariant::String) && (regExp.indexIn(m.value("optionList").toString()) != -1)) { - if (regExp.capturedTexts().count() > 1) { - optionList = TOPENM->enumList(regExp.capturedTexts().value(1).remove("(").remove(")"))->toComboList(); - m.insert("optionList", optionList); - } - } - newQueryItems << m; - } - mAdvancedQueryCfgMap.insert("advanced_items", newQueryItems); -} - -/** -* \brief 获å–高级查询控件默认的查询æ¡ä»¶ -*/ -QVariantMap TopTemplateClass4::getDefaultQueryDataFromCfgMap() -{ - QVariantMap conditionMap = config("advance").toMap().value("condition").toMap(); - QVariantList valueList = conditionMap.value("value").toList(); - for (QVariant &var: valueList) { - QVariantMap m = var.toMap(); - m.insert("title", ttr(m.value("title").toString())); - var = m; - } - conditionMap.insert("value", valueList); - return conditionMap; -} - -/** -* \brief 从高级查询é…ç½®ä¸èŽ·å–æœªä½¿ç”¨æ¡ç›®çš„nameå’Œtextï¼Œæ·»åŠ æ¡ç›®æ—¶ä½¿ç”¨ -*/ -QVariantList TopTemplateClass4::getAdvancedQueryFieldList() -{ - TAdvancedQuery *advancedQuery = findAdvancedQuery(); - if (advancedQuery == nullptr) { - return QVariantList(); - } - - QVariantList selectedFieldDataLst = advancedQuery->getQueryData().value("value").toList(); - QStringList selectedFieldLst; - for (QVariant val : selectedFieldDataLst){ - selectedFieldLst.append(val.toMap().value("name").toString()); - } - - QVariantList queryItems = mAdvancedQueryCfgMap.value("advanced_items").toList(); - QVariantList fieldList; - for (QVariant var : queryItems) { - QVariantMap m = var.toMap(); - QVariantMap itemMap; - if(!selectedFieldLst.contains(m.value("name").toString())) { - itemMap.insert("name", m.value("name").toString()); - itemMap.insert("title", ttr(m.value("title").toString())); - fieldList << QVariant(itemMap); - } - } - return fieldList; -} - -/** -* \brief 从sys_conf表查找出已ä¿å˜çš„å¸¸ç”¨æŸ¥è¯¢æ•°æ® -* æ•°æ®ç»“构如下: -* \code -{ - "advance": [ - { - "condition": { - "condition": "1 and 2", - "value": [ - { - "ignoreEmpty": false, - "name": "attr_data.machine_code", - "operator": "LIKE", - "title": "设备编å·", - "valid": true, - "value1": "00" - }, - { - "ignoreEmpty": false, - "name": "attr_data.machine_name", - "operator": "LIKE", - "title": "设备åç§°", - "valid": true, - "value1": "4" - } - ] - }, - "title": "1" - } - ] -} -* \endcode -*/ -void TopTemplateClass4::initCommonQueryMap() -{ - TSqlSelectorV2 selector; - selector.setTable("sys_conf"); - selector.setField(QStringList() << "data"); - selector.setWhere("path", QStringList() << this->moduleName() << "AdvancedQuery", "@>"); - TError err; - QVariant data = runSqlQueryOnThreadSync(TOPSQLTHREAD_SELECT_MAP, - QVariant::fromValue(selector), - &err); - if (err.isValid()) { - alertError(ttr("Load data failed!"), err.text()); - return; - } - mAdvancedQueryTableDataMap = TDataParse::jsonStr2Variant(data.toMap().value("data").toString()).toMap(); -} - -/** -* \brief æ ¹æ®objname从导航æ 䏿‰¾åˆ°é«˜çº§æŸ¥è¯¢æŽ§ä»¶ -*/ -TAdvancedQuery *TopTemplateClass4::findAdvancedQuery() -{ - return mNaviView->findChild<TAdvancedQuery *>("AdvancedQuery"); -} - -/** -* \brief æ ¹æ®objname从导航æ 䏿‰¾åˆ°å¸¸ç”¨æŸ¥è¯¢tableView控件 -*/ -TTableView *TopTemplateClass4::findCommonQueryTable() -{ - return mNaviView->findChild<TTableView *>("CommonQueryTable"); -} - -/** -* \brief æ ¹æ®objname从导航æ 䏿‰¾åˆ°é«˜çº§æŸ¥è¯¢TabWidget控件 -*/ -TTabWidget *TopTemplateClass4::findAdvancedQueryTabWidget() -{ - return mNaviView->findChild<TTabWidget *>("AdvancedQueryTabWidget"); -} - -/*! - * \brief è§£æžå¯¼èˆªæ é…ç½® - */ -QVariantList TopTemplateClass4::parseCategoryConfig() -{ - QVariantList categoryLst; - - QVariantList categoryConfig = config("navi.categories").toList(); - QString format = config("navi.format", "filter_by_enum").toString(); - if (format.compare("filter_by_enum") == 0) { - for(const QVariant &item: categoryConfig) { - QVariantMap itemMap = item.toMap(); - QString itemName = itemMap.value("name").toString(); - QVariantList childrenLst = itemMap.value("children").toList(); - QString enumCfg = itemMap.value("enum_children").toString(); - QStringList enumCheckedLst = itemMap.value("enum_checked").toStringList(); - QStringList enumInvisibleLst = itemMap.value("enum_invisible").toStringList(); - if (itemMap.contains("visible")) { - itemMap.insert("VISIBLE", itemMap.take("visible")); - } - if (itemMap.contains("expand")) { - itemMap.insert("EXPAND", itemMap.take("expand")); - } - TSqlWhereCompsiteV2 childWhere; - childWhere.setLogic(TSqlWhereCompsiteV2::Logic_Or); - QVariantList type = TOPENM->enumList(enumCfg)->toComboList(); - for (const QVariant &item: type) { - QVariantMap enumMap = item.toMap(); - QString enumName = enumMap.value("name").toString(); - QVariantMap childMap; - childMap.insert("name",enumName); - childMap.insert("text",ttr(enumMap.value("text").toString())); - childMap.insert("icon",enumMap.value("icon")); - childMap.insert("data", itemName); - if(enumCheckedLst.contains(enumName)) { - childMap.insert("checked",1); - } else { - childMap.insert("checked",0); - } - if (enumInvisibleLst.contains(enumName)) { - childMap.insert("VISIBLE", 0); - } else { - childMap.insert("VISIBLE",1); - } - childrenLst.append(childMap); - } - int checkedChildLen = 0; - for (QVariant &item : childrenLst) { - QVariantMap itemMap = item.toMap(); - QString name = itemMap.value("name").toString(); - if(itemMap.value("checked").toInt() == 1) { - childWhere.append(itemName, name); - checkedChildLen++; - } - item = itemMap; - } - if (checkedChildLen == childrenLst.length()) { - itemMap.insert("checked", 1); - } else { - itemMap.insert("checked", 0); - } - mCategoryWhere.append(childWhere); - - itemMap.remove("children"); - itemMap.remove("enum_children"); - itemMap.remove("enum_checked"); - itemMap.remove("enum_invisible"); - itemMap.insert("text",ttr(itemMap.value("text").toString())); - itemMap.insert("CHILDREN",childrenLst); - - categoryLst.append(itemMap); - } - } else if (format.compare("filter_by_sql_where") == 0) { - return categoryConfig; - } - return categoryLst; -} - -TopTemplateClass4::NaviType TopTemplateClass4::str2NaviType(const QString &iType) -{ - const QString type = iType.toUpper(); - if (type == "UILOADER") { - return NaviType::UiLoader; - } else if (type == "ADVANCEDQUERY") { - return NaviType::AdvancedQuery; - } else if (type == "NAVIFILTER") { - return NaviType::NaviFilter; - } else if (type == "CATEGORYTREEVIEWANDADVANCEDQUERY") { - return NaviType::CategoryTreeViewAndAdvancedQuery; - } else if (type == "NONE") { - return NaviType::None; - } else { - return NaviType::CategoryTreeView; - } -} - -QString TopTemplateClass4::uiloaderWhere() const -{ - TUiLoader *filterUi = qobject_cast<TUiLoader*>(mNaviView); - if (filterUi == nullptr) { - return QString(); - } - - auto filterDataMap = filterUi->getAllValues().toVariant().toMap(); - - QString searchSql; - QMapIterator<QString, QVariant> iter(filterDataMap); - while (iter.hasNext()) { - iter.next(); - QString key = iter.key(); - QString value = iter.value().toString(); - if (value.isEmpty()) { - continue; - } - auto obj = filterUi->getObject(key); - if (obj != nullptr) { - QVariantMap userData = obj->property("tui_user_data").toMap(); - if (userData.contains("field_name")) { - key = userData.value("field_name").toString(); - } - QString operatorStr = "="; - if (userData.contains("operator")) { - operatorStr = userData.value("operator").toString(); - } - if (operatorStr.compare("like", Qt::CaseInsensitive) == 0) { - value = QString("'%%1%'").arg(value); - } else if (operatorStr.compare("in", Qt::CaseInsensitive) == 0) { - value = QString("(%1)").arg(value); - } else { - if (iter.value().type() == QVariant::String) { - value = QString("'%1'").arg(value); - } - } - QString searchStr = QString("%1 %2 %3").arg(key).arg(operatorStr).arg(value); - if (!searchSql.isEmpty()) { - searchSql.append(" and "); - } - searchSql.append(searchStr); - } - } - return searchSql; -} diff --git a/src/plugin/toptemplateclass4.h b/src/plugin/toptemplateclass4.h deleted file mode 100644 index 34f4c36cd33147bcb1f745c507f8bac8089f0c52..0000000000000000000000000000000000000000 --- a/src/plugin/toptemplateclass4.h +++ /dev/null @@ -1,109 +0,0 @@ -#ifndef TEMPLATECLASS4_H -#define TEMPLATECLASS4_H - -#include <topcore/topclassabs.h> -#include <topcore/topclasshelper.h> -#include <tdatabaseutil/tsqlselectorv2.h> - -class TTableView; -class TSplitter; -class TUiLoader; -class TSearchEntry; -class TPageTool; -class TAdvancedQuery; -class TTabWidget; - -class TopTemplateClass4 : public TopClassAbs -{ - Q_OBJECT -public: - explicit TopTemplateClass4(const QString &iModuleName = QString(""), - const QVariantMap &iUrlPars = QVariantMap(), - QWidget *iParent = nullptr); - ~TopTemplateClass4(); - - enum class NaviType { - None, - CategoryTreeView, - UiLoader, - AdvancedQuery, - NaviFilter, - CategoryTreeViewAndAdvancedQuery - }; - -public slots: - void refresh(bool iResetPage = true); - void refreshDetail(const QString &iUid); - QString detailUid() const; - void setDetailUid(const QString &iUid, bool iForceRefresh = false); - bool isDetailModified() const; - void setIsDetailModified(bool iIsDetailModified); - QVariantList selectedItems() const; - QVariantList selectedDataMaps() const; - void newItem(); - void saveItem(); - void reloadItem(); - void copyItem(); - void deleteItems(const QVariantList &iItems); - TTableView *tableView() const; - TUiLoader *uiLoader() const; - QWidget *naviView() const; -signals: - void isDetailModifiedChanged(bool iIsDetailModified); - void detailUidChanged(const QString &iDetailUid); - void detailSaved(const QString &iUid); - void selectionChanged(); - void viewConfChanged(); -private slots: - void onSelectionChanged(); - void onPageChanged(); - void onCategoryViewDataChanged(const QVariantList iDataLst); - void onDetailDataChanged(); - void onDetailSaved(const QString &iUid); - void onDetailChanged(bool iIsDetailModified); - void onViewConfChanged(); - void onAddActionTriggered(); - void onClearActionTriggered(); - void onSaveAsActionTriggered(); - void onOpenActtionTriggered(); - void onSaveAsCommonQueryActionTriggered(); - void onCommonQueryTableDoubleClicked(const QModelIndex &index); - void onDeleleCommonQueryActtionTriggered(); -private: - void initUi(); - void initNaviView(); - void initAdvanceCfgMap(); - QVariantMap getDefaultQueryDataFromCfgMap(); - QVariantList getAdvancedQueryFieldList(); - void initCommonQueryMap(); - TAdvancedQuery *findAdvancedQuery(); - TTableView *findCommonQueryTable(); - TTabWidget *findAdvancedQueryTabWidget(); - QVariantList parseCategoryConfig(); - NaviType str2NaviType(const QString &iType); - QString uiloaderWhere() const; -private: - TSplitter *mBodySplitter = nullptr; - QWidget *mBodyWgt = nullptr; - TSplitter *mMgtSplitter = nullptr; - TTableView *mTableView = nullptr; - TSearchEntry *mSearchEntry = nullptr; - TPageTool *mPageTool = nullptr; - TUiLoader *mDetailView = nullptr; - - NaviType mNaviType = NaviType::CategoryTreeView; - QWidget *mNaviView = nullptr; - TSqlWhereCompsiteV2 mCategoryWhere; - QVariantMap mAdvancedQueryCfgMap; - QVariantMap mAdvancedQueryTableDataMap; - QString mAdvancedQueryConditionFileSuffix; - - TopClassTableConf mTableConf; - bool mIsDetailModified = false; - QVariantList mSelectedItems; - QString mLastDetailUid; - QString mDetailUid; - QTimer *mRefreshTimer = nullptr; -}; - -#endif // TEMPLATECLASS4_H diff --git a/src/plugin/toptemplateclass5.cpp b/src/plugin/toptemplateclass5.cpp deleted file mode 100644 index 5dc4c43716fc2246c895f34bb5307b569d9136ef..0000000000000000000000000000000000000000 --- a/src/plugin/toptemplateclass5.cpp +++ /dev/null @@ -1,586 +0,0 @@ -#include "toptemplateclass5.h" -#include <QtWidgets> -#include <tbaseutil/tdataparse.h> -#include <tbaseutil/tdataresponse.h> -#include <tbaseutil/tenumlist.h> -#include <tbaseutil/ttheme.h> -#include <tdatabaseutil/tsqlqueryv2.h> -#include <tdatabaseutil/tsqlselectorv2.h> -#include <tdatabaseutil/tsqlconnectionpoolv2.h> -#include <topcore/topcore.h> -#include <topcore/topclasssqlthread.h> -#include <topcore/topenummanager.h> -#include <twidget/tsplitter.h> -#include <twidget/ttableview.h> -#include <twidget/tsearchentry.h> -#include <twidget/tpagetool.h> -#include <twidget/tuiloader.h> - -#include <QRegularExpression> -namespace { - QString nameWidthTablePrefix(const QString &iPrefix, const QString &iOldName) { - QRegularExpression reg{QString(R"(table\(%1\))").arg(iPrefix)}; - QRegularExpressionMatch match = reg.match(iOldName); - if(match.hasMatch()) { - const QString matchStr = match.captured(); - return iOldName; - } else { - return QString("table(%1).%2").arg(iPrefix).arg(iOldName); - } - } - - void getPageToolData(TPageTool *iPageTool, const bool iResetPage, int &pageNum, int &pageSize) { - if(iPageTool) { - pageNum = 1; - pageSize = -1; - if(iResetPage) { - iPageTool->setCurrentPage(1,true); - } - pageNum = iPageTool->currentPage(); - pageSize = iPageTool->pageSize(); - } - if(pageNum < 1) { pageNum = 1; } - if(pageSize < 1) { pageSize = 100; } - } -} - -/*! - * \class TopTemplateClass5 - * \inmodule templateclass - * \brief 主从表模æ¿ï¼Œå·¦å³ç»“构,用两个TableView展示。 - */ - -TopTemplateClass5::TopTemplateClass5(const QString &iModuleName, - const QVariantMap &iUrlPars, - QWidget *iParent) - : TopClassAbs(iParent) -{ - initModule(iModuleName, iUrlPars); - QString licenseKey = config("sys_license_key").toString(); - if (!licenseKey.isEmpty()) { - setLicenseKey(licenseKey); - } - QStringList langLst = config("sys_lang_list").toStringList(); - for (const auto &lang : langLst) { - appendLanguage(lang); - } - if (isHookExists("afterModuleInit")) { - callHooks("afterModuleInit"); - } - TopClassHelper::parseTableConf0(this, "master_view", &mMasterTableConf); - TopClassHelper::parseTableConf0(this, "slave_view", &mSlaveTableConf); - initUi(); - connect(this, SIGNAL(isDetailModifiedChanged(bool)), - this, SLOT(onDetailChanged(bool))); - if (isHookExists("afterViewInit")) { - callHooks("afterViewInit"); - } - restoreSizeState(); - restoreObjectState(mLeftSplitter); - restoreObjectState(mBodySplitter); - restoreObjectState(mMasterView); - restoreObjectState(mSlaveView); - refreshActionState(); - QTimer::singleShot(0, this, SLOT(refreshMaster())); -} - -TopTemplateClass5::~TopTemplateClass5() -{ - saveSizeState(); - saveObjectState(mLeftSplitter); - saveObjectState(mBodySplitter); - saveObjectState(mMasterView); - saveObjectState(mSlaveView); - if (isHookExists("onDestroy")) { - callHooks("onDestroy"); - } -} - -/*! - * \brief 刷新主表的数æ®ï¼Œ\a iResetPage 为true时表示é‡ç½®åˆ†é¡µ - */ -void TopTemplateClass5::refreshMaster(bool iResetPage) -{ - QString sql = config("master_view.data_set.db_sql").toString(); - if (sql.isEmpty()) { - if (!mMasterTableConf.dbTableName.isEmpty()) { - TSqlSelectorV2 selector; - selector.setTable(mMasterTableConf.dbTableName); - selector.setField(mMasterTableConf.queryFields); - selector.setReturnRowCount(true); - // æœç´¢åˆ†é¡µ - TopClassHelper::handleSearchPageOnQuery(mMasterSearchEntry, mMasterPageTool, iResetPage, &selector); - // æŽ’åº - TopClassHelper::handleOrderOnQuery(mMasterView, &mMasterTableConf, &selector); - loading(ttr("Loading")); - QVariant data = doThreadWork(new TopClassSqlThread(this), TOPSQLTHREAD_SELECT_ARRAYMAP, QVariant::fromValue(selector)); - unloading(); - TDataResponse response(data.toMap()); - if (response.hasError()) { - alertError(ttr("Load data failed!")); - } else { - if (mMasterPageTool != nullptr) { - mMasterPageTool->setRowCount(response.dataCount(), true); - } - QVariantList tableData = response.data().toList(); - TopClassHelper::formatTableData(this, &mMasterTableConf, tableData); - mMasterView->loadData(tableData); - alertOk(ttr("Data loaded")); - } - } else { - // sqlè¯å¥ä¸ºç©ºï¼Œdbname也为空时执行钩å获å–masteræ•°æ® - if (isHookExists("masterWillUpdate")) { - int pageNum = 1; - int pageSize = -1; - getPageToolData(mMasterPageTool,iResetPage,pageNum,pageSize); - QScriptValue argVal = APP->scriptEngine()->newObject(); - argVal.setProperty("resetPage", iResetPage); - argVal.setProperty("pageNum", pageNum); - argVal.setProperty("pageSize", pageSize); - callHooks("masterWillUpdate", QScriptValueList() << argVal); - } - TopClassHelper::formatTableData(this, &mMasterTableConf, mMasterData); - mMasterView->loadData(mMasterData); - alertOk(ttr("Data loaded")); - } - } else { - // @todo - } -} - -/*! - * \brief 刷新从表的数æ®ï¼Œ\a iResetPage 为true时表示é‡ç½®åˆ†é¡µ - */ -void TopTemplateClass5::refreshSlave(bool iResetPage) -{ - if(selectedMasterItems().size() == 0) { - mSlaveView->loadData(QVariantList()); - if (mUiLoader) { - mUiLoader->loadValues(QVariant()); - } - return; - } - - QString sql = config("slave_view.data_set.db_sql").toString(); - if (sql.isEmpty()) { - if (!mSlaveTableConf.dbTableName.isEmpty()) { - QString relationTable = config("master_view.relation.through").toString(); - QString slaveKey = config("master_view.relation.slave_key").toString(); - QString slaveForeignKey = config("master_view.relation.slave_foreign_key").toString(); - QString masterForeignKey = config("master_view.relation.master_foreign_key").toString(); - QStringList fields = mSlaveTableConf.queryFields; - for (auto & f : fields) { - f = QString("S.%1 AS %1").arg(f); - } - TSqlSelectorV2 selector; - QString table = QString("%1 AS S LEFT JOIN %2 AS R ON S.%3 = R.%4") - .arg(mSlaveTableConf.dbTableName) - .arg(relationTable) - .arg(slaveKey) - .arg(slaveForeignKey); - selector.setTable(table); - selector.setField(fields); - selector.setWhere("R."+masterForeignKey, mSelectedMasterItems.first()); - // æœç´¢åˆ†é¡µ - TopClassHelper::handleSearchPageOnQuery(mSlaveSearchEntry, mSlavePageTool, iResetPage, &selector); - // æŽ’åº - TopClassHelper::handleOrderOnQuery(mSlaveView, &mSlaveTableConf, &selector); - loading(ttr("Loading")); - QVariant data = doThreadWork(new TopClassSqlThread(this), TOPSQLTHREAD_SELECT_ARRAYMAP, QVariant::fromValue(selector)); - unloading(); - TDataResponse response(data.toMap()); - if (response.hasError()) { - alertError(ttr("Load data failed!")); - } else { - if (mSlavePageTool != nullptr) { - mSlavePageTool->setRowCount(response.dataCount(), true); - } - QVariantList tableData = response.data().toList(); - TopClassHelper::formatTableData(this, &mSlaveTableConf, tableData); - mSlaveView->loadData(tableData); - alertOk(ttr("Data loaded")); - } - } else { - // sqlè¯å¥ä¸ºç©ºï¼Œdbname也为空时执行钩å获å–slaveæ•°æ® - QString selectedPrimaryKey = mSelectedMasterItems.first().toString(); - if (isHookExists("slaveWillUpdate")) { - callHooksQuick("slaveWillUpdate", QVariantList() << selectedPrimaryKey); - } - QVariantList tableData = mMasterSlaveDataMap.value(selectedPrimaryKey).toList(); - TopClassHelper::formatTableData(this, &mSlaveTableConf, tableData); - mSlaveView->loadData(tableData); - alertOk(ttr("Data loaded")); - } - } else { - // @todo - } - - refreshDetail(); -} - -void TopTemplateClass5::refreshDetail() -{ - if (mUiLoader != nullptr) { - QVariantMap dataMap; - const QVariantMap masterMap = selectedMasterDataMaps().value(0).toMap(); - for(const QString &key: masterMap.keys()) { - const QString tKey = ::nameWidthTablePrefix("master",key); - dataMap.insert(tKey,masterMap[key]); - } - - QVariantMap slaveMap = selectedSlaveDataMaps().value(0).toMap(); - for(const QString &key: slaveMap.keys()) { - const QString tKey = ::nameWidthTablePrefix("slave",key); - dataMap.insert(tKey,slaveMap[key]); - } - - mUiLoader->loadValues(QVariant(dataMap)); - mUiLoader->refreshState(); - } - setIsDetailModified(false); -} - -/*! - * \brief ä¸»è¡¨æ ¼æŽ§ä»¶å¯¹è±¡ - */ -TTableView *TopTemplateClass5::masterView() const -{ - return mMasterView; -} - -/*! - * \brief ä»Žè¡¨æ ¼æŽ§ä»¶å¯¹è±¡ - */ -TTableView *TopTemplateClass5::slaveView() const -{ - return mSlaveView; -} - -const QStringList TopTemplateClass5::masterQueryFields() const -{ - return mMasterTableConf.queryFields; -} - -const QStringList TopTemplateClass5::slaveQueryFields() const -{ - return mSlaveTableConf.queryFields; -} - -/*! - * \brief 主表当å‰é€‰ä¸æ¡ç›®çš„primaryKey - */ -QVariantList TopTemplateClass5::selectedMasterItems() const -{ - return mSelectedMasterItems; -} - -/*! - * \brief 主表当å‰é€‰ä¸æ¡ç›®çš„æ‰€æœ‰æ•°æ® - */ -QVariantList TopTemplateClass5::selectedMasterDataMaps() const -{ - return mMasterView->selectedRowDataMaps(true); -} - -/*! - * \brief 从表当å‰é€‰ä¸æ¡ç›®çš„primaryKey - */ -QVariantList TopTemplateClass5::selectedSlaveItems() const -{ - return mSelectedSlaveItems; -} - -/*! - * \brief 从表当å‰é€‰ä¸æ¡ç›®çš„æ‰€æœ‰æ•°æ® - */ -QVariantList TopTemplateClass5::selectedSlaveDataMaps() const -{ - return mSlaveView->selectedRowDataMaps(true); -} - -/*! - * \brief å¯¼å…¥æ ‘å½¢ç»“æž„çš„æ•°æ® - * { - * "A": { - * "master_title": "", - * "data": [ - * { - * "slave_id": "", - * "slave_name": "" - * } - * ] - * } - * } - */ -void TopTemplateClass5::loadTreeData(const QVariantMap &iTreeData, - const QString &iSlavesKey) -{ - mMasterData.clear(); - mMasterSlaveDataMap.clear(); - QMapIterator<QString, QVariant> i(iTreeData); - while (i.hasNext()) { - i.next(); - QVariantMap item = i.value().toMap(); - mMasterSlaveDataMap.insert(i.key(), item.value(iSlavesKey)); - item.remove(iSlavesKey); - item.insert("name", i.key()); - mMasterData.append(item); - } - refreshMaster(); -} - -/*! - * \brief å¯¼å…¥è¡¨æ ¼ç»“æž„çš„æ•°æ® - * \todo 待实现 - */ -void TopTemplateClass5::loadTableData(const QVariantList &iTableData, - const QString &iSlavesKey) -{ - Q_UNUSED(iTableData) - Q_UNUSED(iSlavesKey) - // @todo -} - -void TopTemplateClass5::loadMasterData(const QVariantList &iMasterData, int iRowCount) -{ - mMasterData = iMasterData; - if(mMasterPageTool) { - mMasterPageTool->setRowCount(iRowCount,true); - } -} - -void TopTemplateClass5::insertSlaveData(const QString &iKey, const QVariant &iValue) -{ - mMasterSlaveDataMap.insert(iKey, iValue); -} - -TUiLoader *TopTemplateClass5::uiLoader() const -{ - return mUiLoader; -} - -void TopTemplateClass5::selectSlaveRow(const QVariant &iKeyVar) -{ - mSlaveView->selectRow(iKeyVar); -} - -/*! - * \brief è¿”å›žè¯¦ç»†ä¿¡æ¯æ¨¡å—是å¦å‘ç”Ÿæ•°æ®æ”¹å˜ - */ -bool TopTemplateClass5::isDetailModified() const -{ - return mIsDetailModified; -} - -/*! - * \brief 设置详细信æ¯çš„æ•°æ®æ”¹å˜çŠ¶æ€ - */ -void TopTemplateClass5::setIsDetailModified(bool iIsDetailModified) -{ - if (mIsDetailModified == iIsDetailModified) { - return; - } - mIsDetailModified = iIsDetailModified; - emit isDetailModifiedChanged(iIsDetailModified); -} - -/*! - * \brief 当主表选ä¸å‘生改å˜çš„æ§½å‡½æ•° - */ -void TopTemplateClass5::onMasterSelectionChanged() -{ - mSelectedMasterItems = mMasterView->selectedPrimaryKeys(); - refreshSlave(); - refreshActionState(); -} - -/*! - * \brief 当主表分页å‘生改å˜çš„æ§½å‡½æ•° - */ -void TopTemplateClass5::onMasterPageChanged() -{ - refreshMaster(false); -} - -/*! - * \brief 当从表选ä¸å‘生改å˜çš„æ§½å‡½æ•° - */ -void TopTemplateClass5::onSlaveSelectionChanged() -{ - mSelectedSlaveItems = mSlaveView->selectedPrimaryKeys(); - refreshDetail(); - refreshActionState(); -} - -/*! - * \brief 当从表分页å‘生改å˜çš„æ§½å‡½æ•° - */ -void TopTemplateClass5::onSlavePageChanged() -{ - refreshSlave(false); -} - -void TopTemplateClass5::onDetailChanged(bool iIsDetailModified) -{ - if (iIsDetailModified) { - showMaskFrame(mLeftSplitter); - } else { - hideMaskFrame(); - } - refreshActionState(); -} - -/*! - * \brief åˆå§‹åŒ–ç•Œé¢ - */ -void TopTemplateClass5::initUi() -{ - mBodySplitter = new TSplitter(this); - mBodySplitter->setObjectName("mBodySplitter"); - setCentralWidget(mBodySplitter); - - mLeftSplitter = new TSplitter(this); - mLeftSplitter->setObjectName("mLeftSplitter"); - mBodySplitter->addWidget(mLeftSplitter); - - // 主表 - QFrame *masterWgt = new QFrame(this); - mLeftSplitter->addWidget(masterWgt); - - QVBoxLayout *masterLayout = new QVBoxLayout(masterWgt); - masterLayout->setMargin(0); - masterLayout->setSpacing(0); - - mMasterView = new TTableView(this); - mMasterView->setObjectName("mMasterView"); - connect(mMasterView->horizontalHeader(), SIGNAL(sortIndicatorChanged(int,Qt::SortOrder)), - this, SLOT(refreshMaster())); - connect(mMasterView->selectionModel(), SIGNAL(selectionChanged(QItemSelection,QItemSelection)), - this, SLOT(onMasterSelectionChanged())); - mMasterView->setDataKeyList(mMasterTableConf.dataKeys); - mMasterView->setPrimaryKey(mMasterTableConf.primaryKey); - QVariantList masterHeaderItems = mMasterTableConf.horizontalHeaders; - masterHeaderItems.prepend(QVariant()); - mMasterView->setHeaderItem(masterHeaderItems); - - if (QToolBar *toolbar = qobject_cast<QToolBar*>(uim()->getWidget("MASTER_TOOLBAR"))) { - masterLayout->addWidget(toolbar, 0); - mMasterSearchEntry = qobject_cast<TSearchEntry *>(uim()->getWidget("MASTER_TOOLBAR/SEARCH_ENTRY")); - if (mMasterSearchEntry != nullptr) { - connect(mMasterSearchEntry, SIGNAL(search(QString,QVariant)), this, SLOT(refreshMaster())); - mMasterSearchEntry->setOptionList(TDataParse::headerItem2searchList(mMasterView->headerItem())); - mMasterSearchEntry->setPlaceholderText(ttr("Search %1")); - } - } - if (QMenu *tablePopup = qobject_cast<QMenu *>(uim()->getWidget("MASTER_POPUP"))) { - mMasterView->setContextMenu(tablePopup); - } - - masterLayout->addWidget(mMasterView, 1); - - if (QToolBar *toolbar = qobject_cast<QToolBar*>(uim()->getWidget("MASTER_BOTTOM_TOOLBAR"))) { - masterLayout->addWidget(toolbar, 0); - mMasterPageTool = qobject_cast<TPageTool *>(uim()->getWidget("MASTER_BOTTOM_TOOLBAR/PAGE_TOOL")); - if (mMasterPageTool != nullptr) { - mMasterPageTool->setPageSizeVisible(true); - connect(mMasterPageTool, SIGNAL(pageChanged(int,int)), this, SLOT(onMasterPageChanged())); - } - } - - // 从表 - QWidget *slaveWgt = new QWidget(this); - mLeftSplitter->addWidget(slaveWgt); - - QVBoxLayout *slaveLayout = new QVBoxLayout(slaveWgt); - slaveLayout->setMargin(0); - slaveLayout->setSpacing(0); - - mSlaveView = new TTableView(this); - mSlaveView->setObjectName("mSlaveView"); - connect(mSlaveView->horizontalHeader(), SIGNAL(sortIndicatorChanged(int,Qt::SortOrder)), - this, SLOT(refreshSlave())); - connect(mSlaveView->selectionModel(), SIGNAL(selectionChanged(QItemSelection,QItemSelection)), - this, SLOT(onSlaveSelectionChanged())); - mSlaveView->setDataKeyList(mSlaveTableConf.dataKeys); - mSlaveView->setPrimaryKey(mSlaveTableConf.primaryKey); - QVariantList slaveHeaderItems = mSlaveTableConf.horizontalHeaders; - slaveHeaderItems.prepend(QVariant()); - mSlaveView->setHeaderItem(slaveHeaderItems); - - if (QToolBar *toolbar = qobject_cast<QToolBar*>(uim()->getWidget("SLAVE_TOOLBAR"))) { - slaveLayout->addWidget(toolbar, 0); - mSlaveSearchEntry = qobject_cast<TSearchEntry *>(uim()->getWidget("SLAVE_TOOLBAR/SEARCH_ENTRY")); - if (mSlaveSearchEntry != nullptr) { - connect(mSlaveSearchEntry, SIGNAL(search(QString,QVariant)), this, SLOT(refreshSlave())); - mSlaveSearchEntry->setOptionList(TDataParse::headerItem2searchList(mSlaveView->headerItem())); - mSlaveSearchEntry->setPlaceholderText(ttr("Search %1")); - } - } - if (QMenu *tablePopup = qobject_cast<QMenu *>(uim()->getWidget("SLAVE_POPUP"))) { - mSlaveView->setContextMenu(tablePopup); - } - - slaveLayout->addWidget(mSlaveView, 1); - - if (QToolBar *toolbar = qobject_cast<QToolBar*>(uim()->getWidget("SLAVE_BOTTOM_TOOLBAR"))) { - slaveLayout->addWidget(toolbar, 0); - mSlavePageTool = qobject_cast<TPageTool *>(uim()->getWidget("SLAVE_BOTTOM_TOOLBAR/PAGE_TOOL")); - if (mSlavePageTool != nullptr) { - mSlavePageTool->setPageSizeVisible(true); - connect(mSlavePageTool, SIGNAL(pageChanged(int,int)), this, SLOT(onSlavePageChanged())); - } - } - - // è¯¦æƒ…ç•Œé¢ - const QString uiStr = ui("detail").toString(); - if(!uiStr.isEmpty()) { - QWidget *detailWgt = new QWidget(this); - mBodySplitter->addWidget(detailWgt); - QVBoxLayout *detailVLayout = new QVBoxLayout(detailWgt); - detailVLayout->setMargin(0); - detailVLayout->setSpacing(0); - - if(QToolBar *toolBar = qobject_cast<QToolBar*>(uim()->getWidget("DETAIL_TOOLBAR"))) { - detailVLayout->addWidget(toolBar); - } - - mUiLoader = new TUiLoader(detailWgt); - const QStringList typePlugins = config("uiloader_plugins").toStringList(); - if (typePlugins.size() > 0) { - TopClassHelper::setUiLoaderPluginCallback(mUiLoader,this,typePlugins); - } - mUiLoader->setProperty("SS_BG","PANEL"); - mUiLoader->setSelf(this); - mUiLoader->setScriptEngine(APP->scriptEngine()); - mUiLoader->setUiStr(uiStr); - connect(mUiLoader, &TUiLoader::dataChanged, [this](){ - setIsDetailModified(true); - }); - detailVLayout->addWidget(mUiLoader); - } - - resizeSplitterByRatio(); -} - -void TopTemplateClass5::resizeSplitterByRatio() -{ - QString masterSlaveRatio = config("master_slave_ratio", "1:1:1").toString(); - QRegularExpression regExp("(?<master>\\d+):(?<slave>\\d+):(?<uiloader>\\d+)"); - QRegularExpressionMatch match = regExp.match(masterSlaveRatio); - if (match.hasMatch()) { - double m = match.captured("master").toDouble(); - double s = match.captured("slave").toDouble(); - double u = match.captured("uiloader").toDouble(); - if (mUiLoader == nullptr) { - u = 0.0; - } - double leftRatio = (m + s) / (m + s + u); - int width = this->width(); - int leftWidth = static_cast<int>(width * leftRatio); - mBodySplitter->setSizes(QList<int>{ leftWidth, width-leftWidth }); - - double leftRatio1 = m / (m + s); - int leftWidth1 = leftWidth * leftRatio1; - mLeftSplitter->setSizes(QList<int>{ leftWidth1, leftWidth - leftWidth1 }); - } -} diff --git a/src/plugin/toptemplateclass5.h b/src/plugin/toptemplateclass5.h deleted file mode 100644 index f7dfa894ceb218bf78d3cd49a4541d6525610efa..0000000000000000000000000000000000000000 --- a/src/plugin/toptemplateclass5.h +++ /dev/null @@ -1,74 +0,0 @@ -#ifndef TEMPLATECLASS5_H -#define TEMPLATECLASS5_H - -#include <topcore/topclassabs.h> -#include <topcore/topclasshelper.h> - -class TTableView; -class TSearchEntry; -class TPageTool; -class TTableView; -class TSplitter; - -class TopTemplateClass5 : public TopClassAbs -{ - Q_OBJECT -public: - explicit TopTemplateClass5(const QString &iModuleName = QString(""), - const QVariantMap &iUrlPars = QVariantMap(), - QWidget *iParent = nullptr); - ~TopTemplateClass5(); - -public slots: - void refreshMaster(bool iResetPage = true); - void refreshSlave(bool iResetPage = true); - void refreshDetail(); - TTableView *masterView() const; - TTableView *slaveView() const; - const QStringList masterQueryFields() const; - const QStringList slaveQueryFields() const; - QVariantList selectedMasterItems() const; - QVariantList selectedMasterDataMaps() const; - QVariantList selectedSlaveItems() const; - QVariantList selectedSlaveDataMaps() const; - void loadTreeData(const QVariantMap &iTreeData, - const QString &iSlavesKey = QString("data")); - void loadTableData(const QVariantList &iTableData, - const QString &iSlavesKey = QString("data")); - void loadMasterData(const QVariantList &iMasterData, int iRowCount = -1); - void insertSlaveData(const QString &iKey, const QVariant &iValue); - TUiLoader *uiLoader() const; - void selectSlaveRow(const QVariant &iKeyVar); - bool isDetailModified() const; - void setIsDetailModified(bool iIsDetailModified); -signals: - void isDetailModifiedChanged(bool iIsDetailModified); -private slots: - void onMasterSelectionChanged(); - void onMasterPageChanged(); - void onSlaveSelectionChanged(); - void onSlavePageChanged(); - void onDetailChanged(bool iIsDetailModified); -private: - void initUi(); - void resizeSplitterByRatio(); -private: - TSplitter *mBodySplitter = nullptr; - TSplitter *mLeftSplitter = nullptr; - TTableView *mMasterView = nullptr; - TTableView *mSlaveView = nullptr; - TSearchEntry *mMasterSearchEntry = nullptr; - TPageTool *mMasterPageTool = nullptr; - TSearchEntry *mSlaveSearchEntry = nullptr; - TPageTool *mSlavePageTool = nullptr; - TUiLoader *mUiLoader = nullptr; - TopClassTableConf mMasterTableConf; - TopClassTableConf mSlaveTableConf; - QVariantList mSelectedMasterItems; - QVariantList mSelectedSlaveItems; - QVariantList mMasterData; - QVariantMap mMasterSlaveDataMap; - bool mIsDetailModified = false; -}; - -#endif // TEMPLATECLASS5_H diff --git a/src/plugin/toptemplateclass6.cpp b/src/plugin/toptemplateclass6.cpp deleted file mode 100644 index e265428fc3741d6db822d52384d33a9d1ffa63af..0000000000000000000000000000000000000000 --- a/src/plugin/toptemplateclass6.cpp +++ /dev/null @@ -1,529 +0,0 @@ -#include "toptemplateclass6.h" -#include <functional> -#include <QList> -#include <QWidget> -#include <QResizeEvent> -#include <QTabWidget> -#include <QToolBar> -#include <QVariantMap> -#include <QVBoxLayout> -#include <tbaseutil/tdataparse.h> -#include <tbaseutil/tdataresponse.h> -#include <tdatabaseutil/tsqlselectorv2.h> -#ifdef Q_OS_WIN -#include <tole/texcel.h> -#endif -#include <topcore/topcore.h> -#include <topcore/topclassabs.h> -#include <topcore/topclasshelper.h> -#include <topcore/topclasssqlthread.h> -#include <twidget/tfiledialog.h> -#include <twidget/tsplitter.h> -#include <twidget/ttreeview.h> -#include <twidget/tuidesigner.h> -#include <twidget/tuiloader.h> -#include <twidget/twidget.h> -#include <twidget/ttablechooserdialog.h> - -/*! - * \class TopTemplateClass6 - * \inmodule templateclass - * \brief æ ‘å½¢æŠ¥è¡¨æ¨¡æ¿ï¼Œå·¦å³ç»“构。 - */ - -TopTemplateClass6::TopTemplateClass6(const QString &iModuleNameStr, const QVariantMap &iUrlPars, QWidget *iParent) - : TopClassAbs(iParent) -{ - initModule(iModuleNameStr, iUrlPars); - QString licenseKey = config("sys_license_key").toString(); - if (!licenseKey.isEmpty()) { - setLicenseKey(licenseKey); - } - QStringList langLst = config("sys_lang_list").toStringList(); - for (const auto &lang : langLst) { - appendLanguage(lang); - } - if (isHookExists("afterModuleInit")) { - callHooks("afterModuleInit"); - } - initUi(); - if (isHookExists("afterViewInit")) { - callHooks("afterViewInit"); - } - restoreSizeState(); - restoreObjectState(mBodySplitter); - refreshActionState(); -} - -TopTemplateClass6::~TopTemplateClass6() -{ - saveSizeState(); - saveObjectState(mBodySplitter); - if (isHookExists("onDestroy")) { - callHooks("onDestroy"); - } -} - -TUiLoader *TopTemplateClass6::uiLoader() -{ - return mUiLoader; -} - -/*! - * \brief TopTemplateClass6::uiLoaderValues - * \return 返回uiLoader的值 - */ -QVariantMap TopTemplateClass6::uiLoaderValues() -{ - if (mUiLoader == nullptr) { - return QVariantMap(); - } - return mUiLoader->getAllValues().toVariant().toMap(); -} - -/*! - * \brief TopTemplateClass6::onSetUiClicked - * 编辑左侧uiç•Œé¢ - */ -void TopTemplateClass6::onSetUiClicked() -{ - QVariantMap langArgMap; - QVariantMap langMap; - langMap.insert("language_define",APP->languageDefine()); - langMap.insert("language",APP->language()); - langArgMap.insert("language_args",langMap); - TUiDesigner *uiDesigner = new TUiDesigner(nullptr,langArgMap); - uiDesigner->setScriptEngine(APP->scriptEngine()); - uiDesigner->setUiString(getUiStr());// åŠ è½½ä¹‹å‰ä¿å˜çš„Ui - connect(uiDesigner, SIGNAL(dataApplied(QString)), this, SLOT(onUiTemplateApplied(QString))); - uiDesigner->show(); -} - -/*! - * \brief TopTemplateClass6::onUiTemplateApplied - * \param iUiStr - * ä¿å˜å·¦ä¾§ui到数æ®åº“ - */ -void TopTemplateClass6::onUiTemplateApplied(const QString &iUiStr) -{ - QString tableName = config("condition_ui.table_name").toString(); - QString pathName = config("condition_ui.path_name").toString(); - QString pathValue = config("condition_ui.path_value").toString(); - QString field = config("condition_ui.field").toString(); - if (tableName.isEmpty() || pathName.isEmpty() || pathValue.isEmpty() || field.isEmpty()) { - alertError(ttr("condition_ui config value is empty!"), "Error"); - return; - } - QVariantMap saveData; - saveData.insert(field, QVariantMap{{"ui_str", iUiStr}}); - saveData.insert(pathName, pathValue); - TSqlInserterV2 inserter; - inserter.setTable(tableName); - inserter.setField(QStringList() << field << pathName); - inserter.setData(saveData); - inserter.setUniqueField(pathName); - inserter.setAutoIncrementField("id"); - QVariant data = doThreadWork(new TopClassSqlThread(this), TOPSQLTHREAD_REPLACE_ROW, QVariant::fromValue(inserter)); - TDataResponse dataRes(data.toMap()); - if (dataRes.hasError()) { - alertError(dataRes.errText(), "Error"); - return; - } - mUiLoader->setUiStr(iUiStr); -} - -/*! - * \brief TopTemplateClass6::reopenTotalTab - * \param iTotalData - * å…³é—tabæ‰€æœ‰é¡µï¼Œé‡æ–°æ‰“开新的总表 - */ -void TopTemplateClass6::reopenTotalTab(const QVariantMap &iTotalData) -{ - try { - //关闿‰€æœ‰tab页 - mTabWidget->clear(); - clearTabLst(); - //新建总表tab页 - TTreeView *totalTree = getSubTab(iTotalData); - if (QMenu *menu = qobject_cast<QMenu *>(uim()->getWidget("TREEVIEW_POPUP"))) { - totalTree->setContextMenu(menu); - } - totalTree->setSelectionBehavior(QAbstractItemView::SelectItems); - totalTree->setSelectionMode(QAbstractItemView::ExtendedSelection); - connect(totalTree, SIGNAL(doubleClicked(QModelIndex)), this, SLOT(onTreeViewItemDoubleClicked(QModelIndex))); - mTabWidget->addTab(totalTree, iTotalData["name"].toString()); - } catch (const TError &e) { - alertError(ttr("ERROR"), e.text()); - } catch (...) { - alertError(ttr("ERROR"), ttr("Unkown Error!")); - } -} - -/*! - * \brief TopTemplateClass6::getSubTab - * \param iSubData - * { - "name":"test", - "view":{ - "data_keys":[ - - ], - "horizontal_header":[ - { - "name":"zone", - "display":"Zone", - "displayRole":"$zone" - } - ] - }, - "data":[ - - ] -} - * \return æ ¹æ®iSubDataé…ç½®ï¼Œåˆ›å»ºæ–°çš„æ ‘å½¢æŽ§ä»¶ - */ -TTreeView *TopTemplateClass6::getSubTab(const QVariantMap &iSubData) -{ - TTreeView *treeView = new TTreeView(this); - TopClassTableConf treeConf; - if (!iSubData.contains("view")) { - throw TError(ttr("view doesn't exist!"), "ERROR"); - } - if (iSubData.value("view").type() != QVariant::Map) { - throw TError(ttr("view type != map"), "ERROR"); - } - TopClassHelper::parseTableConf0(this, iSubData["view"].toMap(), &treeConf); - treeView->setHeaderItem(treeConf.horizontalHeaders); - treeView->setDataKeyList(treeConf.dataKeys); - QVariantList treeData = iSubData["data"].toList(); - TopClassHelper::formatTableData(this, &treeConf, treeData); - treeView->loadTreeData(treeData); - treeView->collapseAll(); - return treeView; -} - -/*! - * \brief TopTemplateClass6::expandAll - * 展开当å‰é¡µçš„æ ‘形控件 - */ -void TopTemplateClass6::expandAll() -{ - if (TTreeView *treeview = qobject_cast<TTreeView *>(mTabWidget->currentWidget())) { - treeview->expandAll(); - } -} - -/*! - * \brief TopTemplateClass6::collapseAll - * 折å 当å‰é¡µçš„æ ‘形控件 - */ -void TopTemplateClass6::collapseAll() -{ - if (TTreeView *treeview = qobject_cast<TTreeView *>(mTabWidget->currentWidget())) { - treeview->collapseAll(); - } -} - -/*! - * \brief TopTemplateClass6::exportExcel - * 列出所有tab页,选择需è¦çš„tab页,导出到一个excel文件 - */ -void TopTemplateClass6::exportExcel() -{ -#ifdef Q_OS_WIN - TTableChooserDialog *chooseDlg = new TTableChooserDialog(this); - chooseDlg->setTitle(ttr("Select Export Tab")); - QVariantList headerItems; - headerItems << QVariant(); - headerItems << TDataParse::stringList2VariantMap( - QStringList() << "name" << "name" << "display" << ttr("Name") - << "displayRole" << "$name"<<"resizeMode" << "Stretch"); - chooseDlg->setHeaderItem(headerItems); - chooseDlg->setPrimaryKey("index"); - chooseDlg->setDataKeyList(QStringList() << "index" << "name"); - chooseDlg->loadAllData(allTabInfo()); - QVariantList selectedTabData = chooseDlg->run(); - if (selectedTabData.length() == 0) { - return; - } - - QString fileName = QString("%1 %2.xlsx").arg(moduleName().replace("-", " ")).arg(QDateTime::currentDateTime().toString("yyyyMMddhhmmss")); - TFileDialog *fileDlg = new TFileDialog(ttr("Please select save file"), fileName); - fileDlg->setAcceptMode("AcceptSave"); - QStringList strLst = fileDlg->run(); - if (strLst.length() == 0 ) { - return; - } - QString absoluteFileName = strLst.first(); - - TExcel *excel = new TExcel(this); - QAxObject *obj = excel->addBook(); - if (obj == nullptr) { - excel->quitExcel(); - alertError(ttr("Export failed!")); - return; - } - - std::function<QVariantList(const QVariantList, const QString)> transformTreeData; - transformTreeData = [&transformTreeData](const QVariantList &iDataLst, const QString &iChildrenKey){ - QVariantList allDataLst; - for (QVariant item : iDataLst) { - QVariantMap itemMap = item.toMap(); - QVariantList childDataLst = itemMap.take(iChildrenKey).toList(); - allDataLst.append(itemMap); - if (childDataLst.length() > 0) { - allDataLst.append(transformTreeData(childDataLst, iChildrenKey)); - } - } - return allDataLst; - }; - - std::function<void(TTreeView*)> exportToSheet = [&excel, &transformTreeData](TTreeView* iTreeView){ - if (iTreeView == nullptr) { - return; - } - QVariantList allDataLst = iTreeView->allDataMap(); - allDataLst = transformTreeData(allDataLst, "CHILDREN"); - QVariantList headerItems = iTreeView->headerItem(); - if (allDataLst.length() == 0) { - return; - } - - int rowInt = 1; - // è¡¨å¤´å—æ®µ - for (int i = 0; i < headerItems.length(); i++) { - QVariantMap itemMap = headerItems[i].toMap(); - QString colName = itemMap.value("display").toString(); - QString colRange = QString("%1%2").arg(QChar('A' + i)).arg(QString::number(rowInt)); - QVariantMap font_map = QVariantMap({{"Size", 12}, - {"Bold", true}, - {"Color", QColor("black")}}); - excel->setRangeValue(colRange, colName); - excel->setRangeFont(colRange, font_map); - excel->autoFitColumns(QChar('A' + i)); - excel->setRangeHorizontalAlignment(colRange, -4108); - } - rowInt++; - - // 写值 - for (QVariant dataVar: allDataLst) { - QVariantMap dataVarMap = dataVar.toMap(); - int colInt = 0; - for (QVariant item: headerItems) { - QVariantMap itemMap = item.toMap(); - QString keyStr = itemMap.value("displayRole").toString().mid(1); - QString cellRange = QString("%1%2").arg(QChar('A' + colInt)).arg(QString::number(rowInt)); - excel->setRangeValue(cellRange, dataVarMap.value(keyStr)); - excel->setRangeHorizontalAlignment(cellRange, -4108); - excel->autoFitColumns(QChar('A' + colInt)); - colInt++; - } - rowInt++; - } - - // 边框 - int row = excel->getUsedRows(); - int column = excel->getUsedColumns(); - QString rangecolunmn = QString(65 + column - 1); - QString used_range = QString("A1:%1%2").arg(rangecolunmn).arg(row); - QVariantMap border = QVariantMap({{"Color", -4165632}, - {"LineStyle", 1}, - {"TintAndShader", 0}, - {"Weight", 2}}) ; - excel->setRangeBorder(used_range, border); - }; - - excel->setExcelDisplayAlerts(true); - excel->setExcelVisible(true); - for (int i = 0; i < selectedTabData.length(); i++) { - QVariantMap itemMap = selectedTabData[i].toMap(); - int index = itemMap.value("index").toInt(); - QString tabName = itemMap.value("name").toString(); - if ((i + 1) > excel->getSheetsCount()) { - excel->appendSheet(tabName); - } - excel->selectSheet(i + 1); - excel->setSheetName(tabName); - - TTreeView *treeView = qobject_cast<TTreeView *>(mTabWidget->widget(index)); - exportToSheet(treeView); - } - - excel->saveAsBook(absoluteFileName.replace("/", "\\")); - excel->closeBook(); - excel->quitExcel(); - alertOk(ttr("Export success!")); -#endif -} - -QVariantList TopTemplateClass6::allTabInfo() -{ - QVariantList tabDataLst; - for (int i = 0; i < mTabWidget->count(); i++) { - QVariantMap tabInfo; - tabInfo.insert("index", i); - tabInfo.insert("name", mTabWidget->tabText(i)); - tabDataLst.append(tabInfo); - } - return tabDataLst; -} - -TTreeView *TopTemplateClass6::getTreeView(int iIndex) -{ - return qobject_cast<TTreeView *>(mTabWidget->widget(iIndex)); -} - -QVariantList TopTemplateClass6::getTreeDataLst(int iIndex) -{ - TTreeView *treeView = qobject_cast<TTreeView *>(mTabWidget->widget(iIndex)); - if (treeView) { - return treeView->allDataMap(); - } - return QVariantList(); -} - -/*! - * \brief TopTemplateClass6::onTreeViewItemDoubleClicked - * \param iIndex - * åŒå‡»æ€»è¡¨çš„å•å…ƒæ ¼åŽæ‰“å¼€å表 - */ -void TopTemplateClass6::onTreeViewItemDoubleClicked(const QModelIndex &iIndex) -{ - if (mSubTabMap.contains(iIndex)) { - mTabWidget->setCurrentWidget(mSubTabMap.value(iIndex)); - } else { - TTreeView *totalTree = qobject_cast<TTreeView *>(mTabWidget->widget(0)); - if (totalTree->currentRowDataMap().isNull()) { - return; - } - QVariantMap cellData; - cellData.insert("row", totalTree->currentRowDataMap().toMap()); - cellData.insert("column", totalTree->headerItem().at(iIndex.column()).toMap().value("name")); - QVariantMap subData = callHooksQuick("getSubData", QVariantList() << cellData).toVariant().toMap(); - TTreeView *subTree = getSubTab(subData); - subTree->setSelectionBehavior(QAbstractItemView::SelectRows); - subTree->setSelectionMode(QAbstractItemView::ExtendedSelection); - if (QMenu *menu = qobject_cast<QMenu *>(uim()->getWidget("TREEVIEW_POPUP"))) { - subTree->setContextMenu(menu); - } - mTabWidget->addTab(subTree, subData["name"].toString()); - mTabWidget->setCurrentWidget(subTree); - mSubTabMap.insert(iIndex, subTree); - } -} - -/*! - * \brief TopTemplateClass6::onTabClosedButtomClicked - * \param index - * å…³é—tab页 - */ -void TopTemplateClass6::onTabClosedButtomClicked(int index) -{ - TTreeView *closingView = qobject_cast<TTreeView *>(mTabWidget->widget(index)); - if(closingView->close()) { - mTabWidget->removeTab(index); - QMap<QModelIndex, TTreeView*>::iterator iter; - for (iter = mSubTabMap.begin(); iter != mSubTabMap.end();) { - TTreeView *treeView = iter.value(); - if (treeView == closingView) { - delete treeView; - treeView = nullptr; - mSubTabMap.erase(iter++); - } else { - iter++; - } - } - } -} - -/*! - * \brief TopTemplateClass6::initUi - * åˆå§‹åŒ–ç•Œé¢ - */ -void TopTemplateClass6::initUi() -{ - mBodySplitter = new TSplitter(this); - mBodySplitter->setObjectName("mBodySplitter"); - setCentralWidget(mBodySplitter); - //left - TWidget *leftWidget = new TWidget(mBodySplitter); - QVBoxLayout *leftLayout = new QVBoxLayout(leftWidget); - leftLayout->setMargin(0); - leftLayout->setSpacing(0); - mBodySplitter->addWidget(leftWidget); - if (QToolBar *toolbar = qobject_cast<QToolBar*>(uim()->getWidget("CONDITION_TOOLBAR"))) { - leftLayout->addWidget(toolbar, 0); - } - mUiLoader = new TUiLoader(this); - const QStringList typePlugins = config("uiloader_plugins").toStringList(); - if (typePlugins.size() > 0) { - TopClassHelper::setUiLoaderPluginCallback(mUiLoader,this,typePlugins); - } - mUiLoader->setScriptEngine(APP->scriptEngine()); - mUiLoader->setSelf(this); - mUiLoader->setUiStr(getUiStr()); - leftLayout->addWidget(mUiLoader, 1); - // right - TWidget *rightWidget = new TWidget(mBodySplitter); - QVBoxLayout *rightLayout = new QVBoxLayout(rightWidget); - rightLayout->setMargin(0); - rightLayout->setSpacing(0); - mBodySplitter->addWidget(rightWidget); - mTabWidget = new QTabWidget(rightWidget); - mTabWidget->setStyleSheet("QTabBar {qproperty-tabsClosable: 1;}"); - mTabWidget->setTabsClosable(true); - connect(mTabWidget, SIGNAL(tabCloseRequested(int)), this, SLOT(onTabClosedButtomClicked(int))); - if (QToolBar *toolbar = qobject_cast<QToolBar *>(uim()->getWidget("MAIN_TOOLBAR"))) { - rightLayout->addWidget(toolbar, 0); - } - rightLayout->addWidget(mTabWidget); - - int width = this->width(); - int tableWidth = width * config("width_ratio").toDouble(); - mBodySplitter->setSizes(QList<int>{tableWidth, width - tableWidth}); -} - -/*! - * \brief TopTemplateClass6::getUiStr - * \return æ ¹æ®moduleä¸å·¦ä¾§uié…ç½®ï¼Œä»Žè¡¨ä¸æŸ¥æ‰¾å·¦ä¾§uiçš„ç•Œé¢æ•°æ® - */ -QString TopTemplateClass6::getUiStr() -{ - QString tableName = config("condition_ui.table_name").toString(); - QString pathName = config("condition_ui.path_name").toString(); - QString pathValue = config("condition_ui.path_value").toString(); - QString field = config("condition_ui.field").toString(); - QVariantMap fieldFormat = config("condition_ui.field_format").toMap(); - if (tableName.isEmpty() || pathName.isEmpty() || pathValue.isEmpty() || field.isEmpty()) { - return QString(); - } - TSqlSelectorV2 selector; - selector.setTable(tableName); - if (!field.isEmpty()) { - selector.setField(field); - } - selector.setFieldFormat(fieldFormat); - selector.setWhere(pathName, pathValue); - QVariant data = doThreadWork(new TopClassSqlThread(this), TOPSQLTHREAD_SELECT_VALUE, QVariant::fromValue(selector)); - TDataResponse dataRes(data.toMap()); - if (dataRes.hasError()) { - alertError(dataRes.errText(), "Error"); - return QString(); - } - return dataRes.data().toMap().value("ui_str").toString(); -} - -/*! - * \brief TopTemplateClass6::clearTabLst - * æ¸…ç†æ‰€æœ‰æ‰“开的tab页控件 - */ -void TopTemplateClass6::clearTabLst() -{ - QMap<QModelIndex, TTreeView*>::iterator iter; - for (iter = mSubTabMap.begin(); iter != mSubTabMap.end();) { - TTreeView* treeView = iter.value(); - delete treeView; - treeView = nullptr; - mSubTabMap.erase(iter++); - } -} diff --git a/src/plugin/toptemplateclass6.h b/src/plugin/toptemplateclass6.h deleted file mode 100644 index 45f6c5bc06cb29bb40b6b9a852a4d5f4bb62967b..0000000000000000000000000000000000000000 --- a/src/plugin/toptemplateclass6.h +++ /dev/null @@ -1,46 +0,0 @@ -#ifndef TOPTEMPLATECLASS6_H -#define TOPTEMPLATECLASS6_H - -#include <topcore/topclassabs.h> - -class QWidget; -class QTabWidget; -class TopClassAbs; -class TSplitter; -class TTreeView; -class TUiLoader; -class TopTemplateClass6 : public TopClassAbs -{ - Q_OBJECT -public: - explicit TopTemplateClass6(const QString &iModuleNameStr = QString(""), - const QVariantMap &iUrlPars = QVariantMap(), - QWidget *iParent = nullptr); - ~TopTemplateClass6(); -public slots: - TUiLoader *uiLoader(); - QVariantMap uiLoaderValues(); - void onSetUiClicked(); - void onUiTemplateApplied(const QString &iUiStr); - void reopenTotalTab(const QVariantMap &iTotalData); - TTreeView* getSubTab(const QVariantMap &iSubData); - void expandAll(); - void collapseAll(); - void exportExcel(); - QVariantList allTabInfo(); - TTreeView *getTreeView(int iIndex); - QVariantList getTreeDataLst(int iIndex); -private slots: - void onTreeViewItemDoubleClicked(const QModelIndex &iIndex); - void onTabClosedButtomClicked(int index); -private: - void initUi(); - QString getUiStr(); - void clearTabLst(); -private: - TSplitter *mBodySplitter = nullptr; - QTabWidget *mTabWidget = nullptr; - TUiLoader *mUiLoader = nullptr; - QMap<QModelIndex, TTreeView *> mSubTabMap; -}; -#endif // TOPTEMPLATECLASS6_H diff --git a/src/plugin/toptemplateclass7.cpp b/src/plugin/toptemplateclass7.cpp deleted file mode 100644 index f3c4d7e36eb65c629815f49846e03b9f8f4fd5cd..0000000000000000000000000000000000000000 --- a/src/plugin/toptemplateclass7.cpp +++ /dev/null @@ -1,442 +0,0 @@ -#include "toptemplateclass7.h" -#include <QHBoxLayout> -#include <QLabel> -#include <QMenu> -#include <QPushButton> -#include <QTimer> -#include <QToolBar> -#include <QVBoxLayout> -#include <QWidget> -#include <tbaseutil/tdataresponse.h> -#include <tbaseutil/ttheme.h> -#include <tdatabaseutil/tsqlqueryv2.h> -#include <tdatabaseutil/tsqlconnectionpoolv2.h> -#include <topcore/topclasshelper.h> -#include <topcore/topclasssqlthread.h> -#include <topcore/topcore.h> -#include <twidget/taccordion.h> -#include <twidget/tpagetool.h> -#include <twidget/tsplitter.h> -#include <twidget/ttableview.h> -#include <twidget/tuiloader.h> -#include <twidget/taccordion.h> - -/*! - * \class TopTemplateClass7 - * \inmodule templateclass - * \brief 带ç›é€‰æ¡ä»¶ï¼Œè¯¦ç»†ä¿¡æ¯çš„æŠ¥è¡¨å±•ç¤ºã€‚æ”¯æŒæœç´¢ï¼Œå±•示详情 - */ - -TopTemplateClass7::TopTemplateClass7(const QString &iModuleNameStr, - const QVariantMap &iUrlPars, - QWidget *iParent) - : TopClassAbs(iParent) -{ - initModule(iModuleNameStr, iUrlPars); - QString licenseKey = config("sys_license_key").toString(); - if (!licenseKey.isEmpty()) { - setLicenseKey(licenseKey); - } - QStringList langLst = config("sys_lang_list").toStringList(); - for (const auto &lang : langLst) { - appendLanguage(lang); - } - if (isHookExists("afterModuleInit")) { - callHooks("afterModuleInit"); - } - TopClassHelper::parseTableConf0(this, "view", &mTableConf); - initUi(); - connect(this, SIGNAL(viewConfChanged()), - this, SLOT(onViewConfChanged())); - if (isHookExists("afterViewInit")) { - callHooks("afterViewInit"); - } - restoreSizeState(); - restoreObjectState(mBodySplitter); - restoreObjectState(mTableView); - refreshActionState(); - QTimer::singleShot(0, this, SLOT(refresh())); -} - -TopTemplateClass7::~TopTemplateClass7() -{ - saveSizeState(); - saveObjectState(mBodySplitter); - saveObjectState(mTableView); - if (isHookExists("onDestroy")) { - callHooks("onDestroy"); - } -} - -QString TopTemplateClass7::detailUid() const -{ - return mDetailUid; -} - -void TopTemplateClass7::setDetailUid(const QString &iUid, bool iForceRefresh) -{ - if (iForceRefresh || mDetailUid != iUid) { - mDetailUid = iUid; - emit detailUidChanged(iUid); - } -} - -QVariantList TopTemplateClass7::selectedItems() const -{ - return mSelectedItems; -} - -QVariantList TopTemplateClass7::selectedDataMaps() const -{ - return mTableView->selectedRowDataMaps(true); -} - -TTableView *TopTemplateClass7::tableView() -{ - return mTableView; -} - -/*! - * \brief TopTemplateClass7::refresh åˆ·æ–°æ•°æ® - * \param iResetPage 表示是å¦è¦é‡ç½®åˆ†é¡µ - */ -void TopTemplateClass7::refresh(bool iResetPage) -{ - TSqlSelectorV2 selector; - if (!mTableConf.dbSql.isEmpty()) { - selector.setTable(QString("(%1) _TEMP_TABLE_").arg(mTableConf.dbSql)); - } else if (!mTableConf.dbTableName.isEmpty()) { - selector.setTable(mTableConf.dbTableName); - // æœç´¢æ - QString searchSql = searchWhere(searchUiValues()); - if (!searchSql.isEmpty()) { - selector.addWhere(searchSql); - } - } else { - //db_sql为空和db_table_name为空时ä¸ä½œå¤„ç† - return; - } - selector.setField(mTableConf.queryFields); - selector.setFieldFormat(mTableConf.fieldFormatMap); - selector.setReturnRowCount(true); - // 分页 - TopClassHelper::handleSearchPageOnQuery(nullptr, mPageTool, iResetPage, &selector); - // æŽ’åº - TopClassHelper::handleOrderOnQuery(mTableView, &mTableConf, &selector); - // åªèŽ·å–æœ‰æ•ˆæ•°æ® - if (!mTableConf.dbDelFlagKey.isEmpty()) { - selector.addWhere(QString("%1 = 0 OR %1 IS NULL").arg(mTableConf.dbDelFlagKey)); - } - // 过滤项 - if(!mTableConf.dbFilter.isEmpty()) { - selector.addWhere(mTableConf.dbFilter); - } - - loading(ttr("Loading")); - QVariant data = doThreadWork(new TopClassSqlThread(this), TOPSQLTHREAD_SELECT_ARRAYMAP, QVariant::fromValue(selector)); - unloading(); - TDataResponse response(data.toMap()); - if (response.hasError()) { - alertError(ttr("Load data failed!")); - } else { - if (mPageTool != nullptr) { - mPageTool->setRowCount(response.dataCount(), true); - } - QVariantList tableData = response.data().toList(); - TopClassHelper::formatTableData(this, &mTableConf, tableData); - if (isHookExists("handleTableData")) { - tableData = callHooksQuick("handleTableData", QVariantList() << QVariant(tableData)).toVariant().toList(); - } - mTableView->loadData(tableData); - mSelectedItems.clear(); - setDetailUid(QString()); - alertOk(ttr("Data loaded")); - } -} - -/*! - * \brief TopTemplateClass7::refreshDetail åˆ·æ–°è¯¦æƒ…æ•°æ® - * \param iUid 详情id - */ -void TopTemplateClass7::refreshDetail(const QString &iUid) -{ - if (iUid.isEmpty()) { - mDetailUiLoader->loadValues(QVariantMap(), true); - return; - } - - TSqlSelectorV2 selector; - if (!mTableConf.dbSql.isEmpty()) { - selector.setTable(QString("(%1) _TEMP_TABLE_").arg(mTableConf.dbSql)); - } else { - selector.setTable(mTableConf.dbTableName); - } - selector.setWhere(mTableConf.primaryKey, iUid); - selector.setField(mTableConf.queryFields); - selector.setFieldFormat(mTableConf.fieldFormatMap); - TError err; - QVariant data = runSqlQueryOnThreadSync(TOPSQLTHREAD_SELECT_MAP, - QVariant::fromValue(selector), - &err); - if (err.isValid()) { - alertError(ttr("Load data failed!"), err.text()); - return; - } - QVariantMap dataMap = data.toMap(); - mDetailUiLoader->loadValues(dataMap, true); -} - -/*! - * \brief TopTemplateClass7::searchUiLoader - * \return æœç´¢ui控件 - */ -TUiLoader *TopTemplateClass7::searchUiLoader() -{ - return mSearchUiLoader; -} - -/*! - * \brief TopTemplateClass7::searchUiValues - * \return æœç´¢uiçš„æ•°æ® - */ -QVariantMap TopTemplateClass7::searchUiValues() -{ - return mSearchUiLoader->getAllValues().toVariant().toMap(); -} - -/*! - * \brief TopTemplateClass7::resetSearchUiLoader 清除æœç´¢uiçš„æ•°æ® - */ -void TopTemplateClass7::resetSearchUiLoader() -{ - mSearchUiLoader->clearValues(); -} - -/*! - * \brief TopTemplateClass7::detailUiLoader - * \return 详情ui控件 - */ -TUiLoader *TopTemplateClass7::detailUiLoader() -{ - return mDetailUiLoader; -} - -/*! - * \brief TopTemplateClass7::searchWhere - * \param iSearchMap - * \return æ ¹æ®iSearchMap组装æœç´¢sqlè¯å¥ - */ -QString TopTemplateClass7::searchWhere(const QVariantMap &iSearchMap) -{ - QString searchSql; - QMapIterator<QString, QVariant> iter(iSearchMap); - while (iter.hasNext()) { - iter.next(); - QString key = iter.key(); - QString value = iter.value().toString(); - if (value.isEmpty()) { - continue; - } - auto obj = mSearchUiLoader->getObject(key); - if (obj != nullptr) { - QVariantMap userData = obj->property("tui_user_data").toMap(); - if (userData.contains("field_name")) { - key = userData.value("field_name").toString(); - } - QString operatorStr = "="; - if (userData.contains("operator")) { - operatorStr = userData.value("operator").toString(); - } - if (operatorStr.compare("like", Qt::CaseInsensitive) == 0) { - value = QString("'%%1%'").arg(value); - } else if (operatorStr.compare("in", Qt::CaseInsensitive) == 0) { - value = QString("(%1)").arg(value); - } else { - if (iter.value().type() == QVariant::String) { - value = QString("'%1'").arg(value); - } - } - QString searchStr = QString("%1 %2 %3").arg(key).arg(operatorStr).arg(value); - if (!searchSql.isEmpty()) { - searchSql.append(" and "); - } - searchSql.append(searchStr); - } - } - return searchSql; -} - -void TopTemplateClass7::selectRow(const QString &iId) -{ - mTableView->selectRow(iId); -} - -/*! - * \brief TopTemplateClass7::onSelectionChanged 选ä¸ä¸€æ¡è¡¨æ ¼æ•°æ®ï¼Œè¯¦æƒ…idæ”¹å˜ - */ -void TopTemplateClass7::onSelectionChanged() -{ - mSelectedItems = mTableView->selectedPrimaryKeys(); - QString curId; - if (!mSelectedItems.isEmpty()) { - curId = mSelectedItems.first().toString(); - } - if (mDetailUid != curId) { - setDetailUid(curId); - } - refreshActionState(); -} - -/*! - * \brief TopTemplateClass7::onPageChanged å“åº”ç¿»é¡µæŽ§ä»¶çš„é¡µé¢æ”¹å˜ - */ -void TopTemplateClass7::onPageChanged() -{ - refresh(false); -} - -void TopTemplateClass7::onViewConfChanged() -{ - TopClassHelper::parseTableConf0(this, "view", &mTableConf); -} - -/*! - * \brief TopTemplateClass7::initUi åˆå§‹åŒ–ç•Œé¢ - */ -void TopTemplateClass7::initUi() -{ - mBodySplitter = new TSplitter(this); - mBodySplitter->setObjectName("mBodySplitter"); - setCentralWidget(mBodySplitter); - initSearchUiLoader(); - initTableView(); - initDetailUiLoader(); - - QString viewRatio = config("view_ratio").toString(); - QRegularExpression regExp("(?<search>\\d+):(?<tableview>\\d+):(?<detail>\\d+)"); - QRegularExpressionMatch match = regExp.match(viewRatio); - if (match.hasMatch()) { - double detailRatio = match.captured("search").toDouble() / - (match.captured("search").toDouble() + match.captured("tableview").toDouble() + match.captured("detail").toDouble()); - double tableviewRation = match.captured("tableview").toDouble() / - (match.captured("search").toDouble() + match.captured("tableview").toDouble() + match.captured("detail").toDouble()); - int width = this->width(); - int searchWidth = static_cast<int>(width * detailRatio); - int tableviewWidth = static_cast<int>(width * tableviewRation); - mBodySplitter->setSizes(QList<int>{ searchWidth, tableviewWidth , width-searchWidth-tableviewWidth}); - } -} - -void TopTemplateClass7::initSearchUiLoader() -{ - mSearchUiLoader = new TUiLoader(this); - mSearchUiLoader->setProperty("SS_BG", "PANEL"); - mSearchUiLoader->setSelf(this); - mSearchUiLoader->setScriptEngine(APP->scriptEngine()); - mSearchUiLoader->setUiStr(ui("search").toString()); - - QWidget *searchWidget = new QWidget(this); - searchWidget->setObjectName("__navi__"); - searchWidget->setMinimumWidth(TTHEME_DP(config("search.min_width", 150).toInt())); - searchWidget->setMaximumWidth(TTHEME_DP(config("search.max_width", 300).toInt())); - QVBoxLayout *searchLayout = new QVBoxLayout(searchWidget); - searchLayout->setMargin(0); - searchLayout->setSpacing(0); - QLabel *naviLabel = new QLabel(ttr("Navigation")); - naviLabel->setProperty("SS_TYPE", "SUBHEADER"); - if (QToolBar *toolbar = qobject_cast<QToolBar*>(uim()->getWidget("SEARCH_TOOLBAR"))) { - searchLayout->addWidget(toolbar, 0); - searchLayout->addSpacing(TTHEME_DP(4)); - } - searchLayout->addWidget(mSearchUiLoader, 1); - searchLayout->addStretch(1); - - if (config("search_ui_set.is_navi", 1).toBool()) { - TAccordion *accordion = new TAccordion(this); - accordion->setProperty("SS_BG","NAVI"); - accordion->setMinimumWidth(TTHEME_DP(config("navi.min_width", 150).toInt())); - accordion->setMaximumWidth(TTHEME_DP(config("navi.max_width", 300).toInt())); - accordion->setAccordionLocation(TAccordion::AccordionLocation::Left); - QVBoxLayout *naviLayout = new QVBoxLayout(accordion); - naviLayout->setMargin(0); - naviLayout->setSpacing(0); - naviLayout->addWidget(naviLabel, 0); - naviLayout->addSpacing(TTHEME_DP(4)); - naviLayout->addWidget(searchWidget); - accordion->expandButton()->setFixedHeight(TTHEME_DP(40)); - accordion->expandButton()->setToolTip(ttr("Show Navigation")); - accordion->collapseButton()->setToolTip(ttr("Hide Navigation")); - accordion->setIsExpanded(config("search_ui_set.navi_is_expand").toBool()); - mBodySplitter->insertWidget(0,accordion); - } else { - searchLayout->insertWidget(0, naviLabel); - searchLayout->addSpacing(TTHEME_DP(4)); - mBodySplitter->insertWidget(0, searchWidget); - } -} - -/*! - * \brief TopTemplateClass7::initDetailUiLoader åˆå§‹åŒ–详情ui - */ -void TopTemplateClass7::initDetailUiLoader() -{ - if (!ui("detail").toString().isEmpty()) { - QWidget *detailWidget = new QWidget(this); - QVBoxLayout *detailLayout = new QVBoxLayout(detailWidget); - detailLayout->setSpacing(0); - detailLayout->setMargin(0); - - if (QToolBar *toolbar = qobject_cast<QToolBar*>(uim()->getWidget("DETAIL_TOOLBAR"))) { - detailLayout->addWidget(toolbar, 0); - } - mDetailUiLoader = new TUiLoader(this); - mDetailUiLoader->setProperty("SS_BG", "PANEL"); - mDetailUiLoader->setSelf(this); - mDetailUiLoader->setScriptEngine(APP->scriptEngine()); - mDetailUiLoader->setUiStr(ui("detail").toString()); - detailLayout->addWidget(mDetailUiLoader); - mBodySplitter->addWidget(detailWidget); - connect(this, SIGNAL(detailUidChanged(QString)), - this, SLOT(refreshDetail(QString))); - } -} - -/*! - * \brief TopTemplateClass7::initTableView - */ -void TopTemplateClass7::initTableView() -{ - QWidget *centerWidget = new QWidget(this); - QVBoxLayout *centerLayout = new QVBoxLayout(centerWidget); - centerLayout->setMargin(0); - centerLayout->setSpacing(0); - mTableView = new TTableView(this); - mTableView->setObjectName("mTableView"); - mTableView->setDataKeyList(mTableConf.dataKeys); - mTableView->setPrimaryKey(mTableConf.primaryKey); - QVariantList headerItems = mTableConf.horizontalHeaders; - headerItems.prepend(QVariant()); - mTableView->setHeaderItem(headerItems); - - connect(mTableView->horizontalHeader(), SIGNAL(sortIndicatorChanged(int,Qt::SortOrder)), - this, SLOT(refresh())); - connect(mTableView->selectionModel(), SIGNAL(selectionChanged(QItemSelection,QItemSelection)), - this, SLOT(onSelectionChanged())); - if (QToolBar *toolbar = qobject_cast<QToolBar *>(uim()->getWidget("MAIN_TOOLBAR"))) { - centerLayout->addWidget(toolbar, 0); - } - centerLayout->addWidget(mTableView); - if (QMenu *menu = qobject_cast<QMenu *>(uim()->getWidget("TABLEVIEW_POPUP"))) { - mTableView->setContextMenu(menu); - } - - if (QToolBar *toolbar = qobject_cast<QToolBar*>(uim()->getWidget("BOTTOM_TOOLBAR"))) { - centerLayout->addWidget(toolbar, 0); - mPageTool = qobject_cast<TPageTool *>(uim()->getWidget("BOTTOM_TOOLBAR/PAGE_TOOL")); - if (mPageTool != nullptr) { - mPageTool->setPageSizeVisible(true); - connect(mPageTool, SIGNAL(pageChanged(int,int)), this, SLOT(onPageChanged())); - } - } - mBodySplitter->addWidget(centerWidget); -} diff --git a/src/plugin/toptemplateclass7.h b/src/plugin/toptemplateclass7.h deleted file mode 100644 index 96895967ca7282e8f5a7cbfb8a507e9652a8df0f..0000000000000000000000000000000000000000 --- a/src/plugin/toptemplateclass7.h +++ /dev/null @@ -1,56 +0,0 @@ -#ifndef TOPTEMPLATECLASS7_H -#define TOPTEMPLATECLASS7_H - -#include <topcore/topclassabs.h> -#include <topcore/topclasshelper.h> -#include <tdatabaseutil/tsqlselectorv2.h> - -class TSplitter; -class TTableView; -class TUiLoader; -class TPageTool; -class TopTemplateClass7 : public TopClassAbs -{ - Q_OBJECT -public: - explicit TopTemplateClass7(const QString &iModuleNameStr = QString(""), - const QVariantMap &iUrlPars = QVariantMap(), - QWidget *iParent = nullptr); - ~TopTemplateClass7(); -public slots: - QString detailUid() const; - void setDetailUid(const QString &iUid, bool iForceRefresh = false); - QVariantList selectedItems() const; - QVariantList selectedDataMaps() const; - TTableView *tableView(); - void refresh(bool iResetPage = true); - void refreshDetail(const QString &iUid); - TUiLoader *searchUiLoader(); - QVariantMap searchUiValues(); - void resetSearchUiLoader(); - TUiLoader *detailUiLoader(); - QString searchWhere(const QVariantMap &iSearchMap); - void selectRow(const QString &iId); -signals: - void detailUidChanged(const QString &iDetailUid); - void viewConfChanged(); -private slots: - void onSelectionChanged(); - void onPageChanged(); - void onViewConfChanged(); -private: - void initUi(); - void initSearchUiLoader(); - void initDetailUiLoader(); - void initTableView(); -private: - TSplitter *mBodySplitter = nullptr; - TUiLoader *mSearchUiLoader = nullptr; - TTableView *mTableView = nullptr; - TUiLoader *mDetailUiLoader = nullptr; - TPageTool *mPageTool = nullptr; - TopClassTableConf mTableConf; - QString mDetailUid; - QVariantList mSelectedItems; -}; -#endif // TOPTEMPLATECLASS7_H diff --git a/src/plugin/toptemplateclass_en.qm b/src/plugin/toptemplateclass_en.qm deleted file mode 100644 index ff327eff5f46d4140bebc9d1e409cd71a53692fb..0000000000000000000000000000000000000000 Binary files a/src/plugin/toptemplateclass_en.qm and /dev/null differ diff --git a/src/plugin/toptemplateclass_en.ts b/src/plugin/toptemplateclass_en.ts deleted file mode 100644 index cc3d187d1991135c5dc89cc09e43810a02b696ad..0000000000000000000000000000000000000000 --- a/src/plugin/toptemplateclass_en.ts +++ /dev/null @@ -1,147 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!DOCTYPE TS> -<TS version="2.1" language="en_US"> -<context> - <name>TopTemplateClass4</name> - <message> - <location filename="toptemplateclass4.cpp" line="555"/> - <source>Please select field:</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="toptemplateclass4.cpp" line="559"/> - <source>Clear selection</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="toptemplateclass4.cpp" line="562"/> - <source>Field</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="toptemplateclass4.cpp" line="611"/> - <location filename="toptemplateclass4.cpp" line="989"/> - <source>Save query criteria as file</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="toptemplateclass4.cpp" line="635"/> - <location filename="toptemplateclass4.cpp" line="993"/> - <source>Open query criteria from file</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="toptemplateclass4.cpp" line="637"/> - <source>Condition file(*%1)</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="toptemplateclass4.cpp" line="684"/> - <location filename="toptemplateclass4.cpp" line="997"/> - <source>Save as a common query</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="toptemplateclass4.cpp" line="701"/> - <source>Save as common condition</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="toptemplateclass4.cpp" line="701"/> - <source>This name already exists!</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="toptemplateclass4.cpp" line="918"/> - <source>Navigation</source> - <translation></translation> - </message> - <message> - <location filename="toptemplateclass4.cpp" line="923"/> - <source>Show Navigation</source> - <oldsource>Display Navigation</oldsource> - <translation></translation> - </message> - <message> - <location filename="toptemplateclass4.cpp" line="924"/> - <source>Hide Navigation</source> - <translation></translation> - </message> - <message> - <location filename="toptemplateclass4.cpp" line="943"/> - <source>Reset</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="toptemplateclass4.cpp" line="948"/> - <source>Filter</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="toptemplateclass4.cpp" line="976"/> - <source>Query</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="toptemplateclass4.cpp" line="980"/> - <source>Add</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="toptemplateclass4.cpp" line="981"/> - <source>Add query criteria</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="toptemplateclass4.cpp" line="984"/> - <source>Clear</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="toptemplateclass4.cpp" line="985"/> - <source>Clear all query criteria</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="toptemplateclass4.cpp" line="988"/> - <source>Save As</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="toptemplateclass4.cpp" line="992"/> - <source>Open</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="toptemplateclass4.cpp" line="996"/> - <source>Save</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="toptemplateclass4.cpp" line="1024"/> - <source>Query Name</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="toptemplateclass4.cpp" line="1030"/> - <source>Delete query</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="toptemplateclass4.cpp" line="1043"/> - <location filename="toptemplateclass4.cpp" line="1050"/> - <source>Advanced Query</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="toptemplateclass4.cpp" line="1044"/> - <source>Common Query</source> - <translation type="unfinished"></translation> - </message> - <message> - <location filename="toptemplateclass4.cpp" line="1049"/> - <source>Category</source> - <translation type="unfinished"></translation> - </message> -</context> -</TS> diff --git a/src/plugin/toptemplateclass_zhcn.qm b/src/plugin/toptemplateclass_zhcn.qm deleted file mode 100644 index e9b44038c795c484feda130816245ed179d6e1c1..0000000000000000000000000000000000000000 Binary files a/src/plugin/toptemplateclass_zhcn.qm and /dev/null differ diff --git a/src/plugin/toptemplateclass_zhcn.ts b/src/plugin/toptemplateclass_zhcn.ts deleted file mode 100644 index 3883c483854b78c275229ea4a187111afb5c9d87..0000000000000000000000000000000000000000 --- a/src/plugin/toptemplateclass_zhcn.ts +++ /dev/null @@ -1,147 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!DOCTYPE TS> -<TS version="2.1" language="zh_CN"> -<context> - <name>TopTemplateClass4</name> - <message> - <location filename="toptemplateclass4.cpp" line="555"/> - <source>Please select field:</source> - <translation>请选择æ¡ä»¶å—段:</translation> - </message> - <message> - <location filename="toptemplateclass4.cpp" line="559"/> - <source>Clear selection</source> - <translation>清除选择</translation> - </message> - <message> - <location filename="toptemplateclass4.cpp" line="562"/> - <source>Field</source> - <translation>å—æ®µ</translation> - </message> - <message> - <location filename="toptemplateclass4.cpp" line="611"/> - <location filename="toptemplateclass4.cpp" line="989"/> - <source>Save query criteria as file</source> - <translation>将查询æ¡ä»¶ä¿å˜ä¸ºæ–‡ä»¶</translation> - </message> - <message> - <location filename="toptemplateclass4.cpp" line="635"/> - <location filename="toptemplateclass4.cpp" line="993"/> - <source>Open query criteria from file</source> - <translation>打开查询æ¡ä»¶</translation> - </message> - <message> - <location filename="toptemplateclass4.cpp" line="637"/> - <source>Condition file(*%1)</source> - <translation>高级查询文件(*%1)</translation> - </message> - <message> - <location filename="toptemplateclass4.cpp" line="684"/> - <location filename="toptemplateclass4.cpp" line="997"/> - <source>Save as a common query</source> - <translation>ä¿å˜ä¸ºå¸¸ç”¨æŸ¥è¯¢</translation> - </message> - <message> - <location filename="toptemplateclass4.cpp" line="701"/> - <source>Save as common condition</source> - <translation>ä¿å˜ä¸ºå¸¸ç”¨æŸ¥è¯¢</translation> - </message> - <message> - <location filename="toptemplateclass4.cpp" line="701"/> - <source>This name already exists!</source> - <translation>åç§°å·²å˜åœ¨!</translation> - </message> - <message> - <location filename="toptemplateclass4.cpp" line="918"/> - <source>Navigation</source> - <translation>分类导航</translation> - </message> - <message> - <location filename="toptemplateclass4.cpp" line="923"/> - <source>Show Navigation</source> - <oldsource>Display Navigation</oldsource> - <translation>显示导航æ </translation> - </message> - <message> - <location filename="toptemplateclass4.cpp" line="924"/> - <source>Hide Navigation</source> - <translation>éšè—导航æ </translation> - </message> - <message> - <location filename="toptemplateclass4.cpp" line="943"/> - <source>Reset</source> - <translation>é‡ç½®</translation> - </message> - <message> - <location filename="toptemplateclass4.cpp" line="948"/> - <source>Filter</source> - <translation>æœç´¢</translation> - </message> - <message> - <location filename="toptemplateclass4.cpp" line="976"/> - <source>Query</source> - <translation>查询</translation> - </message> - <message> - <location filename="toptemplateclass4.cpp" line="980"/> - <source>Add</source> - <translation>æ·»åŠ </translation> - </message> - <message> - <location filename="toptemplateclass4.cpp" line="981"/> - <source>Add query criteria</source> - <translation>æ·»åŠ æŸ¥è¯¢æ¡ä»¶</translation> - </message> - <message> - <location filename="toptemplateclass4.cpp" line="984"/> - <source>Clear</source> - <translation>清除</translation> - </message> - <message> - <location filename="toptemplateclass4.cpp" line="985"/> - <source>Clear all query criteria</source> - <translation>清除全部查询æ¡ä»¶</translation> - </message> - <message> - <location filename="toptemplateclass4.cpp" line="988"/> - <source>Save As</source> - <translation>å¦å˜ä¸º</translation> - </message> - <message> - <location filename="toptemplateclass4.cpp" line="992"/> - <source>Open</source> - <translation>打开</translation> - </message> - <message> - <location filename="toptemplateclass4.cpp" line="996"/> - <source>Save</source> - <translation>ä¿å˜</translation> - </message> - <message> - <location filename="toptemplateclass4.cpp" line="1024"/> - <source>Query Name</source> - <translation>查询åç§°</translation> - </message> - <message> - <location filename="toptemplateclass4.cpp" line="1030"/> - <source>Delete query</source> - <translation>åˆ é™¤å¸¸ç”¨æŸ¥è¯¢</translation> - </message> - <message> - <location filename="toptemplateclass4.cpp" line="1043"/> - <location filename="toptemplateclass4.cpp" line="1050"/> - <source>Advanced Query</source> - <translation>高级查询</translation> - </message> - <message> - <location filename="toptemplateclass4.cpp" line="1044"/> - <source>Common Query</source> - <translation>常用查询</translation> - </message> - <message> - <location filename="toptemplateclass4.cpp" line="1049"/> - <source>Category</source> - <translation>分类</translation> - </message> -</context> -</TS> diff --git a/src/plugin/toptemplateclass_zhtw.qm b/src/plugin/toptemplateclass_zhtw.qm deleted file mode 100644 index e60ec0f719113fb23005a431078f9d4252c8d952..0000000000000000000000000000000000000000 Binary files a/src/plugin/toptemplateclass_zhtw.qm and /dev/null differ diff --git a/src/plugin/toptemplateclass_zhtw.ts b/src/plugin/toptemplateclass_zhtw.ts deleted file mode 100644 index 24ad43a37bd0f87fb7e5d7865ca2b70ab5804768..0000000000000000000000000000000000000000 --- a/src/plugin/toptemplateclass_zhtw.ts +++ /dev/null @@ -1,147 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!DOCTYPE TS> -<TS version="2.1" language="zh_CN"> -<context> - <name>TopTemplateClass4</name> - <message> - <location filename="toptemplateclass4.cpp" line="555"/> - <source>Please select field:</source> - <translation>è«‹é¸æ“‡æ¢ä»¶å—段:</translation> - </message> - <message> - <location filename="toptemplateclass4.cpp" line="559"/> - <source>Clear selection</source> - <translation>æ¸…é™¤é¸æ“‡</translation> - </message> - <message> - <location filename="toptemplateclass4.cpp" line="562"/> - <source>Field</source> - <translation>å—æ®µ</translation> - </message> - <message> - <location filename="toptemplateclass4.cpp" line="611"/> - <location filename="toptemplateclass4.cpp" line="989"/> - <source>Save query criteria as file</source> - <translation>將查詢æ¢ä»¶ä¿å˜ç‚ºæ–‡ä»¶</translation> - </message> - <message> - <location filename="toptemplateclass4.cpp" line="635"/> - <location filename="toptemplateclass4.cpp" line="993"/> - <source>Open query criteria from file</source> - <translation>打開查詢æ¢ä»¶</translation> - </message> - <message> - <location filename="toptemplateclass4.cpp" line="637"/> - <source>Condition file(*%1)</source> - <translation>高級查詢文件(*%1)</translation> - </message> - <message> - <location filename="toptemplateclass4.cpp" line="684"/> - <location filename="toptemplateclass4.cpp" line="997"/> - <source>Save as a common query</source> - <translation>ä¿å˜ç‚ºå¸¸ç”¨æŸ¥è©¢</translation> - </message> - <message> - <location filename="toptemplateclass4.cpp" line="701"/> - <source>Save as common condition</source> - <translation>ä¿å˜ç‚ºå¸¸ç”¨æŸ¥è©¢</translation> - </message> - <message> - <location filename="toptemplateclass4.cpp" line="701"/> - <source>This name already exists!</source> - <translation>å稱已å˜åœ¨!</translation> - </message> - <message> - <location filename="toptemplateclass4.cpp" line="918"/> - <source>Navigation</source> - <translation>分類導航</translation> - </message> - <message> - <location filename="toptemplateclass4.cpp" line="923"/> - <source>Show Navigation</source> - <oldsource>Display Navigation</oldsource> - <translation>顯示導航欄</translation> - </message> - <message> - <location filename="toptemplateclass4.cpp" line="924"/> - <source>Hide Navigation</source> - <translation>éš±è—導航欄</translation> - </message> - <message> - <location filename="toptemplateclass4.cpp" line="943"/> - <source>Reset</source> - <translation>é‡ç½®</translation> - </message> - <message> - <location filename="toptemplateclass4.cpp" line="948"/> - <source>Filter</source> - <translation>æœç´¢</translation> - </message> - <message> - <location filename="toptemplateclass4.cpp" line="976"/> - <source>Query</source> - <translation>查詢</translation> - </message> - <message> - <location filename="toptemplateclass4.cpp" line="980"/> - <source>Add</source> - <translation>æ·»åŠ </translation> - </message> - <message> - <location filename="toptemplateclass4.cpp" line="981"/> - <source>Add query criteria</source> - <translation>æ·»åŠ æŸ¥è©¢æ¢ä»¶</translation> - </message> - <message> - <location filename="toptemplateclass4.cpp" line="984"/> - <source>Clear</source> - <translation>清除</translation> - </message> - <message> - <location filename="toptemplateclass4.cpp" line="985"/> - <source>Clear all query criteria</source> - <translation>清除全部查詢æ¢ä»¶</translation> - </message> - <message> - <location filename="toptemplateclass4.cpp" line="988"/> - <source>Save As</source> - <translation>å¦å˜ç‚º</translation> - </message> - <message> - <location filename="toptemplateclass4.cpp" line="992"/> - <source>Open</source> - <translation>打開</translation> - </message> - <message> - <location filename="toptemplateclass4.cpp" line="996"/> - <source>Save</source> - <translation>ä¿å˜</translation> - </message> - <message> - <location filename="toptemplateclass4.cpp" line="1024"/> - <source>Query Name</source> - <translation>查詢å稱</translation> - </message> - <message> - <location filename="toptemplateclass4.cpp" line="1030"/> - <source>Delete query</source> - <translation>刪除常用查詢</translation> - </message> - <message> - <location filename="toptemplateclass4.cpp" line="1043"/> - <location filename="toptemplateclass4.cpp" line="1050"/> - <source>Advanced Query</source> - <translation>高級查詢</translation> - </message> - <message> - <location filename="toptemplateclass4.cpp" line="1044"/> - <source>Common Query</source> - <translation>常用查詢</translation> - </message> - <message> - <location filename="toptemplateclass4.cpp" line="1049"/> - <source>Category</source> - <translation>分類</translation> - </message> -</context> -</TS> diff --git a/src/plugin/toptemplateclassplugin.cpp b/src/plugin/toptemplateclassplugin.cpp deleted file mode 100644 index eb0a08cdd980ea18be275080e2cbe18839d6aa4b..0000000000000000000000000000000000000000 --- a/src/plugin/toptemplateclassplugin.cpp +++ /dev/null @@ -1,22 +0,0 @@ -#include "toptemplateclassplugin.h" -#include "toptemplateclass4.h" -QStringList TemplatePlugin::getClassList() -{ - QStringList classes{ - "TopTemplateClass4", - }; - return classes; -} - -TopClassAbs *TemplatePlugin::newClass(const QString &iClassName, - const QString &iModuleName, - const QVariantMap &iUrlPars) -{ - if (iClassName == QStringLiteral("TopTemplateClass4")) { - return new TopTemplateClass4(iModuleName, iUrlPars, nullptr); - } - else { - return nullptr; - } - -} diff --git a/test/.gitkeep b/test/.gitkeep deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000