Esempio n. 1
0
    def __init__(self, title):
        # init window
        Frame.__init__(self, None, ID_ANY, title, size=(800, 800))
        self.Bind(EVT_CLOSE, lambda x: self.Destroy())
        loc = Icon()
        loc.CopyFromBitmap(Bitmap('icon.ico', BITMAP_TYPE_ANY))
        self.SetIcon(loc)

        with SimpleSizer(self, VERTICAL) as sizer:
            new_element = OpenGLCanvas(self)
            sizer.Add(new_element)
Esempio n. 2
0
    def __init__(self, parent, title, latestVersionTagName,
                 latestVersionChanges):

        super(NewVersionAlertDialog, self).__init__(parent,
                                                    wx.ID_ANY,
                                                    title,
                                                    size=(680, 290),
                                                    pos=(200, 150))

        bmp = MYDATA_ICONS.GetIcon("favicon", vendor="MyTardis")
        icon = EmptyIcon()
        icon.CopyFromBitmap(bmp)
        self.SetIcon(icon)

        # Panels placed vertically
        verticalSizer = wx.BoxSizer(wx.VERTICAL)
        self.SetSizer(verticalSizer)

        mainPanel = wx.Panel(self)
        verticalSizer.Add(mainPanel)

        okButton = wx.Button(self, wx.ID_ANY, ' OK ')
        okButton.SetDefault()
        self.Bind(wx.EVT_BUTTON, self.OnOK, id=okButton.GetId())
        verticalSizer.Add(okButton,
                          flag=wx.BOTTOM | wx.RIGHT | wx.ALIGN_RIGHT,
                          border=20)

        # Panels placed horizontally
        horizSizer = wx.FlexGridSizer(rows=1, cols=2, vgap=5, hgap=5)
        mainPanel.SetSizer(horizSizer)

        iconPanel = IconPanel(mainPanel)
        horizSizer.Add(iconPanel, flag=wx.EXPAND | wx.ALL, border=10)

        newVersionAlertPanel = NewVersionAlertPanel(mainPanel,
                                                    latestVersionTagName,
                                                    latestVersionChanges)
        horizSizer.Add(newVersionAlertPanel,
                       flag=wx.EXPAND | wx.TOP | wx.RIGHT,
                       border=10)

        horizSizer.Fit(mainPanel)
        verticalSizer.Fit(self)
Esempio n. 3
0
    def __init__(self, frame):
        """
        @type frame: str, unicode
        @return: None
        """
        adv.TaskBarIcon.__init__(self)
        self.frame = frame

        # Set the image
        icon = Icon()
        icon.CopyFromBitmap(
            wx.Bitmap(os.path.join(get_base_dir(), "Resources/traybar.png"),
                      wx.BITMAP_TYPE_PNG))
        self.tbIcon = icon
        self.SetIcon(self.tbIcon, "Cryptobox")

        # bind some evts
        self.Bind(wx.EVT_MENU, self.OnTaskBarClose, id=self.TBMENU_CLOSE)
        self.Bind(adv.EVT_TASKBAR_LEFT_DOWN, self.OnTaskBarLeftClick)
Esempio n. 4
0
class MyDataTaskBarIcon(TaskBarIcon):
    """
    Provides a system tray icon (Windows)
    or menubar icon (Mac OS X) for MyData.
    """

    # pylint: disable=too-many-instance-attributes
    def __init__(self, frame, settingsModel):
        """Constructor"""
        TaskBarIcon.__init__(self)
        self.frame = frame
        self.settingsModel = settingsModel

        bmp = MYDATA_ICONS.GetIcon("favicon", vendor="MyTardis")
        self.icon = EmptyIcon()
        self.icon.CopyFromBitmap(bmp)

        self.SetIcon(self.icon, "MyData")

        # Mouse event handling set up in MyData class's OnInit method.
        # self.Bind(wx.EVT_TASKBAR_LEFT_DOWN, self.OnTaskBarLeftClick)

        self.menu = None
        self.aboutMyDataMenuItem = None
        self.syncNowMenuItem = None
        self.myTardisMainWindowMenuItem = None
        self.myTardisSettingsMenuItem = None
        self.myTardisHelpMenuItem = None
        self.exitMyDataMenuItem = None

    def CreatePopupMenu(self):
        """
        Overrides method in parent class to provide a Popup Menu
        when the user clicks on MyData's system tray (or menubar) icon.
        """
        self.menu = wx.Menu()

        self.aboutMyDataMenuItem = wx.MenuItem(self.menu, wx.NewId(),
                                               "About MyData")
        if wx.version().startswith("3.0.3.dev"):
            self.menu.Append(self.aboutMyDataMenuItem)
        else:
            self.menu.AppendItem(self.aboutMyDataMenuItem)
        self.Bind(wx.EVT_MENU,
                  wx.GetApp().OnAbout, self.aboutMyDataMenuItem,
                  self.aboutMyDataMenuItem.GetId())

        self.menu.AppendSeparator()

        self.syncNowMenuItem = wx.MenuItem(self.menu, wx.NewId(), "Sync Now")
        if wx.version().startswith("3.0.3.dev"):
            self.menu.Append(self.syncNowMenuItem)
        else:
            self.menu.AppendItem(self.syncNowMenuItem)
        self.Bind(wx.EVT_MENU, self.OnSyncNow, self.syncNowMenuItem,
                  self.syncNowMenuItem.GetId())

        self.menu.AppendSeparator()

        self.myTardisMainWindowMenuItem = wx.MenuItem(self.menu, wx.NewId(),
                                                      "MyData Main Window")
        if wx.version().startswith("3.0.3.dev"):
            self.menu.Append(self.myTardisMainWindowMenuItem)
        else:
            self.menu.AppendItem(self.myTardisMainWindowMenuItem)
        self.Bind(wx.EVT_MENU, self.OnMyDataMainWindow,
                  self.myTardisMainWindowMenuItem)

        self.myTardisSettingsMenuItem = wx.MenuItem(self.menu, wx.NewId(),
                                                    "MyData Settings")
        if wx.version().startswith("3.0.3.dev"):
            self.menu.Append(self.myTardisSettingsMenuItem)
        else:
            self.menu.AppendItem(self.myTardisSettingsMenuItem)
        self.Bind(wx.EVT_MENU, self.OnMyDataSettings,
                  self.myTardisSettingsMenuItem)

        self.menu.AppendSeparator()

        self.myTardisHelpMenuItem = wx.MenuItem(self.menu, wx.NewId(),
                                                "MyData Help")
        if wx.version().startswith("3.0.3.dev"):
            self.menu.Append(self.myTardisHelpMenuItem)
        else:
            self.menu.AppendItem(self.myTardisHelpMenuItem)
        self.Bind(wx.EVT_MENU, self.OnMyDataHelp, self.myTardisHelpMenuItem)

        self.menu.AppendSeparator()

        self.exitMyDataMenuItem = wx.MenuItem(self.menu, wx.NewId(),
                                              "Exit MyData")
        if wx.version().startswith("3.0.3.dev"):
            self.menu.Append(self.exitMyDataMenuItem)
        else:
            self.menu.AppendItem(self.exitMyDataMenuItem)
        self.Bind(wx.EVT_MENU, self.OnExit, self.exitMyDataMenuItem)

        return self.menu

    def GetSyncNowMenuItem(self):
        """
        Returns the "Sync Now" menu item.
        """
        if hasattr(self, "syncNowMenuItem"):
            return self.syncNowMenuItem
        else:
            return None

    def OnMyDataMainWindow(self, event):
        """
        Called when the "MyData Main Window" menu item is
        selected from MyData's system tray / menu bar icon menu.
        """
        self.frame.Show(True)
        self.frame.Raise()
        event.Skip()

    def OnMyDataSettings(self, event):
        """
        Called when the "MyData Settings" menu item is
        selected from MyData's system tray / menu bar icon menu.
        """
        self.frame.Show(True)
        self.frame.Raise()
        wx.GetApp().OnSettings(event)
        event.Skip()

    # pylint: disable=no-self-use
    def OnSyncNow(self, event):
        """
        Called when the "Sync Now" menu item is
        selected from MyData's system tray / menu bar icon menu.
        """
        logger.debug("Sync Now called from task bar menu item.")
        wx.GetApp().ScanFoldersAndUpload(event)

    # pylint: disable=no-self-use
    def OnMyDataHelp(self, event):
        """
        Called when the "MyData Help" menu item is
        selected from MyData's system tray / menu bar icon menu.
        """
        new = 2  # Open in a new tab, if possible
        url = "http://mydata.readthedocs.org/en/latest/"
        webbrowser.open(url, new=new)
        event.Skip()

    def OnExit(self, event):
        """
        Called when the "Exit MyData" menu item is
        selected from MyData's system tray / menu bar icon menu.
        """
        started = wx.GetApp().foldersController.Started()
        completed = wx.GetApp().foldersController.Completed()
        canceled = wx.GetApp().foldersController.Canceled()
        failed = wx.GetApp().foldersController.Failed()

        self.frame.Show(True)
        self.frame.Raise()
        message = "Are you sure you want to quit MyData?"
        if started and not completed and not canceled and not failed:
            message += "\n\n" \
                "MyData will attempt to shut down any uploads currently " \
                "in progress before exiting."
        confirmationDialog = \
            wx.MessageDialog(self.frame, message, "MyData",
                             wx.YES | wx.NO | wx.ICON_QUESTION)
        okToExit = confirmationDialog.ShowModal()
        if okToExit == wx.ID_YES:
            # See also: wx.GetApp().ShutDownCleanlyAndExit(event)
            # pylint: disable=protected-access
            os._exit(0)
        event.Skip()
Esempio n. 5
0
    def __init__(self):
        wx.Frame.__init__(self, None, wx.ID_ANY, APPNAME)
        self.SetSize(wx.Size(1000, 600))
        self.statusbar = wx.StatusBar(self)
        if sys.platform.startswith("win"):
            self.statusbar.SetSize(wx.Size(-1, 28))
        else:
            self.statusbar.SetSize(wx.Size(-1, 18))
        self.statusbar.SetFieldsCount(2)
        self.SetStatusBar(self.statusbar)
        self.statusbar.SetStatusWidths([-1, 60])

        self.mydataApp = wx.GetApp()

        self.panel = wx.Panel(self)

        if sys.platform.startswith("darwin"):
            self.CreateMacMenu()

        self.toolbar = MyDataToolbar(self)

        bmp = MYDATA_ICONS.GetIcon("favicon", vendor="MyTardis")
        icon = EmptyIcon()
        icon.CopyFromBitmap(bmp)
        self.SetIcon(icon)

        if 'phoenix' in wx.PlatformInfo:
            self.tabbedView = AuiNotebook(self.panel, agwStyle=AUI_NB_TOP)
        else:
            self.tabbedView = AuiNotebook(self.panel, style=AUI_NB_TOP)
        # Without the following line, the tab font looks
        # too small on Mac OS X:
        self.tabbedView.SetFont(self.panel.GetFont())
        self.Bind(EVT_AUINOTEBOOK_PAGE_CHANGING, self.OnNotebookPageChanging,
                  self.tabbedView)

        self.dataViews = dict()
        if DATAVIEW_MODELS:
            self.AddDataViews()

        self.logView = LogView(self.tabbedView)
        self.tabbedView.AddPage(self.logView, "Log")

        sizer = wx.BoxSizer()
        sizer.Add(self.tabbedView, 1, flag=wx.EXPAND)
        self.panel.SetSizer(sizer)

        sizer = wx.BoxSizer()
        sizer.Add(self.panel, 1, flag=wx.EXPAND)
        self.SetSizer(sizer)

        self.tabbedView.SendSizeEvent()

        self.panel.SetFocus()

        self.taskBarIcon = MyDataTaskBarIcon(self)
        if sys.platform.startswith("linux"):
            self.taskBarIcon.Bind(EVT_TASKBAR_LEFT_DOWN,
                                  self.OnTaskBarLeftClick)
        else:
            self.taskBarIcon.Bind(EVT_TASKBAR_LEFT_UP, self.OnTaskBarLeftClick)

        self.Bind(wx.EVT_MENU, self.taskBarIcon.OnExit, id=wx.ID_EXIT)

        self.Bind(wx.EVT_CLOSE, self.OnClose)
        self.Bind(wx.EVT_ICONIZE, self.OnMinimize)
Esempio n. 6
0
class MyDataTaskBarIcon(TaskBarIcon):
    """
    Provides a system tray icon (Windows)
    or menubar icon (Mac OS X) for MyData.
    """
    def __init__(self, frame):
        """Constructor"""
        TaskBarIcon.__init__(self)
        self.frame = frame

        bmp = MYDATA_ICONS.GetIcon("favicon", vendor="MyTardis")
        self.icon = EmptyIcon()
        self.icon.CopyFromBitmap(bmp)

        self.SetIcon(self.icon, "MyData")

        # Mouse event handling set up in MyData class's OnInit method.
        # self.Bind(wx.EVT_TASKBAR_LEFT_DOWN, self.OnTaskBarLeftClick)

        self.menu = None
        self.aboutMyDataMenuItem = None
        self.syncNowMenuItem = None
        self.myTardisMainWindowMenuItem = None
        self.myTardisSettingsMenuItem = None
        self.myTardisHelpMenuItem = None
        self.exitMyDataMenuItem = None

    def CreatePopupMenu(self):
        """
        Overrides method in parent class to provide a Popup Menu
        when the user clicks on MyData's system tray (or menubar) icon.
        """
        self.menu = wx.Menu()

        self.aboutMyDataMenuItem = wx.MenuItem(self.menu, wx.NewId(),
                                               "About MyData")
        if 'phoenix' in wx.PlatformInfo:
            self.menu.Append(self.aboutMyDataMenuItem)
        else:
            self.menu.AppendItem(self.aboutMyDataMenuItem)
        self.Bind(wx.EVT_MENU, self.frame.OnAbout, self.aboutMyDataMenuItem,
                  self.aboutMyDataMenuItem.GetId())

        self.menu.AppendSeparator()

        self.syncNowMenuItem = wx.MenuItem(self.menu, wx.NewId(), "Sync Now")
        if 'phoenix' in wx.PlatformInfo:
            self.menu.Append(self.syncNowMenuItem)
        else:
            self.menu.AppendItem(self.syncNowMenuItem)
        self.Bind(wx.EVT_MENU, MyDataTaskBarIcon.OnSyncNow,
                  self.syncNowMenuItem, self.syncNowMenuItem.GetId())

        self.menu.AppendSeparator()

        self.myTardisMainWindowMenuItem = wx.MenuItem(self.menu, wx.NewId(),
                                                      "MyData Main Window")
        if 'phoenix' in wx.PlatformInfo:
            self.menu.Append(self.myTardisMainWindowMenuItem)
        else:
            self.menu.AppendItem(self.myTardisMainWindowMenuItem)
        self.Bind(wx.EVT_MENU, self.OnMyDataMainWindow,
                  self.myTardisMainWindowMenuItem)

        self.myTardisSettingsMenuItem = wx.MenuItem(self.menu, wx.NewId(),
                                                    "MyData Settings")
        if 'phoenix' in wx.PlatformInfo:
            self.menu.Append(self.myTardisSettingsMenuItem)
        else:
            self.menu.AppendItem(self.myTardisSettingsMenuItem)
        self.Bind(wx.EVT_MENU, self.OnMyDataSettings,
                  self.myTardisSettingsMenuItem)

        self.menu.AppendSeparator()

        self.myTardisHelpMenuItem = wx.MenuItem(self.menu, wx.NewId(),
                                                "MyData Help")
        if 'phoenix' in wx.PlatformInfo:
            self.menu.Append(self.myTardisHelpMenuItem)
        else:
            self.menu.AppendItem(self.myTardisHelpMenuItem)
        self.Bind(wx.EVT_MENU, MyDataTaskBarIcon.OnMyDataHelp,
                  self.myTardisHelpMenuItem)

        self.menu.AppendSeparator()

        self.exitMyDataMenuItem = wx.MenuItem(self.menu, wx.NewId(),
                                              "Exit MyData")
        if 'phoenix' in wx.PlatformInfo:
            self.menu.Append(self.exitMyDataMenuItem)
        else:
            self.menu.AppendItem(self.exitMyDataMenuItem)
        self.Bind(wx.EVT_MENU, self.OnExit, self.exitMyDataMenuItem)

        return self.menu

    def GetSyncNowMenuItem(self):
        """
        Returns the "Sync Now" menu item.
        """
        return getattr(self, "syncNowMenuItem", None)

    def OnMyDataMainWindow(self, event):
        """
        Called when the "MyData Main Window" menu item is
        selected from MyData's system tray / menu bar icon menu.
        """
        self.frame.Show(True)
        self.frame.Iconize(False)
        self.frame.Raise()
        event.Skip()

    def OnMyDataSettings(self, event):
        """
        Called when the "MyData Settings" menu item is
        selected from MyData's system tray / menu bar icon menu.
        """
        self.frame.Show(True)
        self.frame.Iconize(False)
        self.frame.Raise()
        OnSettings(event)
        event.Skip()

    @staticmethod
    def OnSyncNow(event):
        """
        Called when the "Sync Now" menu item is
        selected from MyData's system tray / menu bar icon menu.
        """
        logger.debug("Sync Now called from task bar menu item.")
        ManuallyTriggerScanFoldersAndUpload(event)

    @staticmethod
    def OnMyDataHelp(event):
        """
        Called when the "MyData Help" menu item is
        selected from MyData's system tray / menu bar icon menu.
        """
        new = 2  # Open in a new tab, if possible
        url = "http://mydata.readthedocs.org/en/latest/"
        webbrowser.open(url, new=new)
        event.Skip()

    def OnExit(self, event):
        """
        Called when the "Exit MyData" menu item is
        selected from MyData's system tray / menu bar icon menu.
        """
        self.frame.Show(True)
        self.frame.Iconize(False)
        self.frame.Raise()
        message = "Are you sure you want to quit MyData?"
        if wx.GetApp().Processing():
            message += "\n\n" \
                "MyData will attempt to shut down any uploads currently " \
                "in progress before exiting."
        confirmationDialog = \
            wx.MessageDialog(self.frame, message, "MyData",
                             wx.YES | wx.NO | wx.ICON_QUESTION)
        okToExit = confirmationDialog.ShowModal()
        if okToExit == wx.ID_YES:
            wx.GetApp().ShutDownCleanlyAndExit(event, confirm=False)
        event.StopPropagation()
Esempio n. 7
0
    def __init__(self):
        self.files = []
        self.path = None

        # init window
        Frame.__init__(self, None, ID_ANY, "CUT", size=(688, 800))
        self.Bind(EVT_CLOSE, lambda x: self.Destroy())
        loc = Icon()
        loc.CopyFromBitmap(Bitmap('icon.ico', BITMAP_TYPE_ANY))
        self.SetIcon(loc)
        self.panel = Panel(self, EXPAND)
        self.sizer = BoxSizer(VERTICAL)
        self.sizer.Add(
            FileInput(self.panel,
                      text_button="Open File",
                      callback=self._set_file,
                      file_type=file_exts,
                      text_title="OPEN",
                      text_open_file="File"), 1, EXPAND)

        #  Create Input fields
        self._start_input = TimeInput(self.panel, label='START')
        self._end_input = TimeInput(self.panel, label='END')
        self._scale_input = SimpleInput(self.panel,
                                        label='Width:Height',
                                        initial='-1:-1')
        self._webm_input = SimpleInput(self.panel,
                                       label='WEBM Quality',
                                       initial='36')
        self._framerate_input = SimpleInput(self.panel,
                                            label='INPUT FRAMES FRAMERATE',
                                            initial='')

        # Create check inputs
        font = Font(20, MODERN, NORMAL, NORMAL, False, u'Consolas')

        self._audio_select = StandardSelection(parent=self.panel,
                                               options=list(
                                                   audio_options.keys()),
                                               callback=None,
                                               title='Audio codec')

        self._video_select = StandardSelection(parent=self.panel,
                                               options=list(
                                                   video_options.keys()),
                                               callback=None,
                                               title='Video format')

        # Add inputs to self.sizer
        self.sizer.Add(self._video_select, 1, EXPAND)
        self.sizer.Add(self._audio_select, 1, EXPAND)
        self.sizer.Add(
            FileInput(self.panel,
                      text_button="Clone time",
                      callback=self._clone_time,
                      file_type=file_exts,
                      text_title="OPEN",
                      text_open_file="File"), 1, EXPAND)
        self.sizer.Add(self._start_input, 1, EXPAND)
        self.sizer.Add(self._end_input, 1, EXPAND)
        self.sizer.Add(self._scale_input, 1, EXPAND)
        self.sizer.Add(self._webm_input, 1, EXPAND)
        self.sizer.Add(self._framerate_input, 1, EXPAND)

        # Add Button
        self.sizer.Add(
            SimpleButton(self.panel,
                         text_button='CUT',
                         callback=self._submit_task), 1, EXPAND)
        self.panel.SetSizer(self.sizer)