Makes quickopen work better when not having OpenSession list under the hood; makes filebrowser's project list be aligned right'
authorJulian Viereck <julian.viereck@gmail.com>
Sun, 09 Aug 2009 11:09:38 +0200
changeset 2687 859226f622f58c62af66dee1fe0175acd3016cff
parent 2686 8692f757f9a1c7cf0a5125659546b71619ec3b39
child 2688 9b66475afec0e72fcf268c5c8b259bab0d16d8e6
push id1133
push userkdangoor@mozilla.com
push dateSat, 19 Sep 2009 18:51:48 +0000
Makes quickopen work better when not having OpenSession list under the hood; makes filebrowser's project list be aligned right'
frontend/css/dashboard.css
frontend/css/dashboard_th.css
frontend/css/filemanager_th.css
frontend/css/quickopen_th.css
frontend/editor.html
frontend/images/quickopen/input_lost_focus.png
frontend/js/bespin/editor/filepopup.js
frontend/js/bespin/editor/quickopen.js
deleted file mode 100644
--- a/frontend/css/dashboard.css
+++ /dev/null
@@ -1,258 +0,0 @@
-body {
-    padding: 0;
-    margin: 0;
-    overflow: hidden;
-	background-color: #3d3b34;
-    -webkit-user-select: none;
-    -moz-user-select: none;
-}
-
-#header {
-    height: 32px;
-    background-image: url("../images/toolbar_sub_bg2.png");
-}
-
-#subheader {
-    height: 32px;
-    margin: 0;
-    padding: 0;
-    border: 0;
-    background-image: url("../images/toolbar_sub_bg.png");
-}
-
-#subheader img {
-    margin-top: 6px;
-    margin-right: 8px;
-}
-
-#content {
-    background: white;
-    position: absolute;
-    top: 63px;
-    bottom: 32px;
-    right: 0px;
-    left: 0px;
-    z-index: -1;
-}
-
-#projects {
-    float: left;
-    width: 181px;
-    background-color: #3d3b34;
-    position: absolute;
-    top: 0;
-    bottom: 0;
-    left: 0;
-}
-
-#project_header {
-    color: #FFF;
-    font-size: 10pt;
-    height: 18px;
-    padding-left: 8px;
-    padding-top: 2px;
-    background-image: url("../images/dash_column_hdr.gif");
-    background-repeat: no-repeat;
-}
-
-ul#projectlist {
-    list-style-type: none;
-    padding: 0;
-    margin: 0;
-}
-
-ul#projectlist li img {
-    float: right;
-    padding-right: 4px;
-    padding-top: 2px;
-}
-
-ul#projectlist li:hover {
-    cursor: pointer;
-}
-
-ul#projectlist li {
-    padding-left: 8px;
-    color: #eee;
-    font-size: 9pt;
-    padding-top: 2px;
-    height: 18px;
-    font-family: Tahoma;
-}
-
-li.deselected {
-    background-image: url("../images/dash_proj_bg_off.gif");
-}
-
-li.selected {
-    background-image: url("../images/dash_proj_bg_on.gif");
-}
-
-#team_header {
-    color: #FFF;
-    font-size: 10pt;
-    height: 18px;
-    padding-left: 8px;
-    padding-top: 2px;
-    background-image: url("../images/dash_column_hdr.gif");
-    background-repeat: repeat-x;
-}
-
-#sessions_header {
-    color: #FFF;
-    font-size: 10pt;
-    height: 18px;
-    margin-top: 30px;
-    padding-left: 8px;
-    padding-top: 2px;
-    background-image: url("../images/dash_column_hdr.gif");
-    background-repeat: no-repeat;          
-}
-
-ul#sessionslist {
-    list-style-type: none;
-    padding: 0;
-    margin: 0;
-}
-
-ul#sessionslist > li {
-    padding-left: 8px;
-    color: #eee;
-    font-size: 9pt;
-    padding-top: 2px;
-    font-family: Tahoma;
-    background-repeat: no-repeat;
-}
-
-ul#sessionslist li ul {
-    list-style-type: none;
-    padding-left: 15px;
-    background-image: none;
-}
-
-ul#sessionslist li ul li {
-    list-style-image: url("../images/files_icn_file.png");
-    list-style-position: inside;
-    background-image: none;
-    padding-top: 2px;
-}        
-
-#files {
-    position: absolute;
-    top: 64px;
-    bottom: 33px;
-    left: 181px;
-    width: 180px;
-    background-image: url("../images/zebra_files.png");
-    background-repeat: repeat-y;
-}
-
-#files ul {
-    list-style-type: none;
-    padding: 0;
-    margin: 0;
-}
-
-#files ul li {
-    list-style-image: url("../images/files_icn_file.png");
-    list-style-position: inside;
-    padding-left: 8px;
-    padding-top: 2px;
-}
-
-#files ul li a {
-    color: #eee;
-    font-size: 9pt;
-    font-family: Tahoma;
-    text-decoration: none;
-}
-
-#sessionslist ul li a {
-    color: #eee;
-    font-size: 9pt;
-    font-family: Tahoma;
-    text-decoration: none;
-}
-
-#graphs {
-    position: absolute;
-    top: 0;
-    bottom: 0;
-    left: 181px;
-    right: 200px;
-    background-color: #4c4a41;
-    border-left: 1px solid black;
-    border-right: 1px solid #65635d;
-}
-
-#team {
-    position: absolute;
-    top: 0;
-    bottom: 0;
-    right: 0;
-    float: right;
-    width: 200px;
-    background-color: #3d3b34;
-}
-
-#footer {
-    height: 28px;
-    background-image: url("../images/footer_bg.png");
-    background-repeat: repeat-x;
-    padding: 5px;
-    position: absolute;
-    bottom:0;
-    right: 0;
-    left: 0;
-}
-
-#bar {
-    border-left: 1px solid #312F2A;
-    border-right: 1px solid #626262;
-    margin: 4px 30px 0 0;
-    float: left;
-    width: 0;
-    height: 23px;
-}
-
-#status {
-    width: 10%;
-    height: 26px;
-    float: left;
-    margin: 6px 0 0 10px;
-    color: #DDDDDD;
-    font-family: Calibri, Arial, sans-serif;
-    font-size: 12pt;
-}
-
-#message {
-    font-size: 14px;
-    font-family: Calibri, Arial, sans-serif;
-    color: #777777;
-}
-
-#message a {
-    color: #777777;
-    text-decoration: none;
-}
-
-#footer_bar {
-    float: right;
-    border-left: 1px solid #312F2A;
-    border-right: 1px solid #626262;
-    margin: 5px 12px 0 14px;
-    width: 0;
-    height: 23px;
-}
-
-#error_bar {
-    float: right;
-    padding-top: 7px;
-}
-
-#error_bar_text {
-    font-size: 10pt;
-    font-family: Calibri, Arial, sans-serif;
-    color: #DDDDDD;
-    padding-left: 2px;
-}
\ No newline at end of file
deleted file mode 100644
--- a/frontend/css/dashboard_th.css
+++ /dev/null
@@ -1,115 +0,0 @@
-Splitter.horizontal {
-    border-left: 1px solid rgb(106, 105, 98);
-    border-right: 1px solid black;
-    background-image: -webkit-gradient(linear, left top, right top, from(#44423A), to(#3F3D36));
-}
-
-Splitter.vertical {
-    border-top: 1px solid rgb(73, 72, 66);
-    border-bottom: 1px solid black;
-    background-image: -webkit-gradient(linear, left top, left bottom, from(#32302A), to(#161613));
-}
-
-BespinSessionPanel {
-    padding: 5px;
-    border-top: 1px solid rgb(93, 91, 84);
-    border-left: 1px solid rgb(94, 91, 84);
-    border-bottom: 1px solid rgb(51, 49, 44);
-    border-right: 1px solid rgb(54, 52, 46);
-    background-color: rgb(61, 59, 52);
-}
-
-BespinSessionPanel Label.filename {
-    color: white;
-}
-
-BespinSessionPanel Label.path {
-    color: rgb(210, 210, 210);
-}
-
-BespinSessionPanel Label.opened {
-    color: rgb(160, 157, 147);
-}
-
-BespinSessionPanel Label.details {
-    color: rgb(160, 157, 147);
-}
-
-BespinSessionPanel Label.editTime {
-    color: rgb(160, 157, 147);
-}
-
-Splitter > Label {
-    color: white;
-    font: 9pt Tahoma;
-    padding-top: 4px;
-}
-
-/* this selects the project list in the horizontal tree */
-#htree-list-1 Label {
-    background-color: rgb(61, 59, 52);
-    border: 0;
-}
-
-#htree-list-1 Label.evenmore, #htree-list-1 Label.oddmore {
-    border-top: 1px solid rgb(75, 74, 67);
-    border-bottom: 1px solid rgb(41, 40, 35);
-    background-image: -webkit-gradient(linear, left top, left bottom, from(#3D3B34), to(#393730)), url(../images/dash_icn_more.png);
-    background-repeat: repeat-x, no-repeat;
-    background-position: left top, right center;
-    padding-top: 2px;
-    padding-bottom: 2px;
-}
-
-HorizontalTree {
-    background-color: rgb(61, 59, 52);
-}
-
-HorizontalTree Label {
-    font: 9pt Tahoma;
-    color: white;
-}
-
-HorizontalTree Label:active {
-    border-top: 1px solid rgb(180, 114, 30);
-    border-bottom: 1px solid rgb(162, 97, 19);
-    background-image: -webkit-gradient(linear, left top, left bottom, from(#AF6814), to(#DE8419));
-}
-
-HorizontalTree Label.evenmore:active, HorizontalTree Label.oddmore:active {
-    background-image: -webkit-gradient(linear, left top, left bottom, from(#AF6814), to(#DE8419)), url(../images/dash_icn_more.png);
-    background-repeat: repeat-x, no-repeat;
-    background-position: left top, right center;
-}
-
-#htree-list-1 Label.header {
-    border-bottom: black;
-    border-top: rgb(51, 50, 46);
-    background-image: -webkit-gradient(linear, left top, left bottom, from(#272621), to(#161613));
-}
-
-/* I need to support multiple classes per component; right now I don't, hence, this mess */
-HorizontalTree Label.evenmore, HorizontalTree Label.oddmore {
-    background-image: url(../images/dash_icn_more.png);
-    background-repeat: no-repeat;
-    background-position: right center;
-    padding-top: 3px;
-    padding-bottom: 1px;
-}
-
-HorizontalTree Label.even, HorizontalTree Label.odd {
-    padding-top: 3px;
-    padding-bottom: 1px;
-}
-
-HorizontalTree Label.even, HorizontalTree Label.evenmore {
-    background-color: rgb(76, 75, 65);
-    border-top: 1px solid rgb(76, 75, 65);  /* compensate for the selected border */
-    border-bottom: 1px solid rgb(76, 75, 65);  /* compensate for the selected border */
-}
-
-HorizontalTree Label.odd, HorizontalTree Label.oddmore {
-    background-color: rgb(83, 80, 71);
-    border-top: 1px solid rgb(83, 80, 71);  /* compensate for the selected border */
-    border-bottom: 1px solid rgb(83, 80, 71);  /* compensate for the selected border */ 
-}
\ No newline at end of file
deleted file mode 100644
--- a/frontend/css/filemanager_th.css
+++ /dev/null
@@ -1,86 +0,0 @@
-Splitter.horizontal {
-    border-left: 1px solid rgb(106, 105, 98);
-    border-right: 1px solid black;
-    background-image: -webkit-gradient(linear, left top, right top, from(#44423A), to(#3F3D36));
-}
-
-Splitter.vertical {
-    border-top: 1px solid rgb(73, 72, 66);
-    border-bottom: 1px solid black;
-    background-image: -webkit-gradient(linear, left top, left bottom, from(#32302A), to(#161613));
-}
-
-Splitter > Label {
-    color: white;
-    font: 9pt Tahoma;
-    padding-top: 4px;
-}
-
-/* this selects the project list in the horizontal tree */
-#htree-list-1 Label {
-    background-color: rgb(61, 59, 52);
-    border: 0;
-}
-
-#htree-list-1 Label.evenmore, #htree-list-1 Label.oddmore {
-    border-top: 1px solid rgb(75, 74, 67);
-    border-bottom: 1px solid rgb(41, 40, 35);
-    background-image: -webkit-gradient(linear, left top, left bottom, from(#3D3B34), to(#393730)), url(../images/dash_icn_more.png);
-    background-repeat: repeat-x, no-repeat;
-    background-position: left top, right center;
-    padding-top: 2px;
-    padding-bottom: 2px;
-}
-
-HorizontalTree {
-    background-color: rgb(61, 59, 52);
-}
-
-HorizontalTree Label {
-    font: 9pt Tahoma;
-    color: white;
-}
-
-HorizontalTree Label:active {
-    border-top: 1px solid rgb(180, 114, 30);
-    border-bottom: 1px solid rgb(162, 97, 19);
-    background-image: -webkit-gradient(linear, left top, left bottom, from(#AF6814), to(#DE8419));
-}
-
-HorizontalTree Label.evenmore:active, HorizontalTree Label.oddmore:active {
-    background-image: -webkit-gradient(linear, left top, left bottom, from(#AF6814), to(#DE8419)), url(../images/dash_icn_more.png);
-    background-repeat: repeat-x, no-repeat;
-    background-position: left top, right center;
-}
-
-#htree-list-1 Label.header {
-    border-bottom: black;
-    border-top: rgb(51, 50, 46);
-    background-image: -webkit-gradient(linear, left top, left bottom, from(#272621), to(#161613));
-}
-
-/* I need to support multiple classes per component; right now I don't, hence, this mess */
-HorizontalTree Label.evenmore, HorizontalTree Label.oddmore {
-    background-image: url(../images/dash_icn_more.png);
-    background-repeat: no-repeat;
-    background-position: right center;
-    padding-top: 3px;
-    padding-bottom: 1px;
-}
-
-HorizontalTree Label.even, HorizontalTree Label.odd {
-    padding-top: 3px;
-    padding-bottom: 1px;
-}
-
-HorizontalTree Label.even, HorizontalTree Label.evenmore {
-    background-color: rgb(76, 75, 65);
-    border-top: 1px solid rgb(76, 75, 65);  /* compensate for the selected border */
-    border-bottom: 1px solid rgb(76, 75, 65);  /* compensate for the selected border */
-}
-
-HorizontalTree Label.odd, HorizontalTree Label.oddmore {
-    background-color: rgb(83, 80, 71);
-    border-top: 1px solid rgb(83, 80, 71);  /* compensate for the selected border */
-    border-bottom: 1px solid rgb(83, 80, 71);  /* compensate for the selected border */ 
-}
\ No newline at end of file
--- a/frontend/css/quickopen_th.css
+++ b/frontend/css/quickopen_th.css
@@ -1,32 +1,36 @@
 #quickopen #input {
     font: 8pt Tahoma;
     color: black;
     selection-color: #C4A174;
     background-color: #CFCECC;
     
-    border-image: url(images/quickopen/input.png) 5 6 5 20 stretch stretch;
+    border-image: url(images/quickopen/input_lost_focus.png) 5 6 5 20 stretch stretch;
     border-width: 5px 6px 5px 20px;
     
     margin: 0px 5px 5px 5px;
 }
 
 #quickopen #project {
     font: 8pt Tahoma;
     color: black;
     selection-color: #C4A174;
     background-color: #CFCECC;
     
-    border-image: url(images/quickopen/input.png) 5 6 5 20 stretch stretch;
+    border-image: url(images/quickopen/input_lost_focus.png) 5 6 5 20 stretch stretch;
     border-width: 5px 6px 5px 20px;
     
     margin: 5px;
 }
 
+#quickopen #input:active, #quickopen #project:active {
+    border-image: url(images/quickopen/input.png) 5 6 5 20 stretch stretch;
+}
+
 #quickopen #list {
     border-top: 1px solid black;
     border-bottom: 1px solid;
     border-bottom-color: #8A857A;
     background-color: #D7D1C0;
 }
 
 #list Label {
--- a/frontend/editor.html
+++ b/frontend/editor.html
@@ -301,17 +301,17 @@
     </div>
     <div id="centerpopup" style="display:none;"></div>
     <div id="popup_insert_point"></div>
     <div id="quickopenContainer" style="display:none">
         <canvas id="quickopen" flowLayout="vertical" width="300" height="402">
             <input id="project" style="display:none">
             <input id="input" style="display:none">
             <list id="list" layoutData="1.0"></list>
-            <label id="label" text="Path to file..."></label>
+            <label id="label" text="Enter a filename part"></label>
         </canvas>
     </div>
 
     <div id="filesearchContainer" style="display:none;">
         <input id="filesearch_input_first" style="z-index: -100">
         <input id="filesearch_input_last" style="z-index: -100"><br>
 
         <canvas id="filesearch" flowLayout="vertical" width="500" height="167">
new file mode 100644
index 0000000000000000000000000000000000000000..3bd364f5f4f07539ad9ce12b314b8378ed5aeb74
GIT binary patch
literal 5025
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
--- a/frontend/js/bespin/editor/filepopup.js
+++ b/frontend/js/bespin/editor/filepopup.js
@@ -274,31 +274,27 @@ members: {
         this.scene = new th.Scene(this.canvas);
 
         // container for the scene
         var topPanel = new th.Panel({id: 'file_browser'});
 
         this.scene.root.add(topPanel);
 
         // create a scroll pane for the left column, and a top-level container to put in the scroll pane
-        var leftColumnContents = new th.Panel();
-        var leftColumnScrollPane = new th.ScrollPane({ splitter: true });
-        leftColumnScrollPane.add(leftColumnContents);
-        topPanel.add(leftColumnScrollPane);
-
         this.projects = new th.List({id: "project_list"});
         this.projects.getItemText = function(item) { return item.name; };
-        leftColumnContents.add(this.projects);
 
-        // and a preferred size
-        leftColumnContents.getPreferredSize = function() {
-            var width = 200;    // todo: tie into CSS sizer thingie
-            var height = this.children[0].getPreferredSize().height;
-            return { width: width, height: height };
-        };
+        var leftColumnScrollPane = new th.ScrollPane({ id: "project_scrollpane", splitter: true });
+        leftColumnScrollPane.add(this.projects);
+        leftColumnScrollPane.addCss("border-width", "1px 0px 1px 0px");
+        leftColumnScrollPane.addCss("overflow-x", "hidden");
+        leftColumnScrollPane.preferredWidth = 186;
+        leftColumnScrollPane.preferredHeight = 200;
+        
+        topPanel.add(leftColumnScrollPane);
 
         // the horizontal tree that will display the contents of a selected project
         this.tree = new exports.ActionTree({ id: "htree" , filePanel: this});
 
         this.tree.getItemText = this.projects.getItemText;
 
         this.configureActions();
 
--- a/frontend/js/bespin/editor/quickopen.js
+++ b/frontend/js/bespin/editor/quickopen.js
@@ -79,27 +79,22 @@ dojo.declare("bespin.editor.quickopen.AP
         bus.bind("itemselected", list, function(e) {
             this.label.text = e.item.filename;
             this.label.repaint();
         }, this);
 
         bus.bind("text:changed", input, function() {
             if (!this.currentProject) return;
 
-            if (this.input.text == '') {
-                // TODO: put in recent files
-                this.showFiles([]);
+            // the text has changed!
+            if (this.requestFinished) {
+                this.requestFinished = false;
+                bespin.get('server').searchFiles(this.currentProject, this.input.text, this.currentProjectInclude, this.displayResult);
             } else {
-                // the text has changed!
-                if (this.requestFinished) {
-                    this.requestFinished = false;
-                    bespin.get('server').searchFiles(this.currentProject, this.input.text, this.currentProjectInclude, this.displayResult);
-                } else {
-                    this.preformNewRequest = true;
-                }
+                this.preformNewRequest = true;
             }
         }, this);
 
         bus.bind("text:changed:newChar", inputProject, function() {
             if (!this.inputProject.text == '') {
                 var newText = this.inputProject.text.toLowerCase();
                 // the text has changed!
                 for (var i=0; i < this.projects.length; i++) {
@@ -116,22 +111,25 @@ dojo.declare("bespin.editor.quickopen.AP
             for (var i=0; i < this.projects.length; i++) {
                 if (this.projects[i].toLowerCase() == newText) {
                     this.setProject(this.projects[i]);
                     if (this.input.text == 'no such project') {
                         this.input.setText('', true);
                     }
                     // TODO: put in recent files
                     this.showFiles([]);
+                    this.label.text = 'Loading List...';
+                    bespin.get('server').searchFiles(this.currentProject, this.input.text, this.currentProjectInclude, this.displayResult);
                     return;
                 }
             }
             // there was no such project as typed => show this the to the user!
             this.input.setText('no such project', true);
             this.list.items = [];
+            delete this.list.selected;
             this.label.text = '';
             this.scene.render();
         }, this);
 
         bus.bind("focus:received", inputProject, function() { this.selectAll(); }, inputProject);
         bus.bind("focus:received", input       , function() { this.selectAll(); }, input);
 
         bespin.subscribe('ui:escape', dojo.hitch(this, function() {
@@ -203,18 +201,20 @@ dojo.declare("bespin.editor.quickopen.AP
         var quickopen = bespin.get('quickopen');
         var settings = bespin.get('settings');
         var lastFolder;
         var name;
         var path;
         var lastSlash;
         var file;
 
-        if (files === undefined) {
+        if (files === undefined || files.length == 0) {
             quickopen.list.items = [];
+            delete quickopen.list.selected;
+            quickopen.label.text = 'No File was found!';
             quickopen.scene.render();
             return;
         }
 
         for (var x = 0; x < files.length; x++) {
             file = files[x];
             lastSlash = file.lastIndexOf("/");
             path = (lastSlash == -1) ? "" : file.substring(0, lastSlash);