Commit f8bc1302 authored by Moritz Lipp's avatar Moritz Lipp

Merge branch 'develop'

parents 09315c6b 1999c355
......@@ -17,3 +17,6 @@ Johannes Meng <j@jmeng.de>
J. Commelin <jcommeli@math.leidenuniv.nl>
Julian Orth <ju.orth@googlemail.com>
Roland Schatz <roland.schatz@students.jku.at>
Abdó Roig-Maranges <abdo.roig@gmail.com>
Benoît Knecht <benoit.knecht@gmail.com>
Rob Cornish <jrmcornish@gmail.com>
......@@ -78,8 +78,11 @@ clean:
${DOBJECTS} ${PROJECT}-debug .depend ${PROJECT}.pc doc version.h \
*gcda *gcno $(PROJECT).info gcov *.tmp \
girara-version-check
$(QUIET)make -C tests clean
$(QUIET)make -C po clean
ifneq "$(wildcard ${RSTTOMAN})" ""
$(QUIET)rm -f zathura.1 zathurarc.5
endif
$(QUIET)$(MAKE) -C tests clean
$(QUIET)$(MAKE) -C po clean
${PROJECT}-debug: ${DOBJECTS}
$(ECHO) CC -o $@
......@@ -141,7 +144,8 @@ update-po:
ifneq "$(wildcard ${RSTTOMAN})" ""
%.1 %.5: config.mk
$(QUIET)sed "s/VERSION/${VERSION}/g" < $@.rst > $@.tmp
$(QUIET)${RSTTOMAN} $@.tmp > $@
$(QUIET)${RSTTOMAN} $@.tmp > $@.out.tmp
$(QUIET)mv $@.out.tmp $@
$(QUIET)rm $@.tmp
${PROJECT}.1: ${PROJECT}.1.rst
......
zathura - a document viewer
--------------------
===========================
zathura is a highly customizable and functional document viewer based on the
girara user interface library and several document libraries.
Requirements
------------
gtk2 (>= 2.18.6)
gtk2 (>= 2.28)
girara
sqlite3 (>= 3.5.9)
check (for tests)
intltool
python-docutils (for man pages)
Please note that you need to have a working pkg-config installation and that the
Makefile is only compatible with GNU make. If you don't have a working
......
......@@ -87,7 +87,8 @@ zathura_bookmark_free(zathura_bookmark_t* bookmark)
}
bool
zathura_bookmarks_load(zathura_t* zathura, const gchar* file) {
zathura_bookmarks_load(zathura_t* zathura, const gchar* file)
{
g_return_val_if_fail(zathura, false);
g_return_val_if_fail(file, false);
......
......@@ -58,20 +58,23 @@ cb_view_vadjustment_value_changed(GtkAdjustment* GIRARA_UNUSED(adjustment), gpoi
GtkAdjustment* view_vadjustment = gtk_scrolled_window_get_vadjustment(GTK_SCROLLED_WINDOW(zathura->ui.session->gtk.view));
GtkAdjustment* view_hadjustment = gtk_scrolled_window_get_hadjustment(GTK_SCROLLED_WINDOW(zathura->ui.session->gtk.view));
GdkRectangle view_rect;
/* get current adjustment values */
view_rect.y = 0;
view_rect.height = gtk_adjustment_get_page_size(view_vadjustment);
view_rect.x = 0;
view_rect.width = gtk_adjustment_get_page_size(view_hadjustment);
/* current adjustment values */
GdkRectangle view_rect = {
.x = 0,
.y = 0,
.width = gtk_adjustment_get_page_size(view_hadjustment),
.height = gtk_adjustment_get_page_size(view_vadjustment)
};
int page_padding = 1;
girara_setting_get(zathura->ui.session, "page-padding", &page_padding);
GdkRectangle center;
center.x = (view_rect.width + 1) / 2;
center.y = (view_rect.height + 1) / 2;
center.height = center.width = (2 * page_padding) + 1;
GdkRectangle center = {
.x = (view_rect.width + 1) / 2,
.y = (view_rect.height + 1) / 2,
.width = (2 * page_padding) + 1,
.height = (2 * page_padding) + 1
};
unsigned int number_of_pages = zathura_document_get_number_of_pages(zathura->document);
double scale = zathura_document_get_scale(zathura->document);
......@@ -81,12 +84,13 @@ cb_view_vadjustment_value_changed(GtkAdjustment* GIRARA_UNUSED(adjustment), gpoi
for (unsigned int page_id = 0; page_id < number_of_pages; page_id++) {
zathura_page_t* page = zathura_document_get_page(zathura->document, page_id);
GdkRectangle page_rect;
GdkRectangle page_rect = {
.width = zathura_page_get_width(page) * scale,
.height = zathura_page_get_height(page) * scale
};
GtkWidget* page_widget = zathura_page_get_widget(zathura, page);
gtk_widget_translate_coordinates(page_widget,
zathura->ui.session->gtk.view, 0, 0, &page_rect.x, &page_rect.y);
page_rect.width = zathura_page_get_width(page) * scale;
page_rect.height = zathura_page_get_height(page) * scale;
if (gdk_rectangle_intersect(&view_rect, &page_rect, NULL) == TRUE) {
zathura_page_set_visibility(page, true);
......@@ -177,14 +181,24 @@ cb_index_row_activated(GtkTreeView* tree_view, GtkTreePath* path,
}
sc_toggle_index(zathura->ui.session, NULL, NULL, 0);
/* zathura_jumplist_save is called when entering index mode */
zathura_link_evaluate(zathura, index_element->link);
zathura_jumplist_add(zathura);
}
g_object_unref(model);
}
bool
cb_sc_follow(GtkEntry* entry, girara_session_t* session)
typedef enum zathura_link_action_e
{
ZATHURA_LINK_ACTION_FOLLOW,
ZATHURA_LINK_ACTION_DISPLAY
} zathura_link_action_t;
static bool
handle_link(GtkEntry* entry, girara_session_t* session,
zathura_link_action_t action)
{
g_return_val_if_fail(session != NULL, FALSE);
g_return_val_if_fail(session->global.data != NULL, FALSE);
......@@ -221,9 +235,19 @@ cb_sc_follow(GtkEntry* entry, girara_session_t* session)
if (eval == true) {
zathura_link_t* link = zathura_page_widget_link_get(ZATHURA_PAGE(page_widget), index);
if (link != NULL) {
zathura_link_evaluate(zathura, link);
invalid_index = false;
switch (action) {
case ZATHURA_LINK_ACTION_FOLLOW:
zathura_jumplist_save(zathura);
zathura_link_evaluate(zathura, link);
zathura_jumplist_add(zathura);
break;
case ZATHURA_LINK_ACTION_DISPLAY:
zathura_link_display(zathura, link);
break;
}
}
}
}
......@@ -237,6 +261,18 @@ cb_sc_follow(GtkEntry* entry, girara_session_t* session)
return (eval == TRUE) ? TRUE : FALSE;
}
bool
cb_sc_follow(GtkEntry* entry, girara_session_t* session)
{
return handle_link(entry, session, ZATHURA_LINK_ACTION_FOLLOW);
}
bool
cb_sc_display_link(GtkEntry* entry, girara_session_t* session)
{
return handle_link(entry, session, ZATHURA_LINK_ACTION_DISPLAY);
}
void
cb_file_monitor(GFileMonitor* monitor, GFile* file, GFile* UNUSED(other_file), GFileMonitorEvent event, girara_session_t* session)
{
......@@ -404,7 +440,9 @@ cb_unknown_command(girara_session_t* session, const char* input)
}
}
zathura_jumplist_save(zathura);
page_set(zathura, atoi(input) - 1);
zathura_jumplist_add(zathura);
return true;
}
......@@ -80,6 +80,15 @@ void cb_index_row_activated(GtkTreeView* tree_view, GtkTreePath* path,
*/
bool cb_sc_follow(GtkEntry* entry, girara_session_t* session);
/**
* Called when input has been passed to the sc_display_link dialog
*
* @param entry The dialog inputbar
* @param session The girara session
* @return true if no error occured and the event has been handled
*/
bool cb_sc_display_link(GtkEntry* entry, girara_session_t* session);
/**
* Emitted when file has been changed
*
......
......@@ -340,6 +340,8 @@ cmd_search(girara_session_t* session, const char* input, girara_argument_t* argu
bool firsthit = true;
zathura_error_t error = ZATHURA_ERROR_OK;
/* set search direction */
zathura->global.search_direction = argument->n;
unsigned int number_of_pages = zathura_document_get_number_of_pages(zathura->document);
unsigned int current_page_number = zathura_document_get_current_page_number(zathura->document);
......@@ -363,7 +365,10 @@ cmd_search(girara_session_t* session, const char* input, girara_argument_t* argu
GtkWidget* page_widget = zathura_page_get_widget(zathura, page);
g_object_set(page_widget, "draw-links", FALSE, NULL);
render_lock(zathura->sync.render_thread);
girara_list_t* result = zathura_page_search_text(page, input, &error);
render_unlock(zathura->sync.render_thread);
if (result == NULL || girara_list_size(result) == 0) {
girara_list_free(result);
g_object_set(page_widget, "search-results", NULL, NULL);
......@@ -380,7 +385,12 @@ cmd_search(girara_session_t* session, const char* input, girara_argument_t* argu
if (page_id != 0) {
page_set_delayed(zathura, zathura_page_get_index(page));
}
if (argument->n == BACKWARD) {
/* start at bottom hit in page */
g_object_set(page_widget, "search-current", girara_list_size(result) - 1, NULL);
} else {
g_object_set(page_widget, "search-current", 0, NULL);
}
firsthit = false;
}
}
......
This diff is collapsed.
......@@ -3,7 +3,7 @@
ZATHURA_VERSION_MAJOR = 0
ZATHURA_VERSION_MINOR = 2
ZATHURA_VERSION_REV = 1
ZATHURA_VERSION_REV = 2
# If the API changes, the API version and the ABI version have to be bumped.
ZATHURA_API_VERSION = 2
# If the ABI breaks for any reason, this has to be bumped.
......@@ -16,7 +16,7 @@ ZATHURA_GTK_VERSION ?= 2
# minimum required zathura version
# If you want to disable the check, set GIRARA_VERSION_CHECK to 0.
GIRARA_MIN_VERSION = 0.1.4
GIRARA_MIN_VERSION = 0.1.5
GIRARA_VERSION_CHECK ?= $(shell pkg-config --atleast-version=$(GIRARA_MIN_VERSION) girara-gtk${ZATHURA_GTK_VERSION}; echo $$?)
# database
......
......@@ -75,8 +75,7 @@ typedef struct zathura_plaindatabase_private_s {
#define ZATHURA_PLAINDATABASE_GET_PRIVATE(obj) \
(G_TYPE_INSTANCE_GET_PRIVATE ((obj), ZATHURA_TYPE_PLAINDATABASE, zathura_plaindatabase_private_t))
enum
{
enum {
PROP_0,
PROP_PATH
};
......@@ -521,7 +520,7 @@ zathura_db_read_key_file_from_file(const char* path)
if (g_key_file_load_from_data(key_file, content, contentlen,
G_KEY_FILE_KEEP_COMMENTS | G_KEY_FILE_KEEP_TRANSLATIONS, &error) ==
FALSE) {
if (error->code != 1) /* ignore empty file */ {
if (error->code != 1) { /* ignore empty file */
free(content);
g_key_file_free(key_file);
g_error_free(error);
......
......@@ -33,8 +33,7 @@ typedef struct zathura_sqldatabase_private_s {
#define ZATHURA_SQLDATABASE_GET_PRIVATE(obj) \
(G_TYPE_INSTANCE_GET_PRIVATE ((obj), ZATHURA_TYPE_SQLDATABASE, zathura_sqldatabase_private_t))
enum
{
enum {
PROP_0,
PROP_PATH
};
......
......@@ -36,8 +36,7 @@ static const gchar* guess_type(const char* path);
/**
* Document
*/
struct zathura_document_s
{
struct zathura_document_s {
char* file_path; /**< File path of the document */
const char* password; /**< Password of the document */
unsigned int current_page_number; /**< Current page number */
......@@ -390,6 +389,34 @@ zathura_document_set_page_offset(zathura_document_t* document, unsigned int page
}
}
void
zathura_document_get_cell_size(zathura_document_t* document,
unsigned int* height, unsigned int* width)
{
g_return_if_fail(document != NULL && height != NULL && width != NULL);
unsigned int number_of_pages =
zathura_document_get_number_of_pages(document);
*width = 0;
*height = 0;
/* Get the size of each cell of the table/grid, assuming it is homogeneous
* (i.e. each cell has the same dimensions. */
for (unsigned int page_id = 0; page_id < number_of_pages; page_id++) {
zathura_page_t* page = zathura_document_get_page(document, page_id);
if (page == NULL)
continue;
unsigned int page_width = 0, page_height = 0;
page_calc_height_width(page, &page_height, &page_width, true);
if (*width < page_width)
*width = page_width;
if (*height < page_height)
*height = page_height;
}
}
zathura_error_t
zathura_document_save_as(zathura_document_t* document, const char* path)
{
......@@ -511,17 +538,18 @@ guess_type(const char* path)
const int fd = fileno(f);
guchar* content = NULL;
size_t length = 0u;
while (uncertain == TRUE && length < GT_MAX_READ) {
ssize_t bytes_read = -1;
while (uncertain == TRUE && length < GT_MAX_READ && bytes_read != 0) {
g_free((void*)content_type);
content_type = NULL;
content = g_realloc(content, length + BUFSIZ);
const ssize_t r = read(fd, content + length, BUFSIZ);
if (r == -1) {
bytes_read = read(fd, content + length, BUFSIZ);
if (bytes_read == -1) {
break;
}
length += r;
length += bytes_read;
content_type = g_content_type_guess(NULL, content, length, &uncertain);
girara_debug("new guess: %s uncertain: %d, read: %zu\n", content_type, uncertain, length);
}
......
......@@ -169,6 +169,17 @@ void* zathura_document_get_data(zathura_document_t* document);
*/
void zathura_document_set_data(zathura_document_t* document, void* data);
/**
* Computes the size of a cell in the document's layout table, assuming that
* the table is homogeneous (i.e. every cell has the same dimensions). It takes
* the current scale into account.
*
* @param[in] document The document instance
* @param[out] height,width The computed height and width of the cell
*/
void zathura_document_get_cell_size(zathura_document_t* document,
unsigned int* height, unsigned int* width);
/**
* Save the document
*
......
......@@ -10,8 +10,7 @@
#include "document.h"
#include "utils.h"
struct zathura_link_s
{
struct zathura_link_s {
zathura_rectangle_t position; /**< Position of the link */
zathura_link_type_t type; /**< Link type */
zathura_link_target_t target; /**< Link target */
......@@ -122,8 +121,7 @@ zathura_link_evaluate(zathura_t* zathura, zathura_link_t* link)
switch (link->type) {
case ZATHURA_LINK_GOTO_DEST:
switch (link->target.destination_type) {
case ZATHURA_LINK_DESTINATION_XYZ: {
if (link->target.destination_type != ZATHURA_LINK_DESTINATION_UNKNOWN) {
if (link->target.scale != 0) {
zathura_document_set_scale(zathura->document, link->target.scale);
}
......@@ -135,10 +133,13 @@ zathura_link_evaluate(zathura_t* zathura, zathura_link_t* link)
return;
}
zathura_document_set_current_page_number(zathura->document, link->target.page_number);
/* get page offset */
page_offset_t offset;
page_calculate_offset(zathura, page, &offset);
if (link->target.destination_type == ZATHURA_LINK_DESTINATION_XYZ) {
if (link->target.left != -1) {
offset.x += link->target.left * zathura_document_get_scale(zathura->document);
}
......@@ -146,12 +147,10 @@ zathura_link_evaluate(zathura_t* zathura, zathura_link_t* link)
if (link->target.top != -1) {
offset.y += link->target.top * zathura_document_get_scale(zathura->document);
}
}
position_set_delayed(zathura, offset.x, offset.y);
}
break;
default:
break;
statusbar_page_number_update(zathura);
}
break;
case ZATHURA_LINK_GOTO_REMOTE:
......@@ -170,6 +169,28 @@ zathura_link_evaluate(zathura_t* zathura, zathura_link_t* link)
}
}
void
zathura_link_display(zathura_t* zathura, zathura_link_t* link)
{
zathura_link_type_t type = zathura_link_get_type(link);
zathura_link_target_t target = zathura_link_get_target(link);
switch (type) {
case ZATHURA_LINK_GOTO_DEST:
girara_notify(zathura->ui.session, GIRARA_INFO, _("Link: page %d"),
target.page_number);
break;
case ZATHURA_LINK_GOTO_REMOTE:
case ZATHURA_LINK_URI:
case ZATHURA_LINK_LAUNCH:
case ZATHURA_LINK_NAMED:
girara_notify(zathura->ui.session, GIRARA_INFO, _("Link: %s"),
target.value);
break;
default:
girara_notify(zathura->ui.session, GIRARA_ERROR, _("Link: Invalid"));
}
}
static void
link_remote(zathura_t* zathura, const char* file)
{
......
......@@ -56,4 +56,12 @@ zathura_link_target_t zathura_link_get_target(zathura_link_t* link);
*/
void zathura_link_evaluate(zathura_t* zathura, zathura_link_t* link);
/**
* Display a link using girara_notify
*
* @param zathura Zathura instance
* @param link The link
*/
void zathura_link_display(zathura_t* zathura, zathura_link_t* link);
#endif // LINK_H
......@@ -111,7 +111,7 @@ main(int argc, char* argv[])
}
/* Enable/Disable synctex support */
zathura_set_syntex(zathura, synctex);
zathura_set_synctex(zathura, synctex);
/* Print version */
if (print_version == true) {
......
......@@ -74,8 +74,7 @@ static gboolean cb_zathura_page_widget_popup_menu(GtkWidget* widget);
static void cb_menu_image_copy(GtkMenuItem* item, ZathuraPage* page);
static void cb_menu_image_save(GtkMenuItem* item, ZathuraPage* page);
enum properties_e
{
enum properties_e {
PROP_0,
PROP_PAGE,
PROP_ZATHURA,
......@@ -507,8 +506,8 @@ redraw_rect(ZathuraPage* widget, zathura_rectangle_t* rectangle)
GdkRectangle grect;
grect.x = rectangle->x1;
grect.y = rectangle->y1;
grect.width = rectangle->x2 - rectangle->x1;
grect.height = rectangle->y2 - rectangle->y1;
grect.width = (rectangle->x2 + 1) - rectangle->x1;
grect.height = (rectangle->y2 + 1) - rectangle->y1;
#if (GTK_MAJOR_VERSION == 3)
gtk_widget_queue_draw_area(GTK_WIDGET(widget), grect.x, grect.y, grect.width, grect.height);
#else
......@@ -550,6 +549,10 @@ cb_zathura_page_widget_button_press_event(GtkWidget* widget, GdkEventButton* but
zathura_page_widget_private_t* priv = ZATHURA_PAGE_GET_PRIVATE(widget);
if (girara_callback_view_button_press_event(widget, button, priv->zathura->ui.session) == true) {
return true;
}
if (button->button == 1) { /* left click */
if (button->type == GDK_BUTTON_PRESS) {
/* start the selection */
......
......@@ -14,8 +14,7 @@
/**
* Document plugin structure
*/
struct zathura_plugin_s
{
struct zathura_plugin_s {
girara_list_t* content_types; /**< List of supported content types */
zathura_plugin_register_function_t register_function; /**< Document open function */
zathura_plugin_functions_t functions; /**< Document functions */
......@@ -28,8 +27,7 @@ struct zathura_plugin_s
/**
* Plugin mapping
*/
typedef struct zathura_type_plugin_mapping_s
{
typedef struct zathura_type_plugin_mapping_s {
const gchar* type; /**< Plugin type */
zathura_plugin_t* plugin; /**< Mapped plugin */
} zathura_type_plugin_mapping_t;
......@@ -37,8 +35,7 @@ typedef struct zathura_type_plugin_mapping_s
/**
* Plugin manager
*/
struct zathura_plugin_manager_s
{
struct zathura_plugin_manager_s {
girara_list_t* plugins; /**< List of plugins */
girara_list_t* path; /**< List of plugin paths */
girara_list_t* type_plugin_mapping; /**< List of type -> plugin mappings */
......@@ -103,7 +100,7 @@ zathura_plugin_manager_load(zathura_plugin_manager_t* plugin_manager)
while ((name = (char*) g_dir_read_name(dir)) != NULL) {
char* path = g_build_filename(plugindir, name, NULL);
if (g_file_test(path, G_FILE_TEST_IS_REGULAR) == 0) {
girara_info("%s is not a regular file. Skipping.", path);
girara_debug("%s is not a regular file. Skipping.", path);
g_free(path);
continue;
}
......@@ -121,8 +118,7 @@ zathura_plugin_manager_load(zathura_plugin_manager_t* plugin_manager)
/* resolve symbols and check API and ABI version*/
zathura_plugin_api_version_t api_version = NULL;
if (g_module_symbol(handle, PLUGIN_API_VERSION_FUNCTION, (gpointer*) &api_version) == FALSE ||
api_version == NULL)
{
api_version == NULL) {
girara_error("could not find '%s' function in plugin %s", PLUGIN_API_VERSION_FUNCTION, path);
g_free(path);
g_module_close(handle);
......@@ -139,8 +135,7 @@ zathura_plugin_manager_load(zathura_plugin_manager_t* plugin_manager)
zathura_plugin_abi_version_t abi_version = NULL;
if (g_module_symbol(handle, PLUGIN_ABI_VERSION_FUNCTION, (gpointer*) &abi_version) == FALSE ||
abi_version == NULL)
{
abi_version == NULL) {
girara_error("could not find '%s' function in plugin %s", PLUGIN_ABI_VERSION_FUNCTION, path);
g_free(path);
g_module_close(handle);
......@@ -157,8 +152,7 @@ zathura_plugin_manager_load(zathura_plugin_manager_t* plugin_manager)
zathura_plugin_register_service_t register_service = NULL;
if (g_module_symbol(handle, PLUGIN_REGISTER_FUNCTION, (gpointer*) &register_service) == FALSE ||
register_service == NULL)
{
register_service == NULL) {
girara_error("could not find '%s' function in plugin %s", PLUGIN_REGISTER_FUNCTION, path);
g_free(path);
g_module_close(handle);
......@@ -188,7 +182,7 @@ zathura_plugin_manager_load(zathura_plugin_manager_t* plugin_manager)
girara_error("could not register plugin %s", path);
zathura_plugin_free(plugin);
} else {
girara_info("successfully loaded plugin %s", path);
girara_debug("successfully loaded plugin %s", path);
zathura_plugin_version_function_t plugin_major = NULL, plugin_minor = NULL, plugin_rev = NULL;
g_module_symbol(handle, PLUGIN_VERSION_MAJOR_FUNCTION, (gpointer*) &plugin_major);
......
......@@ -4,10 +4,13 @@ PROJECT = zathura
GETTEXT_PACKAGE = $(PROJECT)
CATALOGS = $(wildcard *.po)
LINGUAS ?= $(patsubst %.po, %, $(CATALOGS))
ifeq ($(LINGUAS),)
ALINGUAS =
else
ALINGUAS = $(shell find $(patsubst %, %.po, $(LINGUAS)) 2>/dev/null)
endif
MOS = $(patsubst %, %/LC_MESSAGES/${GETTEXT_PACKAGE}.mo, $(patsubst %.po, %, $(ALINGUAS)))
include ../config.mk
include ../common.mk
......@@ -31,6 +34,7 @@ update-po: ${PROJECT}.pot
$(ECHO) updating po: files ${CATALOGS}
$(QUIET)set -e && for f in ${CATALOGS} ; do \
intltool-update --dist --gettext-package=${PROJECT} `echo $$f | sed 's/\.po//'` ; \
sed -i 's/Report-Msgid-Bugs-To: \\n/Report-Msgid-Bugs-To: http:\/\/bugs.pwmt.org\\n/' "$$f" ; \
done
%/LC_MESSAGES/${PROJECT}.mo: %.po
......
......@@ -4,8 +4,8 @@
msgid ""
msgstr ""
"Project-Id-Version: zathura\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-08-30 19:46+0200\n"
"Report-Msgid-Bugs-To: http://bugs.pwmt.org\n"
"POT-Creation-Date: 2013-01-13 15:08+0100\n"
"PO-Revision-Date: 2012-06-19 23:59+0200\n"
"Last-Translator: Martin Pelikan <pelikan@storkhole.cz>\n"
"Language-Team: pwmt.org <mail@pwmt.org>\n"
......@@ -14,23 +14,24 @@ msgstr ""
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: ../callbacks.c:204
#: ../callbacks.c:218
#, c-format
msgid "Invalid input '%s' given."
msgstr "Neplatný vstup: %s"
#: ../callbacks.c:232
#: ../callbacks.c:256
#, c-format
msgid "Invalid index '%s' given."
msgstr "Neplatný index: %s"
#: ../commands.c:35 ../commands.c:70 ../commands.c:97 ../commands.c:139
#: ../commands.c:253 ../commands.c:283 ../commands.c:309 ../commands.c:400
#: ../commands.c:521 ../shortcuts.c:454 ../shortcuts.c:919
#: ../commands.c:253 ../commands.c:283 ../commands.c:309 ../commands.c:408
#: ../commands.c:529 ../shortcuts.c:475 ../shortcuts.c:1053
#: ../shortcuts.c:1082
msgid "No document opened."
msgstr "Není otevřený žádný dokument."
#: ../commands.c:41 ../commands.c:76 ../commands.c:103 ../commands.c:405
#: ../commands.c:41 ../commands.c:76 ../commands.c:103 ../commands.c:413
msgid "Invalid number of arguments given."
msgstr "Špatný počet argumentů."
......@@ -57,7 +58,7 @@ msgstr "Záložka smazána: %s"
#: ../commands.c:84
#, c-format
msgid "Failed to remove bookmark: %s"
msgstr "Nem¿¿u smazat zálo¿ku: %s"
msgstr "Nemůžu smazat záložku: %s"
#: ../commands.c:110
#, c-format
......@@ -88,37 +89,37 @@ msgstr "Nepovedlo se uložit dokument."
msgid "Invalid number of arguments."
msgstr "Špatný počet argumentů."
#: ../commands.c:424
#: ../commands.c:432
#, c-format
msgid "Couldn't write attachment '%s' to '%s'."
msgstr "Nepovedlo se zapsat p¿ílohu '%s' do '%s'."
msgstr "Nepovedlo se zapsat přílohu '%s' do '%s'."
#: ../commands.c:426
#: ../commands.c:434
#, c-format
msgid "Wrote attachment '%s' to '%s'."
msgstr "Příloha '%s' zapsána do '%s'."
#: ../commands.c:470
#: ../commands.c:478
#, c-format
msgid "Wrote image '%s' to '%s'."
msgstr "Obrázek '%s' zapsán do '%s'."
#: ../commands.c:472
#: ../commands.c:480
#, c-format
msgid "Couldn't write image '%s' to '%s'."
msgstr "Nepovedlo se zapsat obrázek '%s' do '%s'."
#: ../commands.c:479
#: ../commands.c:487
#, c-format
msgid "Unknown image '%s'."
msgstr "Neznámý obrázek '%s'."
#: ../commands.c:483
#: ../commands.c:491
#, c-format
msgid "Unknown attachment or image '%s'."
msgstr "Neznámá příloha nebo obrázek '%s'."
#: ../commands.c:534
#: ../commands.c:542
msgid "Argument must be a number."
msgstr "Argumentem musí být číslo."
......@@ -137,211 +138,241 @@ msgid "Images"
msgstr "Obrázky"
#. zathura settings
#: ../config.c:105
#: ../config.c:135
msgid "Database backend"
msgstr "Databázový backend"
#: ../config.c:107
#: ../config.c:137
msgid "Zoom step"
msgstr "Zoom step"
#: ../config.c:109
#: ../config.c:139
msgid "Padding between pages"
msgstr "Mezery mezi stránkami"
#: ../config.c:111
#: ../config.c:141
msgid "Number of pages per row"
msgstr "Počet stránek na řádek"
#: ../config.c:113
#: ../config.c:143
msgid "Column of the first page"
msgstr ""
#: ../config.c:115
#: ../config.c:145
msgid "Scroll step"
msgstr "Scroll step"
#: ../config.c:117
#: ../config.c:147
msgid "Horizontal scroll step"