⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 confirm_file_replace.py

📁 CoralFTP是一款用Python语言编写的工作在GTK2环境下的FTP客户端软件
💻 PY
字号:
#!/usr/bin/env python# -*- coding: utf-8 -*-# Copyright (C) 1994  Ling Li## This program is free software; you can redistribute it and/or modify# it under the terms of the GNU General Public License as published by# the Free Software Foundation; either version 2 of the License, or# (at your option) any later version.## This program is distributed in the hope that it will be useful,# but WITHOUT ANY WARRANTY; without even the implied warranty of# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the# GNU Library General Public License for more details.## You should have received a copy of the GNU General Public License# along with this program; if not, write to the Free Software# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.import gtkfrom gtk import *import osfrom coralftp_globals import *from utils import *RESPONSE_OVERWRITE = 1RESPONSE_RESUME = 2RESPONSE_SKIP = 3RESPONSE_RENAME = 4class ConfirmFileReplaceDialog(gobject.GObject):    __gsignals__ = {        'response' :        (gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE, (gobject.TYPE_INT,)),        }    __timeout_count = 30    def __init__(self, coralftp, dire, filename, size1, date1, size2, date2):        self.__gobject_init__()                self.coralftp = coralftp        self.__xml = get_glade_xml('confirm_file_replace')        self.__window = self.__xml.get_widget('confirm_file_replace')        self.__xml.signal_autoconnect(self)        self.__filename = filename        label = self.__xml.get_widget('label_filename')        label.set_text('This folder already contains a file named\n%s'                       % filename)        label = self.__xml.get_widget('label_fileinfo1')        label.set_text('%d bytes\n%s' % (size1, date1))        label = self.__xml.get_widget('label_fileinfo2')        label.set_text('%d bytes\n%s' % (size2, date2))                # if direction is upload resume and resume all is disabled        from transfer_view import TransferView        if dire == TransferView.DIRECTION_UP:            widget = self.__xml.get_widget('btn_resume')            widget.set_property('sensitive', FALSE)        #self.__tid = gtk.timeout_add(1000, self.on_timeout)    def destroy(self):        #if self.__tid:        #    gtk.timeout_remove(self.__tid)        self.__window.destroy()        return    def on_timeout(self):        self.__timeout_count = self.__timeout_count -1        label = self.__xml.get_widget('label_timeout')        label.set_text('Delay %d seconds before overwrite.'                       % self.__timeout_count)        if self.__timeout_count == 0:            self.__window.response(RESPONSE_OVERWRITE)            r = FALSE        else:            r = TRUE        return r    def on_response(self, obj, resp, *args):        if resp == RESPONSE_RENAME:            def on_dialog_response(dlg, resp1, *args):                value = dlg.value                dlg.destroy()                if resp1 == RESPONSE_OK and string.strip(value) != '' and value != None:                    self.new_name = d.value                return                        from general_input import GeneralInputDialog            d = GeneralInputDialog('Rename file',                                   'Please input new name of the file:',                                   self.__filename)            d.connect('response', on_dialog_response)            d.run()        if resp in (RESPONSE_CANCEL, RESPONSE_OK, RESPONSE_OVERWRITE,                    RESPONSE_RESUME, RESPONSE_SKIP, RESPONSE_CLOSE):            self.__window.set_modal(FALSE)            self.__window.hide()        self.emit('response', resp)        return        def run(self):        self.__window.show()        self.__window.set_modal(TRUE)        return    def __getattr__(self, name):        if name == 'ask_again':            widget = self.__xml.get_widget('cb_do_not_ask_again')            return not widget.get_property('active')        else:            raise AttributeError, namegobject.type_register(ConfirmFileReplaceDialog)def test_confirm_file_replace1():    gtk.idle_add(test_confirm_file_replace)    def test_confirm_file_replace():    gtk.threads_enter()    d = ConfirmFileReplaceDialog(None, 0, '1', 1, '', 1, '')    while TRUE:        resp = d.run()        if resp == RESPONSE_CANCEL:            d.destroy()            break        else:            print resp    gtk.threads_leave()if __name__ == '__main__':    gtk.threads_init()    count = 0    gtk.idle_add(test_confirm_file_replace1)    gtk.threads_enter()    gtk.main()    gtk.threads_leave()

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -