예제 #1
0
class ZBlogMediaStoragePrefSubPage(ZMediaStoragePrefSubPage):
    def __init__(self, parent, session):
        ZMediaStoragePrefSubPage.__init__(self, parent, session)

    # end __init__()

    def _createWidgets(self):
        self.overrideCB = wx.CheckBox(
            self, wx.ID_ANY,
            _extstr(u"storesubpage.OverrideAccountMediaStorageSetting"
                    ))  #$NON-NLS-1$

        self.panel = ZTransparentPanel(self, wx.ID_ANY)
        self._createStoreWidgets(self.panel)

    # end _createWidgets()

    def _bindWidgetEvents(self):
        ZMediaStoragePrefSubPage._bindWidgetEvents(self)
        self.Bind(wx.EVT_CHECKBOX, self.onOverrideCB, self.overrideCB)

    # end _bindWidgetEvents()

    def _populateWidgets(self):
        override = self._getSession().isOverrideMediaStorage()
        self.overrideCB.SetValue(override)
        self.panel.Enable(override)

        ZMediaStoragePrefSubPage._populateWidgets(self)

    # end _populateWidgets()

    def _layoutWidgets(self):
        panelBox = self._createStoreLayout()
        self.panel.SetSizer(panelBox)
        self.panel.SetAutoLayout(True)

        box = wx.BoxSizer(wx.VERTICAL)
        box.Add(self.overrideCB, 0, wx.TOP | wx.LEFT, 5)
        box.Add(self.panel, 1, wx.EXPAND | wx.ALL, 5)

        self.SetAutoLayout(True)
        self.SetSizer(box)
        self.Layout()

    # end layoutWidgets()

    def onOverrideCB(self, event):
        override = event.IsChecked()
        self.panel.Enable(override)
        self._getSession().setOverrideMediaStorage(override)
        event.Skip()
예제 #2
0
class ZTagSitesPrefSubPage(ZAccountPrefsSubPage):
    def __init__(self, parent, session):
        ZAccountPrefsSubPage.__init__(self, parent, session)

    # end __init__()

    def _createWidgets(self):
        self.overrideCB = wx.CheckBox(self, wx.ID_ANY,
                                      self._getOverrideTagSitesLabel())
        self.panel = ZTransparentPanel(self, wx.ID_ANY)

        self.staticBox = wx.StaticBox(
            self.panel, wx.ID_ANY,
            _extstr(u"tagsubpage.TagSites"))  #$NON-NLS-1$
        self.contentProvider = ZTagspaceListContentProvider()
        self.tagSites = ZCheckBoxListViewWithButtons(self.contentProvider,
                                                     self.panel, wx.ID_ANY)

    # end _createWidgets()

    def _getOverrideTagSitesLabel(self):
        return _extstr(u"tagsubpage.OverrideGlobalTagSettings")  #$NON-NLS-1$

    # end _getOverrideTagSitesLabel()

    def _bindWidgetEvents(self):
        self.Bind(wx.EVT_CHECKBOX, self.onOverrideCB, self.overrideCB)
        self.Bind(ZEVT_CHECKBOX_LIST_CHANGE, self.onCheckListChange,
                  self.tagSites)

    # end _bindWidgetEvents()

    def _populateWidgets(self):
        override = self._getSession().isOverrideTagSites()
        self.overrideCB.SetValue(override)
        self.panel.Enable(override)
        self.contentProvider.setSelectedTagSpaceUrls(
            self._getSession().getSelectedTagSites())
        self.tagSites.refresh()

    # end _populateWidgets()

    def _layoutWidgets(self):
        sbSizer = wx.StaticBoxSizer(self.staticBox, wx.VERTICAL)
        sbSizer.Add(self.tagSites, 1, wx.EXPAND | wx.ALL, 8)

        self.panel.SetSizer(sbSizer)
        self.panel.SetAutoLayout(True)

        box = wx.BoxSizer(wx.VERTICAL)
        box.Add(self.overrideCB, 0, wx.ALL | wx.EXPAND, 5)
        box.Add(self.panel, 1, wx.ALL | wx.EXPAND, 5)

        self.SetAutoLayout(True)
        self.SetSizer(box)
        self.Layout()

    # end layoutWidgets()

    def onOverrideCB(self, event):
        override = event.IsChecked()
        self._getSession().setOverrideTagSites(override)
        if override:
            sites = self.contentProvider.getSelectedTagSpaceUrls()
            self._getSession().setSelectedTagSites(sites)
        self._populateWidgets()
        event.Skip()

    # end onOverrideCB()

    def onCheckListChange(self, event):
        if self.overrideCB.IsChecked():
            sites = self.contentProvider.getSelectedTagSpaceUrls()
            self._getSession().setSelectedTagSites(sites)
        event.Skip()
예제 #3
0
class ZPublishingPrefSubPage(ZAccountPrefsSubPage):
    def __init__(self, parent, session):
        ZAccountPrefsSubPage.__init__(self, parent, session)

    # end __init__()

    def _createWidgets(self):
        self.overrideCB = wx.CheckBox(self, wx.ID_ANY,
                                      self._getOverrideLabel())

        self.panel = ZTransparentPanel(self, wx.ID_ANY)

        self.pubOptionsStaticBox = wx.StaticBox(
            self.panel, wx.ID_ANY,
            _extstr(u"pubsubpage.PublishingOptions"))  #$NON-NLS-1$
        self.poweredByCB = wx.CheckBox(
            self.panel, wx.ID_ANY,
            _extstr(u"pubsubpage.AddPoweredByZoundry"))  #$NON-NLS-1$
        self.removeNewLinesCB = wx.CheckBox(
            self.panel, wx.ID_ANY,
            _extstr(u"pubsubpage.RemoveNewLines"))  #$NON-NLS-1$

        self.imageUploadStaticBox = wx.StaticBox(
            self.panel, wx.ID_ANY,
            _extstr(u"pubsubpage.ImageUpload"))  #$NON-NLS-1$
        self.tnsOnlyCB = wx.CheckBox(
            self.panel, wx.ID_ANY,
            _extstr(u"pubsubpage.UploadTNsOnly"))  #$NON-NLS-1$
        self.forceUploadCB = wx.CheckBox(
            self.panel, wx.ID_ANY,
            _extstr(u"pubsubpage.ReUploadImages"))  #$NON-NLS-1$
        self.lightboxCB = wx.CheckBox(
            self.panel, wx.ID_ANY,
            _extstr(u"pubsubpage.AddLightbox"))  #$NON-NLS-1$

    # end _createWidgets()

    def _getOverrideLabel(self):
        return _extstr(u"pubsubpage.OverridePublishingSettings")  #$NON-NLS-1$

    # end _getOverrideLabel()

    def _bindWidgetEvents(self):
        self.Bind(wx.EVT_CHECKBOX, self.onOverrideCB, self.overrideCB)

        self.Bind(wx.EVT_CHECKBOX, self.onPoweredByCB, self.poweredByCB)
        self.Bind(wx.EVT_CHECKBOX, self.onRemoveNewLinesCB,
                  self.removeNewLinesCB)
        self.Bind(wx.EVT_CHECKBOX, self.onTnsOnlyCB, self.tnsOnlyCB)
        self.Bind(wx.EVT_CHECKBOX, self.onForceUploadCB, self.forceUploadCB)
        self.Bind(wx.EVT_CHECKBOX, self.onLightboxCB, self.lightboxCB)

    # end _bindWidgetEvents()

    def _populateWidgets(self):
        override = self._getSession().isOverridePublishingSettings()
        self.overrideCB.SetValue(override)
        self.panel.Enable(override)

        self.poweredByCB.SetValue(self._getSession().isAddPoweredByZoundry())
        self.removeNewLinesCB.SetValue(self._getSession().isRemoveNewLines())
        self.tnsOnlyCB.SetValue(self._getSession().isUploadThumbnailsOnly())
        self.forceUploadCB.SetValue(self._getSession().isForceReupload())
        self.lightboxCB.SetValue(self._getSession().isAddLightbox())

    # end _populateWidgets()

    def _layoutWidgets(self):
        panelBox = wx.BoxSizer(wx.VERTICAL)

        # pub options
        sbSizer = wx.StaticBoxSizer(self.pubOptionsStaticBox, wx.VERTICAL)
        internalBox = wx.BoxSizer(wx.VERTICAL)
        internalBox.Add(self.poweredByCB, 0, wx.EXPAND | wx.ALL, 2)
        internalBox.Add(self.removeNewLinesCB, 0, wx.EXPAND | wx.ALL, 2)
        sbSizer.AddSizer(internalBox, 0, wx.EXPAND | wx.ALL, 8)
        panelBox.Add(sbSizer, 0)

        # image upload
        sbSizer = wx.StaticBoxSizer(self.imageUploadStaticBox, wx.VERTICAL)
        internalBox = wx.BoxSizer(wx.VERTICAL)
        internalBox.Add(self.tnsOnlyCB, 0, wx.EXPAND | wx.ALL, 2)
        internalBox.Add(self.forceUploadCB, 0, wx.EXPAND | wx.ALL, 2)
        internalBox.Add(self.lightboxCB, 0, wx.EXPAND | wx.ALL, 2)
        sbSizer.AddSizer(internalBox, 0, wx.EXPAND | wx.ALL, 8)
        panelBox.Add(sbSizer, 0, wx.TOP, 8)

        self.panel.SetSizer(panelBox)
        self.panel.SetAutoLayout(True)

        box = wx.BoxSizer(wx.VERTICAL)
        box.Add(self.overrideCB, 0, wx.ALL, 5)
        box.Add(self.panel, 0, wx.ALL, 5)

        self.SetAutoLayout(True)
        self.SetSizer(box)
        self.Layout()

    # end layoutWidgets()

    def onOverrideCB(self, event):
        override = event.IsChecked()
        self._getSession().setOverridePublishingSettings(override)
        if override:
            self._getSession().setAddPoweredByZoundry(
                self.poweredByCB.IsChecked())
            self._getSession().setRemoveNewLines(
                self.removeNewLinesCB.IsChecked())
            self._getSession().setUploadThumbnailsOnly(
                self.tnsOnlyCB.IsChecked())
            self._getSession().setForceReupload(self.forceUploadCB.IsChecked())
            self._getSession().setAddLightbox(self.lightboxCB.IsChecked())
        self._populateWidgets()
        event.Skip()

    # end onOverrideCB()

    def onPoweredByCB(self, event):
        self._getSession().setAddPoweredByZoundry(event.IsChecked())
        event.Skip()

    # end onPoweredByCB()

    def onRemoveNewLinesCB(self, event):
        self._getSession().setRemoveNewLines(event.IsChecked())
        event.Skip()

    # end onRemoveNewLinesCB()

    def onTnsOnlyCB(self, event):
        self._getSession().setUploadThumbnailsOnly(event.IsChecked())
        event.Skip()

    # end onTnsOnlyCB()

    def onForceUploadCB(self, event):
        self._getSession().setForceReupload(event.IsChecked())
        event.Skip()

    # end onForceUploadCB()

    def onLightboxCB(self, event):
        self._getSession().setAddLightbox(event.IsChecked())
        event.Skip()
예제 #4
0
class ZProxyPreferencePage(ZApplicationPreferencesPrefPage):
    
    def __init__(self, parent):
        ZApplicationPreferencesPrefPage.__init__(self, parent)
    # end __init__()

    def createWidgets(self):
        self.staticBox = wx.StaticBox(self, wx.ID_ANY, _extstr(u"prefpage.general.proxy.name")) #$NON-NLS-1$
        
        self.enableCB = wx.CheckBox(self, wx.ID_ANY, _extstr(u"prefpage.general.proxy.enable")) #$NON-NLS-1$
        self.controlsPanel = ZTransparentPanel(self, wx.ID_ANY)
        self.hostLabel = wx.StaticText(self.controlsPanel, wx.ID_ANY, _extstr(u"prefpage.general.proxy.host")) #$NON-NLS-1$
        self.hostTxt = wx.TextCtrl(self.controlsPanel, wx.ID_ANY)
        self.portLabel = wx.StaticText(self.controlsPanel, wx.ID_ANY, _extstr(u"prefpage.general.proxy.port")) #$NON-NLS-1$
        flags = ZIntegerSelectionValidator.ALLOW_EMPTY | ZIntegerSelectionValidator.POSITIVE_ONLY
        self.portTxt = ZValidatingTextCtrl(ZIntegerSelectionValidator(flags=flags), self.controlsPanel, wx.ID_ANY)
        
        self.usernameLabel = wx.StaticText(self.controlsPanel, wx.ID_ANY, _extstr(u"prefpage.general.proxy.username")) #$NON-NLS-1$
        self.usernameTxt = wx.TextCtrl(self.controlsPanel, wx.ID_ANY)
        self.passwordLabel = wx.StaticText(self.controlsPanel, wx.ID_ANY, _extstr(u"prefpage.general.proxy.password")) #$NON-NLS-1$
        self.passwordTxt = wx.TextCtrl(self.controlsPanel, wx.ID_ANY, style=wx.TE_PASSWORD)
    # end createWidgets()

    def populateWidgets(self):
        enable = self.session.getUserPreferenceBool(IZAppUserPrefsKeys.PROXY_ENABLE, False) #$NON-NLS-1$
        self.enableCB.SetValue(enable)
        self.controlsPanel.Enable(enable)
        
        host = self.session.getUserPreference(IZAppUserPrefsKeys.PROXY_HOST, u"") #$NON-NLS-1$
        port = self.session.getUserPreferenceInt(IZAppUserPrefsKeys.PROXY_PORT, 0) #$NON-NLS-1$
        if not host:
            # get data from os registry
            proxy = getOSUtil().getProxyConfig()
            if proxy and proxy.isConfigured():
                host = proxy.getHost()            
                port = proxy.getPortInt()
        self.hostTxt.SetValue(host)        
        if port > 0:
            self.portTxt.SetValue( unicode(port) )
        username = self.session.getUserPreference(IZAppUserPrefsKeys.PROXY_USERNAME, u"") #$NON-NLS-1$
        self.usernameTxt.SetValue(username)

        cyppass = self.session.getUserPreference(IZAppUserPrefsKeys.PROXY_PASSWORD, u"") #$NON-NLS-1$
        cyppass = getNoneString(cyppass)
        if cyppass:
            password = crypt.decryptCipherText(cyppass, PASSWORD_ENCRYPTION_KEY)
            self.passwordTxt.SetValue(password)
    # end populateWidgets()

    def bindWidgetEvents(self):
        self.Bind(wx.EVT_CHECKBOX, self.onEnableCB, self.enableCB)
        self.Bind(wx.EVT_TEXT, self.onDataChanged, self.hostTxt)
        self.Bind(wx.EVT_TEXT, self.onDataChanged, self.portTxt)
        self.Bind(wx.EVT_TEXT, self.onDataChanged, self.usernameTxt)
        self.Bind(wx.EVT_TEXT, self.onPasswordChanged, self.passwordTxt)
    # end bindWidgetEvents()

    def layoutWidgets(self):        
        flexGridSizer = wx.FlexGridSizer(4, 2, 5, 5)
        flexGridSizer.AddGrowableCol(1)
        flexGridSizer.Add(self.hostLabel, 0, wx.ALIGN_RIGHT | wx.ALIGN_CENTER_VERTICAL | wx.LEFT, 5)
        flexGridSizer.Add(self.hostTxt, 0, wx.EXPAND | wx.RIGHT, 5)
        flexGridSizer.Add(self.portLabel, 0, wx.ALIGN_RIGHT | wx.ALIGN_CENTER_VERTICAL | wx.LEFT, 5)
        flexGridSizer.Add(self.portTxt, 0, wx.RIGHT, 5)
        flexGridSizer.Add(self.usernameLabel, 0, wx.ALIGN_RIGHT | wx.ALIGN_CENTER_VERTICAL | wx.LEFT, 5)
        flexGridSizer.Add(self.usernameTxt, 0, wx.EXPAND | wx.RIGHT, 5)
        flexGridSizer.Add(self.passwordLabel, 0, wx.ALIGN_RIGHT | wx.ALIGN_CENTER_VERTICAL | wx.LEFT, 5)
        flexGridSizer.Add(self.passwordTxt, 0, wx.EXPAND | wx.RIGHT, 5)     
        self.controlsPanel.SetAutoLayout(True)
        self.controlsPanel.SetSizer(flexGridSizer)
                 
        staticBoxSizer = wx.StaticBoxSizer(self.staticBox, wx.VERTICAL)
        staticBoxSizer.Add(self.enableCB, 0, wx.EXPAND | wx.ALL, 2)
        staticBoxSizer.Add(self.controlsPanel, 1, wx.EXPAND | wx.ALL, 2)

        sizer = wx.BoxSizer(wx.VERTICAL)
        sizer.AddSizer(staticBoxSizer, 1, wx.EXPAND | wx.ALL, 5)
        self.SetAutoLayout(True)
        self.SetSizer(sizer)
        self.Layout()
    # end layoutWidgets()
    
    def onDataChanged(self, event):
        if self.enableCB.GetValue():
            (h, p) = self._getHostPortFromUI()
            self.session.setUserPreference(IZAppUserPrefsKeys.PROXY_HOST, h)
            self.session.setUserPreference(IZAppUserPrefsKeys.PROXY_PORT, p)
            self.session.setUserPreference(IZAppUserPrefsKeys.PROXY_USERNAME, getSafeString(self.usernameTxt.GetValue()))
            self.onSessionChange()            
        event.Skip()
    # end  onDataChanged
    
    def onPasswordChanged(self, event):
        if self.enableCB.GetValue():
            s = getSafeString(self.passwordTxt.GetValue())
            if s:
                s = crypt.encryptPlainText(s, PASSWORD_ENCRYPTION_KEY)
            self.session.setUserPreference(IZAppUserPrefsKeys.PROXY_PASSWORD, s)            
            self.onSessionChange()            
        event.Skip()
    # end  onPasswordChanged   
           
    def onEnableCB(self, event):
        self.session.setUserPreference(IZAppUserPrefsKeys.PROXY_ENABLE, event.IsChecked())
        self.controlsPanel.Enable(event.IsChecked())
        self.onSessionChange()
        event.Skip()
    # end onDebugCB() 
    
    def _getHostPortFromUI(self):        
        host = getSafeString( self.hostTxt.GetValue() )
        port = getSafeString( self.portTxt.GetValue() )
        if host.lower().startswith(u"http"): #$NON-NLS-1$
            (scheme, netloc, path, query, fragment) = urlsplit(host, u"http") #$NON-NLS-1$ @UnusedVariable
            desHostPort = netloc.split(u":") #$NON-NLS-1$
            h = desHostPort[0]
            p = u"80" #$NON-NLS-1$
            if len(desHostPort) == 2:
                p = desHostPort[1]
            if scheme == u"ssl" and p == u"80": #$NON-NLS-1$ #$NON-NLS-2$
                p = u"443" #$NON-NLS-1$
            if h:
                host = h
            if not port and p:
                port = p
        return (host, port)
    # end _getHostPortFromUI
    
    def apply(self):
        # also set changes to the global value
        (h, p) = self._getHostPortFromUI()
        proxy = ZHttpProxyConfiguration()
        proxy.setEnable( self.enableCB.GetValue() )
        proxy.setHost( h )
        port = 8080
        try:
            port  = int( p )
        except:
            pass
        proxy.setPort( port )
        proxy.setProxyAuthorization( getSafeString(self.usernameTxt.GetValue()), getSafeString(self.passwordTxt.GetValue()) )
        return ZApplicationPreferencesPrefPage.apply(self)