From a05c2c0dbe7dd55c447bd48ec194517c6bc84686 Mon Sep 17 00:00:00 2001 From: Igor Timofeev Date: Mon, 9 Jan 2017 23:22:08 +0300 Subject: [PATCH] aefaef --- .DS_Store | Bin 18436 -> 18436 bytes Applications.txt | 19 ++-- Installer/Installer.lua | 3 +- MineOS/.DS_Store | Bin 20484 -> 20484 bytes MineOS/Icons/Trash.pic | Bin 0 -> 167 bytes MineOS/Languages/English.lang | 2 + MineOS/Languages/Russian.lang | 2 + MineOS/OS.lua | 180 ++++++++++++++++++---------------- lib/MineOSCore.lua | 3 +- 9 files changed, 117 insertions(+), 92 deletions(-) create mode 100755 MineOS/Icons/Trash.pic diff --git a/.DS_Store b/.DS_Store index 12863e33c8fe1a1deeb08fcdbaa31f43c4405ad9..3329ead79afd4a63d411ef867257504ba248d2cd 100644 GIT binary patch delta 507 zcmXYuO>9hI7=`bXi1|KlGk5x@b4^00qbep+sWc3Y)?(06wHR%+i0Rzh=C<=gXVhPJ z#?MG3O}>Umh$6&7LXAdQm9=G8RuWdMN!W0E$M${C$$4^4X_nF~ucAKnwfR_O#bp@ zYGF&=xF-pl5ox4Evfy0)Z`!JFlSV-%C!JhXY)17R!m#A=Ols85cz$!I-XV;H9GteN z3Qj&(J$CB5MS!RrO6Rj#m#I+A+TI#!FoR}~5GPhadMwMfL`!#iv-%O(oBphQ(Y|Xx zwO`tA?T_{sfn+^8LBg~Up`AU%*hd!!NN|Ls^poTir#VB4an5p%0!3!H#&ycvLUEr5 zJY=4iEb)%_s$4td3mrP#>(}FIzwtn7A>TdTjxEl3aR5wABxQ}b=3>*7)vRPpBO z6C>?((oLL$^t$nV3^2$rBQC(08}2YchVx8wkxN{m_z6Iw5v}$1BrR*_<<2wwdVjQ<|DGi#jVeoA#+xK32${F$zp~Hp)U_DxbJu%$Chk zk&QYJHeLq?shrN0rl*Z!rR;**Ox9wud|Hei%a$vLW{e_V>r-=noUe6KXv4ZLmLgjd zg|F6kS1k8M`X>F5eoDWj-_jrHF9^EOjUKq+MF2sBFoa!5U>LhGio-a9qe$Ttaxjp` zS{8&pH_hka;=l=F0$=!`%9LJGH1{2(29_KKLDHL!X7jfBkS;ckS zKn*v!%e%OTCEUj{9^o;b;3?jqjupJcJFE)db*<|vNHjX2_J+fQ_J3;YRyP0l!=ley Q9sLoWG8Cx?wa;z;06agQQ~&?~ diff --git a/Applications.txt b/Applications.txt index 5cda39be..a1c20aa2 100644 --- a/Applications.txt +++ b/Applications.txt @@ -8,7 +8,7 @@ about="IgorTimofeev/OpenComputers/master/MineOS/About/", type="Script", forceDownload=true, - version=3.39, + version=3.40, }, { name="MineOS/Pictures/Raspberry.pic", @@ -69,14 +69,14 @@ url="IgorTimofeev/OpenComputers/master/MineOS/Languages/Russian.lang", type="Script", forceDownload=true, - version=1.16, + version=1.17, }, { name="MineOS/System/OS/Languages/English.lang", url="IgorTimofeev/OpenComputers/master/MineOS/Languages/English.lang", type="Script", forceDownload=true, - version=1.16, + version=1.17, }, ----------------------------------------------------- Системные иконки -------------------------------------------------------------------------- @@ -240,6 +240,12 @@ type="Icon", version=1.0, }, + { + name="MineOS/System/OS/Icons/Trash.pic", + url="IgorTimofeev/OpenComputers/master/MineOS/Icons/Trash.pic", + type="Icon", + version=1.0, + }, ----------------------------------------------------- Библиотеки -------------------------------------------------------------------------- @@ -247,7 +253,7 @@ name="lib/MineOSCore.lua", url="IgorTimofeev/OpenComputers/master/lib/MineOSCore.lua", type="Library", - version=1.34, + version=1.35, }, { name="lib/advancedLua.lua", @@ -697,9 +703,8 @@ about="IgorTimofeev/OpenComputers/master/Applications/RayWalk/About/", type="Application", icon="IgorTimofeev/OpenComputers/master/Applications/RayWalk/Icon.pic", - createShortcut="dock", - forceDownload=true, - version=1.57, + createShortcut="desktop", + version=1.58, resources={ { name="Localization/Russian.lang", diff --git a/Installer/Installer.lua b/Installer/Installer.lua index b5d76f14..81cc936f 100644 --- a/Installer/Installer.lua +++ b/Installer/Installer.lua @@ -198,9 +198,8 @@ do language = data[1], dockShortcuts = { {path = "/MineOS/Applications/AppMarket.app"}, - {path = "/MineOS/Applications/RayWalk.app"}, - {path = "/MineOS/Applications/Photoshop.app"}, {path = "/MineOS/Applications/VK.app"}, + {path = "/MineOS/Applications/Photoshop.app"}, } } diff --git a/MineOS/.DS_Store b/MineOS/.DS_Store index e409f4b8eb7875c07ca7d21e414daac38bb2c7e1..8c5e2fd233804728868929b34f99b8f6e15d12c8 100644 GIT binary patch delta 188 zcmZo!z}T{YaYL@YsHw4~j)I}3L9LELwV{C-kYjFSKKZ|}_2#|$lNl#TrET73*vB~8 zMtB`=rIWuH32zQDQDoe#CEmig`KMU`<0dIhMzCi*YlH$4{2c8^!)YxB$u*J@^0s delta 205 zcmZo!z}T{YaYL@YsEL`8j)IYeajlL*wV{ELrH+D`iQ!~HYq80)CaRnF>Q825JheH{ z@H6A&H1%~H#)cL;3dR?dZuoxzRvl@&t4F$sfe55Jqz|Zf5cL$uhan+zwp=0Cd=i%_XbCqpPfc`E(z4tH2hZSqQWws5WW~zmp`ZQUanPLM^m6HTqIv{;RcEN1b79vL Xq2C1sp(>$9s= #_G.OSSettings.dockShortcuts).onTouch = function() + moveDockShortcut(iconIndex, 1) + end + menu:addItem(MineOSCore.localization.contextMenuMoveLeft, iconIndex <= 1).onTouch = function() + moveDockShortcut(iconIndex, -1) + end + menu:addSeparator() + menu:addItem(MineOSCore.localization.contextMenuRemoveFromDock, _G.OSSettings.dockShortcuts[iconIndex].canNotBeDeleted or #_G.OSSettings.dockShortcuts < 2).onTouch = function() + table.remove(_G.OSSettings.dockShortcuts, iconIndex) + MineOSCore.saveOSSettings() + updateDock() + workspace:draw() + buffer.draw() + end + menu:show() + end + + workspace.dockContainer:addChild(iconObject, GUI.objectTypes.container) + xPos = xPos + MineOSCore.iconWidth + sizes.xSpaceBetweenIcons + end + + local iconObject = MineOSCore.createIconObject(xPos, 1, MineOSCore.paths.trash, 0x000000, _G.OSSettings.showFileFormat) + iconObject.iconImage.image = MineOSCore.icons.trash + iconObject.onRightClick = function(iconObject, eventData) + local menu = GUI.contextMenu(eventData[3], eventData[4]) + menu:addItem(MineOSCore.localization.emptyTrash).onTouch = function() + local data = ecs.universalWindow("auto", "auto", 36, 0xeeeeee, true, + {"EmptyLine"}, + {"CenterText", 0x000000, MineOSCore.localization.areYouSure}, + {"EmptyLine"}, + {"Button", {0xAAAAAA, 0xffffff, "OK"}, {0x888888, 0xffffff, MineOSCore.localization.cancel}} + ) + + if data[1] == "OK" then + for file in fs.list(MineOSCore.paths.trash) do + fs.remove(MineOSCore.paths.trash .. file) + end + end + end + menu:show() + end + + workspace.dockContainer:addChild(iconObject, GUI.objectTypes.container) +end + +-- Отрисовка дока +local function createDock() + workspace.dockContainer = workspace:addContainer(1, 1, workspace.width, sizes.heightOfDock) + + -- Отрисовка дока + local oldDraw = workspace.dockContainer.draw + workspace.dockContainer.draw = function(dockContainer) + local currentDockTransparency, currentDockWidth, xPos, yPos = colors.dockBaseTransparency, dockContainer.width, dockContainer.x, dockContainer.y + 2 + local color = _G.OSSettings.interfaceColor or colors.interface + for i = 1, dockContainer.height do + buffer.text(xPos, yPos, color, "▟", currentDockTransparency) + buffer.square(xPos + 1, yPos, currentDockWidth - 2, 1, color, 0xFFFFFF, " ", currentDockTransparency) + buffer.text(xPos + currentDockWidth - 1, yPos, color, "▙", currentDockTransparency) + + currentDockTransparency, currentDockWidth, xPos, yPos = currentDockTransparency - colors.dockTransparencyAdder, currentDockWidth + 2, xPos - 1, yPos + 1 + end + + oldDraw(dockContainer) + end end local function changeResolution() @@ -336,88 +427,12 @@ local function changeResolution() workspace.iconField.localPosition.x = math.floor(workspace.width / 2 - (workspace.iconField.iconCount.width * (MineOSCore.iconWidth + sizes.xSpaceBetweenIcons) - sizes.xSpaceBetweenIcons) / 2) workspace.iconField.localPosition.y = 3 - workspace.desktopCounters.localPosition.y = workspace.height - sizes.heightOfDock - 2 - - workspace.dockContainer.width = (#_G.OSSettings.dockShortcuts * (MineOSCore.iconWidth + sizes.xSpaceBetweenIcons) - sizes.xSpaceBetweenIcons) + 2 - workspace.dockContainer.localPosition.x = math.floor(buffer.screen.width / 2 - workspace.dockContainer.width / 2) - workspace.dockContainer.localPosition.y = workspace.height - sizes.heightOfDock + 1 - workspace.menu.width = workspace.width workspace.background.width, workspace.background.height = workspace.width, workspace.height workspace.updateFileList(true) end --- Отрисовка дока -local function createDock() - workspace.dockContainer = workspace:addContainer(1, 1, workspace.width, sizes.heightOfDock) - workspace.dockContainer.updateFileList = function(dockContainer) - local function moveDockShortcut(iconIndex, direction) - _G.OSSettings.dockShortcuts[iconIndex], _G.OSSettings.dockShortcuts[iconIndex + direction] = swap(_G.OSSettings.dockShortcuts[iconIndex], _G.OSSettings.dockShortcuts[iconIndex + direction]) - MineOSCore.saveOSSettings() - dockContainer:updateFileList() - workspace:draw() - buffer.draw() - end - - -- Создание иконок дока - dockContainer:deleteChildren() - local xPos, yPos = 2, 1 - for iconIndex = 1, #_G.OSSettings.dockShortcuts do - local iconObject = MineOSCore.createIconObject(xPos, yPos, _G.OSSettings.dockShortcuts[iconIndex].path, 0x000000, showFileFormat) - - iconObject.onRightClick = function(iconObject, eventData) - local menu = GUI.contextMenu(eventData[3], eventData[4]) - menu:addItem(MineOSCore.localization.contextMenuShowContainingFolder, true).onTouch = function() - MineOSCore.safeLaunch(MineOSCore.paths.applications .. "Finder.app/Finder.lua", "open", fs.path(_G.OSSettings.dockShortcuts[iconIndex].path)) - dockContainer:updateFileList() - workspace:draw() - buffer.draw() - end - menu:addSeparator() - menu:addItem(MineOSCore.localization.contextMenuMoveRight, iconIndex >= #_G.OSSettings.dockShortcuts).onTouch = function() - moveDockShortcut(iconIndex, 1) - end - menu:addItem(MineOSCore.localization.contextMenuMoveLeft, iconIndex <= 1).onTouch = function() - moveDockShortcut(iconIndex, -1) - end - menu:addSeparator() - menu:addItem(MineOSCore.localization.contextMenuRemoveFromDock, _G.OSSettings.dockShortcuts[iconIndex].canNotBeDeleted or #_G.OSSettings.dockShortcuts < 2).onTouch = function() - table.remove(_G.OSSettings.dockShortcuts, iconIndex) - MineOSCore.saveOSSettings() - dockContainer:updateFileList() - workspace:draw() - buffer.draw() - end - menu:show() - end - - dockContainer:addChild(iconObject, GUI.objectTypes.container) - xPos = xPos + MineOSCore.iconWidth + sizes.xSpaceBetweenIcons - end - end - - -- Отрисовка дока - local oldDraw = workspace.dockContainer.draw - workspace.dockContainer.draw = function(dockContainer) - if #_G.OSSettings.dockShortcuts > 0 then - local currentDockTransparency, currentDockWidth, xPos, yPos = colors.dockBaseTransparency, dockContainer.width - 2, dockContainer.x, dockContainer.y + 2 - - for i = 1, sizes.heightOfDock do - buffer.text(xPos, yPos, _G.OSSettings.interfaceColor or colors.interface, "▟", currentDockTransparency) - buffer.square(xPos + 1, yPos, currentDockWidth, 1, _G.OSSettings.interfaceColor or colors.interface, 0xFFFFFF, " ", currentDockTransparency) - buffer.text(xPos + currentDockWidth + 1, yPos, _G.OSSettings.interfaceColor or colors.interface, "▙", currentDockTransparency) - - currentDockTransparency, currentDockWidth, xPos, yPos = currentDockTransparency - colors.dockTransparencyAdder, currentDockWidth + 2, xPos - 1, yPos + 1 - end - end - - oldDraw(dockContainer) - end - - return dockContainer -end - local function createWorkspace() workspace = windows.fullScreen() workspace.background = workspace:addPanel(1, 1, workspace.width, workspace.height, _G.OSSettings.backgroundColor or colors.background) @@ -482,35 +497,36 @@ local function createWorkspace() workspace.iconField.showFileFormat = not workspace.iconField.showFileFormat _G.OSSettings.showFileFormat = workspace.iconField.showFileFormat MineOSCore.saveOSSettings() - workspace:updateFileList() + workspace.updateFileList() end menu:addItem(workspace.iconField.showHiddenFiles and MineOSCore.localization.hideHiddenFiles or MineOSCore.localization.showHiddenFiles).onTouch = function() workspace.iconField.showHiddenFiles = not workspace.iconField.showHiddenFiles _G.OSSettings.showHiddenFiles = workspace.iconField.showHiddenFiles MineOSCore.saveOSSettings() - workspace:updateFileList() + workspace.updateFileList() end menu:addItem(MineOSCore.showApplicationIcons and MineOSCore.localization.hideApplicationIcons or MineOSCore.localization.showApplicationIcons).onTouch = function() MineOSCore.showApplicationIcons = not MineOSCore.showApplicationIcons + workspace.updateFileList() end menu:addSeparator() menu:addItem(MineOSCore.localization.sortByName).onTouch = function() _G.OSSettings.sortingMethod = "name" MineOSCore.saveOSSettings() workspace.iconField.sortingMethod = MineOSCore.sortingMethods.name - workspace:updateFileList() + workspace.updateFileList() end menu:addItem(MineOSCore.localization.sortByDate).onTouch = function() _G.OSSettings.sortingMethod = "date" MineOSCore.saveOSSettings() workspace.iconField.sortingMethod = MineOSCore.sortingMethods.date - workspace:updateFileList() + workspace.updateFileList() end menu:addItem(MineOSCore.localization.sortByType).onTouch = function() _G.OSSettings.sortingMethod = "type" MineOSCore.saveOSSettings() workspace.iconField.sortingMethod = MineOSCore.sortingMethods.type - workspace:updateFileList() + workspace.updateFileList() end menu:addSeparator() menu:addItem(MineOSCore.localization.screensaver).onTouch = function() @@ -602,7 +618,7 @@ local function createWorkspace() workspace.updateFileList = function(forceRedraw) workspace.iconField.fromFile = (currentDesktop - 1) * workspace.iconField.iconCount.total + 1 workspace.iconField:updateFileList() - workspace.dockContainer:updateFileList() + updateDock() updateDesktopCounters() workspace:draw() buffer.draw(forceRedraw) diff --git a/lib/MineOSCore.lua b/lib/MineOSCore.lua index 7a434787..aa796eca 100755 --- a/lib/MineOSCore.lua +++ b/lib/MineOSCore.lua @@ -206,6 +206,7 @@ function MineOSCore.loadStandartIcons() MineOSCore.loadIcon("archive", MineOSCore.paths.icons .. "Archive.pic") MineOSCore.loadIcon("model3D", MineOSCore.paths.icons .. "3DModel.pic") MineOSCore.loadIcon("application", MineOSCore.paths.icons .. "Application.pic") + MineOSCore.loadIcon("trash", MineOSCore.paths.icons .. "Trash.pic") end function MineOSCore.init() @@ -742,7 +743,7 @@ function MineOSCore.iconRightClick(icon, eventData) _G.clipboardCut = true computer.pushSignal("MineOSCore", "updateFileList") elseif action == MineOSCore.localization.contextMenuDelete then - fs.remove(icon.path) + fs.rename(icon.path, MineOSCore.paths.trash .. fs.name(icon.path)) computer.pushSignal("MineOSCore", "updateFileList") elseif action == MineOSCore.localization.contextMenuRename then ecs.rename(icon.path)