Git Product home page Git Product logo

curie's Introduction

Curie

CI build Coverage CPAN
Coverage Status CPAN version

Screenshot

Curie v0.001 displaying an excerpt from "Ways of coloring: Comparative color vision as a case study for cognitive science"

curie's People

Contributors

chiragghanshani avatar helenbach avatar stayerx avatar zmughal avatar

Stargazers

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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

curie's Issues

The status bar is too wide

  • 1. We should reduce the thickness of the bar
  • 2. Discuss possible functionalities such as page info, zoom level, zoom button (see review of pdf viewers as a starting point [link-should-be-added-here])

glade-status-bar

Add a text field for selecting page by number

@ChiragGhanshani, could you add a new text area widget to the simple-gui branch (PR #6) that is between the back and forward buttons which

  • shows the current page number and the number of pages
  • and when the user enters a page in the text area, it should set the current page number to whatever was entered

Something like the following interface from xpdf:
xpdf typefaces pdf_166

Create a new branch off the simple-gui branch and open a pull request for your change.

If you get stuck, please ask.

Bug: page navigation bar behaviour

  • 1. When we are at the last page of a document/file the forward button should be disabled. In a similar fashion, when we are at the beginning of a file we should not be able to move backwards.
  • 2. Page number entry does not display anything on open.
  • 3. Page number entry does goes to 0 and goes to (#pages+1) with forward and backwards.

OpenDocument write support

For taking notes, I believe OpenDocument is the most appropriate format to start with.

We may need to add our own tags to add annotation linking information.

Refactor the toggle buttons code

From PR #37.

  • Create functions that check if moving to the next/previous page is possible
  • Change name from on_draw_pdf_page to on_draw_page
  • Simplify if statement by storing boolean.

Add a widget/dialog to show PDF metadata

See:
pdfinfo:

$ pdfinfo test-data/PDF/Adobe/pdf_reference_1-7.pdf
Title:          PDF Reference, version 1.7
Subject:        Adobe Portable Document Format (PDF)
Author:         Adobe Systems Incorporated
Creator:        FrameMaker 7.2
Producer:       Acrobat Distiller 7.0.5 (Windows)
CreationDate:   Tue Oct 17 03:10:20 2006 CDT
ModDate:        Sat Nov 18 17:40:43 2006 CST
Tagged:         yes
UserProperties: no
Suspects:       no
Form:           AcroForm
JavaScript:     no
Pages:          1310
Encrypted:      no
Page size:      531 x 666 pts
Page rot:       0
File size:      32472771 bytes
Optimized:      yes
PDF version:    1.6

Foxit:
foxitreader_2017-05-13_17-02-04

Adobe Acrobat Reader:
acrord32_2017-05-13_17-03-09


mutool

mutool show pdf_reference_1-7.pdf $(mutool show pdf_reference_1-7.pdf grep | grep 'Author(' | cut -d: -f2 | tail -1)
109959 0 obj
<<
  /CreationDate (D:20061017081020Z)
  /Subject (Adobe Portable Document Format \(PDF\))
  /Author (Adobe Systems Incorporated)
  /Creator (FrameMaker 7.2)
  /Producer (Acrobat Distiller 7.0.5 \(Windows\))
  /ModDate (D:20061118211043-02'30')
  /Title (PDF Reference, version 1.7)
>>
endobj

Note that \( ->( and \251 -> © (which is ordinal 251 in octal). More info about escaping objects is on page 54 of the PDF reference:

foxitreader_2017-05-13_17-21-32

Open file dialog

Should show when clicking the File > Open menu item

  • PDF file extension filter (only show *.pdf files)
  • Option to show all files

Document everything

Use POD coverage tests to check that each class, method, and attribute has documentation.

Create a dictionary for messages and text for support of future translation

I was thinking of creating a dictionary with all the important text so that when the language is selected the message in the correct language appears to the end user while the actual coding remains the same. The pool of messages probably should have a small degree of separation/clustering but not too much such as most terms can be used on multiple ages/occasions

From Zaki: in FOSS projects [https://github.com/GNOME/evince/tree/master/po], this is usually done using the gettext library and .po files.

Generate menus

We need menus because buttons will clutter the UI.

  • File → Open
  • File → Recent (submenu)
  • File → Quit
  • View → Continuous (toggle)
  • View → Page mode→Single
  • View → Page mode → Facing → First page center
  • View → Page mode → Facing → First page right
  • View → Page mode → Facing → First page left
  • Help → About

Set the window title to the PDF filename

Set the title of the application window to the currently open PDF filename.

Create a new branch off the simple-gui branch (PR #6) and open a pull request for your change.

Put the drawing area in a scrollable region

@StayerX, could you edit the run.pl code in simple-gui branch (PR #6) the to have the drawing area in a scrollable region? This will allow for moving the page around if it is larger than the window size.

Create a new branch off the simple-gui branch and open a pull request for your change.

It should scroll both horizontally and vertically and the scrollbars should appear automatically when needed.

If you get stuck, please ask. #simple-gui-scrollable

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.