Giter VIP home page Giter VIP logo

pympress's Introduction

Hi there ☕

I’m just your typical 80s espresso machine: very beige.

pympress's People

Contributors

atsuyaw avatar blaisorblade avatar cgevans avatar cimbali avatar comfreek avatar dannosliwcd avatar epithumia avatar f0k avatar fernand0 avatar friedrichfroebel avatar hyiltiz avatar joreiff avatar kenohassler avatar kleest avatar logcreative avatar mans0954 avatar mic92 avatar multiflexi avatar nziermann avatar ousia avatar paulo-haas avatar polaksta avatar schnouki avatar susobaco avatar taaem avatar thepalbi avatar timvahlbrock avatar vulpeculus avatar walli545 avatar wisp3rwind avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

pympress's Issues

[python2] TypeError: string indices must be integers

Today i have installed new version and when I try to execute the code ...

$ ./pympress
Traceback (most recent call last):
File "./pympress", line 11, in
load_entry_point('pympress==1.0.3', 'gui_scripts', 'pympress')()
File "/home/polak/.local/lib/python2.7/site-packages/pympress/main.py", line 116, in main
ui = pympress.ui.UI(ett, name)
File "/home/polak/.local/lib/python2.7/site-packages/pympress/ui.py", line 329, in init
self.make_pwin()
File "/home/polak/.local/lib/python2.7/site-packages/pympress/ui.py", line 645, in make_pwin
self.rearrange_p_layout(self.notes_layout if self.notes_mode else self.plain_layout)
File "/home/polak/.local/lib/python2.7/site-packages/pympress/ui.py", line 577, in rearrange_p_layout
w = Gtk.Box.new(getattr(Gtk.Orientation, w_desc['orientation'].upper()), 5)
TypeError: string indices must be integers

"Blue" is not translated into Polish

I have noticed that word "Blue" is not translated into Polish (MO file) - 'pympress' displays "Blue" instead of "Niebieski". The cause is presence of "#, fuzzy" in line 237 of the locale/pl/pympress.po file that I sent you last year. I did not remove this string (label) because I thought it is necessary. The file also contains some fuzzy entries - I am not sure if they are needed now. The same problem is probably in German translation - the presence of "#, fuzzy" before "_Blue".

Beamer transition animation

Hello Guys,

i have add a transition animation for a slide in my presentation, but it doesnt works with pympress.
In an PDF Viewer(foxit) i can see the animation.

Example:

\documentclass{beamer}
\usepackage[english]{babel}
\usepackage[utf8]{inputenc}
\usepackage{xcolor}
\usepackage{pgfpages}

\setbeameroption{show notes on second screen = right}

\begin{document}
	\begin{frame}
		\only<1>{\includegraphics[width=0.5\textwidth]{example-image-a}}
		\only<2>{\includegraphics[width=0.5\textwidth]{example-image-golden}}
		\transdissolve<2>
	\end{frame}
\end{document}

Control playback of video files – seek and current position

Would’t it be nice to be able to control the playback of a video aside of pausing and resuming?

Pdfpc implements such a feature. I have used it lately, but it has a very high cpu usage while playing videos, which does not go down once the playback is stopped – this is a problem in long presentations because it limits my battery time dramatically.

Pympress + vlc performs much better in that way, but control over video playback is currently very limited.

I could imagine an implementation with keystrokes (as possible in vlc player) or by showing the playing video in the presenter view, too – together with a kind of progressbar that allows seeking by clicking a specific position or something like that.

I can not tell if this is possible and how much work it would be as I have never looked into python-vlc so far.

Positioning windows does not work on i3wm

Environment

  • OS: Manjaro 17.1.6 Hakoila with i3wm
  • Python 3.6.4

Pympress

  • 1.1.2
  • Installation method: pip

Expected behaviour

I tried to display the presentation on the right screen and presenter on the left screen
I try the function change screen in the menu, but without result

Steps to reproduce

pympress file.pdf

Problem

the presenter and presentation screens are reversed
some functions in the menu does not work

2018-03-15-134123_3840x1080_scrot

pympress.log

INFO:pympress.main:Pympress version 1.1.2 by:
2009, 2010 Thomas Jost [email protected]
2015-2017 Cimbali [email protected]
2016 Christoph Rath [email protected]
2016 Epithumia [email protected]
WARNING:pympress.ui:Attention: La fenêtre de contenu et de présenteur ne peuvent être sur le même écran pour démarrer en plein écran !

vlc always opens new window, rather than embedding

Environment

  • Fedora 26, KDE spin
  • Python 3.6.4
  • (beamer / pdflatex)

Pympress

Expected behaviour

Video playback should appear seamlessly above the still image that acts as a placeholder, without any window decorations; the user should not be aware that a separate program has been invoked to perform the video playback.

Steps to reproduce

Create PDF in beamer / pdflatex that includes .mp4 video.
Start pympress on PDF and advance to page that has embedded video.
Click on placeholder for embedded video.

Problem

Instead of embedding properly, VLC opens a new window to play the video. The video plays correctly, except that it is not embedded and not at the size expected from the size of the placeholder.

The log file pympress.log is empty.

Question about window size

Hi, congratulations on your show. I have a question. In a dual monitor presentation, it is possible to start the fulscreen presentation, but it is possible that the other window, the control window, will not start full screen? I'd like a small window. I've tried it with the openbox configuration, but the output of "xprop | grep class" is the same for both windows, so I can't define the size for a single window.
I am using the latest version of pympres on lxde in Tisquel 8 (ubuntu 16.04). Thank you for your work.

Use monospaced font for time display

Environment

  • Manjaro Linux
  • Python 3.6.4

Pympress

  • version 1.1.2
  • Installation method: pip

Expected behaviour

The displayed time has a fixed width and does not move its position.

Steps to reproduce

  1. Open a presentation.
  2. Look at the clock for some seconds.

Problem

The displayed time string moves its position depending on the width of the displayed time string.

Unpause by click adds waited time to timer

There is inconsistent behaviour when unpausing. If I unpause using P, the timer continues where it left off. E.g. I pause at 2:00, wait 20 seconds, then unpause by pressing P, the timer continues with 2:01.

When I unpause using navigation (e.g. next page), the timer instead continues at 2:21.

(By the way: Awesome project, thanks!)

Option -t raises exception

Environment

  • Linux Ubuntu 17.10
  • Python 3.6.3

Pympress

  • 1.1.1
  • pip

Expected behaviour

I try to specify the duration of the presentation using '-t' option or 't' key. When '-t' is used, exception occurs. If I run without the abovementioned option everything is OK. But if I press 't' and I tray to set the duration, e.g., 90:00, then "Time elapsed" value does not change, and after closing the program displays:

(pympress3:1978): Gtk-WARNING **: Allocating size to GtkPaned 0x1a95f90 without calling gtk_widget_get_preferred_width/height(). How does the code know the size to allocate?
Protocol error: bad 3 (Window); Sequence Number 5
 Opcode (20, 0) = GetProperty
 Bad resource 1483866739 (0x58720273)
 at -e line 15.
Traceback (most recent call last):
  File "/home/polak/.local/lib/python3.6/site-packages/pympress/talk_time.py", line 256, in update_time
    self.label_colorer.update_time_color(self.ett.est_time - self.delta)
  File "/home/polak/.local/lib/python3.6/site-packages/pympress/talk_time.py", line 135, in update_time_color
    color_spec = '* {color: {}}'.format(color.to_string())
KeyError: 'color'

Steps to reproduce

What are you doing?
Running pympress with -t / --talk_time

$ pympress3 -t 90:00 js.pdf
$ pympress3 --talk-time=90:00 js.pdf

Problem

When I run pympress without '-t' everything is OK. But when I run it as follows:
pympress3 -t 90:00 js.pdf it displays:

(pympress3:32688): Gtk-WARNING **: Allocating size to GtkPaned 0x30abf90 without calling gtk_widget_get_preferred_width/height(). How does the code know the size to allocate?
Traceback (most recent call last):
  File "/home/polak/.local/bin/pympress3", line 11, in <module>
    load_entry_point('pympress==1.1.1', 'gui_scripts', 'pympress3')()
  File "/home/polak/.local/lib/python3.6/site-packages/pympress/__main__.py", line 113, in main
    gui = ui.UI(ett, name)
  File "/home/polak/.local/lib/python3.6/site-packages/pympress/ui.py", line 221, in __init__
    self.swap_document(docpath)
  File "/home/polak/.local/lib/python3.6/site-packages/pympress/ui.py", line 501, in swap_document
    self.talk_time.reset_timer()
  File "/home/polak/.local/lib/python3.6/site-packages/pympress/talk_time.py", line 233, in reset_timer
    self.update_time()
  File "/home/polak/.local/lib/python3.6/site-packages/pympress/talk_time.py", line 256, in update_time
    self.label_colorer.update_time_color(self.ett.est_time - self.delta)
  File "/home/polak/.local/lib/python3.6/site-packages/pympress/talk_time.py", line 135, in update_time_color
    color_spec = '* {color: {}}'.format(color.to_string())
KeyError: 'color'

-----------------------------------------------------------------

$ cat pympress.log 
CRITICAL:pympress.__main__:Uncaught exception:
Traceback (most recent call last):
  File "/home/polak/.local/bin/pympress3", line 11, in <module>
    load_entry_point('pympress==1.1.1', 'gui_scripts', 'pympress3')()
  File "/home/polak/.local/lib/python3.6/site-packages/pympress/__main__.py", line 113, in main
    gui = ui.UI(ett, name)
  File "/home/polak/.local/lib/python3.6/site-packages/pympress/ui.py", line 221, in __init__
    self.swap_document(docpath)
  File "/home/polak/.local/lib/python3.6/site-packages/pympress/ui.py", line 501, in swap_document
    self.talk_time.reset_timer()
  File "/home/polak/.local/lib/python3.6/site-packages/pympress/talk_time.py", line 233, in reset_timer
    self.update_time()
  File "/home/polak/.local/lib/python3.6/site-packages/pympress/talk_time.py", line 256, in update_time
    self.label_colorer.update_time_color(self.ett.est_time - self.delta)
  File "/home/polak/.local/lib/python3.6/site-packages/pympress/talk_time.py", line 135, in update_time_color
    color_spec = '* {color: {}}'.format(color.to_string())
KeyError: 'color'

Embedded video appears at wrong location and too small when notes on second page enabled.

Environment

  • Fedora 26, KDE
  • Python 3.6.4

Pympress

  • version 1.1.2
  • Installation method: pip

Expected behaviour

Embeded video when clicked should play seamlessly over frame grab, matching position and size.

Steps to reproduce

Minimum working example:

\documentclass{beamer}
\usepackage{multimedia}
\usepackage{pgfpages}
\setbeameroption{show notes}
\setbeameroption{show notes on second screen=right}
\begin{document}
\begin{frame}
\movie{\includegraphics[width=0.8\textwidth]{test.jpg}}{test.mp4}
\end{frame}
\end{document}

Problem

Video appears with wrong size (too small, perhaps 1/2 of expected width) and in slightly wrong location (too far left by about 1/2). If notes on second page not used, works correctly.

/tmp/pympress.log is empty

Resolve shared files from local folder if possible

Environment

  • Ubuntu 16.04
  • Python 3.5

Pympress

  • latest master in local folder
  • current release installed via pip

Expected behaviour

Starting pympress in local master clone using python3 -m pympress from within a folder should use the shared files from the share/ directory of the current folder and not throw any errors.

Steps to reproduce

  • Install pympress using pip3.
  • Clone the latest master into a local directory.
  • Run python3 -m pympress inside the cloned directory.

Problem

The shared files from the pip install are used and an error message may be produced, see 0bdc5da#commitcomment-26206898 and 0bdc5da#commitcomment-26212807.

Gdk.RGBA – import missing in pympress/config.py

I think there is a import statement missing in pympress/config.py

When there is no config file (e.g. because of a fresh install) config.py throws an Error at line 167.

I think there is missing the following statement at the beginning of the file:

from gi.repository import Gdk

Gtk-WARNING for GtkPaned

Environment

  • Manjaro Linux
  • Python 3.6.4

Pympress

  • version 1.1.2
  • Installation method: pip

Expected behaviour

No warnings.

Steps to reproduce

Run pympress presentation.pdf from the terminal - the first warning is shown. When opening the help afterwards, the second warning is shown.

Problem

Warnings are shown:

(pympress:8764): Gtk-WARNING **: Allocating size to GtkPaned 0x558000273f40 without calling gtk_widget_get_preferred_width/height(). How does the code know the size to allocate?
Gtk-Message: GtkDialog mapped without a transient parent. This is discouraged.

'gdk_pixbuf_new_from_file' could not be found

I just tried to use the latest master, but could not get it to run (tested on Windows 8.1 with Python 3.4, no error on Ubuntu with Python3.5).

Seems like there is some error with the orientation value:

ERROR:pympress.ui:Invalid layout
Traceback (most recent call last):
  File "C:\Users\Me\Documents\pympress\pympress\ui.py", line 633, in make_pwin
    self.validate_layout(self.notes_layout, set(self.placeable_widgets.keys()) - {"annotations"})
  File "C:\Users\Me\Documents\pympress\pympress\ui.py", line 447, in validate_layout
    raise ValueError('"orientation" is mandatory and must be "horizontal" or "vertical" at node {}'.format(w_desc))
ValueError: "orientation" is mandatory and must be "horizontal" or "vertical" at node {}
ERROR:pympress.ui:Invalid layout
Traceback (most recent call last):
  File "C:\Users\Me\Documents\pympress\pympress\ui.py", line 640, in make_pwin
    self.validate_layout(self.plain_layout, set(self.placeable_widgets.keys()) - {"notes"})
  File "C:\Users\Me\Documents\pympress\pympress\ui.py", line 447, in validate_layout
    raise ValueError('"orientation" is mandatory and must be "horizontal" or "vertical" at node {}'.format(w_desc))
ValueError: "orientation" is mandatory and must be "horizontal" or "vertical" at node {}

There seems to be another error which seems to occur on Windows only:

CRITICAL:__main__:Uncaught exception:
Traceback (most recent call last):
  File "C:\Python34\lib\runpy.py", line 170, in _run_module_as_main
    "__main__", mod_spec)
  File "C:\Python34\lib\runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "C:\Users\Me\Documents\pympress\pympress\__main__.py", line 123, in <module>
    main()
  File "C:\Users\Me\Documents\pympress\pympress\__main__.py", line 116, in main
    ui = pympress.ui.UI(ett, name)
  File "C:\Users\Me\Documents\pympress\pympress\ui.py", line 329, in __init__
    self.make_pwin()
  File "C:\Users\Me\Documents\pympress\pympress\ui.py", line 645, in make_pwin
    self.rearrange_p_layout(self.notes_layout if self.notes_mode else self.plain_layout)
  File "C:\Users\Me\Documents\pympress\pympress\ui.py", line 618, in rearrange_p_layout
    self.load_pointer(default)
  File "C:\Users\Me\Documents\pympress\pympress\ui.py", line 2114, in load_pointer
    self.pointer = pympress.util.get_icon_pixbuf(name + '.png')
  File "C:\Users\Me\Documents\pympress\pympress\util.py", line 107, in get_icon_pixbuf
    return GdkPixbuf.Pixbuf.new_from_file(get_resource_path('share', 'pixmaps', name))
GLib.Error: g-invoke-error-quark: Could not locate gdk_pixbuf_new_from_file: 'gdk_pixbuf_new_from_file': The specified procedure could not be found. (1)

Invalid checkbox states in menu

Environment

  • Windows 8.1
  • Python 3.4 (64 bit)

Pympress

  • version 1.0.4 from pip
  • version 1.1.0.b2 from master (using self-built executable from cx_freeze)

Expected behaviour, Steps to reproduce, Problem

  1. Presentation -> Pause timer
    • Open presentation by calling python -m pympress presentation.pdf
    • Timer is paused, checkbox in presentation menu entry is checked -> works
    • Switch to next slide, checkbox is not checked anymore as the timer started -> does not work
    • Pause timer, checkbox is checked (currently unchecked) -> does not work
  2. Presentation -> Highlight
    • Call highlight mode from presentation menu entry, checkbox is checked -> works
    • Close the highlighting mode using the close button, checkbox is not checked anymore -> does not work

(The problem may appear for other checkboxes, too, which I did not check.)

Encoding issues in translation

It looks like pympress has a problem with rendering Umlauts:

image
(This is from the 1.0.2 binary install.)

The broken character should be an ä.

(Side note: I find it curious that pympress is loading the German interface at all. My system language is English, only my region is set to Germany.)

Crash at startup on OSX "Failed to load shared library"

I am running OSX 10.13.3 with Python version 2.7. I installed pympress via pip yesterday (not sure what version it is, I assume the latest).

Expected behaviour

What are you trying to achieve? What's the expected outcome?
It took me a while to install the relevant dependencies and I had to create symbolic links for gi and cairo in the pympress install location, but I now have it operational such that the program will open without errors (to an extent).

My issue now is that when I try and open the program with a pdf file, or when I try to open a pdf after having already started the program, I get a pop-up messagebox simply saying

Error opening the file "/path/presentation.pdf"

I'm simply typing
pympress /path/presentation.pdf
in the terminal, and get output

(pympress:25174): Gtk-WARNING **: 10:22:21.204: Allocating size to GtkPaned 0x7fe54d0eff00 without calling gtk_widget_get_preferred_width/height(). How does the code know the size to allocate?

** (pympress:25174): WARNING **: 10:22:21.214: Failed to load shared library '@rpath/libpoppler-glib.8.dylib' referenced by the typelib: dlopen(@rpath/libpoppler-glib.8.dylib, 9): image not found

** (pympress:25174): WARNING **: 10:22:21.293: Failed to load shared library 'libcairo-gobject.2.dylib' referenced by the typelib: dlopen(libcairo-gobject.2.dylib, 9): image not found

The log file at /tmp/pympress.log is empty.

Any ideas on how to fix this issue?

Video/audio playback tinny (because of the doubled video output?)

Environment

  • Linux Mint 18.3
  • Python version 3.5

Pympress

  • 1.1
  • Installation method: source

Expected behaviour

When playing videos the sound should be heard clearly.

Steps to reproduce

  1. Open a pdf file with embedded video.
  2. Show a slide with video and start playback.
  3. Listen closely :)
  4. Examine the system’s audio output streams (e.g. with pavucontrol) – you should see the audio track of the video twice.

Problem

Sometimes the audio track of videos sounds quite tinny. Probably this is because of the doubled video on the presenter and the presentation view. That way the audio output is doubled, too.
When disabling/muting one of the two output streams (e.g. with pavucontrol) the sound is clear again.

I think it is a good idea to disable the audio tracks of one of the two player instances.
Sadly, libvlc doesn’t seem to be quit straight forward there. I could not manage it this morning, not even with reading the docs.
Looks like you’ve got to grab the audio track of one of the player’s media, "free" it somehow and then mute or disable it. Didn’t get it right.

Request: Freely arrange size of windows in presenter view

Might it be possible to allow the user to freely arrange the size of the windows showing notes, current slide and next slide? As far as I know, the only method at the moment is to shift a vertical bar which often leads to a lot of unused space.

no write permission for log file

I just installed pympress on Windows 10 (binary installer). The installation finished without errors, but I was not able to start pympress. Reason: one of the first things the program is doing it to create a logfile pympress.log. This file is created in the current working directory. If the current working directory is the installation directory, then the program will (silently) fail to start. Also, it is not possible to use the "open with" function of the windows explorer because of the same reason.
As a workaround I created now a batch-file, which starts pympress in a folder with write permission. I think, it would be a better solution to create the logfile not in the current working directory. What do you think about this change:

logging.basicConfig(filename=os.path.join(tempfile.gettempdir(), 'pympress.log'), level=log_level)

The logfile would be created within the default temporal folder of the OS. That should work on all OS.

AttributeError: 'Overlay' object has no attribute 'reorder_overlay'

pympress document.pdf 
Traceback (most recent call last):
  File "/home/moi/.local/bin/pympress", line 9, in <module>
    load_entry_point('pympress==0.6', 'gui_scripts', 'pympress')()
  File "/home/moi/.local/lib/python3.4/site-packages/pympress/__main__.py", line 86, in main
    ui = pympress.ui.UI(name, ett)
  File "/home/moi/.local/lib/python3.4/site-packages/pympress/ui.py", line 275, in __init__
    self.setup_scribbling()
  File "/home/moi/.local/lib/python3.4/site-packages/pympress/ui.py", line 1897, in setup_scribbling
    self.c_overlay.reorder_overlay(self.scribble_c_eb, 1)
AttributeError: 'Overlay' object has no attribute 'reorder_overlay'

Installed via python3 -m pip

[OSX] AttributeError: 'module' object has no attribute 'bindtextdomain'

Hello,

Apparently this has been tested on Mac (assuming you mean OSX?), however I am not able to get past this error:

$ pympress            
2017-02-24 10:17:08.800 python2.7[49410:3172507] *** WARNING: Method userSpaceScaleFactor in class NSView is deprecated on 10.7 and later. It should not be used in new applications. Use convertRectToBacking: instead. 
Traceback (most recent call last):
  File "/tmp/virtual/bin/pympress", line 7, in <module>
    from pympress.__main__ import main
  File "/tmp/virtual/lib/python2.7/site-packages/pympress/__main__.py", line 46, in <module>
    locale.bindtextdomain('pympress', pympress.util.get_resource_path('share', 'locale'))
AttributeError: 'module' object has no attribute 'bindtextdomain'

If I try:

$ python
Python 2.7.13 (default, Feb 24 2017, 10:13:58) 
[GCC 4.2.1 Compatible Apple LLVM 8.0.0 (clang-800.0.42.1)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import locale
>>> locale.bindtextdomain
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'module' object has no attribute 'bindtextdomain'
>>>

I am a bit puzzled at this point, I thought that was a standard Python feature.

Regards

Latex/Beamer link not working in presentation

Hello gyus,

i have a problem with pympress and links in my presentation.
It is difficult to click on a link, because in the main window (picture1) it is not possible to press a link.
In the secondary window it is possible by good luck. Sometimes it works and sometimes not

Picture1

Picture2

No module named gi

Hi,
I'm working on ubuntu 17.04 with gnome 3 and I installed it using pip install pympress. I also installed the dependencies using apt-get install python3 python3-pip libgtk-3-0 libpoppler-glib8 libcairo2 python3-gi python3-cairo gir1.2-gtk-3.0 gir1.2-poppler-0.18 and I get the following error :
image

Any idea ?

Pre-rendering not working; 100% CPU usage

I'm running pympress 1.0 on Windows, and pre-rendering doesn't seem to be working:

  • Pympress is constantly using one CPU core.
  • If I simply wait, RAM usage doesn't go up.
  • If I click through the slides, some complex slides take a fraction of a second to render. RAM usage goes up while I do this.
  • After having clicked through all slides once, RAM usage is high (1.56 GB for a >100 slides presentation), and clicking through the slides is smooth.

To me, it looks like the prerenderer gets stuck, burning CPU without progressing.

(I'd be happy to privately send you the PDF file I use, if this helps you debugging this.)

Request: Internal pointer by using mouse on current slide in presenter mode

I am actually looking for something like using mouse arrow while holding Ctrl in powerpoint (https://www.youtube.com/watch?v=ttYOIVaJnf8). I know about the option to draw onto the current slide by pressing H. However, this is permanent and sort of messes up your slides if you highlight different things after each other. Also, it is sort of distracting to jump back and forth between presenter mode and drawing mode. Perfect for me (and colleagues) would be mimicking the powerpoint behaviour by directly using the mouse as pointer in presenter view inside the current slide window.

ValueError: Namespace Gtk not available

I tried installing pympress for Windows 10 (64bit) according to your instructions in the readme.
When setting up PyGi (Version 3.24.1), I have not the option to tick Cairo as dependency! Poppler and Gdk-Pixbuf are available.

I'm not familiar with all the dependencies, can I install Cairo in another way directly? The website says that it's shipped with other packages.

(Always the same with windows. On my Linux-machine everything works like a charm...)

support playing embedded video on mac OS

Environment

  • OSX 10.13.3
  • Python 3.6

Pympress

  • not sure where to find version (downloaded in last 2 weeks)
  • installed with pip (using homebrew)

Expected behaviour

Play a PDF with embedded .mov files

Steps to reproduce

Play a PDF with embedded .mov files (the PDF works fine in Adobe Reader DC)

Problem

What's happening instead of what you are expecting?
Embedded videos will not play even though audio plays fine.

pympress.log is not present in any of the tmp folders. The issue that displays in terminal is

Traceback (most recent call last):
  File "/usr/local/lib/python3.6/site-packages/pympress/vlcvideo.py", line 161, in handle_embed
    self.player.set_xwindow(self.movie_zone.get_window().get_xid())
AttributeError: 'GdkQuartzWindow' object has no attribute 'get_xid'
Traceback (most recent call last):
  File "/usr/local/lib/python3.6/site-packages/pympress/vlcvideo.py", line 161, in handle_embed
    self.player.set_xwindow(self.movie_zone.get_window().get_xid())
AttributeError: 'GdkQuartzWindow' object has no attribute 'get_xid'

(pympress:12460): Gtk-WARNING **: 11:49:47.824: Error loading theme icon 'media-playback-start' for stock: 
(pympress:12460): Gtk-WARNING **: 11:49:47.824: Error loading theme icon 'media-playback-pause' for stock: Icon 'media-playback-pause' not present in theme Adwaita

(pympress:12460): Gtk-WARNING **: 11:49:47.824: Error loading theme icon 'media-playback-stop' for stock: Icon 'media-playback-stop' not present in theme Adwaita
[00007fc3f45de5e0] videotoolbox decoder: Using Video Toolbox to decode 'h264'
[00007fc3f78878e0] videotoolbox decoder: Using Video Toolbox to decode 'h264'
[00007fc3f78878e0] videotoolbox decoder: vt cvpx chroma: BGRA
[00007fc3f45de5e0] videotoolbox decoder: vt cvpx chroma: BGRA
[00007fc3f6a67fd0] macosx vout display error: No drawable-nsobject nor vout_window_t found, passing over.
[00007fc3f79492b0] macosx vout display error: No drawable-nsobject nor vout_window_t found, passing over.
[00007fc3f320e2f0] main video output error: video output creation failed
[00007fc3f320bcf0] main video output error: video output creation failed
[00007fc3f78878e0] main decoder error: failed to create video output
[00007fc3f45de5e0] main decoder error: failed to create video output
[00007fc3f78878e0] videotoolbox decoder error: decoder failure, Abort.
[00007fc3f45de5e0] videotoolbox decoder error: decoder failure, Abort.`

Heading to line 161 in vlcvideo.py:

if sys.platform == 'win32':
    self.player.set_hwnd(get_window_handle(self.movie_zone.get_window())) #get_property('window')
else:
    self.player.set_xwindow(self.movie_zone.get_window().get_xid())
return False

The issue is related to using an XQuartz window which does not have the attribute for get_xid()

Switch to Gtk.Application

The Gtk.Application framework seems to be meant for simplifying code, which using glade files and a Gtk.Builder did quite a bit already.

So if the change is worth it in code clarity etc, then switch to that approach.

I'm afraid that for example we'd have to write out all the Gio.Action by hand in the code, as in the demo on readthedocs. Or that having two windows content/presenter with only one with a menu bar could become messy.

Support cx_Freeze version 5.x

When running the cx_Freeze setup script on Windows, an error is thrown:

running build_exe
error: error in setup script: command 'build_exe' has no such option 'compressed'

Seems like the support for this option has been dropped some time ago: marcelotduarte/cx_Freeze#253.

By the way: Is there any documentation on how to obtain the installer for the pympress installer (tried it on Windows)? After removing the the compressed option from the corresponding dictionary, a folder got created, but after trying to start the pympress.exe file from the command line, it got closed after some time without any visible output.

PyGI/PyGTK Deprecation Warnings with latest release

Environment

  • Ubuntu 16.04
  • Python 3.5

Pympress

  • version 1.1.0
  • Installation method: pip

Expected behaviour

No warnings are displayed.

Steps to reproduce

Run python3 -m pympress. (May needs the latest pygobject.)

Problem

There are some deprecation warnings (and maybe some more which are not shown during normal startup):

/usr/local/lib/python3.5/dist-packages/pympress/talk_time.py:184: PyGIDeprecationWarning: GObject.timeout_add is deprecated; use GLib.timeout_add instead
  GObject.timeout_add(250, self.update_time)
/usr/local/lib/python3.5/dist-packages/pympress/ui.py:537: PyGTKDeprecationWarning: Using positional arguments with the GObject constructor has been deprecated. Please specify keyword(s) for "title, parent, action, buttons" or use a class specific constructor. See: https://wiki.gnome.org/PyGObject/InitializerDeprecations
  (Gtk.STOCK_OPEN, Gtk.ResponseType.OK))
/usr/local/lib/python3.5/dist-packages/pympress/ui.py:537: PyGTKDeprecationWarning: The "buttons" argument must be a Gtk.ButtonsType enum value. Please use the "add_buttons" method for adding buttons. See: https://wiki.gnome.org/PyGObject/InitializerDeprecations
  (Gtk.STOCK_OPEN, Gtk.ResponseType.OK))
/usr/local/lib/python3.5/dist-packages/gi/overrides/Gtk.py:542: PyGTKDeprecationWarning: The keyword(s) "parent" have been deprecated in favor of "transient_for" respectively. See: https://wiki.gnome.org/PyGObject/InitializerDeprecations
  self._init(*args, **new_kwargs)

Clocks are confusing

There's too many of them and/or they are not differentiated enough. Any user should see how much time has passed since the presentation start with a simple glimpse, without having to look for that information on screen.

Hence, make other clocks (estimated time, wall clock) have one (or more) of:

  • smaller font
  • different format (e.g. 1:30pm or 13h30 instead of 1:30)
  • hideable
  • hidden by default

Enable blank screen with dot

It would be great to get a blank screen when pressing the dot, too. This seems to be the key event which is send by Logitech presenters.

embedded video disabled on Windows 10 (binary installer with VLC)

From the logfile:

ERROR:pympress.ui:video support is disabled
Traceback (most recent call last):
  File "C:\Users\bscuser\Documents\pympress\pympress\ui.py", line 66, in <module>
  File "c:\Python\64-bit\3.4\lib\importlib\_bootstrap.py", line 2237, in _find_and_load
  File "c:\Python\64-bit\3.4\lib\importlib\_bootstrap.py", line 2226, in _find_and_load_unlocked
  File "c:\Python\64-bit\3.4\lib\importlib\_bootstrap.py", line 1191, in _load_unlocked
  File "c:\Python\64-bit\3.4\lib\importlib\_bootstrap.py", line 1161, in _load_backward_compatible
  File "C:\Users\bscuser\Documents\pympress\pympress\vlcvideo.py", line 56, in <module>
TypeError: unsupported operand type(s) for +: 'NoneType' and 'str'

Gtk+ version requirement to high for Linux Mint 18.3 – error on slides with videos

The file vlcvideo.glade triggers an error because of unsatisfied requirements. Videos could not be played.

Environment

  • Linux Mint 18.3
  • Python version 3.5

Pympress

  • 1.1.2
  • Installation method: source

Expected behaviour

No error :-)

Steps to reproduce

With Gtk+ version 3.18 installed pympress throws an error when changing to a slide with video:

Traceback (most recent call last):
  File "/home/teichert/Development/pympress/pympress/ui.py", line 812, in on_navigation
    self.doc.goto_next()
  File "/home/teichert/Development/pympress/pympress/document.py", line 678, in goto_next
    self.goto(self.cur_page + 1)
  File "/home/teichert/Development/pympress/pympress/document.py", line 666, in goto
    self._do_page_change(number)
  File "/home/teichert/Development/pympress/pympress/document.py", line 651, in_do_page_change
    self.page_change()
  File "/home/teichert/Development/pympress/pympress/ui.py", line 706, in on_page_change
    self.medias.replace_media_overlays(self.doc.current_page())
  File "/home/teichert/Development/pympress/pympress/extras.py", line 178, in replace_media_overlays
    v_da_c = vlcvideo.VLCVideo(self.c_overlay, show_controls, relative_margins, get_curryfied_callback)
  File "/home/teichert/Development/pympress/pympress/vlcvideo.py", line 135, in __init__
    self.load_ui('vlcvideo')
  File "/home/teichert/Development/pympress/pympress/builder.py", line 183, in load_ui
    self.add_from_file(util.get_ui_resource_file(resource_name))
GLib.Error: gtk-builder-error-quark: /home/teichert/Development/pympress/pympress/share/xml/vlcvideo.glade:5:1 Required gtk+ version 3.20, current version is 3.18 (7)

Problem

The file pympress/share/xml/vlcvideo.glade reads <requires lib="gtk+" version="3.20"/> at line 4.
I could remove the error by changing to version="3.2" as found in the other glade files.
Everything seemed to worke fine after that.

Is there any specific reason for requiring v 3.20 or was this simply inserted by the development software itself?

File playlist

It would be nice to have a (possibly collapsible) list of files to open in the presenter window. Maybe with a file tree as well?
Depends on #8

Useful in situations where a set of presentations are to be presented in order and the user would like to minimize the setup time between talks.

Hyperref links

I've noticed that my hyperref links return to the first frame, rather than to the linked frame. I tested the links with pdfpc and okular, where they do work. I am not sure if this is a bug or a suggestion for improvement.

I like pympress a lot, thanks for sharing it.

Blurry rendering

Setup

  • Python 3.6.3 on Arch Linux 4.13.11-1
  • Pympress 1.1.0b2, installed with pip from github
  • external Monitor (1680x1050) on a laptop (2560x1440)

Expected behaviour

Text and images should be sharp on all slides

Steps to reproduce

Open any PDF to start the presentation

Problem

On the first slide, everything (full screen slide + 2 smaller previews) is nice and sharp. When I switch to the next slide, it and all subsequent slides are rendered blurry, as if they were upscaled from a smaller resolution.
I can force a re-render by moving the vertical delimiter between the previews or by switching the screens with S, which makes everything on the current and the next slide appear sharp. The following slides are blurry again.
I suspect that this is some scaling issue where the pre-rendered slides don't use the correct resolution. pympress.log also seems to point towards that direction:

CRITICAL:pympress.main:Uncaught exception:
Traceback (most recent call last):
File "/usr/lib/python3.6/site-packages/pympress/ui.py", line 1166, in on_configure_win
p_monitor = self.p_win.get_screen().get_monitor_at_window(self.p_frame_cur.get_parent_window())
TypeError: Argument 1 does not allow None as a value

cairo error - missing python-gi-cairo?

I am on Ubuntu 16.04 with Python 2.7 and installed the prerequisites as described in the readme. I tried to run the script on a .pdf and got errors like this.

Errors:

Traceback (most recent call last):
  File "/home/matsest/.local/lib/python2.7/site-packages/pympress/surfacecache.py", line 262, in renderer
    surface = cairo.ImageSurface(cairo.FORMAT_ARGB32, ww, wh)
TypeError: Couldn't find foreign struct converter for 'cairo.Context'
Traceback (most recent call last):
  File "/home/matsest/.local/lib/python2.7/site-packages/pympress/surfacecache.py", line 264, in renderer
    page.render_cairo(context, ww, wh, wtype)
  File "/home/matsest/.local/lib/python2.7/site-packages/pympress/document.py", line 421, in render_cairo
    self.page.render(cr)
KeyError: 'could not find foreign type Context'
# ... continuing

I solved it with performing

apt-get install python-gi-cairo

:)

Use a single VLC player instead of one per window

To save resources and guarantee a perfect sync between the video in both windows, we should use a single player instance and split the output in both windows.

It does not seem possible out of the box. Relevant topics on the VLC forums:

So basically extend libVLC and the python plugin, to use the clone splitter and embed the second output.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.