Skip to content

Commit

Permalink
trash issue and add watcher to opening directory
Browse files Browse the repository at this point in the history
  • Loading branch information
victoryang committed Apr 17, 2015
1 parent 6d0627f commit ef51bec
Show file tree
Hide file tree
Showing 3 changed files with 90 additions and 18 deletions.
86 changes: 71 additions & 15 deletions main.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,8 @@ var folder_view = require('my/folder_view');
var nav_panel = require('my/nav_panel');
var path = require('path');
var gui = require('nw.gui');
var xdg_trashdir = require('trash/node_modules/xdg-trash/node_modules/xdg-trashdir');
var xdg_trashdir = require('xdg-trashdir');
var trash = require('trash');
var fs = require('fs');

$(document).ready(function() {
Expand All @@ -33,6 +34,7 @@ $(document).ready(function() {

addressbar.on('navigate', function(dir) {
folder.open(dir);
addressbar.set(dir);
});

// TODO move to nav_panel.js
Expand All @@ -55,11 +57,61 @@ $(document).ready(function() {
// TODO move to separate files and maybe make better interface for menus.
var ctx_menu_click_callback_stub = function(target, item){
console.log("CTX Menu: Action [" + item + "] invoked on [" + target + "]");
switch (item) {
case 'Open':
folder.open(target);
addressbar.set(target);
break;
case 'New':

break;
case 'New Folder':
var cur_dir = addressbar.current_path;
var untitled = 'Untitled Folder';
var filename = path.join(cur_dir, untitled );
var filename2 = filename;
var count =2;
while (fs.existsSync(filename2)){
console.log(filename2);
filename2 = path.join(cur_dir, untitled.concat(' ',count++));
console.log(filename2);
}
fs.mkdir(filename2, function(err){
if(err) throw err;
addressbar.emit('navigate', cur_dir);
});
break;
case 'Delete':
trash([path.join(target)], function(err){
if (err) {
if (err = 'ENOTEMPTY') alert("ENOTEMPTY!");
throw err;
}
addressbar.emit('navigate', path.dirname(target));
});
break;
case 'Cut':break;
case 'Copy':break;
case 'Rename':
fs.rename(target,path.join(path.dirname(target),"New folder"),function(err){
if (err) {
throw err;
}
console.log("Rename successfully");
addressbar.emit('navigate',path.dirname(target));
});
break;
case 'Open Terminal':break;
case 'Properties':break;
case 'Folder Properties':break;
default:
break;
}
}

var file_ctx_menu = new gui.Menu();
file_ctx_menu.target = "none";
['Open', 'Delete', 'Cut', 'Copy','Properties']
['Open', 'Delete', 'Cut', 'Copy','Rename','Properties']
.forEach(function(item_name){
file_ctx_menu.append(
new gui.MenuItem({
Expand Down Expand Up @@ -109,19 +161,23 @@ $(document).ready(function() {
});

$("#Trash").on('click',function(){
xdg_trashdir(null, function(err, trash_dir){
if (err) {
console.log(err);
} else {
if (!fs.existsSync(trash_dir)) {
trash_dir = "<about:trash-empty>";
} else {
trash_dir = path.join(trash_dir, "files");
}
folder.open(trash_dir);
addressbar.set("Trash");
}
});
if (process.platform === 'linux') {
xdg_trashdir(null, function(err, trash_dir){
if (err) {
console.log(err);
} else {
if (!fs.existsSync(trash_dir)) {
trash_dir = "<about:trash-empty>";
} else {
trash_dir = path.join(trash_dir, "files");
}
folder.open(trash_dir);
addressbar.set("Trash");
}
});
} else if(process.platform === 'win32') {

};
});
});

19 changes: 17 additions & 2 deletions node_modules/my/folder_view.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 2 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
"filesize": "^3.1.2",
"jade": "^1.9.2",
"trash": "^1.4.1",
"underscore": "^1.8.3"
"underscore": "^1.8.3",
"xdg-trashdir": "^1.1.1"
}
}

0 comments on commit ef51bec

Please sign in to comment.