diff --git a/Build/Sources/TypeScript/lowlevel/Resources/Public/TypeScript/QueryGenerator.ts b/Build/Sources/TypeScript/lowlevel/Resources/Public/TypeScript/QueryGenerator.ts
index f37ffe7b61fe276648cb12ed829c24fb59825a32..946149c035c0c28ee759dd46e2b4c9900c221e94 100644
--- a/Build/Sources/TypeScript/lowlevel/Resources/Public/TypeScript/QueryGenerator.ts
+++ b/Build/Sources/TypeScript/lowlevel/Resources/Public/TypeScript/QueryGenerator.ts
@@ -50,6 +50,15 @@ class QueryGenerator {
       const $field = $(e.currentTarget);
       this.addValueToField($field.data('field'), $field.val());
     });
+    this.form.on('change', '[data-assign-store-control-title]', (evt: JQueryEventObject): void => {
+      const $currentTarget = $(evt.currentTarget);
+      const $titleField = this.form.find('[name="storeControl\[title\]"]');
+      if ($currentTarget.val() !== '0') {
+        $titleField.val($currentTarget.find('option:selected').text());
+      } else {
+        $titleField.val('');
+      }
+    });
     (<NodeListOf<HTMLInputElement>>document.querySelectorAll('form[name="queryform"] .t3js-clearable')).forEach(
       (clearableField: HTMLInputElement) => clearableField.clearable({
         onClear: (): void => {
diff --git a/typo3/sysext/core/Classes/Database/QueryView.php b/typo3/sysext/core/Classes/Database/QueryView.php
index 8c1ccd0dda47d0a17d2bf58c111f680629b5a39c..07f8594a9822c6a52386e3aafa7a7d48ac17ef4b 100644
--- a/typo3/sysext/core/Classes/Database/QueryView.php
+++ b/typo3/sysext/core/Classes/Database/QueryView.php
@@ -45,16 +45,6 @@ class QueryView
      */
     public $storeList = 'search_query_smallparts,search_result_labels,labels_noprefix,show_deleted,queryConfig,queryTable,queryFields,queryLimit,queryOrder,queryOrderDesc,queryOrder2,queryOrder2Desc,queryGroup,search_query_makeQuery';
 
-    /**
-     * @var string
-     */
-    public $downloadScript = 'index.php';
-
-    /**
-     * @var int
-     */
-    public $formW = 48;
-
     /**
      * @var int
      */
@@ -173,9 +163,7 @@ class QueryView
         $markup[] = '<div class="load-queries">';
         $markup[] = '  <div class="form-inline">';
         $markup[] = '    <div class="form-group">';
-        $markup[] = '      <select class="form-control" name="storeControl[STORE]" onChange="document.forms[0]'
-            . '[\'storeControl[title]\'].value= this.options[this.selectedIndex].value!=0 '
-            . '? this.options[this.selectedIndex].text : \'\';">' . implode(LF, $opt) . '</select>';
+        $markup[] = '      <select class="form-control" name="storeControl[STORE]" data-assign-store-control-title>' . implode(LF, $opt) . '</select>';
         $markup[] = '      <input class="form-control" name="storeControl[title]" value="" type="text" max="80">';
         $markup[] = '      <input class="btn btn-default" type="submit" name="storeControl[LOAD]" value="Load">';
         $markup[] = '      <input class="btn btn-default" type="submit" name="storeControl[SAVE]" value="Save">';
@@ -546,8 +534,7 @@ class QueryView
                         . '</textarea>';
                     if (!$this->noDownloadB) {
                         $out .= '<br><input class="btn btn-default" type="submit" name="download_file" '
-                            . 'value="Click to download file" onClick="window.location.href=' . htmlspecialchars(GeneralUtility::quoteJSvalue($this->downloadScript))
-                            . ';">';
+                            . 'value="Click to download file">';
                     }
                     // Downloads file:
                     // @todo: args. routing anyone?
diff --git a/typo3/sysext/lowlevel/Resources/Public/JavaScript/QueryGenerator.js b/typo3/sysext/lowlevel/Resources/Public/JavaScript/QueryGenerator.js
index ec9717891181f01a987aabf26ea162e2b9759dc0..240ad496af761338f27873806042f2bf235bb0d0 100644
--- a/typo3/sysext/lowlevel/Resources/Public/JavaScript/QueryGenerator.js
+++ b/typo3/sysext/lowlevel/Resources/Public/JavaScript/QueryGenerator.js
@@ -10,4 +10,4 @@
  *
  * The TYPO3 project - inspiring people to share!
  */
-define(["require","exports","jquery","TYPO3/CMS/Backend/Input/Clearable"],(function(t,i,e){"use strict";return new class{constructor(){this.form=null,this.limitField=null,this.initialize()}initialize(){this.form=e('form[name="queryform"]'),this.limitField=e("#queryLimit"),this.form.on("click",".t3js-submit-click",t=>{t.preventDefault(),this.doSubmit()}),this.form.on("change",".t3js-submit-change",t=>{t.preventDefault(),this.doSubmit()}),this.form.on("click",'.t3js-limit-submit input[type="button"]',t=>{t.preventDefault(),this.setLimit(e(t.currentTarget).data("value")),this.doSubmit()}),this.form.on("click",".t3js-addfield",t=>{t.preventDefault();const i=e(t.currentTarget);this.addValueToField(i.data("field"),i.val())}),document.querySelectorAll('form[name="queryform"] .t3js-clearable').forEach(t=>t.clearable({onClear:()=>{this.doSubmit()}}))}doSubmit(){this.form.submit()}setLimit(t){this.limitField.val(t)}addValueToField(t,i){const e=this.form.find('[name="'+t+'"]'),l=e.val();e.val(l+","+i)}}}));
\ No newline at end of file
+define(["require","exports","jquery","TYPO3/CMS/Backend/Input/Clearable"],(function(t,i,e){"use strict";return new class{constructor(){this.form=null,this.limitField=null,this.initialize()}initialize(){this.form=e('form[name="queryform"]'),this.limitField=e("#queryLimit"),this.form.on("click",".t3js-submit-click",t=>{t.preventDefault(),this.doSubmit()}),this.form.on("change",".t3js-submit-change",t=>{t.preventDefault(),this.doSubmit()}),this.form.on("click",'.t3js-limit-submit input[type="button"]',t=>{t.preventDefault(),this.setLimit(e(t.currentTarget).data("value")),this.doSubmit()}),this.form.on("click",".t3js-addfield",t=>{t.preventDefault();const i=e(t.currentTarget);this.addValueToField(i.data("field"),i.val())}),this.form.on("change","[data-assign-store-control-title]",t=>{const i=e(t.currentTarget),l=this.form.find('[name="storeControl[title]"]');"0"!==i.val()?l.val(i.find("option:selected").text()):l.val("")}),document.querySelectorAll('form[name="queryform"] .t3js-clearable').forEach(t=>t.clearable({onClear:()=>{this.doSubmit()}}))}doSubmit(){this.form.submit()}setLimit(t){this.limitField.val(t)}addValueToField(t,i){const e=this.form.find('[name="'+t+'"]'),l=e.val();e.val(l+","+i)}}}));
\ No newline at end of file