亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? restore.py

?? Progra,, das sehr viele Medien formate spielt und sehr bekannt ist.
?? PY
字號:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# restore.py
#  
#  Author: Laudeci Oliveira <laudeci@gmail.com>
#          Rafael Proen莽a   <cypherbios@ubuntu.com>
# 
#  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 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

from messageBox import MessageBox
import ProgressWindow
import apt_inst
import apt_pkg
import config
import gnomevfs
import gobject
import gtk
import gtk.glade
import metaPackage
import os
import pango
import pygtk
import shutil
import utilsimport msg
class restoreAptOnCd:
    
    def __init__(self, gladeFileName,mediaPath=""):
        self.formName = "frmRestoreCD"
        self.gladeFile = gtk.glade.XML(gladeFileName, self.formName)
        self.cursorManager = utils.cursorManager()
        self.mediaPath = mediaPath
        self.checkOldVersions = False
        
    def run(self):
        """This function will show the Create frmRestoreCD"""
        #Get the  dialog widget
        self.frmRestoreCD = self.gladeFile.get_widget(self.formName)
        self.frmRestoreCD.set_position(gtk.WIN_POS_CENTER)
        self.frmRestoreCD.set_modal(True)
        self.frmRestoreCD.set_sensitive(False)
        
        # ---- dictionary ----
        dic = { 'on_btnRestoreGo_clicked':self.on_btnRestoreGo_clicked }
        self.gladeFile.signal_autoconnect(dic)
        
        #Holds a Variable to use with progressWindos
        self.wProgress = None
        
        self.cmdRestoreGo = self.gladeFile.get_widget("btnRestoreGo")
        self.cmdCancel = self.gladeFile.get_widget("btnCancel")
        self.ckbtnOldVersions = self.gladeFile.get_widget("ckbtnOldVersions")
        self.ckbtnOldVersions.connect('toggled',self.on_ckbtnOldVersions_toggled)
        
        self.ckbtnAutoSelectDepends = self.gladeFile.get_widget('ckbtnAutoSelectDepends')

        self.comboBox = self.gladeFile.get_widget('drivesComboBox')
        
        ret = metaPackage.updatePackageCount(None,False)
        self.updateCountView(ret)
        
        self.createPackageViewList()
        ret = metaPackage.updatePackageCount(self.packageList)
        self.updateCountView(ret)
        
        self.frmRestoreCD.set_sensitive(True)
        result = self.frmRestoreCD.run()

        #we are done with the dialog, destory it
        self.frmRestoreCD.destroy()

        #return the result
        return     result
        
    def createDebFileList(self):
        #fileNames = [nFile for nFile in os.listdir(self.mediaPath) if nFile.endswith(".deb")]        recursive = utils.RecursiveSearch        fileNames = [nFile for nFile in recursive(self.mediaPath, "*.deb")]
        mLen = len(fileNames)
        self.wProgress.TaskLenght(mLen)
        for iIndex in range(mLen):
            #if '.deb' in fileName:
            self.wProgress.update(iIndex)
            iList = metaPackage.createNewItem(fileNames[iIndex],False, self.mediaPath)
            metaPackage.addNewListItem(self.packageList,iList)
        self.wProgress.Task(msg.MESSAGE_0045)
        metaPackage.uncheckMinorVersion(self.packageList)        
        ret = metaPackage.updatePackageCount(self.packageList)
        self.updateCountView(ret)
        if metaPackage.get_ErrorCount() > 0:
            if metaPackage.get_ErrorCount() >1:
                strMsg = msg.MESSAGE_0032 % metaPackage.get_ErrorCount()
            else:
                strMsg = msg.MESSAGE_0033 % metaPackage.get_ErrorCount()
                
            mReturn = MessageBox().ShowError(strMsg,self.frmRestoreCD)
        return
    
    def addListColumn(self, title, columnId, activatable = False):
        """This function adds a column to the list view.
        First it create the gtk.TreeViewColumn and then set
        some needed properties"""
        if activatable:
            cell = gtk.CellRendererToggle()
            cell.set_property('activatable', activatable)
            cell.connect('toggled',self.on_Column_toggled, self.packageList)
            column = gtk.TreeViewColumn(title, cell)
            column.add_attribute( cell, "active", 0)
        else :
            cell = gtk.CellRendererText()
            column = gtk.TreeViewColumn(title, cell, markup=config.LIST_CONTENTS)

        column.set_resizable(True)
        column.set_sort_column_id(columnId)
        self.packageView.append_column(column)
        
        return
    
    def createPackageViewList(self):
        #Get the listView from the widget Tree
        self.packageView = self.gladeFile.get_widget("tvwPackages")
        self.packageView.connect('row-activated',self.on_double_Click)
        self.cursorManager.setBusy(self.frmRestoreCD,True)
        self.packageView.set_sensitive(False)
        
        self.wProgress = ProgressWindow.AptOnCDProgressDialog(self.frmRestoreCD)
        self.wProgress.Title("APTonCD")
        self.wProgress.TaskTitle(msg.MESSAGE_0034)
        self.wProgress.Task(msg.MESSAGE_0002)
        self.wProgress.Description(msg.MESSAGE_0035)
        
        self.cursorManager.setBusy(self.wProgress,True)
        self.wProgress.isCancelEnabled(False)

        # filename, fullfilename with path, and a bool value
        # indicating if it is a custom deb file
        # stores deb information

        #changed to add the last param.. to show deb description
        self.packageList = gtk.ListStore(bool, str, bool, object, bool,bool)
        
        self.addListColumn('   ', 0,True)
        self.addListColumn('Package',1,False)
        
        #this will create a tooltip object    
        self.toolTip = gtk.Tooltips() 
        self.toolTip.set_tip(self.packageView, "")

        # this will turn searchable on
        self.packageView.set_enable_search(True)
        self.packageView.set_search_column(1)
        self.packageView.set_search_equal_func(utils.TreeViewSearch, None)

        # prepares list for drag and drop operations
        self.packageView.enable_model_drag_dest([('text/plain', 0, 0), ('text/uri-list', 0, 1)],
                        gtk.gdk.ACTION_DEFAULT | gtk.gdk.ACTION_MOVE)
        #packages events to show tooltips
        self.packageView.connect("motion-notify-event", utils.packageTooltip, self.toolTip, 1)
        
        # this will start the list sorted by name
        self.packageList.set_sort_column_id(1, gtk.SORT_ASCENDING)
        
        self.createDebFileList()
        # this will create the main list and store it in the view
        self.packageView.set_model(self.packageList)
        
        self.wProgress.destroy()
        
        self.packageView.connect("button_press_event", self.on_button_press_event)
        self.packageView.set_sensitive(True)
        self.cursorManager.setBusy(self.frmRestoreCD,False)
        return
    
    def updateCountView(self,value):
        self.gladeFile.get_widget("lblPackageList").set_text(value[0])
        self.gladeFile.get_widget("lblSelected").set_text(value[2])
        
    # Signals Handlers
    def on_double_Click(self, treeview, path, view_column):
        renderer = treeview.get_column(0).get_cell_renderers()[0]
        renderer.emit('toggled',path[0])
                
    def on_ckbtnOldVersions_toggled(self,widget):
        self.checkOldVersions = self.ckbtnOldVersions.get_active()
        

    def on_button_press_event(self, widget, event):
        if event.button == 3 and event.type == gtk.gdk.BUTTON_PRESS:
            c = utils.ContextMenu(self)
            c.addMenuItem(msg.MESSAGE_0036, self.on_checkAll)
            c.addMenuItem(msg.MESSAGE_0037, self.on_uncheckAll)
            c.addMenuItem("-")
            c.addMenuItem(msg.MESSAGE_0038, self.on_removePackage)
            c.addMenuItem("-")
            c.addMenuItem(msg.MESSAGE_0039, self.on_invertcheckAll)
            c.popup(None, None, None, event.button, event.get_time())
        return
    
    def checkUncheck(self,iType,path = None, model = None):
        self.cursorManager.setBusy(self.frmRestoreCD,True)
        
        if iType == 0:
            metaPackage.removePackage(self.packageView)
        elif iType == 1:
            metaPackage.checkAll(self.packageList,self.checkOldVersions)
        elif iType == 2:
            metaPackage.uncheckAll(self.packageList)
        elif iType == 3:
            metaPackage.invertcheckAll(self.packageList,self.checkOldVersions)
        elif iType == 4:
            metaPackage.Column_toggled(path,model,self.checkOldVersions)
            # if user wants, aptoncd will check dependets packages 
            if self.ckbtnAutoSelectDepends.get_active():
                if model[path][config.C_CHECKED]:
                    metaPackage.checkDepends(self.packageList,model[path][config.C_PKG].get_pkg_depends())
            
        ret =metaPackage.updatePackageCount(self.packageList)    
        self.updateCountView(ret)
        self.cursorManager.setBusy(self.frmRestoreCD,False)
    
    def on_removePackage(self, *args):
        self.checkUncheck(0)
        return
    
    def on_checkAll(self,*args):
        self.checkUncheck(1)
        return
    
    def on_uncheckAll(self,*args):
        self.checkUncheck(2)
        return
    
    def on_invertcheckAll(self,*args):
        self.checkUncheck(3)
        return
    
    def on_Column_toggled(self, cell, path, model):
        self.checkUncheck(4, path, model)
        cell.set_active(False)
        return
    
    def addMediaAsSource(self,*args):    	os.system("gksu --desktop /usr/share/applications/aptoncd.desktop 'synaptic --hide-main-window --ask-cdrom' &")       
    # Restore APTonCD
    def on_btnRestoreGo_clicked(self,*args):
        self.cmdRestoreGo.set_sensitive(False)
        self.cmdCancel.set_sensitive(False)	aptcache = config.LOCAL_APT_FOLDER
        if not utils.checkAccess(aptcache):
        	MessageBox().ShowError((msg.MESSAGE_0040))
        	return
        
        self.wProgress = ProgressWindow.AptOnCDProgressDialog(self.frmRestoreCD)
        self.wProgress.Title("APTonCD")
        self.wProgress.TaskTitle(msg.MESSAGE_0041)
        self.wProgress.Task(msg.MESSAGE_0002)
        self.wProgress.Description(msg.MESSAGE_0014)
        self.restoreAptOnCD()
        
        self.wProgress.destroy()
        
        self.cmdRestoreGo.set_sensitive(True)
        self.cmdCancel.set_sensitive(True)
        
    def restoreAptOnCD(self):
        errorMsg=""
        
        self.wProgress.show()
        
        iIndex = 0
       
        filesToCopy = [files for files in self.packageList if files[config.C_CHECKED]]
        self.wProgress.TaskLenght(len(filesToCopy)-1)
        
        for cds in filesToCopy:                    
            iIndex +=1
            self.wProgress.update(iIndex)
            
            pkg = cds[config.C_PKG]
            filedestination = os.path.join(config.LOCAL_APT_FOLDER  , pkg.get_pkg_FileName())
            
            if self.wProgress.cancel_status:
                errorMsg = msg.MESSAGE_0016
                break
                    
            pkg.copyTo(filedestination )
            self.wProgress.Task(msg.MESSAGE_0044 + pkg.get_pkg_FileName())
                
            
        if self.wProgress.cancel_status or len(errorMsg)>0:
            self.wProgress.hide()
        
        if len(errorMsg) > 0 :
            strMsg = msg.MESSAGE_0042
            mReturn = MessageBox().ShowInfo(strMsg,self.frmRestoreCD)
        else :
            mReturn = MessageBox().ShowInfo((msg.MESSAGE_0043))

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产不卡视频在线观看| 欧美成人性福生活免费看| 国产精品77777| 久草中文综合在线| 免费在线观看视频一区| 精品一区二区三区欧美| 久久精品国产99国产精品| 麻豆成人久久精品二区三区红 | 一区二区在线观看视频| 亚洲日本va午夜在线影院| 国产精品久久久久久户外露出| 国产欧美一区二区三区网站| 中文字幕亚洲电影| 夜夜夜精品看看| 午夜精品福利一区二区三区av | 国产精品久久网站| 国产精品麻豆99久久久久久| 国产精品美日韩| 亚洲一区二区三区在线| 舔着乳尖日韩一区| 精一区二区三区| av电影在线不卡| 欧美精品丝袜中出| 精品国一区二区三区| 国产精品久久久爽爽爽麻豆色哟哟 | 国产一区二区三区在线观看免费| 韩国v欧美v日本v亚洲v| 91伊人久久大香线蕉| 欧美日韩综合不卡| 久久色视频免费观看| 中文字幕制服丝袜成人av| 午夜精品久久久久久久久久久| 久久99国产精品麻豆| 色综合久久九月婷婷色综合| 日韩一区二区免费在线电影| 国产精品人人做人人爽人人添| 性感美女极品91精品| 国产成人在线观看| 6080亚洲精品一区二区| 国产精品传媒入口麻豆| 青青草97国产精品免费观看无弹窗版| 国产精品18久久久久| 欧美在线视频全部完| 国产午夜精品理论片a级大结局| 一区二区激情小说| 成人美女视频在线看| 69久久99精品久久久久婷婷| 中文字幕一区日韩精品欧美| 亚洲成人自拍一区| 91伊人久久大香线蕉| 国产清纯在线一区二区www| 日日夜夜免费精品| 色一情一伦一子一伦一区| 久久九九99视频| 久久黄色级2电影| 欧美狂野另类xxxxoooo| 亚洲女与黑人做爰| 成人高清视频在线| 国产色产综合产在线视频| 另类小说图片综合网| 欧美视频在线观看一区| 1024亚洲合集| www.日本不卡| 中文字幕av不卡| 国产精品资源网| 久久伊99综合婷婷久久伊| 日本特黄久久久高潮 | 奇米影视一区二区三区小说| 91国产丝袜在线播放| 综合电影一区二区三区| 高清视频一区二区| 亚洲国产高清aⅴ视频| 国产黄色成人av| 欧美经典一区二区| 国产91精品欧美| 国产精品免费久久| 91免费观看视频在线| 亚洲欧美一区二区三区久本道91| 成人黄动漫网站免费app| 国产精品传媒入口麻豆| 91视频免费播放| 尤物在线观看一区| 欧美日韩午夜在线| 日韩电影在线看| 欧美va亚洲va| 成人一级片网址| 最新久久zyz资源站| 91香蕉视频污在线| 午夜亚洲国产au精品一区二区| 欧美日韩黄色一区二区| 蜜臀av性久久久久蜜臀av麻豆| 2020日本不卡一区二区视频| 成人免费观看视频| 午夜精品一区二区三区电影天堂| 欧美一区二区久久| 成人午夜在线视频| 亚洲无人区一区| 精品福利一区二区三区| 成人国产一区二区三区精品| 亚洲影视资源网| 精品裸体舞一区二区三区| 成人av在线资源网站| 亚洲成人免费视| 久久久国产精品麻豆| 欧美特级限制片免费在线观看| 蜜桃久久久久久| 中文字幕乱码久久午夜不卡 | 亚洲嫩草精品久久| 欧美一级久久久| www.在线欧美| 麻豆精品在线观看| 亚洲欧洲在线观看av| 日韩西西人体444www| 91视频国产资源| 国产一区二区电影| 五月激情六月综合| 亚洲欧洲av一区二区三区久久| 欧美日韩久久一区| 成人av动漫网站| 麻豆成人91精品二区三区| 一个色妞综合视频在线观看| 久久久亚洲精品石原莉奈| 欧美日韩一区不卡| 从欧美一区二区三区| 日本美女一区二区三区视频| 国产精品久久久久久亚洲伦| 日韩一区二区三区四区| 在线欧美日韩国产| 国产成人福利片| 久久99久国产精品黄毛片色诱| 一区二区三区日韩| 国产精品美女久久久久久久网站| 日韩精品中文字幕一区| 日本韩国精品一区二区在线观看| 国产成人丝袜美腿| 国产一区二区不卡在线| 亚洲成人av资源| 亚洲自拍另类综合| 亚洲欧美电影院| 亚洲男人的天堂在线aⅴ视频| 国产欧美中文在线| 久久久精品综合| 久久久久久夜精品精品免费| 日韩女优av电影| 日韩欧美亚洲一区二区| 91精品国模一区二区三区| 欧美日韩视频专区在线播放| 欧美日韩一区二区在线视频| 91九色02白丝porn| 日本高清成人免费播放| 91精品福利视频| 欧美日韩午夜影院| 欧美日韩成人综合天天影院| 欧美日韩在线电影| 91精品国产综合久久久久| 欧美一区二区三区四区高清| 欧美一级高清片| 精品美女被调教视频大全网站| 精品国产伦一区二区三区观看方式| 日韩三级精品电影久久久| 精品裸体舞一区二区三区| 国产欧美视频一区二区三区| 国产欧美一区二区在线观看| 成人免费在线播放视频| 洋洋成人永久网站入口| 亚洲成va人在线观看| 欧美aaaaaa午夜精品| 国产高清在线精品| 色综合av在线| 7777女厕盗摄久久久| 26uuu国产在线精品一区二区| 久久久不卡影院| 亚洲永久免费av| 国内久久婷婷综合| 99在线精品观看| 欧美久久久影院| 久久日韩精品一区二区五区| 最新国产成人在线观看| 天天操天天色综合| 国产盗摄精品一区二区三区在线| 99精品1区2区| 欧美一区国产二区| 国产精品久久夜| 日韩激情一二三区| 成年人午夜久久久| 91精品欧美久久久久久动漫 | 国产三级欧美三级日产三级99| 1区2区3区欧美| 久久疯狂做爰流白浆xx| 成人免费不卡视频| 欧美日韩aaaaa| 国产精品国产三级国产| 秋霞成人午夜伦在线观看| 92国产精品观看| 久久综合九色综合欧美98| 亚洲综合自拍偷拍| 成人午夜免费电影| 欧美成人在线直播| 亚洲国产一区视频| 9色porny自拍视频一区二区|