From 08c54ae05e835cb09e86d4205ae0a1e0dfd1fd64 Mon Sep 17 00:00:00 2001 From: Anatoly Kopyl Date: Thu, 9 Apr 2020 14:58:17 +0300 Subject: [PATCH] Added a refresh feature --- start.lua | 65 ++++++++++++++++++++++++++++++++++--------------------- 1 file changed, 40 insertions(+), 25 deletions(-) diff --git a/start.lua b/start.lua index 1511eab..a8684f7 100755 --- a/start.lua +++ b/start.lua @@ -6,14 +6,14 @@ lfs = require('lfs') function to_pc(button) print(button:label()) if selected_device ~= '' then - os.execute('cp -r '..selected_path..'/. '..local_dir) + os.execute('cp -rv '..selected_path..'/. '..local_dir) end end function to_phone(button) print(button:label()) if selected_device ~= '' then - os.execute('cp -r '..local_dir..'/. '..selected_path) + os.execute('cp -rv '..local_dir..'/. '..selected_path) end end @@ -26,36 +26,59 @@ function input_choice_cb(_, ic) to_phone_btn:activate() end +function refresh_devices() + handle = io.popen('ls '..mount_point) + phone_dir_output = handle:read('*a') + handle:close() + + phone_dir = {} + for i in string.gmatch(phone_dir_output, '%S+') do + phone_dir[#phone_dir + 1] = i + end + + if win then + if #phone_dir == 0 then + device_choice:clear() + device_choice:deactivate() + to_pc_btn:deactivate() + to_phone_btn:deactivate() + else + device_choice:activate() + to_pc_btn:activate() + to_phone_btn:activate() + for i = 1, #phone_dir do + device_choice:add(phone_dir[i]) + end + end + end +end + selected_device = '' selected_path = '' my_dir = lfs.currentdir() local_dir = '/home/victoria/.config/StardewValley/Saves' mount_point = '/run/user/1000/gvfs' -handle = io.popen('ls '..mount_point) ---handle = io.popen('ls ~') -phone_dir_output = handle:read('*a') -handle:close() - -phone_dir = {} -for i in string.gmatch(phone_dir_output, '%S+') do - phone_dir[#phone_dir + 1] = i -end W, H = 320, 360 fl.visual('rgb') win = fl.double_window(W, H, 'Синхронизатор') win:color(fl.WHITE) ---fl.background(255, 255, 255) ---fl.set_font(1, ' Roboto') ---fl.font(1, 12) +icon_img = fl.png_image(my_dir..'/img/icon.png') +win:icon(icon_img) +fl.background(240, 240, 240) + bg_img = fl.png_image(my_dir..'/img/bg.png') bg_box = fl.box(1, 1, W, H) bg_box:image(bg_img) title = fl.box(0, 10, W, 30, 'Выберите устройство:') -ic = fl.input_choice(10, 50, W-20, 30) -ic:callback(input_choice_cb, ic) +refresh_img = fl.png_image(my_dir..'/img/refresh.png') +refresh_btn = fl.button(10, 50, 30, 30) +refresh_btn:callback(refresh_devices) +refresh_btn:image(refresh_img) +device_choice = fl.input_choice(50, 50, W-60, 30) +device_choice:callback(input_choice_cb, device_choice) to_pc_btn = fl.button(50, H/2, W-100, 30, 'На ПК') to_pc_btn:callback(to_pc) @@ -64,15 +87,7 @@ to_phone_btn = fl.button(50, H/2+40, W-100, 30, 'На телефон') to_phone_btn:callback(to_phone) to_phone_btn:deactivate() -if #phone_dir == 0 then - ic:deactivate() - to_pc_btn:deactivate() - to_phone_btn:deactivate() -else - for i = 1, #phone_dir do - ic:add(phone_dir[i]) - end -end +refresh_devices() win:done() win:show(arg[0], arg)