Beispiel #1
0
def noGitWarning(parent):
    """Raise a simpler warning dialog that the user needs to install git first"""
    dlg = wx.Dialog(parent=parent, style=wx.ICON_ERROR | wx.OK | wx.STAY_ON_TOP)

    errorBitmap = wx.ArtProvider.GetBitmap(
        wx.ART_ERROR, wx.ART_MESSAGE_BOX
    )
    errorBitmapCtrl = wx.StaticBitmap(dlg, -1)
    errorBitmapCtrl.SetBitmap(errorBitmap)

    msg = wx.StaticText(dlg, label=_translate("You need to install git to use Pavlovia projects"))
    link = wxhl.HyperlinkCtrl(dlg, url="https://git-scm.com/", style=wxhl.HL_CONTEXTMENU)
    OK = wx.Button(dlg, wx.ID_OK, label="OK")

    msgsSizer = wx.BoxSizer(wx.VERTICAL)
    msgsSizer.Add(msg, 1, flag=wx.ALIGN_RIGHT | wx.ALL | wx.EXPAND, border=5)
    msgsSizer.Add(link, 1, flag=wx.ALIGN_RIGHT | wx.ALL | wx.EXPAND, border=5)
    msgsAndIcon = wx.BoxSizer(wx.HORIZONTAL)
    msgsAndIcon.Add(errorBitmapCtrl, 0, flag=wx.ALIGN_RIGHT | wx.ALL, border=5)
    msgsAndIcon.Add(msgsSizer, 1, flag=wx.ALIGN_RIGHT | wx.ALL | wx.EXPAND, border=5)

    mainSizer = wx.BoxSizer(wx.VERTICAL)
    mainSizer.Add(msgsAndIcon, 0, flag=wx.ALIGN_RIGHT | wx.ALL, border=5)
    mainSizer.Add(OK, 0, flag=wx.ALIGN_RIGHT | wx.ALL, border=5)
    
    dlg.SetSizerAndFit(mainSizer)
    dlg.Layout()
    dlg.ShowModal()
Beispiel #2
0
    def __init__(self, parent, title, msg, urlMsg=None, url=None):
        """Create a ``UrlDialog``.

        :arg parent: ``wx`` parent object
        :arg title:  Dialog title
        :arg msg:    Message to display
        :arg urlMsg: Message to display next to the URL. Not shown if a URL
                     is not provided.
        :arg url:    URL to display.
        """

        wx.Dialog.__init__(self,
                           parent,
                           title=title,
                           style=wx.DEFAULT_DIALOG_STYLE)

        ok = wx.Button(self, label='Ok', id=wx.ID_OK)
        msg = wx.StaticText(self, label=msg)

        self.__ok = ok

        if urlMsg is not None:
            urlMsg = wx.StaticText(self, label=urlMsg)
        if url is not None:
            url = wxadv.HyperlinkCtrl(self, url=url)

        sizer = wx.BoxSizer(wx.VERTICAL)
        btnSizer = wx.BoxSizer(wx.HORIZONTAL)

        sizer.Add((1, 20), flag=wx.EXPAND, proportion=1)
        sizer.Add(msg, flag=wx.EXPAND | wx.LEFT | wx.RIGHT, border=20)
        sizer.Add((1, 20), flag=wx.EXPAND, proportion=1)

        if urlMsg is not None and url is not None:
            sizer.Add(urlMsg, flag=wx.EXPAND | wx.LEFT | wx.RIGHT, border=20)
            sizer.Add((1, 5), flag=wx.EXPAND, proportion=1)

        if url is not None:
            sizer.Add(url, flag=wx.EXPAND | wx.LEFT | wx.RIGHT, border=20)
            sizer.Add((1, 20), flag=wx.EXPAND, proportion=1)

        btnSizer.Add((20, 1), flag=wx.EXPAND, proportion=1)
        btnSizer.Add(ok, flag=wx.EXPAND)
        btnSizer.Add((20, 1), flag=wx.EXPAND)

        sizer.Add(btnSizer, flag=wx.EXPAND)
        sizer.Add((1, 20), flag=wx.EXPAND, proportion=1)

        ok.SetDefault()
        self.SetSizer(sizer)
        self.Layout()
        self.Fit()
Beispiel #3
0
    def __init__(self, parent, noTitle=False, style=wx.VSCROLL | wx.NO_BORDER):
        scrlpanel.ScrolledPanel.__init__(self, parent, -1, style=style)
        self.parent = parent
        self.app = self.parent.app
        self.currentProj = None
        self.noTitle = noTitle

        if not noTitle:
            self.title = wx.StaticText(parent=self,
                                       id=-1,
                                       label="",
                                       style=wx.ALIGN_CENTER)
            font = wx.Font(18, wx.DECORATIVE, wx.NORMAL, wx.BOLD)
            self.title.SetFont(font)
        self.url = wxhl.HyperlinkCtrl(
            parent=self,
            id=-1,
            label="https://osf.io",
            url="https://osf.io",
            style=wxhl.HL_ALIGN_LEFT,
        )
        self.description = wx.StaticText(
            parent=self,
            id=-1,
            label=_translate("Select a project for details"))
        self.tags = wx.StaticText(parent=self, id=-1, label="")
        self.visibility = wx.StaticText(parent=self, id=-1, label="")
        # layout
        self.sizer = wx.BoxSizer(wx.VERTICAL)
        if not noTitle:
            self.sizer.Add(self.title,
                           border=5,
                           flag=wx.ALL | wx.EXPAND | wx.ALIGN_CENTER)
        self.sizer.Add(self.url, border=5, flag=wx.ALL | wx.EXPAND)
        self.sizer.Add(self.tags, border=5, flag=wx.ALL | wx.EXPAND)
        self.sizer.Add(self.visibility, border=5, flag=wx.ALL | wx.EXPAND)
        self.sizer.Add(wx.StaticLine(self, -1, style=wx.LI_HORIZONTAL),
                       flag=wx.ALL | wx.EXPAND)
        self.sizer.Add(self.description, border=5, flag=wx.ALL | wx.EXPAND)
        self.SetSizer(self.sizer)
        self.SetupScrolling()
        self.Bind(wx.EVT_SIZE, self.onResize)
Beispiel #4
0
    def __init__(self, parent, task):
        wx.Panel.__init__(self, parent)

        # Variables
        self.task = task
        """
		task keys:
			id
			source : page URL
			setting : search settings
			folder : Saving folder
			complete
			title : video title
			filename : File path in local
		"""

        self.lastupdate = None
        self.lastsize = 0
        self.StopEvt = threading.Event()
        self.DelEvt = threading.Event()

        # UI
        self.Item = wx.BoxSizer(wx.VERTICAL)

        bSizer34 = wx.BoxSizer(wx.HORIZONTAL)

        self.m_panel6 = wx.Panel(self, wx.ID_ANY, wx.DefaultPosition,
                                 wx.Size(5, -1), wx.TAB_TRAVERSAL)
        self.m_panel6.SetBackgroundColour(wx.Colour(130, 192, 255))

        bSizer34.Add(self.m_panel6, 0, wx.EXPAND | wx.ALL, 0)

        self.SelectedChecker = wx.CheckBox(self, wx.ID_ANY, wx.EmptyString,
                                           wx.DefaultPosition, wx.DefaultSize,
                                           0)
        bSizer34.Add(self.SelectedChecker, 0, wx.ALL, 5)

        bSizer7 = wx.BoxSizer(wx.VERTICAL)

        bSizer19 = wx.BoxSizer(wx.HORIZONTAL)

        self.FileName = adv.HyperlinkCtrl(self, wx.ID_ANY, wx.EmptyString, '',
                                          wx.DefaultPosition, wx.DefaultSize,
                                          0 | wx.NO_BORDER)

        self.FileName.SetNormalColour(wx.Colour(48, 48, 48))
        self.FileName.SetFont(wx.Font(10, 70, 90, 92, False, wx.EmptyString))

        bSizer19.Add(self.FileName, 1, wx.ALL | wx.EXPAND, 5)

        self.m_button4 = wx.Button(self, wx.ID_ANY, u"Source",
                                   wx.DefaultPosition, wx.Size(-1, 24))
        bSizer19.Add(self.m_button4, 0, wx.ALIGN_CENTER | wx.ALL, 2)

        self.m_button41 = wx.Button(self, wx.ID_ANY, u"Resolve",
                                    wx.DefaultPosition, wx.Size(-1, 24))
        bSizer19.Add(self.m_button41, 0, wx.ALIGN_CENTER | wx.ALL, 2)

        self.m_button42 = wx.Button(self, wx.ID_ANY, u"Delete",
                                    wx.DefaultPosition, wx.Size(-1, 24))
        bSizer19.Add(self.m_button42, 0, wx.ALIGN_CENTER | wx.ALL, 2)

        bSizer7.Add(bSizer19, 1, wx.EXPAND, 5)

        self.ProgressBar = wx.Gauge(self, wx.ID_ANY, 100, wx.DefaultPosition,
                                    wx.Size(-1, 5), wx.GA_HORIZONTAL)
        bSizer7.Add(self.ProgressBar, 0, wx.ALIGN_CENTER | wx.ALL | wx.EXPAND,
                    5)

        bSizer6 = wx.BoxSizer(wx.HORIZONTAL)

        self.VideoSize = wx.StaticText(self, wx.ID_ANY, u"0B",
                                       wx.DefaultPosition, wx.DefaultSize, 0)
        self.VideoSize.Wrap(-1)
        bSizer6.Add(self.VideoSize, 1, wx.ALIGN_CENTER | wx.ALL, 5)

        self.TimeRemain = wx.StaticText(self, wx.ID_ANY, u"00:00:00",
                                        wx.DefaultPosition, wx.DefaultSize, 0)
        self.TimeRemain.Wrap(-1)
        bSizer6.Add(self.TimeRemain, 1, wx.ALL, 5)

        self.Spead = wx.StaticText(self,
                                   wx.ID_ANY, u"0B/s", wx.DefaultPosition,
                                   wx.Size(75, -1), wx.ALIGN_RIGHT)
        self.Spead.Wrap(-1)
        bSizer6.Add(self.Spead, 0, wx.ALL, 5)

        bSizer7.Add(bSizer6, 0, wx.EXPAND, 5)

        bSizer34.Add(bSizer7, 1, 0, 5)

        self.Item.Add(bSizer34, 1, wx.EXPAND, 5)

        self.m_staticline4 = wx.StaticLine(self, wx.ID_ANY, wx.DefaultPosition,
                                           wx.DefaultSize, wx.LI_HORIZONTAL)
        self.Item.Add(self.m_staticline4, 0, wx.EXPAND | wx.ALL, 0)

        self.Item.AddSpacer(5)
        self.SetSizer(self.Item)
        # Connect Events
        self.FileName.Bind(adv.EVT_HYPERLINK, self.checkExistance)
        self.m_button4.Bind(wx.EVT_BUTTON, self.OpenSource)
        self.m_button41.Bind(wx.EVT_BUTTON, self.Resolve)
        self.m_button42.Bind(wx.EVT_BUTTON, self.Delete)
Beispiel #5
0
    def __init__(self, *args, **kw):
        # ensure the parent's __init__ is called
        super(CCCMemberCardFrame, self).__init__(*args, **kw)

        # create a panel in the frame
        #pnl = wx.Panel(self)

        # and put some text with a larger bold font on it
        #st = wx.StaticText(pnl, label="Hello World!", pos=(25,25))
        #font = st.GetFont()
        #font.PointSize += 10
        #font = font.Bold()
        #st.SetFont(font)

        # create a button
        self.button_load_member_list = wx.Button(self,
                                                 label='1. Load Member List',
                                                 style=wx.BU_EXACTFIT)
        self.button_load_member_list.Bind(wx.EVT_BUTTON,
                                          self.OnButton_load_member_list)
        self.text_total_member = wx.StaticText(
            self, label="Number of member data records: TBD", pos=(0, 60))
        self.text_new_member = wx.StaticText(
            self,
            label="Number of members requiring new cards: TBD",
            pos=(0, 80))
        self.url_member_csv = adv.HyperlinkCtrl(
            self,
            label=
            "csv (table) file of info of members requiring new card: Not Generated",
            url='',
            pos=(0, 100))

        self.button_create_letter_and_card_file = wx.Button(
            self,
            label='2. Create Card and Letter File',
            pos=(0, 140),
            style=wx.BU_EXACTFIT)
        self.button_create_letter_and_card_file.Bind(
            wx.EVT_BUTTON, self.OnButton_create_letter_and_card_file)

        self.url_card_pdf = adv.HyperlinkCtrl(
            self,
            label="pdf file for card: Not Generated",
            url='',
            pos=(0, 200))

        self.url_letter_pdf = adv.HyperlinkCtrl(
            self,
            label="pdf file for letter: Not Generated",
            url='',
            pos=(0, 220))

        #file:///D:/proj/cccmembercard/output/2018-09-02_13_43_30/letter_to_print.pdf',
        self.button_update = wx.Button(
            self,
            label='3. Update Membership Card Last Sent Date To Website',
            pos=(0, 260),
            style=wx.BU_EXACTFIT)
        self.button_update.Bind(wx.EVT_BUTTON, self.OnButton_update_website)

        self.gauge_load_status = GaugeExt(self, pos=(200, 5), range=4)
        self.gauge_file_status = GaugeExt(self, pos=(200, 145), range=50)

        # add configuration information
        self.cfg_credential_file_link = adv.HyperlinkCtrl(
            self,
            label="credential file location: " +
            os.path.abspath('credential.json'),
            url='file://' + os.path.abspath('credential.json'),
            pos=(0, 40))

        # and a status bar
        self.CreateStatusBar()
        self.SetStatusText("Follow steps to print card. Click Step 1")
        self.cccmember = memberdata.CCCMemberData()
        self.output_dir_link = wx.StaticText(
            self,
            label="Output directory: " +
            os.path.abspath(self.cccmember.output_dir),
            pos=(0, 180))

        self.log_file_path = adv.HyperlinkCtrl(
            self,
            label="log file: " + os.path.abspath(self.cccmember.logging_path),
            url="file://" + os.path.abspath(self.cccmember.logging_path),
            pos=(0, 310))
Beispiel #6
0
    def __init__(self, parent):
        wx.Dialog.__init__(self,
                           parent,
                           -1,
                           _("Plugin Manager"),
                           size=(600, 440))
        self._parent = parent

        self._manager = parent._app.plugins
        self.olditems = {}
        self.restart = []
        self.tempdir = wx.StandardPaths.Get().GetTempDir()

        self.listbox = HtmlListBox(self)
        self.listbox.SetDropTarget(PluginDropTarget(self))
        for i in range(len(self._manager.names)):
            if self._manager.states[i] < 3 or self._manager.states[i] == 6:
                root = ElementTree.parse(
                    os.path.join(parent._app.userdatadir, "plugins",
                                 self._manager.names[i],
                                 "plugin.xml")).getroot()
            else:
                root = ElementTree.parse(
                    os.path.join(
                        self.tempdir,
                        self._manager.tempdirs[self._manager.names[i]],
                        "plugin.xml")).getroot()
            text = "<font><b>%s</b> %s<br>%s</font><div align=right>" % (
                root[0].text, root[1].text, root[2].text)
            if self._manager.states[i] < 6:
                if self._manager.enabled[i]:
                    if hasattr(self._manager.plugins[i], "OnOptions"):
                        text += _("<a href='%s;0'>Options</a> "
                                  ) % self._manager.names[i]
                    text += _(
                        "<a href='%s;1'>Disable</a> ") % self._manager.names[i]
                else:
                    text = text.replace("<font>", "<font color=gray>").replace(
                        "<br>", _(" (disabled)<br>"))
                    text += _(
                        "<a href='%s;2'>Enable</a> ") % self._manager.names[i]
                text += _("<a href='%s;3'>Remove</a>"
                          ) % self._manager.names[i] + " </div>"
            if 1 <= self._manager.states[i] <= 5:
                self.olditems[self._manager.names[i]] = text
                if self._manager.states[i] == 1:
                    text2 = _(
                        "<font color=gray>This plugin will be disabled when you restart Write++. <a href=';4'>Restart&nbsp;Now</a> <a href='%s;5'>Undo</a></font><br>"
                    ) % self._manager.names[i]
                    text = text2 + text[:text.index("<div align=right>")]
                elif self._manager.states[i] == 2:
                    text2 = _(
                        "<font color=green>This plugin will be enabled when you restart Write++. <a href=';4'>Restart&nbsp;Now</a> <a href='%s;5'>Undo</a></font><br>"
                    ) % self._manager.names[i]
                    text = text2 + text[:text.index("<div align=right>")]
                elif self._manager.states[i] == 3:
                    text = _(
                        "<font color=gray><b>%s</b> has been removed. <a href=';4'>Restart&nbsp;Now</a> <a href='%s;5'>Undo</a></font>"
                    ) % (root[0].text, self._manager.names[i])
                else:
                    text = _(
                        "<font color=gray><b>%s</b> has been removed. <a href='%s;5'>Undo</a></font>"
                    ) % (root[0].text, self._manager.names[i])
            elif self._manager.states[i] == 6:
                text2 = _(
                    "<font color=green>This plugin will be installed when you restart Write++. <a href=';4'>Restart&nbsp;Now</a> <a href='%s;5'>Undo</a></font><br>"
                ) % self._manager.names[i]
                text = text2 + text[:text.index("<div align=right>")]
            self.listbox.items.append(text)
            self.restart.append(root[3].text == "True")
        self.listbox.SetItemCount(len(self.listbox.items))
        self.install = adv.HyperlinkCtrl(self,
                                         -1,
                                         _("Install plugin from file..."),
                                         "",
                                         style=wx.NO_BORDER
                                         | adv.HL_ALIGN_LEFT)
        self.close = wx.Button(self, wx.ID_CLOSE)

        sizer = wx.BoxSizer(wx.VERTICAL)
        sizer.Add(self.listbox, 1, wx.ALL | wx.EXPAND, 2)
        sizer2 = wx.BoxSizer(wx.HORIZONTAL)
        sizer2.Add(self.install, 1, wx.ALIGN_CENTER_VERTICAL)
        sizer2.Add(self.close, 0, wx.EXPAND)
        sizer.Add(sizer2, 0, wx.ALL | wx.EXPAND, 5)
        self.SetSizer(sizer)

        self.listbox.Bind(html.EVT_HTML_LINK_CLICKED, self.OnLinkClicked)
        self.install.Bind(adv.EVT_HYPERLINK, self.OnHyperlink)
        self.close.Bind(wx.EVT_BUTTON, self.OnClose)
        self.Bind(wx.EVT_CLOSE, self.OnClose)