Remove autotools related files, '.pro' files and 'distribution' and '.pc' folders

Signed-off-by: Michele Calgaro <michele.calgaro@yahoo.it>
pull/1/head
Michele Calgaro 9 months ago
parent 2462d03f32
commit 02625a6051
Signed by: MicheleC
GPG Key ID: 2A75B7CA8ADED5CF

@ -1 +0,0 @@
debian/patches

@ -1,51 +0,0 @@
/*
* Copyright (C) 2004-2012 Geometer Plus <contact@geometerplus.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
* 02110-1301, USA.
*/
#include <QtCore/QCoreApplication>
#include <QtCore/QDir>
#include <QtCore/QString>
#include <ZLStringUtil.h>
#include "ZLQtFSManager.h"
std::string ZLQtFSManager::convertFilenameToUtf8(const std::string &name) const {
if (name.empty()) {
return name;
}
QString qString = QString::fromLocal8Bit(name.c_str());
return (qString == QString::null) ? "" : (const char*)qString.toUtf8();
}
shared_ptr<ZLMimeType> ZLQtFSManager::mimeType(const std::string &path) const {
// TODO: implement
return ZLMimeType::EMPTY;
}
void ZLQtFSManager::normalizeRealPath(std::string &path) const {
if (ZLStringUtil::stringStartsWith(path, "~~/") || path == "~~") {
static const std::string replacement =
std::string((const char*)QCoreApplication::applicationDirPath().toUtf8()) + "/..";
path = replacement + path.substr(2);
} else if (ZLStringUtil::stringStartsWith(path, "~/") || path == "~") {
static const std::string replacement = (const char*)QDir::homePath().toUtf8();
path = replacement + path.substr(1);
}
}

@ -1,42 +0,0 @@
include $(ROOTDIR)/makefiles/arch/unix.mk
ifeq "$(INSTALLDIR)" ""
INSTALLDIR=/usr
endif
IMAGEDIR = $(INSTALLDIR)/share/pixmaps
APPIMAGEDIR = $(INSTALLDIR)/share/pixmaps/%APPLICATION_NAME%
CCACHE = $(shell if which ccache > /dev/null; then echo "ccache"; fi) #if ccache is not installed, do not use it
CC = $(CCACHE) gcc
AR = ar rsu
LD = g++
CFLAGS = -pipe -fno-exceptions -Wall -Wno-ctor-dtor-privacy -W -DLIBICONV_PLUG
LDFLAGS =
EXTERNAL_INCLUDE = $(shell pkg-config --cflags fribidi)
ifeq "$(UI_TYPE)" "qt"
MOC = moc-qt3
QTINCLUDE = -I /usr/include/qt3
else
MOC = $(shell pkg-config QtCore --variable=moc_location)
QTINCLUDE = -I $(shell pkg-config --cflags QtCore)
endif
GTKINCLUDE = $(shell pkg-config --cflags gtk+-2.0 libpng xft)
ifeq "$(UI_TYPE)" "qt"
UILIBS = -lqt-mt
endif
ifeq "$(UI_TYPE)" "qt4"
UILIBS = $(shell pkg-config --libs QtCore QtGui QtNetwork)
endif
ifeq "$(UI_TYPE)" "gtk"
UILIBS = $(shell pkg-config --libs gtk+-2.0 gio-2.0) -lpng -ljpeg
endif
RM = rm -rvf
RM_QUIET = rm -rf

@ -1,84 +0,0 @@
/*
* Copyright (C) 2008-2012 Geometer Plus <contact@geometerplus.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
* 02110-1301, USA.
*/
#include <QtGui/QBoxLayout>
#include <QtGui/QLineEdit>
#include <QtGui/QToolBar>
#include <QtGui/QKeyEvent>
#include "ZLQtApplicationWindow.h"
#include "../util/ZLQtKeyUtil.h"
class ZLQtLineEdit : public QLineEdit {
public:
ZLQtLineEdit(QToolBar *toolbar, ZLQtApplicationWindow &window, ZLQtApplicationWindow::LineEditParameter &parameter, const std::string &actionId);
private:
void keyReleaseEvent(QKeyEvent *event);
private:
ZLQtApplicationWindow &myWindow;
ZLQtApplicationWindow::LineEditParameter &myParameter;
const std::string myActionId;
};
ZLQtLineEdit::ZLQtLineEdit(QToolBar *toolbar, ZLQtApplicationWindow &window, ZLQtApplicationWindow::LineEditParameter &parameter, const std::string &actionId) : QLineEdit(toolbar), myWindow(window), myParameter(parameter), myActionId(actionId) {
}
void ZLQtLineEdit::keyReleaseEvent(QKeyEvent *event) {
event->accept();
const std::string key = ZLQtKeyUtil::keyName(event);
if (key == "<Return>") {
myWindow.application().doAction(myActionId);
myWindow.setFocusToMainWidget();
} else if (key == "<Esc>") {
myParameter.restoreOldValue();
myWindow.setFocusToMainWidget();
}
}
ZLQtApplicationWindow::LineEditParameter::LineEditParameter(QToolBar *toolbar, ZLQtApplicationWindow &window, const ZLToolbar::ParameterItem &textFieldItem) {
myEdit = new ZLQtLineEdit(toolbar, window, *this, textFieldItem.actionId());
myEdit->setAlignment(Qt::AlignHCenter);
myEdit->setMaxLength(textFieldItem.maxWidth());
myEdit->setFixedWidth(textFieldItem.maxWidth() * 10 + 10);
myEdit->setFocusPolicy(Qt::ClickFocus);
myEdit->setToolTip(QString::fromUtf8(textFieldItem.tooltip().c_str()));
myAction = toolbar->addWidget(myEdit);
// I don't understand why this code does work but it does.
//QBoxLayout *layout = (QBoxLayout*)toolbar->layout();
//layout->addStretch();
}
QAction *ZLQtApplicationWindow::LineEditParameter::action() const {
return myAction;
}
std::string ZLQtApplicationWindow::LineEditParameter::internalValue() const {
return (const char*)myEdit->text().toUtf8();
}
void ZLQtApplicationWindow::LineEditParameter::internalSetValue(const std::string &value) {
myEdit->setText(QString::fromUtf8(value.c_str()));
}
void ZLQtApplicationWindow::LineEditParameter::restoreOldValue() {
VisualParameter::restoreOldValue();
}

@ -1,331 +0,0 @@
/*
* Copyright (C) 2004-2012 Geometer Plus <contact@geometerplus.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
* 02110-1301, USA.
*/
#include <QtGui/QApplication>
#include <QtGui/QPixmap>
#include <QtGui/QImage>
#include <QtGui/QIcon>
#include <QtGui/QToolBar>
#include <QtGui/QMenuBar>
#include <QtGui/QMenu>
#include <QtGui/QToolButton>
#include <QtGui/QLayout>
#include <QtGui/QWheelEvent>
#include <QtGui/QDockWidget>
#include <QtCore/QObjectList>
#include <ZLibrary.h>
#include <ZLFile.h>
#include <ZLPopupData.h>
#include "ZLQtApplicationWindow.h"
#include "../dialogs/ZLQtDialogManager.h"
#include "../view/ZLQtViewWidget.h"
#include "../util/ZLQtKeyUtil.h"
void ZLQtDialogManager::createApplicationWindow(ZLApplication *application) const {
myApplicationWindow = new ZLQtApplicationWindow(application);
}
ZLQtToolBarAction::ZLQtToolBarAction(ZLQtApplicationWindow *parent, ZLToolbar::AbstractButtonItem &item) : QAction(parent), myItem(item) {
static std::string imagePrefix = ZLibrary::ApplicationImageDirectory() + ZLibrary::FileNameDelimiter;
const QString path = QString::fromUtf8(ZLFile(imagePrefix + myItem.iconName() + ".png").path().c_str());
QPixmap icon(path);
setIcon(QIcon(icon));
QSize size = icon.size();
if (item.type() == ZLToolbar::Item::TOGGLE_BUTTON) {
setCheckable(true);
}
QString text = QString::fromUtf8(myItem.tooltip().c_str());
setText(text);
setToolTip(text);
connect(this, SIGNAL(triggered()), this, SLOT(onActivated()));
}
void ZLQtToolBarAction::onActivated() {
((ZLQtApplicationWindow*)parent())->onButtonPress(myItem);
}
void ZLQtApplicationWindow::setToggleButtonState(const ZLToolbar::ToggleButtonItem &button) {
myActions[&button]->setChecked(button.isPressed());
}
ZLQtApplicationWindow::ZLQtApplicationWindow(ZLApplication *application) :
ZLDesktopApplicationWindow(application),
myFullscreenToolBar(0),
myDocWidget(0),
myFullScreen(false),
myWasMaximized(false),
myCursorIsHyperlink(false) {
const std::string iconFileName = ZLibrary::ImageDirectory() + ZLibrary::FileNameDelimiter + ZLibrary::ApplicationName() + ".png";
QPixmap icon(iconFileName.c_str());
setWindowIcon(icon);
myWindowToolBar = new QToolBar(this);
myWindowToolBar->setFocusPolicy(Qt::NoFocus);
myWindowToolBar->setMovable(false);
addToolBar(myWindowToolBar);
myWindowToolBar->setIconSize(QSize(32, 32));
if (hasFullscreenToolbar()) {
myFullscreenToolBar = new QToolBar();
myFullscreenToolBar->setMovable(false);
myFullscreenToolBar->setIconSize(QSize(32, 32));
myFullscreenToolBar->hide();
}
resize(myWidthOption.value(), myHeightOption.value());
move(myXOption.value(), myYOption.value());
menuBar()->hide();
show();
}
void ZLQtApplicationWindow::init() {
ZLDesktopApplicationWindow::init();
switch (myWindowStateOption.value()) {
case NORMAL:
break;
case FULLSCREEN:
setFullscreen(true);
break;
case MAXIMIZED:
showMaximized();
break;
}
}
ZLQtApplicationWindow::~ZLQtApplicationWindow() {
if (isFullscreen()) {
myWindowStateOption.setValue(FULLSCREEN);
} else if (isMaximized()) {
myWindowStateOption.setValue(MAXIMIZED);
} else {
myWindowStateOption.setValue(NORMAL);
QPoint position = pos();
if (position.x() != -1) {
myXOption.setValue(position.x());
}
if (position.y() != -1) {
myYOption.setValue(position.y());
}
myWidthOption.setValue(width());
myHeightOption.setValue(height());
}
for (std::map<const ZLToolbar::Item*,QAction*>::iterator it = myActions.begin(); it != myActions.end(); ++it) {
if (it->second != 0) {
delete it->second;
}
}
}
void ZLQtApplicationWindow::setFullscreen(bool fullscreen) {
if (fullscreen == myFullScreen) {
return;
}
myFullScreen = fullscreen;
if (myFullScreen) {
myWasMaximized = isMaximized();
myWindowToolBar->hide();
showFullScreen();
if (myFullscreenToolBar != 0) {
if (myDocWidget == 0) {
myDocWidget = new QDockWidget(this);
myDocWidget->setWidget(myFullscreenToolBar);
myDocWidget->setFloating(true);
myDocWidget->setAllowedAreas(Qt::NoDockWidgetArea);
}
myDocWidget->show();
myFullscreenToolBar->show();
myDocWidget->setMinimumSize(myDocWidget->size());
myDocWidget->setMaximumSize(myDocWidget->size());
}
} else {
myWindowToolBar->show();
showNormal();
if (myWasMaximized) {
showMaximized();
}
if (myDocWidget != 0) {
//myFullscreenToolBar->hide();
myDocWidget->hide();
}
}
}
bool ZLQtApplicationWindow::isFullscreen() const {
return myFullScreen;
}
void ZLQtApplicationWindow::keyPressEvent(QKeyEvent *event) {
application().doActionByKey(ZLQtKeyUtil::keyName(event));
}
void ZLQtApplicationWindow::wheelEvent(QWheelEvent *event) {
if (event->orientation() == Qt::Vertical) {
if (event->delta() > 0) {
application().doActionByKey(ZLApplication::MouseScrollUpKey);
} else {
application().doActionByKey(ZLApplication::MouseScrollDownKey);
}
}
}
void ZLQtApplicationWindow::closeEvent(QCloseEvent *event) {
if (application().closeView()) {
event->accept();
} else {
event->ignore();
}
}
void ZLQtApplicationWindow::addToolbarItem(ZLToolbar::ItemPtr item) {
QToolBar *tb = toolbar(type(*item));
QAction *action = 0;
switch (item->type()) {
case ZLToolbar::Item::PLAIN_BUTTON:
case ZLToolbar::Item::TOGGLE_BUTTON:
action = new ZLQtToolBarAction(this, (ZLToolbar::AbstractButtonItem&)*item);
tb->addAction(action);
break;
case ZLToolbar::Item::MENU_BUTTON:
{
ZLToolbar::MenuButtonItem &buttonItem = (ZLToolbar::MenuButtonItem&)*item;
QToolButton *button = new QToolButton(tb);
button->setFocusPolicy(Qt::NoFocus);
button->setDefaultAction(new ZLQtToolBarAction(this, buttonItem));
button->setMenu(new QMenu(button));
button->setPopupMode(QToolButton::MenuButtonPopup);
action = tb->addWidget(button);
myMenuButtons[&buttonItem] = button;
shared_ptr<ZLPopupData> popupData = buttonItem.popupData();
myPopupIdMap[&buttonItem] =
popupData.isNull() ? (size_t)-1 : (popupData->id() - 1);
break;
}
case ZLToolbar::Item::TEXT_FIELD:
case ZLToolbar::Item::SEARCH_FIELD:
{
ZLToolbar::ParameterItem &textFieldItem =
(ZLToolbar::ParameterItem&)*item;
LineEditParameter *para = new LineEditParameter(tb, *this, textFieldItem);
addVisualParameter(textFieldItem.parameterId(), para);
action = para->action();
break;
}
case ZLToolbar::Item::SEPARATOR:
action = tb->addSeparator();
break;
}
if (action != 0) {
myActions[&*item] = action;
}
}
ZLQtRunPopupAction::ZLQtRunPopupAction(QObject *parent, shared_ptr<ZLPopupData> data, size_t index) : QAction(parent), myData(data), myIndex(index) {
setText(QString::fromUtf8(myData->text(myIndex).c_str()));
connect(this, SIGNAL(triggered()), this, SLOT(onActivated()));
}
ZLQtRunPopupAction::~ZLQtRunPopupAction() {
}
void ZLQtRunPopupAction::onActivated() {
myData->run(myIndex);
}
void ZLQtApplicationWindow::setToolbarItemState(ZLToolbar::ItemPtr item, bool visible, bool enabled) {
QAction *action = myActions[&*item];
if (action != 0) {
action->setEnabled(enabled);
action->setVisible(visible);
}
switch (item->type()) {
default:
break;
case ZLToolbar::Item::MENU_BUTTON:
{
ZLToolbar::MenuButtonItem &buttonItem = (ZLToolbar::MenuButtonItem&)*item;
shared_ptr<ZLPopupData> data = buttonItem.popupData();
if (!data.isNull() && (data->id() != myPopupIdMap[&buttonItem])) {
myPopupIdMap[&buttonItem] = data->id();
QToolButton *button = myMenuButtons[&buttonItem];
QMenu *menu = button->menu();
menu->clear();
const size_t count = data->count();
for (size_t i = 0; i < count; ++i) {
menu->addAction(new ZLQtRunPopupAction(menu, data, i));
}
}
break;
}
}
}
void ZLQtApplicationWindow::processAllEvents() {
qApp->processEvents();
}
ZLViewWidget *ZLQtApplicationWindow::createViewWidget() {
ZLQtViewWidget *viewWidget = new ZLQtViewWidget(this, &application());
setCentralWidget(viewWidget->widget());
viewWidget->widget()->show();
return viewWidget;
}
void ZLQtApplicationWindow::close() {
QMainWindow::close();
}
void ZLQtApplicationWindow::refresh() {
QMetaObject::invokeMethod(this, "onRefresh", Qt::AutoConnection);
}
void ZLQtApplicationWindow::onRefresh() {
ZLApplicationWindow::refresh();
}
void ZLQtApplicationWindow::grabAllKeys(bool) {
}
void ZLQtApplicationWindow::setCaption(const std::string &caption) {
QMainWindow::setWindowTitle(QString::fromUtf8(caption.c_str()));
}
void ZLQtApplicationWindow::setHyperlinkCursor(bool hyperlink) {
if (hyperlink == myCursorIsHyperlink) {
return;
}
myCursorIsHyperlink = hyperlink;
if (hyperlink) {
myStoredCursor = cursor();
setCursor(Qt::PointingHandCursor);
} else {
setCursor(myStoredCursor);
}
}
void ZLQtApplicationWindow::setFocusToMainWidget() {
centralWidget()->setFocus();
}

@ -1,141 +0,0 @@
/*
* Copyright (C) 2004-2012 Geometer Plus <contact@geometerplus.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
* 02110-1301, USA.
*/
#ifndef __ZLQTAPPLICATIONWINDOW_H__
#define __ZLQTAPPLICATIONWINDOW_H__
#include <map>
#include <QtGui/QMainWindow>
#include <QtGui/QAction>
#include <QtGui/QCursor>
class QDockWidget;
class QToolBar;
class QToolButton;
class QLineEdit;
class ZLPopupData;
#include "../../../../core/src/desktop/application/ZLDesktopApplicationWindow.h"
class ZLQtApplicationWindow : public QMainWindow, public ZLDesktopApplicationWindow {
Q_OBJECT
public:
ZLQtApplicationWindow(ZLApplication *application);
~ZLQtApplicationWindow();
void setFocusToMainWidget();
private:
ZLViewWidget *createViewWidget();
void addToolbarItem(ZLToolbar::ItemPtr item);
void init();
void processAllEvents();
void close();
void refresh();
void grabAllKeys(bool grab);
void setCaption(const std::string &caption);
void setHyperlinkCursor(bool hyperlink);
bool isFullscreen() const;
void setFullscreen(bool fullscreen);
void setToggleButtonState(const ZLToolbar::ToggleButtonItem &button);
void setToolbarItemState(ZLToolbar::ItemPtr item, bool visible, bool enabled);
void closeEvent(QCloseEvent *event);
void keyPressEvent(QKeyEvent *event);
void wheelEvent(QWheelEvent *event);
private Q_SLOTS:
void onRefresh();
private:
QToolBar *myWindowToolBar;
QToolBar *myFullscreenToolBar;
QDockWidget *myDocWidget;
QToolBar *toolbar(ToolbarType type) { return (type == WINDOW_TOOLBAR) ? myWindowToolBar : myFullscreenToolBar; }
friend class ZLQtToolBarAction;
std::map<const ZLToolbar::Item*,QAction*> myActions;
std::map<const ZLToolbar::MenuButtonItem*,QToolButton*> myMenuButtons;
std::map<const ZLToolbar::MenuButtonItem*,size_t> myPopupIdMap;
bool myFullScreen;
bool myWasMaximized;
bool myCursorIsHyperlink;
QCursor myStoredCursor;
private:
class LineEditParameter : public VisualParameter {
public:
LineEditParameter(QToolBar *toolbar, ZLQtApplicationWindow &window, const ZLToolbar::ParameterItem &textFieldItem);
QAction *action() const;
void restoreOldValue();
private:
std::string internalValue() const;
void internalSetValue(const std::string &value);
void setValueList(const std::vector<std::string> &values) {}
private:
QLineEdit *myEdit;
QAction *myAction;
};
friend class ZLQtLineEdit;
};
class ZLQtToolBarAction : public QAction {
Q_OBJECT
public:
ZLQtToolBarAction(ZLQtApplicationWindow *parent, ZLToolbar::AbstractButtonItem &item);
private Q_SLOTS:
void onActivated();
private:
ZLToolbar::AbstractButtonItem &myItem;
};
class ZLQtRunPopupAction : public QAction {
Q_OBJECT
public:
ZLQtRunPopupAction(QObject *parent, shared_ptr<ZLPopupData> data, size_t index);
~ZLQtRunPopupAction();
private Q_SLOTS:
void onActivated();
private:
shared_ptr<ZLPopupData> myData;
const size_t myIndex;
};
#endif /* __ZLQTAPPLICATIONWINDOW_H__ */

@ -1,56 +0,0 @@
/*
* Copyright (C) 2004-2012 Geometer Plus <contact@geometerplus.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
* 02110-1301, USA.
*/
#include <QtGui/QApplication>
#include <QtGui/QPushButton>
#include <ZLDialogManager.h>
#include "ZLQtDialog.h"
#include "ZLQtDialogContent.h"
#include "ZLQtUtil.h"
ZLQtDialog::ZLQtDialog(const ZLResource &resource) : QDialog(qApp->activeWindow()), myButtonNumber(0) {
setModal(true);
setWindowTitle(::qtString(resource[ZLDialogManager::DIALOG_TITLE].value()));
QVBoxLayout *layout = new QVBoxLayout(this);
QWidget *widget = new QWidget(this);
layout->addWidget(widget);
myTab = new ZLQtDialogContent(widget, resource);
myButtonGroup = new QWidget(this);
layout->addWidget(myButtonGroup);
myButtonLayout = new QGridLayout(myButtonGroup);
}
ZLQtDialog::~ZLQtDialog() {
}
void ZLQtDialog::addButton(const ZLResourceKey &key, bool accept) {
QPushButton *button = new QPushButton(myButtonGroup);
button->setText(::qtButtonName(key));
myButtonLayout->addWidget(button, 0, myButtonNumber++);
connect(button, SIGNAL(clicked()), this, accept ? SLOT(accept()) : SLOT(reject()));
}
bool ZLQtDialog::run() {
((ZLQtDialogContent*)myTab)->close();
return exec();
}

@ -1,43 +0,0 @@
/*
* Copyright (C) 2004-2012 Geometer Plus <contact@geometerplus.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
* 02110-1301, USA.
*/
#ifndef __ZLQTDIALOG_H__
#define __ZLQTDIALOG_H__
#include <QtGui/QDialog>
#include <QtGui/QLayout>
#include <ZLDialog.h>
class ZLQtDialog : public QDialog, public ZLDialog {
public:
ZLQtDialog(const ZLResource &resource);
~ZLQtDialog();
void addButton(const ZLResourceKey &key, bool accept);
bool run();
private:
QGridLayout *myButtonLayout;
QWidget *myButtonGroup;
int myButtonNumber;
};
#endif /* __ZLQTDIALOG_H__ */

@ -1,104 +0,0 @@
/*
* Copyright (C) 2004-2012 Geometer Plus <contact@geometerplus.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
* 02110-1301, USA.
*/
#include <QtGui/QApplication>
#include <QtGui/QDesktopWidget>
#include <QtGui/QWidget>
#include <QtGui/QLayout>
#include "ZLQtDialogContent.h"
#include "ZLQtOptionView.h"
void ZLQtDialogContent::close() {
myLayout->setRowStretch(myRowCounter, 10);
}
ZLQtDialogContent::ZLQtDialogContent(QWidget *widget, const ZLResource &resource) : ZLDialogContent(resource), myWidget(widget) {
myLayout = new QGridLayout(myWidget);
myRowCounter = 0;
}
ZLQtDialogContent::~ZLQtDialogContent() {
}
void ZLQtDialogContent::addOption(const std::string &name, const std::string &tooltip, ZLOptionEntry *option) {
createViewByEntry(name, tooltip, option, 0, 12);
++myRowCounter;
}
void ZLQtDialogContent::addOptions(const std::string &name0, const std::string &tooltip0, ZLOptionEntry *option0, const std::string &name1, const std::string &tooltip1, ZLOptionEntry *option1) {
createViewByEntry(name0, tooltip0, option0, 0, 5);
createViewByEntry(name1, tooltip1, option1, 7, 12);
++myRowCounter;
}
void ZLQtDialogContent::addItem(QWidget *widget, int row, int fromColumn, int toColumn) {
myLayout->addWidget(widget, row, fromColumn, 1, toColumn - fromColumn + 1);
}
void ZLQtDialogContent::createViewByEntry(const std::string &name, const std::string &tooltip, ZLOptionEntry *option, int fromColumn, int toColumn) {
if (option == 0) {
return;
}
ZLQtOptionView *view = 0;
switch (option->kind()) {
case ZLOptionEntry::BOOLEAN:
view = new BooleanOptionView(name, tooltip, (ZLBooleanOptionEntry*)option, this, myRowCounter, fromColumn, toColumn);
break;
case ZLOptionEntry::BOOLEAN3:
view = new Boolean3OptionView(name, tooltip, (ZLBoolean3OptionEntry*)option, this, myRowCounter, fromColumn, toColumn);
break;
case ZLOptionEntry::STRING:
view = new StringOptionView(name, tooltip, (ZLStringOptionEntry*)option, this, false, myRowCounter, fromColumn, toColumn);
break;
case ZLOptionEntry::PASSWORD:
view = new StringOptionView(name, tooltip, (ZLStringOptionEntry*)option, this, true, myRowCounter, fromColumn, toColumn);
break;
case ZLOptionEntry::CHOICE:
view = new ChoiceOptionView(name, tooltip, (ZLChoiceOptionEntry*)option, this, myRowCounter, fromColumn, toColumn);
break;
case ZLOptionEntry::SPIN:
view = new SpinOptionView(name, tooltip, (ZLSpinOptionEntry*)option, this, myRowCounter, fromColumn, toColumn);
break;
case ZLOptionEntry::COMBO:
view = new ComboOptionView(name, tooltip, (ZLComboOptionEntry*)option, this, myRowCounter, fromColumn, toColumn);
break;
case ZLOptionEntry::COLOR:
view = new ColorOptionView(name, tooltip, (ZLColorOptionEntry*)option, this, myRowCounter, fromColumn, toColumn);
break;
case ZLOptionEntry::KEY:
view = new KeyOptionView(name, tooltip, (ZLKeyOptionEntry*)option, this, myRowCounter, fromColumn, toColumn);
break;
case ZLOptionEntry::ORDER:
//view = new OrderOptionView(name, tooltip, (ZLOrderOptionEntry*)option, this, myRowCounter, fromColumn, toColumn);
break;
case ZLOptionEntry::STATIC:
view = new StaticTextOptionView(name, tooltip, (ZLStaticTextOptionEntry*)option, this, myRowCounter, fromColumn, toColumn);
break;
}
if (view != 0) {
view->setVisible(option->isVisible());
addView(view);
}
}
QWidget *ZLQtDialogContent::widget() {
return myWidget;
}

@ -1,109 +0,0 @@
/*
* Copyright (C) 2004-2012 Geometer Plus <contact@geometerplus.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
* 02110-1301, USA.
*/
#include <QtGui/QApplication>
#include <QtGui/QMessageBox>
#include <QtGui/QFileDialog>
#include <QtGui/QClipboard>
#include <QtGui/QDesktopWidget>
#include "ZLQtDialogManager.h"
#include "ZLQtDialog.h"
#include "ZLQtOptionsDialog.h"
#include "ZLQtOpenFileDialog.h"
#include "ZLQtDialogContent.h"
#include "ZLQtProgressDialog.h"
#include "ZLQtTreeDialog.h"
#include "ZLQtUtil.h"
#include "../image/ZLQtImageManager.h"
shared_ptr<ZLDialog> ZLQtDialogManager::createDialog(const ZLResourceKey &key) const {
myStoredWindow = qApp->activeWindow();
return new ZLQtDialog(resource()[key]);
}
shared_ptr<ZLOptionsDialog> ZLQtDialogManager::createOptionsDialog(const ZLResourceKey &key, shared_ptr<ZLRunnable> applyAction, bool showApplyButton) const {
myStoredWindow = qApp->activeWindow();
return new ZLQtOptionsDialog(resource()[key], applyAction, showApplyButton);
}
shared_ptr<ZLOpenFileDialog> ZLQtDialogManager::createOpenFileDialog(const ZLResourceKey &key, const std::string &directoryPath, const std::string &filePath, const ZLOpenFileDialog::Filter &filter) const {
return new ZLQtOpenFileDialog(dialogTitle(key), directoryPath, filePath, filter);
}
shared_ptr<ZLTreeDialog> ZLQtDialogManager::createTreeDialog(const ZLResource &resource) const {
return new ZLQtTreeDialog(resource, myApplicationWindow);
}
void ZLQtDialogManager::informationBox(const std::string &title, const std::string &message) const {
QWidget *parent = qApp->activeWindow();
if (parent == 0) {
parent = myStoredWindow;
}
QMessageBox::information(parent, ::qtString(title), ::qtString(message), ::qtButtonName(OK_BUTTON));
}
void ZLQtDialogManager::errorBox(const ZLResourceKey &key, const std::string &message) const {
QWidget *parent = qApp->activeWindow();
if (parent == 0) {
parent = myStoredWindow;
}
QMessageBox::critical(parent, ::qtString(dialogTitle(key)), ::qtString(message), ::qtButtonName(OK_BUTTON));
}
int ZLQtDialogManager::questionBox(const ZLResourceKey &key, const std::string &message, const ZLResourceKey &button0, const ZLResourceKey &button1, const ZLResourceKey &button2) const {
QWidget *parent = qApp->activeWindow();
if (parent == 0) {
parent = myStoredWindow;
}
return QMessageBox::question(parent, ::qtString(dialogTitle(key)), ::qtString(message), ::qtButtonName(button0), ::qtButtonName(button1), ::qtButtonName(button2));
}
shared_ptr<ZLProgressDialog> ZLQtDialogManager::createProgressDialog(const ZLResourceKey &key, bool network) const {
return new ZLQtProgressDialog(key, network);
}
bool ZLQtDialogManager::isClipboardSupported(ClipboardType type) const {
return true;
}
void ZLQtDialogManager::setClipboardText(const std::string &text, ClipboardType type) const {
if (!text.empty()) {
qApp->clipboard()->setText(
::qtString(text),
(type == CLIPBOARD_MAIN) ? QClipboard::Clipboard : QClipboard::Selection
);
}
}
void ZLQtDialogManager::setClipboardImage(const ZLImageData &imageData, ClipboardType type) const {
qApp->clipboard()->setImage(
*((ZLQtImageData&)imageData).image(),
(type == CLIPBOARD_MAIN) ? QClipboard::Clipboard : QClipboard::Selection
);
}
QWidget *ZLQtDialogManager::getApplicationWindow() const {
return myApplicationWindow;
}
void ZLQtDialogManager::notifyApplicationWindowDeleted() {
myApplicationWindow = 0;
}

@ -1,70 +0,0 @@
/*
* Copyright (C) 2010-2012 Geometer Plus <contact@geometerplus.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
* 02110-1301, USA.
*/
#include <QtGui/QFileDialog>
#include "ZLQtOpenFileDialog.h"
ZLQtOpenFileDialog::ZLQtOpenFileDialog(const std::string &title, const std::string &directoryPath, const std::string &filePath, const Filter &filter) {
myDialog = new QFileDialog();
myDialog->setWindowTitle(QString::fromUtf8(title.c_str()));
myDialog->setDirectory(QString::fromUtf8(directoryPath.c_str()));
myDialog->selectFile(QString::fromUtf8(filePath.c_str()));
}
ZLQtOpenFileDialog::~ZLQtOpenFileDialog() {
delete myDialog;
}
bool ZLQtOpenFileDialog::runInternal() {
return myDialog->exec();
}
std::string ZLQtOpenFileDialog::filePath() const {
QStringList paths = myDialog->selectedFiles();
return paths.size() > 0 ? (const char*)paths[0].toUtf8() : std::string();
}
std::string ZLQtOpenFileDialog::directoryPath() const {
return (const char*)myDialog->directory().absolutePath().toUtf8();
}
void ZLQtOpenFileDialog::setPosition(int x, int y) {
myDialog->move(x, y);
}
void ZLQtOpenFileDialog::setSize(int width, int height) {
myDialog->resize(width, height);
}
int ZLQtOpenFileDialog::x() const {
return myDialog->x();
}
int ZLQtOpenFileDialog::y() const {
return myDialog->y();
}
int ZLQtOpenFileDialog::width() const {
return myDialog->width();
}
int ZLQtOpenFileDialog::height() const {
return myDialog->height();
}

@ -1,462 +0,0 @@
/*
* Copyright (C) 2004-2012 Geometer Plus <contact@geometerplus.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
* 02110-1301, USA.
*/
#include <cctype>
#include <QtGui/QCheckBox>
#include <QtGui/QComboBox>
#include <QtGui/QLabel>
#include <QtGui/QGroupBox>
#include <QtGui/QRadioButton>
#include <QtGui/QPushButton>
#include <QtGui/QSpinBox>
#include <QtGui/QLineEdit>
#include <QtGui/QSlider>
#include <QtGui/QLayout>
#include <ZLStringUtil.h>
#include <ZLDialogManager.h>
#include "../util/ZLQtKeyUtil.h"
#include "ZLQtOptionView.h"
#include "ZLQtDialogContent.h"
#include "ZLQtUtil.h"
void ZLQtOptionView::_show() {
for (std::vector<QWidget*>::iterator it = myWidgets.begin(); it != myWidgets.end(); ++it) {
(*it)->show();
}
}
void ZLQtOptionView::_hide() {
for (std::vector<QWidget*>::iterator it = myWidgets.begin(); it != myWidgets.end(); ++it) {
(*it)->hide();
}
}
void BooleanOptionView::_createItem() {
myCheckBox = new QCheckBox(::qtString(ZLOptionView::name()), myTab->widget());
myCheckBox->setChecked(((ZLBooleanOptionEntry&)*myOption).initialState());
myWidgets.push_back(myCheckBox);
myTab->addItem(myCheckBox, myRow, myFromColumn, myToColumn);
connect(myCheckBox, SIGNAL(toggled(bool)), this, SLOT(onStateChanged(bool)));
}
void BooleanOptionView::_setActive(bool active) {
myCheckBox->setEnabled(active);
}
void BooleanOptionView::_onAccept() const {
((ZLBooleanOptionEntry&)*myOption).onAccept(myCheckBox->isChecked());
}
void BooleanOptionView::onStateChanged(bool state) const {
((ZLBooleanOptionEntry&)*myOption).onStateChanged(state);
}
void Boolean3OptionView::_createItem() {
myCheckBox = new QCheckBox(::qtString(ZLOptionView::name()), myTab->widget());
myCheckBox->setTristate(true);
Qt::CheckState state = Qt::PartiallyChecked;
switch (((ZLBoolean3OptionEntry&)*myOption).initialState()) {
case B3_FALSE:
state = Qt::Unchecked;
break;
case B3_TRUE:
state = Qt::Checked;
break;
case B3_UNDEFINED:
state = Qt::PartiallyChecked;
break;
}
myCheckBox->setCheckState(state);
myWidgets.push_back(myCheckBox);
myTab->addItem(myCheckBox, myRow, myFromColumn, myToColumn);
connect(myCheckBox, SIGNAL(stateChanged(int)), this, SLOT(onStateChanged(int)));
}
void Boolean3OptionView::_setActive(bool active) {
myCheckBox->setEnabled(active);
}
void Boolean3OptionView::_onAccept() const {
ZLBoolean3 value = B3_UNDEFINED;
switch (myCheckBox->checkState()) {
case Qt::Checked:
value = B3_TRUE;
break;
case Qt::Unchecked:
value = B3_FALSE;
break;
case Qt::PartiallyChecked:
value = B3_UNDEFINED;
break;
}
((ZLBoolean3OptionEntry&)*myOption).onAccept(value);
}
void Boolean3OptionView::onStateChanged(int state) const {
ZLBoolean3 value = B3_UNDEFINED;
switch (state) {
case Qt::Checked:
value = B3_TRUE;
break;
case Qt::Unchecked:
value = B3_FALSE;
break;
case Qt::PartiallyChecked:
value = B3_UNDEFINED;
break;
}
((ZLBoolean3OptionEntry&)*myOption).onStateChanged(value);
}
void ChoiceOptionView::_createItem() {
myGroupBox = new QGroupBox(::qtString(ZLOptionView::name()));
myWidgets.push_back(myGroupBox);
QVBoxLayout *layout = new QVBoxLayout(myGroupBox);
myButtons = new QRadioButton*[((ZLChoiceOptionEntry&)*myOption).choiceNumber()];
for (int i = 0; i < ((ZLChoiceOptionEntry&)*myOption).choiceNumber(); ++i) {
myButtons[i] = new QRadioButton(myGroupBox);
myButtons[i]->setText(::qtString(((ZLChoiceOptionEntry&)*myOption).text(i)));
layout->addWidget(myButtons[i]);
}
myButtons[((ZLChoiceOptionEntry&)*myOption).initialCheckedIndex()]->setChecked(true);
myTab->addItem(myGroupBox, myRow, myFromColumn, myToColumn);
}
void ChoiceOptionView::_setActive(bool active) {
myGroupBox->setEnabled(active);
}
void ChoiceOptionView::_onAccept() const {
for (int i = 0; i < ((ZLChoiceOptionEntry&)*myOption).choiceNumber(); ++i) {
if (myButtons[i]->isChecked()) {
((ZLChoiceOptionEntry&)*myOption).onAccept(i);
return;
}
}
}
void ComboOptionView::_createItem() {
const ZLComboOptionEntry &comboOption = (ZLComboOptionEntry&)*myOption;
QLabel *label = 0;
const std::string &name = ZLOptionView::name();
if (!name.empty()) {
label = new QLabel(::qtString(name), myTab->widget());
}
myComboBox = new QComboBox(myTab->widget());
myComboBox->setEditable(comboOption.isEditable());
if (label != 0) {
myWidgets.push_back(label);
}
myWidgets.push_back(myComboBox);
connect(myComboBox, SIGNAL(activated(int)), this, SLOT(onValueSelected(int)));
connect(myComboBox, SIGNAL(editTextChanged(const QString&)), this, SLOT(onValueEdited(const QString&)));
if (label != 0) {
int width = myToColumn - myFromColumn + 1;
myTab->addItem(label, myRow, myFromColumn, myFromColumn + width / 2 - 1);
myTab->addItem(myComboBox, myRow, myFromColumn + width / 2, myToColumn);
} else {
myTab->addItem(myComboBox, myRow, myFromColumn, myToColumn);
}
reset();
}
void ComboOptionView::reset() {
if (myComboBox == 0) {
return;
}
const int count = myComboBox->count();
for (int i = 0; i < count; ++i) {
myComboBox->removeItem(0);
}
const ZLComboOptionEntry &comboOption = (ZLComboOptionEntry&)*myOption;
const std::vector<std::string> &values = comboOption.values();
const std::string &initial = comboOption.initialValue();
int selectedIndex = -1;
int index = 0;
for (std::vector<std::string>::const_iterator it = values.begin(); it != values.end(); ++it, ++index) {
myComboBox->insertItem(it - values.begin(), ::qtString(*it));
if (*it == initial) {
selectedIndex = index;
}
}
if (selectedIndex >= 0) {
myComboBox->setCurrentIndex(selectedIndex);
}
}
void ComboOptionView::_setActive(bool active) {
myComboBox->setEnabled(active);
}
void ComboOptionView::_onAccept() const {
((ZLComboOptionEntry&)*myOption).onAccept((const char*)myComboBox->currentText().toUtf8());
}
void ComboOptionView::onValueSelected(int index) {
ZLComboOptionEntry &o = (ZLComboOptionEntry&)*myOption;
if ((index >= 0) && (index < (int)o.values().size())) {
o.onValueSelected(index);
}
}
void ComboOptionView::onValueEdited(const QString &value) {
ZLComboOptionEntry &o = (ZLComboOptionEntry&)*myOption;
if (o.useOnValueEdited()) {
o.onValueEdited((const char*)value.toUtf8());
}
}
void SpinOptionView::_createItem() {
ZLSpinOptionEntry &entry = (ZLSpinOptionEntry&)*myOption;
QLabel *label = new QLabel(::qtString(ZLOptionView::name()), myTab->widget());
mySpinBox = new QSpinBox(myTab->widget());
myWidgets.push_back(label);
myWidgets.push_back(mySpinBox);
mySpinBox->setMinimum(entry.minValue());
mySpinBox->setMaximum(entry.maxValue());
mySpinBox->setSingleStep(entry.step());
mySpinBox->setValue(entry.initialValue());
int width = myToColumn - myFromColumn + 1;
myTab->addItem(label, myRow, myFromColumn, myFromColumn + width / 2 - 1);
myTab->addItem(mySpinBox, myRow, myFromColumn + width / 2, myToColumn);
}
void SpinOptionView::_onAccept() const {
((ZLSpinOptionEntry&)*myOption).onAccept(mySpinBox->value());
}
void StringOptionView::_createItem() {
myLineEdit = new QLineEdit(myTab->widget());
myLineEdit->setEchoMode(myPasswordMode ? QLineEdit::Password : QLineEdit::Normal);
myWidgets.push_back(myLineEdit);
connect(myLineEdit, SIGNAL(textChanged(const QString&)), this, SLOT(onValueEdited(const QString&)));
if (!ZLOptionView::name().empty()) {
QLabel *label = new QLabel(::qtString(ZLOptionView::name()), myTab->widget());
myWidgets.push_back(label);
int width = myToColumn - myFromColumn + 1;
myTab->addItem(label, myRow, myFromColumn, myFromColumn + width / 2 - 1);
myTab->addItem(myLineEdit, myRow, myFromColumn + width / 2, myToColumn);
} else {
myTab->addItem(myLineEdit, myRow, myFromColumn, myToColumn);
}
reset();
}
void StringOptionView::_setActive(bool active) {
myLineEdit->setReadOnly(!active);
}
void StringOptionView::_onAccept() const {
((ZLStringOptionEntry&)*myOption).onAccept((const char*)myLineEdit->text().toUtf8());
}
void StringOptionView::reset() {
if (myLineEdit == 0) {
return;
}
myLineEdit->setText(::qtString(((ZLStringOptionEntry&)*myOption).initialValue()));
myLineEdit->cursorForward(false, -myLineEdit->text().length());
}
void StringOptionView::onValueEdited(const QString &value) {
ZLStringOptionEntry &o = (ZLStringOptionEntry&)*myOption;
if (o.useOnValueEdited()) {
o.onValueEdited((const char*)value.toUtf8());
}
}
class KeyLineEdit : public QLineEdit {
public:
KeyLineEdit(KeyOptionView &keyView, QWidget *parent);
protected:
void focusInEvent(QFocusEvent*);
void focusOutEvent(QFocusEvent*);
void keyPressEvent(QKeyEvent *keyEvent);
private:
KeyOptionView &myKeyView;
};
KeyLineEdit::KeyLineEdit(KeyOptionView &keyView, QWidget *parent) : QLineEdit(parent), myKeyView(keyView) {
focusOutEvent(0);
}
void KeyLineEdit::keyPressEvent(QKeyEvent *keyEvent) {
std::string keyText = ZLQtKeyUtil::keyName(keyEvent);
setText(keyText.c_str());
if (!keyText.empty()) {
myKeyView.myCurrentKey = keyText;
myKeyView.myComboBox->setCurrentIndex(((ZLKeyOptionEntry&)*myKeyView.myOption).actionIndex(keyText));
myKeyView.myComboBox->show();
}
((ZLKeyOptionEntry&)*myKeyView.myOption).onKeySelected(keyText);
}
void KeyLineEdit::focusInEvent(QFocusEvent*) {
grabKeyboard();
}
void KeyLineEdit::focusOutEvent(QFocusEvent*) {
releaseKeyboard();
}
void KeyOptionView::_createItem() {
QWidget *widget = new QWidget(myTab->widget());
QGridLayout *layout = new QGridLayout(widget);
QLabel *label = new QLabel(widget);
label->setText(::qtString(ZLResource::resource("keyOptionView")["actionFor"].value()));
layout->addWidget(label, 0, 0);
myKeyEditor = new KeyLineEdit(*this, widget);
layout->addWidget(myKeyEditor, 0, 1);
myWidgets.push_back(widget);
myWidgets.push_back(label);
myWidgets.push_back(myKeyEditor);
myComboBox = new QComboBox(widget);
const std::vector<std::string> &actions = ((ZLKeyOptionEntry&)*myOption).actionNames();
for (std::vector<std::string>::const_iterator it = actions.begin(); it != actions.end(); ++it) {
myComboBox->insertItem(it - actions.begin(), ::qtString(*it));
}
connect(myComboBox, SIGNAL(activated(int)), this, SLOT(onValueChanged(int)));
layout->addWidget(myComboBox, 1, 0, 1, 2);
myTab->addItem(widget, myRow, myFromColumn, myToColumn);
}
void KeyOptionView::reset() {
if (myKeyEditor == 0) {
return;
}
myCurrentKey.erase();
myKeyEditor->setText("");
((ZLKeyOptionEntry&)*myOption).onKeySelected(myCurrentKey);
myComboBox->hide();
}
void KeyOptionView::_show() {
ZLQtOptionView::_show();
if (!myCurrentKey.empty()) {
myComboBox->show();
} else {
myComboBox->hide();
}
}
void KeyOptionView::_hide() {
ZLQtOptionView::_hide();
myComboBox->hide();
myCurrentKey.erase();
myKeyEditor->setText("");
((ZLKeyOptionEntry&)*myOption).onKeySelected(myCurrentKey);
}
void KeyOptionView::_onAccept() const {
((ZLKeyOptionEntry&)*myOption).onAccept();
}
void KeyOptionView::onValueChanged(int index) {
if (!myCurrentKey.empty()) {
((ZLKeyOptionEntry&)*myOption).onValueChanged(myCurrentKey, index);
}
}
QSlider *ColorOptionView::createColorSlider(QGridLayout *layout, int index, const ZLResource &resource, int value) {
layout->addWidget(new QLabel(::qtString(resource.value()), layout->parentWidget()), index, 0);
QSlider *slider = new QSlider(Qt::Horizontal, layout->parentWidget());
layout->addWidget(slider, index, 1);
slider->setMinimum(0);
slider->setMaximum(255);
slider->setSingleStep(5);
slider->setTracking(true);
slider->setValue(value);
connect(slider, SIGNAL(sliderMoved(int)), this, SLOT(onSliderMove(int)));
return slider;
}
void ColorOptionView::_createItem() {
QWidget *widget = new QWidget(myTab->widget());
myWidgets.push_back(widget);
QGridLayout *layout = new QGridLayout(widget);
const ZLColor &color = ((ZLColorOptionEntry&)*myOption).color();
const ZLResource &resource = ZLResource::resource(ZLDialogManager::COLOR_KEY);
myRSlider = createColorSlider(layout, 0, resource["red"], color.Red);
myGSlider = createColorSlider(layout, 1, resource["green"], color.Green);
myBSlider = createColorSlider(layout, 2, resource["blue"], color.Blue);
myColorBar = new QLabel(" ", widget);
QPalette palette = myColorBar->palette();
palette.setColor(myColorBar->backgroundRole(), QColor(color.Red, color.Green, color.Blue));
myColorBar->setPalette(palette);
myColorBar->setFrameStyle(QFrame::Panel | QFrame::Plain);
layout->addWidget(myColorBar, 0, 2, 3, 1);
myColorBar->setAutoFillBackground(true);
myTab->addItem(widget, myRow, myFromColumn, myToColumn);
}
void ColorOptionView::reset() {
if (myColorBar == 0) {
return;
}
ZLColorOptionEntry &colorEntry = (ZLColorOptionEntry&)*myOption;
colorEntry.onReset(ZLColor(myRSlider->value(), myGSlider->value(), myBSlider->value()));
const ZLColor &color = colorEntry.color();
myRSlider->setValue(color.Red);
myGSlider->setValue(color.Green);
myBSlider->setValue(color.Blue);
QPalette palette = myColorBar->palette();
palette.setColor(myColorBar->backgroundRole(), QColor(color.Red, color.Green, color.Blue));
myColorBar->setPalette(palette);
}
void ColorOptionView::onSliderMove(int) {
QPalette palette = myColorBar->palette();
palette.setColor(myColorBar->backgroundRole(), QColor(myRSlider->value(), myGSlider->value(), myBSlider->value()));
myColorBar->setPalette(palette);
}
void ColorOptionView::_onAccept() const {
((ZLColorOptionEntry&)*myOption).onAccept(ZLColor(myRSlider->value(), myGSlider->value(), myBSlider->value()));
}
void StaticTextOptionView::_createItem() {
const std::string &text = ((ZLStaticTextOptionEntry&)*myOption).initialValue();
QLabel *label = new QLabel(::qtString(text), myTab->widget());
myWidgets.push_back(label);
myTab->addItem(label, myRow, myFromColumn, myToColumn);
}
void StaticTextOptionView::_onAccept() const {
}

@ -1,100 +0,0 @@
/*
* Copyright (C) 2004-2012 Geometer Plus <contact@geometerplus.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
* 02110-1301, USA.
*/
#include <QtGui/QApplication>
#include <QtGui/QDesktopWidget>
#include <QtGui/QLayout>
#include <QtGui/QPushButton>
#include <QtGui/QButtonGroup>
#include <QtGui/QResizeEvent>
#include <ZLDialogManager.h>
#include "ZLQtOptionsDialog.h"
#include "ZLQtDialogContent.h"
#include "ZLQtUtil.h"
ZLQtOptionsDialog::ZLQtOptionsDialog(const ZLResource &resource, shared_ptr<ZLRunnable> applyAction, bool showApplyButton) : QDialog(qApp->activeWindow()), ZLDesktopOptionsDialog(resource, applyAction) {
setModal(true);
setWindowTitle(::qtString(caption()));
QVBoxLayout *layout = new QVBoxLayout(this);
myTabWidget = new QTabWidget(this);
layout->addWidget(myTabWidget);
QWidget *group = new QWidget(this);
layout->addWidget(group);
QGridLayout *buttonLayout = new QGridLayout(group);
buttonLayout->setColumnStretch(0, 3);
QPushButton *okButton = new QPushButton(group);
okButton->setText(::qtButtonName(ZLDialogManager::OK_BUTTON));
buttonLayout->addWidget(okButton, 0, 1);
connect(okButton, SIGNAL(clicked()), this, SLOT(accept()));
QPushButton *cancelButton = new QPushButton(group);
cancelButton->setText(::qtButtonName(ZLDialogManager::CANCEL_BUTTON));
buttonLayout->addWidget(cancelButton, 0, 2);
connect(cancelButton, SIGNAL(clicked()), this, SLOT(reject()));
if (showApplyButton) {
QPushButton *applyButton = new QPushButton(group);
applyButton->setText(::qtButtonName(ZLDialogManager::APPLY_BUTTON));
buttonLayout->addWidget(applyButton, 0, 3);
connect(applyButton, SIGNAL(clicked()), this, SLOT(apply()));
}
if (parent() == 0) {
QDesktopWidget *desktop = qApp->desktop();
if (desktop != 0) {
move((desktop->width() - width()) / 2, (desktop->height() - height()) / 2);
}
}
}
void ZLQtOptionsDialog::apply() {
ZLOptionsDialog::accept();
}
ZLDialogContent &ZLQtOptionsDialog::createTab(const ZLResourceKey &key) {
ZLQtDialogContent *tab = new ZLQtDialogContent(new QWidget(myTabWidget), tabResource(key));
myTabWidget->addTab(tab->widget(), ::qtString(tab->displayName()));
myTabs.push_back(tab);
return *tab;
}
const std::string &ZLQtOptionsDialog::selectedTabKey() const {
return myTabs[myTabWidget->currentIndex()]->key();
}
void ZLQtOptionsDialog::selectTab(const ZLResourceKey &key) {
for (std::vector<shared_ptr<ZLDialogContent> >::const_iterator it = myTabs.begin(); it != myTabs.end(); ++it) {
if ((*it)->key() == key.Name) {
myTabWidget->setCurrentWidget(((ZLQtDialogContent&)**it).widget());
break;
}
}
}
bool ZLQtOptionsDialog::runInternal() {
for (std::vector<shared_ptr<ZLDialogContent> >::iterator it = myTabs.begin(); it != myTabs.end(); ++it) {
((ZLQtDialogContent&)**it).close();
}
return exec() == QDialog::Accepted;
}

@ -1,52 +0,0 @@
/*
* Copyright (C) 2004-2012 Geometer Plus <contact@geometerplus.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
* 02110-1301, USA.
*/
#ifndef __ZLQTOPTIONSDIALOG_H__
#define __ZLQTOPTIONSDIALOG_H__
#include <QtGui/QWidget>
#include <QtGui/QTabWidget>
#include <QtGui/QDialog>
#include "../../../../core/src/desktop/dialogs/ZLDesktopOptionsDialog.h"
class ZLQtOptionsDialog : public QDialog, public ZLDesktopOptionsDialog {
Q_OBJECT
public:
ZLQtOptionsDialog(const ZLResource &resource, shared_ptr<ZLRunnable> applyAction, bool showApplyButton);
ZLDialogContent &createTab(const ZLResourceKey &key);
protected:
const std::string &selectedTabKey() const;
void selectTab(const ZLResourceKey &key);
bool runInternal();
void setSize(int width, int height) { QDialog::resize(width, height); }
int width() const { return QDialog::width(); }
int height() const { return QDialog::height(); }
private Q_SLOTS:
void apply();
private:
QTabWidget *myTabWidget;
};
#endif /* __ZLQTOPTIONSDIALOG_H__ */

@ -1,98 +0,0 @@
/*
* Copyright (C) 2004-2012 Geometer Plus <contact@geometerplus.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
* 02110-1301, USA.
*/
#include <unistd.h>
#include <QtGui/QApplication>
#include <QtGui/QDesktopWidget>
#include <QtGui/QWidget>
#include <QtGui/QLabel>
#include <QtGui/QLayout>
#include <QtCore/QThreadPool>
#include "../dialogs/ZLQtDialogManager.h"
#include "ZLQtProgressDialog.h"
#include "ZLQtUtil.h"
ZLQtProgressDialog::ZLQtProgressDialog(const ZLResourceKey &key, bool network) : ZLProgressDialog(key), myIsNetworkRunnable(network), myActiveWindow(0) {
}
void ZLQtProgressDialog::run(ZLRunnable &runnable) {
myActiveWindow = static_cast<ZLQtDialogManager&>(ZLDialogManager::Instance()).getApplicationWindow();
if (myActiveWindow != 0) {
myActiveWindow->setCursor(Qt::WaitCursor);
}
ZLQtWaitDialog* dialog = new ZLQtWaitDialog(messageText(), myActiveWindow);
dialog->setCursor(Qt::WaitCursor);
if (myIsNetworkRunnable) {
dialog->show();
runnable.run();
dialog->hide();
} else {
ZLQtRunnableWrapper* wrapper = new ZLQtRunnableWrapper(runnable);
wrapper->setAutoDelete(true);
QObject::connect(wrapper, SIGNAL(finished()), dialog, SLOT(close()), Qt::QueuedConnection);
QThreadPool::globalInstance()->start(wrapper);
dialog->exec();
}
dialog->deleteLater();
restoreCursor();
}
void ZLQtProgressDialog::restoreCursor() {
if (myActiveWindow != 0) {
myActiveWindow->setCursor(Qt::ArrowCursor);
}
}
void ZLQtProgressDialog::setMessage(const std::string &message) {
//qDebug() << QString::fromStdString(message);
//TODO implement
}
ZLQtWaitDialog::ZLQtWaitDialog(const std::string &message, QWidget* parent) : QDialog(parent) {
setWindowFlags((windowFlags() | Qt::CustomizeWindowHint) ^ Qt::WindowCloseButtonHint); //hide close button
myLayout = new QVBoxLayout;
myLabel = new QLabel(::qtString(message));
myLabel->setAlignment(Qt::AlignHCenter | Qt::AlignVCenter);
myLabel->setWordWrap(true);
myProgressBar = new QProgressBar;
myProgressBar->setRange(0,0);
//myProgressBar->setFixedWidth( qApp->desktop()->availableGeometry().width()*COEF_PROGRESS_BAR_WIDTH );
myLayout->setAlignment(Qt::AlignHCenter | Qt::AlignVCenter);
myLayout->addWidget(myLabel);
myLayout->addWidget(myProgressBar);
this->setLayout(myLayout);
}
ZLQtRunnableWrapper::ZLQtRunnableWrapper(ZLRunnable &runnable) : myRunnable(runnable) {
}
void ZLQtRunnableWrapper::run() {
myRunnable.run();
emit finished();
}

@ -1,77 +0,0 @@
/*
* Copyright (C) 2004-2012 Geometer Plus <contact@geometerplus.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
* 02110-1301, USA.
*/
#ifndef __ZLQTWAITMESSAGE_H__
#define __ZLQTWAITMESSAGE_H__
#include <string>
#include <QtGui/QWidget>
#include <QtGui/QCursor>
#include <QtGui/QDialog>
#include <QtGui/QProgressBar>
#include <QtGui/QLabel>
#include <QtCore/QRunnable>
#include <ZLProgressDialog.h>
class QLabel;
class QLayout;
class ZLQtWaitDialog : public QDialog {
public:
ZLQtWaitDialog(const std::string &message, QWidget* parent = 0);
private:
QLayout* myLayout;
QLabel* myLabel;
QProgressBar* myProgressBar;
friend class ZLQtProgressDialog;
};
class ZLQtProgressDialog : public ZLProgressDialog {
public:
ZLQtProgressDialog(const ZLResourceKey &key, bool network);
private:
void run(ZLRunnable &runnable);
void setMessage(const std::string &message);
void restoreCursor();
private:
bool myIsNetworkRunnable;
QWidget* myActiveWindow;
};
class ZLQtRunnableWrapper : public QObject, public QRunnable {
Q_OBJECT;
public:
ZLQtRunnableWrapper(ZLRunnable& runnable);
void run();
Q_SIGNALS:
void finished();
private:
ZLRunnable& myRunnable;
};
#endif /* __ZLQTWAITMESSAGE_H__ */

@ -1,347 +0,0 @@
/*
* Copyright (C) 2004-2012 Geometer Plus <contact@geometerplus.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
* 02110-1301, USA.
*/
#include <algorithm>
#include <QtGui/QSplitter>
#include <QtGui/QVBoxLayout>
#include <QtGui/QHBoxLayout>
#include <QtGui/QScrollBar>
#include <QtGui/QResizeEvent>
#include <QtCore/QDebug>
#include <ZLFile.h>
#include <ZLibrary.h>
#include <ZLTreePageNode.h>
#include <ZLFile.h>
#include "../tree/ZLQtItemsListWidget.h"
#include "../tree/ZLQtPreviewWidget.h"
#include "ZLQtTreeDialog.h"
static const int DIALOG_WIDTH_HINT = 840;
ZLQtTreeDialog::ZLQtTreeDialog(const ZLResource &res, QWidget *parent) :
QDialog(parent), ZLTreeDialog(res), myLastClickedNode(0), myLastClickedSearchNode(0) {
setWindowTitle(QString::fromStdString(resource().value())); //TODO maybe user resources by other way
setMinimumSize(400, 260); //minimum sensible size
myListWidget = new ZLQtItemsListWidget;
myPreviewWidget = new ZLQtPreviewWidget;
myBackButton = new ZLQtIconButton("back_button.png", "back_button_disabled.png");
myForwardButton = new ZLQtIconButton("forward_button.png", "forward_button_disabled.png");
mySearchField = new ZLQtSearchField;
myBackButton->setAutoDefault(false);
myForwardButton->setAutoDefault(false);
QVBoxLayout *mainLayout = new QVBoxLayout;
QHBoxLayout *panelLayout = new QHBoxLayout;
QSplitter *splitter = new QSplitter;
splitter->setChildrenCollapsible(false);
splitter->addWidget(myListWidget);
splitter->addWidget(myPreviewWidget);
const int scrollbarWidth = 30; //myListWidget->verticalScrollBar()->width() * 2; //commented because with Qt::ScrollBarAsNeeded policy the size is too big
splitter->setSizes(QList<int>() << DIALOG_WIDTH_HINT / 2 + scrollbarWidth << DIALOG_WIDTH_HINT / 2 - scrollbarWidth); //50/50 default size
mainLayout->setSizeConstraint(QLayout::SetMinAndMaxSize);
panelLayout->setSpacing(0);
panelLayout->addWidget(myBackButton);
panelLayout->addWidget(myForwardButton);
panelLayout->addStretch();
panelLayout->addWidget(mySearchField);
mainLayout->addLayout(panelLayout);
mainLayout->addWidget(splitter);
this->setLayout(mainLayout);
connect(myListWidget, SIGNAL(nodeClicked(ZLQtTreeItem*)), this, SLOT(onNodeClicked(ZLQtTreeItem*)));
connect(myListWidget, SIGNAL(nodeDoubleClicked(ZLQtTreeItem*)), this, SLOT(onNodeDoubleClicked(ZLQtTreeItem*)));
connect(myBackButton, SIGNAL(clicked()), this, SLOT(onBackButton()));
connect(myForwardButton, SIGNAL(clicked()), this, SLOT(onForwardButton()));
connect(mySearchField, SIGNAL(returnPressed()), this, SLOT(onSearchField()));
connect(myListWidget, SIGNAL(wantMoreChildren()), this, SLOT(onMoreChildren()));
}
void ZLQtTreeDialog::run(ZLTreeNode *rootNode) {
myRootNode = rootNode;
myBackHistory.clear();
myForwardHistory.clear();
onExpandRequest(myRootNode); //TODO make generic async loading
show();
myListWidget->setFocus();
}
void ZLQtTreeDialog::onCloseRequest() {
hide();
}
QSize ZLQtTreeDialog::sizeHint() const {
return QSize(DIALOG_WIDTH_HINT + myListWidget->verticalScrollBar()->width(), 0);
}
void ZLQtTreeDialog::resizeEvent(QResizeEvent *event){
int width = event->size().width();
int listWidth = width / 3;
int previewWidth = width / 3;
myListWidget->setMinimumWidth(listWidth);
myPreviewWidget->setMinimumWidth(previewWidth);
}
void ZLQtTreeDialog::onExpandRequest(ZLTreeNode *node) {
myLastClickedNode = node;
node->requestChildren(new ChildrenRequestListener(this, node, false));
}
void ZLQtTreeDialog::onMoreChildrenRequest(ZLTreeNode *node) {
//TODO implement the way to not sending new request for more children
//qDebug() << Q_FUNC_INFO << node << node->children().size();
//TODO don't ask many times
node->requestMoreChildren(new ChildrenRequestListener(this, node, true));
}
void ZLQtTreeDialog::onChildrenLoaded(ZLTreeNode *node, bool checkLast, bool successLoaded) {
if (!successLoaded) {
return;
}
if (node->children().empty()) {
return;
}
if (checkLast) {
if (node != myLastClickedNode) { //load just last clicked item
return;
}
}
saveShowParameters();
myLastClickedNode = 0; //for case if item has been requested for several times
myBackHistory.push(node);
myForwardHistory.clear();
if (!myBackHistory.empty()) {
myListWidget->fillNodes(myBackHistory.top());
}
//myListWidget->verticalScrollBar()->setValue(myListWidget->verticalScrollBar()->minimum()); //to the top
setupShowParameters();
updateAll();
}
void ZLQtTreeDialog::onMoreChildrenLoaded(bool successLoaded) {
if (!successLoaded) {
return;
}
if (!myBackHistory.empty()) {
myListWidget->fillNewNodes(myBackHistory.top());
}
updateAll();
}
void ZLQtTreeDialog::updateAll() {
updateNavigationButtons();
updateWaitingIcons();
}
void ZLQtTreeDialog::updateWaitingIcons() {
foreach(ZLQtTreeItem *item, myListWidget->getItems()) {
ZLTreeNode *node = item->getNode();
if (myDownloadingNodes.contains(node)) {
item->getWaitingIcon()->start();
} else {
item->getWaitingIcon()->finish();
}
}
}
void ZLQtTreeDialog::onNodeUpdated(ZLTreeNode *node) {
if (!myBackHistory.empty() && myBackHistory.top() == node) {
onMoreChildrenLoaded(true);
return;
}
foreach(ZLQtTreeItem *item, myListWidget->getItems()) {
if (node == item->getNode()) {
if (ZLTreeTitledNode *titledNode = zlobject_cast<ZLTreeTitledNode*>(node)) {
item->fill(titledNode);
updateAll();
break;
}
}
}
}
void ZLQtTreeDialog::onDownloadingStarted(ZLTreeNode *node) {
myDownloadingNodes.insert(node);
updateWaitingIcons();
}
void ZLQtTreeDialog::onDownloadingStopped(ZLTreeNode *node) {
myDownloadingNodes.remove(node);
updateWaitingIcons();
}
void ZLQtTreeDialog::onSearchStarted(ZLTreeNode *node) {
//TODO what in case if different searches started or stopped?
myLastClickedSearchNode = node;
mySearchField->getWaitingIcon()->start();
}
void ZLQtTreeDialog::onSearchStopped(ZLTreeNode *node) {
if (node == myLastClickedSearchNode) {
myLastClickedSearchNode = 0;
mySearchField->getWaitingIcon()->finish();
}
}
void ZLQtTreeDialog::onRefresh() {
myPreviewWidget->refresh();
//TODO maybe add other refreshes? (list widget, for i.e.)
}
void ZLQtTreeDialog::updateNavigationButtons() {
myBackButton->setEnabled(myBackHistory.size() > 1);
myForwardButton->setEnabled(!myForwardHistory.empty());
}
void ZLQtTreeDialog::saveShowParameters() {
if (myBackHistory.empty()) {
return;
}
ShowParameter parameter;
parameter.sliderPosition = myListWidget->verticalScrollBar()->value();
parameter.activeItemNumber = -1;
for (int i = 0; i < myListWidget->getItems().size(); ++i) {
if (myListWidget->getItems().at(i)->isActive()) {
parameter.activeItemNumber = i;
break;
}
}
myShowParameters.insert(myBackHistory.top(), parameter);
}
void ZLQtTreeDialog::setupShowParameters() {
if (myBackHistory.empty()) {
return;
}
if (!myShowParameters.contains(myBackHistory.top())) {
myPreviewWidget->clear();
return;
}
//TODO implement setting a slider position
ShowParameter parameter = myShowParameters.value(myBackHistory.top());
if (parameter.activeItemNumber != -1 && myListWidget->getItems().size() > parameter.activeItemNumber) {
myListWidget->onNodeClicked(myListWidget->getItems().at(parameter.activeItemNumber));
} else {
myPreviewWidget->clear();
}
}
void ZLQtTreeDialog::onNodeClicked(ZLQtTreeItem* item) {
ZLTreeNode* node = item->getNode();
myPreviewWidget->show(node);
}
void ZLQtTreeDialog::onNodeDoubleClicked(ZLQtTreeItem* item) {
const ZLTreeNode* node = item->getNode();
if (const ZLTreePageNode *pageNode = zlobject_cast<const ZLTreePageNode*>(node)) {
(void)pageNode;
//TODO maybe use different kind of check
//isExpandable method for i.e.
return;
}
onExpandRequest(item->getNode());
}
void ZLQtTreeDialog::onBackButton() {
if (myBackHistory.size() <= 1) {
return;
}
saveShowParameters();
myLastClickedNode = 0;
myForwardHistory.push(myBackHistory.pop());
myListWidget->fillNodes(myBackHistory.top());
updateAll();
setupShowParameters();
}
void ZLQtTreeDialog::onForwardButton() {
if (myForwardHistory.empty()) {
return;
}
saveShowParameters();
myLastClickedNode = 0;
myBackHistory.push(myForwardHistory.pop());
if (!myBackHistory.empty()) {
myListWidget->fillNodes(myBackHistory.top());
}
updateAll();
setupShowParameters();
}
void ZLQtTreeDialog::onSearchField() {
if (mySearcher.isNull()) {
return;
}
if (mySearchField->text().isEmpty()) {
return;
}
mySearcher->simpleSearch(mySearchField->text().toStdString());
}
void ZLQtTreeDialog::onMoreChildren() {
if (!myBackHistory.empty()) {
onMoreChildrenRequest(myBackHistory.top());
}
}
ZLQtTreeDialog::ChildrenRequestListener::ChildrenRequestListener(ZLQtTreeDialog *dialog, ZLTreeNode *node, bool moreMode) :
myTreeDialog(dialog), myNode(node), myMoreMode(moreMode) {
}
void ZLQtTreeDialog::ChildrenRequestListener::finished(const std::string &error) {
if (!error.empty()) {
//TODO show error message?
}
if (!myMoreMode) {
myTreeDialog->onChildrenLoaded(myNode, true, error.empty());
} else {
myTreeDialog->onMoreChildrenLoaded(error.empty());
}
}
ZLQtIconButton::ZLQtIconButton(const std::string &iconEnabled, const std::string &iconDisabled, QWidget *parent) : QPushButton(parent) {
static std::string imagePrefix = ZLibrary::ApplicationImageDirectory() + ZLibrary::FileNameDelimiter;
myEnabled = QPixmap(ZLFile(imagePrefix + iconEnabled).path().c_str());
myDisabled = QPixmap(ZLFile(imagePrefix + iconDisabled).path().c_str());
setIconSize(myEnabled.size());
setFixedSize(28, 22);
//setAttribute is needed to workaround a bug on MacOS with size for QPushButton-derived subclasses
//see https://bugreports.qt-project.org/browse/QTBUG-14591
setAttribute(Qt::WA_LayoutUsesWidgetRect);
}
void ZLQtIconButton::setEnabled(bool enabled) {
setIcon(enabled ? myEnabled : myDisabled);
QPushButton::setEnabled(enabled);
}

@ -1,143 +0,0 @@
/*
* Copyright (C) 2004-2012 Geometer Plus <contact@geometerplus.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
* 02110-1301, USA.
*/
#ifndef __ZLQTTREEDIALOG_H__
#define __ZLQTTREEDIALOG_H__
#include <QtCore/QStack>
#include <QtCore/QSet>
#include <QtCore/QMap>
#include <QtGui/QDialog>
#include <QtGui/QScrollArea>
#include <QtGui/QPushButton>
#include <QtGui/QLabel>
#include <QtGui/QLineEdit>
#include <QtGui/QWidget>
#include <ZLTreeDialog.h>
#include "../tree/ZLQtItemsListWidget.h"
#include "../tree/ZLQtPreviewWidget.h"
#include "../tree/ZLQtSearchField.h"
class ZLQtIconButton;
class ZLQtTreeDialog : public QDialog, public ZLTreeDialog {
Q_OBJECT
public:
ZLQtTreeDialog(const ZLResource &resource, QWidget *parent = 0);
public:
void run(ZLTreeNode *rootNode);
protected:
QSize sizeHint() const;
void resizeEvent(QResizeEvent *event);
public: //listener methods
void onExpandRequest(ZLTreeNode *node);
void onCloseRequest();
void onNodeUpdated(ZLTreeNode *node);
void onDownloadingStarted(ZLTreeNode *node);
void onDownloadingStopped(ZLTreeNode *node);
void onSearchStarted(ZLTreeNode *node);
void onSearchStopped(ZLTreeNode *node);
void onRefresh();
void onMoreChildrenRequest(ZLTreeNode *node);
public:
void onChildrenLoaded(ZLTreeNode *node, bool checkLast, bool success);
void onMoreChildrenLoaded(bool success);
private:
void updateAll();
void updateWaitingIcons();
void updateNavigationButtons();
private: //TODO maybe these functions can be used as a typical updateAll()
void saveShowParameters();
void setupShowParameters();
private Q_SLOTS:
void onNodeClicked(ZLQtTreeItem* item);
void onNodeDoubleClicked(ZLQtTreeItem* item);
void onBackButton();
void onForwardButton();
void onSearchField();
void onMoreChildren();
private:
ZLTreeNode *myRootNode;
private:
ZLQtIconButton *myBackButton;
ZLQtIconButton *myForwardButton;
ZLQtSearchField *mySearchField;
// QScrollArea *myScrollArea;
ZLQtItemsListWidget *myListWidget;
ZLQtPreviewWidget *myPreviewWidget;
QStack<ZLTreeNode*> myBackHistory;
QStack<ZLTreeNode*> myForwardHistory;
struct ShowParameter {
int sliderPosition;
int activeItemNumber;
};
QMap<ZLTreeNode*, ShowParameter> myShowParameters;
private:
class ChildrenRequestListener : public ZLNetworkRequest::Listener {
public:
ChildrenRequestListener(ZLQtTreeDialog *dialog, ZLTreeNode *node, bool moreMode);
void finished(const std::string &error);
// const ZLTreeNode *getNode() const;
private:
ZLQtTreeDialog *myTreeDialog;
ZLTreeNode *myNode;
bool myMoreMode;
};
// QList<shared_ptr<ZLNetworkRequest::Listener> > myListeners;
QSet<ZLTreeNode *> myDownloadingNodes;
const ZLTreeNode *myLastClickedNode; //used to 'last clicked item shows first after downloading'
const ZLTreeNode *myLastClickedSearchNode; //used to 'last clicked item shows first after downloading'
friend class ChildrenRequestListener;
};
class ZLQtIconButton : public QPushButton {
public:
ZLQtIconButton(const std::string &iconEnabled, const std::string &iconDisabled, QWidget *parent = 0);
void setEnabled(bool enabled);
private:
QPixmap myEnabled;
QPixmap myDisabled;
};
#endif /* __ZLQTTREEDIALOG_H__ */

@ -1,36 +0,0 @@
/*
* Copyright (C) 2004-2012 Geometer Plus <contact@geometerplus.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
* 02110-1301, USA.
*/
#ifndef __ZLQAPPLICATION_H__
#define __ZLQAPPLICATION_H__
#include <QtGui/QApplication>
class ZLQApplication : public QApplication {
Q_OBJECT
public:
ZLQApplication(int &argc, char **argv);
protected:
bool event(QEvent *event);
};
#endif /* __ZLQAPPLICATION_H__ */

@ -1,114 +0,0 @@
/*
* Copyright (C) 2004-2012 Geometer Plus <contact@geometerplus.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
* 02110-1301, USA.
*/
#include <QtCore/QTextCodec>
#include <QtCore/QFile>
#include <QtGui/QApplication>
#include <QtGui/QFileOpenEvent>
#include <ZLApplication.h>
#include <ZLibrary.h>
#include <ZLLanguageUtil.h>
#include "ZLQApplication.h"
#include "../../../../core/src/unix/library/ZLibraryImplementation.h"
#include "../filesystem/ZLQtFSManager.h"
#include "../time/ZLQtTime.h"
#include "../dialogs/ZLQtDialogManager.h"
#include "../image/ZLQtImageManager.h"
#include "../view/ZLQtPaintContext.h"
#include "../network/ZLQtNetworkManager.h"
#include "../../unix/message/ZLUnixMessage.h"
#include "../../../../core/src/util/ZLKeyUtil.h"
#include "../../../../core/src/unix/xmlconfig/XMLConfig.h"
#include "../../../../core/src/unix/iconv/IConvEncodingConverter.h"
class ZLQtLibraryImplementation : public ZLibraryImplementation {
private:
void init(int &argc, char **&argv);
void setStylesheet(const std::string &filename);
ZLPaintContext *createContext();
void run(ZLApplication *application);
};
void initLibrary() {
new ZLQtLibraryImplementation();
}
ZLQApplication::ZLQApplication(int &argc, char **argv) : QApplication(argc, argv) {
}
bool ZLQApplication::event(QEvent *e) {
switch (e->type()) {
case QEvent::FileOpen:
{
ZLFile file((const char*)static_cast<QFileOpenEvent*>(e)->file().toUtf8(), 0);
ZLApplication::Instance().openFile(file);
return true;
}
default:
return QApplication::event(e);
}
}
void ZLQtLibraryImplementation::init(int &argc, char **&argv) {
new ZLQApplication(argc, argv);
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("utf-8"));
ZLibrary::parseArguments(argc, argv);
XMLConfigManager::createInstance();
ZLQtTimeManager::createInstance();
ZLQtFSManager::createInstance();
ZLQtDialogManager::createInstance();
ZLUnixCommunicationManager::createInstance();
ZLQtImageManager::createInstance();
ZLEncodingCollection::Instance().registerProvider(new IConvEncodingConverterProvider());
ZLQtNetworkManager::createInstance();
setStylesheet("style.qss");
ZLKeyUtil::setKeyNamesFileName("keynames-qt4.xml");
}
void ZLQtLibraryImplementation::setStylesheet(const std::string &filename) {
const std::string stylesheetPath = ZLibrary::ZLibraryDirectory() + ZLibrary::FileNameDelimiter + filename;
QFile file(QString::fromStdString(ZLFile(stylesheetPath).path()));
file.open(QFile::ReadOnly);
QString styleSheet = QLatin1String(file.readAll());
qApp->setStyleSheet(styleSheet);
}
ZLPaintContext *ZLQtLibraryImplementation::createContext() {
return new ZLQtPaintContext();
}
void ZLQtLibraryImplementation::run(ZLApplication *application) {
if (ZLLanguageUtil::isRTLLanguage(ZLibrary::Language())) {
qApp->setLayoutDirection(Qt::RightToLeft);
}
static_cast<ZLQtNetworkManager&>(ZLNetworkManager::Instance()).initPaths();
ZLDialogManager::Instance().createApplicationWindow(application);
application->initWindow();
qApp->exec();
static_cast<ZLQtDialogManager&>(ZLDialogManager::Instance()).notifyApplicationWindowDeleted();
delete application;
}

@ -1,453 +0,0 @@
/*
* Copyright (C) 2004-2012 Geometer Plus <contact@geometerplus.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
* 02110-1301, USA.
*/
#include <QtCore/QVector>
#include <QtCore/QStringList>
#include <QtCore/QFile>
#include <QtCore/QEventLoop>
#include <QtCore/QDir>
#include <QtCore/QList>
#include <QtCore/QTimer>
#include <QtNetwork/QNetworkRequest>
#include <QtNetwork/QNetworkReply>
#include <QtNetwork/QNetworkProxy>
#include <QtNetwork/QSslConfiguration>
#include <QtNetwork/QSslCertificate>
#include <QtNetwork/QAuthenticator>
#include <QtCore/QDebug>
#include <ZLApplication.h>
#include <ZLStringUtil.h>
#include <ZLLogger.h>
#include <ZLResource.h>
#include <ZLNetworkUtil.h>
#include "ZLQtNetworkManager.h"
static QString fixPath(const QString &path) {
if (path.startsWith('~')) {
return QDir::homePath() + path.mid(1);
}
return path;
}
ZLQtNetworkManager::ZLQtNetworkManager() {
myCache = new QNetworkDiskCache(&myManager);
myManager.setCache(myCache);
myCookieJar = new ZLQtNetworkCookieJar(&myManager);
myManager.setCookieJar(myCookieJar);
QObject::connect(&myManager, SIGNAL(authenticationRequired(QNetworkReply*,QAuthenticator*)),
this, SLOT(onAuthenticationRequired(QNetworkReply*,QAuthenticator*)));
QObject::connect(&myManager, SIGNAL(finished(QNetworkReply*)),
this, SLOT(onFinished(QNetworkReply*)));
}
ZLQtNetworkManager::~ZLQtNetworkManager() {
}
void ZLQtNetworkManager::createInstance() {
ourInstance = new ZLQtNetworkManager();
}
void ZLQtNetworkManager::initPaths() {
myCookieJar->setFilePath(fixPath(QString::fromStdString(CookiesPath())));
QDir cacheDirectory = fixPath(QString::fromStdString(CacheDirectory()));
if (!cacheDirectory.exists()) {
cacheDirectory.mkpath(cacheDirectory.absolutePath());
}
myCache->setCacheDirectory(cacheDirectory.absolutePath());
}
std::string ZLQtNetworkManager::perform(const ZLNetworkRequest::Vector &requestsList) const {
if (useProxy()) {
QString host = QString::fromStdString(proxyHost());
QNetworkProxy proxy(QNetworkProxy::HttpProxy, host, atoi(proxyPort().c_str()));
const_cast<QNetworkAccessManager&>(myManager).setProxy(proxy);
}
QList<QNetworkReply*> replies;
QStringList errors;
QEventLoop eventLoop;
foreach (const shared_ptr<ZLNetworkRequest> &request, requestsList) {
if (request.isNull()) {
continue;
}
//ZLNetworkRequest &request = static_cast<ZLNetworkRequest&>(*requestPtr);
QNetworkRequest networkRequest;
ZLLogger::Instance().println("network", "requesting " + request->url());
networkRequest.setUrl(QUrl::fromUserInput(QString::fromStdString(request->url())));
if (!request->doBefore()) {
std::string error = request->errorMessage();
if (error.empty()) {
const ZLResource &errorResource = ZLResource::resource("dialog")["networkError"];
error = ZLStringUtil::printf(errorResource["somethingWrongMessage"].value(), networkRequest.url().host().toStdString());
}
errors << QString::fromStdString(error);
continue;
}
setHeadersAndSsl(networkRequest);
QTimer* timeoutTimer = new QTimer;
ZLQtNetworkReplyScope scope = { request, timeoutTimer, false, &replies, &errors, &eventLoop};
prepareReply(scope, networkRequest);
}
if (!replies.isEmpty()) {
eventLoop.exec(QEventLoop::ExcludeUserInputEvents);
}
return errors.join(QLatin1String("\n")).toStdString();
}
std::string ZLQtNetworkManager::performAsync(const ZLNetworkRequest::Vector &requestsList) const {
if (useProxy()) {
QString host = QString::fromStdString(proxyHost());
QNetworkProxy proxy(QNetworkProxy::HttpProxy, host, atoi(proxyPort().c_str()));
const_cast<QNetworkAccessManager&>(myManager).setProxy(proxy);
}
foreach (const shared_ptr<ZLNetworkRequest> &request, requestsList) {
if (request.isNull()) {
continue;
}
QNetworkRequest networkRequest;
ZLLogger::Instance().println("network", "async requesting " + request->url());
networkRequest.setUrl(QUrl::fromUserInput(QString::fromStdString(request->url())));
if (!request->doBefore()) {
continue;
}
setHeadersAndSsl(networkRequest);
QTimer* timeoutTimer = new QTimer;
ZLQtNetworkReplyScope scope = { request, timeoutTimer, false, 0, 0, 0};
prepareReply(scope, networkRequest);
}
return std::string();
}
void ZLQtNetworkManager::prepareReply(ZLQtNetworkReplyScope &scope, QNetworkRequest networkRequest) const {
QNetworkReply *reply = NULL;
if (!scope.request->postParameters().empty()) {
QByteArray data;
QUrl tmp;
typedef std::pair<std::string, std::string> string_pair;
foreach (const string_pair &pair, scope.request->postParameters()) {
tmp.addQueryItem(QString::fromStdString(pair.first), QString::fromStdString(pair.second));
}
data = tmp.encodedQuery();
reply = const_cast<QNetworkAccessManager&>(myManager).post(networkRequest, data);
} else {
reply = const_cast<QNetworkAccessManager&>(myManager).get(networkRequest);
}
if (scope.replies) {
scope.replies->push_back(reply);
}
QObject::connect(reply, SIGNAL(sslErrors(QList<QSslError>)),this, SLOT(onSslErrors(QList<QSslError>)));
QObject::connect(reply, SIGNAL(readyRead()), this, SLOT(onReplyReadyRead()));
QObject::disconnect(scope.timeoutTimer, 0, this, 0);
QObject::connect(scope.timeoutTimer, SIGNAL(timeout()), this, SLOT(onTimeOut()));
reply->setProperty("scope", qVariantFromValue(scope));
scope.timeoutTimer->setProperty("reply", qVariantFromValue(reply));
scope.timeoutTimer->start(timeoutValue());
}
void ZLQtNetworkManager::onFinished(QNetworkReply *reply) {
ZLQtNetworkReplyScope scope = reply->property("scope").value<ZLQtNetworkReplyScope>();
if (!scope.eventLoop) {
onFinishedAsync(reply);
return;
}
reply->deleteLater();
scope.replies->removeOne(reply);
scope.timeoutTimer->stop();
if (!scope.timeoutTimer->property("expired").isValid()) {
if (handleRedirect(reply)) {
return;
}
handleHeaders(reply);
handleContent(reply);
}
QString error = handleErrors(reply);
if (!error.isEmpty()) {
scope.errors->push_back(error);
}
if (error.isEmpty()) {
saveUserName(reply);
}
scope.timeoutTimer->deleteLater();
if (!scope.request->doAfter(error.toStdString())) {
scope.errors->append(QString::fromStdString(scope.request->errorMessage()));
}
if (scope.replies->isEmpty()) {
scope.eventLoop->quit();
}
}
void ZLQtNetworkManager::onFinishedAsync(QNetworkReply *reply) {
ZLQtNetworkReplyScope scope = reply->property("scope").value<ZLQtNetworkReplyScope>();
ZLLogger::Instance().println("network", "[FINISHED] async request " + scope.request->url());
reply->deleteLater();
scope.timeoutTimer->stop();
//TODO maybe timeout is working incorrect?
if (!scope.timeoutTimer->property("expired").isValid()) {
if (handleRedirect(reply)) {
return;
}
handleHeaders(reply);
handleContent(reply);
}
scope.timeoutTimer->deleteLater();
QString error = handleErrors(reply);
if (error.isEmpty()) {
saveUserName(reply);
}
scope.request->doAfter(error.toStdString());
return;
}
bool ZLQtNetworkManager::handleRedirect(QNetworkReply *reply) {
ZLQtNetworkReplyScope scope = reply->property("scope").value<ZLQtNetworkReplyScope>();
if (!scope.request->isRedirectionSupported()) {
return false;
}
QUrl redirect = reply->attribute(QNetworkRequest::RedirectionTargetAttribute).toUrl();
if (!redirect.isValid()) {
return false;
}
QObject::disconnect(reply, 0, this, 0);
QNetworkRequest request = reply->request();
request.setUrl(reply->url().resolved(redirect));
scope.authAskedAlready = false;
prepareReply(scope, request);
return true;
}
void ZLQtNetworkManager::onReplyReadyRead() {
QNetworkReply *reply = qobject_cast<QNetworkReply*>(sender());
ZLQtNetworkReplyScope scope = reply->property("scope").value<ZLQtNetworkReplyScope>();
scope.timeoutTimer->start(timeoutValue());
}
void ZLQtNetworkManager::onTimeOut() {
QTimer *timer = qobject_cast<QTimer*>(sender());
QNetworkReply* reply = timer->property("reply").value<QNetworkReply*>();
timer->stop();
timer->setProperty("expired", true);
reply->abort();
}
void ZLQtNetworkManager::onAuthenticationRequired(QNetworkReply *reply, QAuthenticator *authenticator) {
ZLQtNetworkReplyScope scope = reply->property("scope").value<ZLQtNetworkReplyScope>();
scope.timeoutTimer->stop();
std::string userName;
std::string password;
scope.request->setUIStatus(false);
bool result = ZLApplication::Instance().showAuthDialog(
ZLNetworkUtil::hostFromUrl(reply->url().toString().toStdString()),
userName,
password,
scope.authAskedAlready ? ZLResourceKey("authenticationFailed") : ZLResourceKey());
scope.request->setUIStatus(true);
if (result) {
scope.request->setupAuthentication(userName, password);
} else {
return;
}
scope.timeoutTimer->start(timeoutValue());
authenticator->setUser(QString::fromStdString(scope.request->userName()));
authenticator->setPassword(QString::fromStdString(scope.request->password()));
scope.authAskedAlready = true;
reply->setProperty("scope", qVariantFromValue(scope));
}
void ZLQtNetworkManager::onSslErrors(const QList<QSslError> &errors) {
QNetworkReply *reply = qobject_cast<QNetworkReply*>(sender());
reply->ignoreSslErrors(errors);
}
void ZLQtNetworkManager::handleHeaders(QNetworkReply *reply) const {
ZLQtNetworkReplyScope scope = reply->property("scope").value<ZLQtNetworkReplyScope>();
//TODO set HTTP header not with predefined information (like line below)
QByteArray data = "HTTP/1.1 ";
data += reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toByteArray();
data += " ";
data += reply->attribute(QNetworkRequest::HttpReasonPhraseAttribute).toByteArray();
scope.request->handleHeader(data.data(), data.size());
foreach (const QByteArray &headerName, reply->rawHeaderList()) {
data = headerName;
QByteArray value = reply->rawHeader(headerName);
data += ": ";
data += value;
if (headerName.toLower() == QString("content-encoding") && value.toLower().contains("gzip")) {
continue;
}
scope.request->handleHeader(data.data(), data.size());
}
}
void ZLQtNetworkManager::handleContent(QNetworkReply *reply) const {
ZLQtNetworkReplyScope scope = reply->property("scope").value<ZLQtNetworkReplyScope>();
if (reply->error() != QNetworkReply::NoError) {
return;
}
QByteArray data = reply->readAll();
if (!data.isEmpty()) {
scope.request->handleContent(data.data(), data.size());
}
}
QString ZLQtNetworkManager::handleErrors(QNetworkReply *reply) {
if (reply->error() == QNetworkReply::NoError) {
return QString();
}
ZLLogger::Instance().println("network", QString("handleErrors: %1. Qt code: %2, url: %3").arg(reply->errorString()).arg(reply->error()).arg(reply->url().toString()).toStdString());
std::string error;
const ZLResource &errorResource = ZLResource::resource("dialog")["networkError"];
switch (reply->error()) {
case QNetworkReply::AuthenticationRequiredError:
error = errorResource["authenticationFailed"].value();
break;
case QNetworkReply::OperationCanceledError:
case QNetworkReply::TimeoutError:
case QNetworkReply::ProxyTimeoutError:
error = errorResource["operationTimedOutMessage"].value();
break;
case QNetworkReply::SslHandshakeFailedError:
error = ZLStringUtil::printf(errorResource["sslConnectErrorMessage"].value(), reply->url().toString().toStdString());
break;
case QNetworkReply::HostNotFoundError:
error = ZLStringUtil::printf(errorResource["couldntConnectMessage"].value(), reply->url().toString().toStdString());
break;
case QNetworkReply::ContentNotFoundError: //404 error, may be it should be other error message?
error = ZLStringUtil::printf(errorResource["somethingWrongMessage"].value(), reply->url().toString().toStdString());
break;
case QNetworkReply::UnknownNetworkError:
error = QString("%1: %2").arg(reply->url().host()).arg(reply->errorString()).toStdString(); //TODO maybe host information is excess
break;
case QNetworkReply::UnknownProxyError:
case QNetworkReply::UnknownContentError:
case QNetworkReply::ProtocolUnknownError:
error = errorResource["unknownErrorMessage"].value();
break;
case QNetworkReply::ProxyNotFoundError:
error = ZLStringUtil::printf(errorResource["couldntResolveProxyMessage"].value(), reply->url().toString().toStdString());
break;
//TODO add support of other errors code in our resources
case QNetworkReply::ConnectionRefusedError:
case QNetworkReply::RemoteHostClosedError:
// proxy errors (101-199):
case QNetworkReply::ProxyConnectionRefusedError:
case QNetworkReply::ProxyConnectionClosedError:
case QNetworkReply::ProxyAuthenticationRequiredError:
// content errors (201-299):
case QNetworkReply::ContentAccessDenied:
case QNetworkReply::ContentOperationNotPermittedError:
case QNetworkReply::ContentReSendError:
// protocol errors
case QNetworkReply::ProtocolInvalidOperationError:
case QNetworkReply::ProtocolFailure:
default:
error = reply->errorString().toStdString();
break;
}
return QString::fromStdString(error);
}
void ZLQtNetworkManager::setHeadersAndSsl(QNetworkRequest &networkRequest) const {
networkRequest.setRawHeader("User-Agent", userAgent().c_str());
QSslConfiguration configuration = QSslConfiguration::defaultConfiguration();
networkRequest.setSslConfiguration(configuration);
}
void ZLQtNetworkManager::saveUserName(QNetworkReply *reply) const {
ZLQtNetworkReplyScope scope = reply->property("scope").value<ZLQtNetworkReplyScope>();
std::string userName = scope.request->userName();
if (userName.empty()) {
return;
}
std::string siteName = ZLNetworkUtil::hostFromUrl(reply->url().toString().toStdString());
ZLApplication::Instance().saveUserName(siteName, userName);
}
int ZLQtNetworkManager::timeoutValue() const {
return TimeoutOption().value() * 1000;
}
ZLQtNetworkCookieJar::ZLQtNetworkCookieJar(QObject *parent) :
QNetworkCookieJar(parent) {
}
ZLQtNetworkCookieJar::~ZLQtNetworkCookieJar() {
save();
}
void ZLQtNetworkCookieJar::setFilePath(const QString &filePath) {
myFilePath = filePath;
QFile file(myFilePath);
QList<QNetworkCookie> cookies;
if (file.open(QFile::ReadOnly)) {
cookies = QNetworkCookie::parseCookies(file.readAll());
}
setAllCookies(cookies);
}
bool ZLQtNetworkCookieJar::setCookiesFromUrl(const QList<QNetworkCookie> &cookieList, const QUrl &url) {
bool result = QNetworkCookieJar::setCookiesFromUrl(cookieList, url);
save();
return result;
}
void ZLQtNetworkCookieJar::save() {
if (myFilePath.isEmpty())
return;
QFile file(myFilePath);
QDir dir = QFileInfo(myFilePath).absoluteDir();
if (!dir.exists()) {
dir.mkpath(dir.absolutePath());
}
if (!file.open(QFile::WriteOnly)) {
ZLLogger::Instance().println("ZLQtNetworkCookieJar", myFilePath.toStdString() + " can't be open for writing");
return;
}
bool first = true;
foreach (const QNetworkCookie &cookie, allCookies()) {
if (first) {
first = false;
} else {
file.write("\n", 1);
}
file.write(cookie.toRawForm(QNetworkCookie::Full));
}
}

@ -1,155 +0,0 @@
#include <cmath>
#include <algorithm>
#include <QtGui/QPainter>
#include "QtWaitingSpinner.h"
QtWaitingSpinner::QtWaitingSpinner(int linesNumber, int length, int width, int radius, QWidget *parent) : QWidget(parent),
myLinesNumber(linesNumber),
myLength(length + width),
myWidth(width),
myRadius(radius),
myRoundness(70.0),
myColor(Qt::black),
mySpeed(1),
myTrail(70),
myOpacity(15)
{
myCurrentCounter = 0;
myTimer = new QTimer(this);
connect(myTimer,SIGNAL(timeout()), this, SLOT(rotate()));
updateSize();
updateTimer();
this->hide();
}
void QtWaitingSpinner::paintEvent(QPaintEvent */*ev*/) {
QPainter painter(this);
painter.fillRect(this->rect(), Qt::transparent);
painter.setRenderHint(QPainter::Antialiasing, true);
if (myCurrentCounter >= myLinesNumber) {
myCurrentCounter = 0;
}
painter.setPen(Qt::NoPen);
for (int i = 0; i < myLinesNumber; ++i) {
painter.save();
painter.translate(myRadius + myLength, myRadius + myLength);
qreal rotateAngle = (qreal)360 * qreal(i) / qreal(myLinesNumber);
painter.rotate(rotateAngle);
painter.translate(myRadius, 0);
int distance = lineDistance(i, myCurrentCounter, myLinesNumber);
QColor color = countTrailColor(distance, myLinesNumber, myTrail, myOpacity, myColor);
painter.setBrush(color);
//TODO improve the way rounded rect is painted
painter.drawRoundedRect(QRect(0, -myWidth/2, myLength, myWidth), myRoundness, myRoundness, Qt::RelativeSize);
painter.restore();
}
}
void QtWaitingSpinner::start() {
this->show();
if (!myTimer->isActive()) {
myTimer->start();
myCurrentCounter = 0;
}
}
void QtWaitingSpinner::finish() {
this->hide();
if (myTimer->isActive()) {
myTimer->stop();
myCurrentCounter = 0;
}
}
void QtWaitingSpinner::setLinesNumber(int linesNumber) {
myLinesNumber = linesNumber;
myCurrentCounter = 0;
updateTimer();
}
void QtWaitingSpinner::setLength(int length){
myLength = length;
updateSize();
}
void QtWaitingSpinner::setWidth(int width) {
myWidth = width;
updateSize();
}
void QtWaitingSpinner::setRadius(int radius) {
myRadius = radius;
updateSize();
}
void QtWaitingSpinner::setRoundness(qreal roundness) {
myRoundness = std::max(0.0, std::min(100.0, roundness));
}
void QtWaitingSpinner::setColor(QColor color) {
myColor = color;
}
void QtWaitingSpinner::setSpeed(qreal speed) {
mySpeed = speed;
updateTimer();
}
void QtWaitingSpinner::setTrail(int trail) {
myTrail = trail;
}
void QtWaitingSpinner::setOpacity(int minOpacity) {
myOpacity = minOpacity;
}
void QtWaitingSpinner::rotate() {
++myCurrentCounter;
if (myCurrentCounter >= myLinesNumber) {
myCurrentCounter = 0;
}
update();
}
void QtWaitingSpinner::updateSize() {
int size = (myRadius + myLength) * 2;
setFixedSize(size, size);
}
void QtWaitingSpinner::updateTimer() {
myTimer->setInterval(countTimeout(myLinesNumber, mySpeed));
}
int QtWaitingSpinner::countTimeout(int lines, qreal speed) {
return 1000 / (lines * speed);
}
int QtWaitingSpinner::lineDistance(int from, int to, int lines) {
int result = to - from;
if (result < 0) {
result += lines;
}
return result;
}
QColor QtWaitingSpinner::countTrailColor(int distance, int lines, int trail, int minOpacity, QColor color) {
if (distance == 0) {
return color;
}
const qreal minAlphaF = (qreal)minOpacity / 100;
int distanceThreshold = ceil( (lines - 1) * (qreal)trail / 100);
if (distance > distanceThreshold) {
color.setAlphaF(minAlphaF);
return color;
}
qreal alphaDiff = color.alphaF() - (qreal)minAlphaF;
qreal gradation = alphaDiff / (qreal)(distanceThreshold + 1);
qreal resultAlpha = color.alphaF() - gradation * distance;
resultAlpha = std::min(1.0, std::max(0.0, resultAlpha)); //if alpha is out of bound, force it to bounds
color.setAlphaF(resultAlpha);
return color;
}

@ -1,59 +0,0 @@
#ifndef QTWAITINGSPINNER_H
#define QTWAITINGSPINNER_H
#include <QtCore/QTimer>
#include <QtGui/QWidget>
#include <QtGui/QColor>
class QtWaitingSpinner : public QWidget {
Q_OBJECT
public:
explicit QtWaitingSpinner(int linesNumber = 12, int length = 7, int width = 5, int radius = 10, QWidget *parent = 0);
public Q_SLOTS:
void start();
void finish();
public:
void setLinesNumber(int linesNumber);
void setLength(int length);
void setWidth(int width);
void setRadius(int radius);
void setRoundness(qreal roundness);
void setColor(QColor color);
void setSpeed(qreal speed);
void setTrail(int trail);
void setOpacity(int minOpacity);
private Q_SLOTS:
void rotate();
void updateSize();
void updateTimer();
protected:
void paintEvent(QPaintEvent *ev);
private:
static int countTimeout(int lines, qreal speed);
static int lineDistance(int from, int to, int lines);
static QColor countTrailColor(int distance, int lines, int trail, int minOpacity, QColor color);
private:
int myLinesNumber;
int myLength;
int myWidth;
int myRadius;
qreal myRoundness; //0..100
QColor myColor;
qreal mySpeed; // in rounds per second
int myTrail;
int myOpacity;
private:
QTimer *myTimer;
int myCurrentCounter;
};
#endif // QTWAITINGSPINNER_H

@ -1,255 +0,0 @@
/*
* Copyright (C) 2004-2012 Geometer Plus <contact@geometerplus.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
* 02110-1301, USA.
*/
#include <QtGui/QVBoxLayout>
#include <QtGui/QHBoxLayout>
#include <QtGui/QPixmap>
#include <QtGui/QPalette>
#include <QtGui/QPainter>
#include <QtGui/QPaintEvent>
#include <QtGui/QScrollBar>
#include <QtCore/QTimer>
#include <QtCore/QDebug>
#include <ZLibrary.h>
#include <ZLNetworkManager.h>
#include <ZLTreeTitledNode.h>
#include <ZLFile.h>
#include "../dialogs/ZLQtDialogManager.h"
#include "../image/ZLQtImageUtils.h"
#include "ZLQtPreviewWidget.h"
#include "ZLQtItemsListWidget.h"
static const int ITEM_HEIGHT = 98;
static const int ITEM_COUNT = 5;
static const int ITEM_SIZE = 77;
static const int WAITING_SIZE = 40;
ZLQtItemsListWidget::ZLQtItemsListWidget(QWidget *parent) : QScrollArea(parent), myLayout(0) {
myContainerWidget = new QWidget;
myContainerWidget->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Minimum);
verticalScrollBar()->setTracking(false);
connect(verticalScrollBar(), SIGNAL(valueChanged(int)), SLOT(onSliderMoved(int)));
setVerticalScrollBarPolicy(Qt::ScrollBarAsNeeded);
setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
setWidget(myContainerWidget);
setFrameShape(QFrame::NoFrame);
setWidgetResizable(true);
setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Minimum);
}
void ZLQtItemsListWidget::clear() {
if (myLayout != 0) {
delete myLayout;
qDeleteAll(myContainerWidget->children());
}
myLayout = new QVBoxLayout;
myLayout->setContentsMargins(0,0,0,0);
myLayout->setSpacing(0);
myLayout->setSizeConstraint(QLayout::SetMinAndMaxSize);
myContainerWidget->setLayout(myLayout);
myItems.clear();
}
void ZLQtItemsListWidget::addNode(ZLTreeTitledNode *titledNode) {
//qDebug() << QString::fromStdString(titledNode->title());
ZLQtTreeItem *item = new ZLQtTreeItem;
item->fill(titledNode);
connect(item, SIGNAL(clicked(ZLQtTreeItem*)), this, SLOT(onNodeClicked(ZLQtTreeItem*))); //action ExpandAction used instead
connect(item, SIGNAL(doubleClicked(ZLQtTreeItem*)), this, SIGNAL(nodeDoubleClicked(ZLQtTreeItem*)));
myLayout->addWidget(item);
myItems.push_back(item);
}
void ZLQtItemsListWidget::fillNodes(const ZLTreeNode *expandNode) {
clear();
foreach(ZLTreeNode* node, expandNode->children()) {
if (ZLTreeTitledNode *titledNode = zlobject_cast<ZLTreeTitledNode*>(node)) {
addNode(titledNode);
}
}
}
void ZLQtItemsListWidget::fillNewNodes(const ZLTreeNode *rootNode) {
if (myLayout == 0) {
return;
}
size_t oldSize = (size_t)myItems.size();
//qDebug() << Q_FUNC_INFO << oldSize << rootNode->children().size();
for (size_t i = oldSize; i < rootNode->children().size(); ++i) {
if (ZLTreeTitledNode *titledNode = zlobject_cast<ZLTreeTitledNode*>(rootNode->children().at(i))) {
addNode(titledNode);
}
}
}
QSize ZLQtItemsListWidget::sizeHint() const {
return QSize(0, ITEM_HEIGHT * ITEM_COUNT);
}
void ZLQtItemsListWidget::setMinimumWidth(int w) {
myContainerWidget->setMinimumWidth(w - verticalScrollBar()->width());
QScrollArea::setMinimumWidth(w);
}
QList<ZLQtTreeItem *> ZLQtItemsListWidget::getItems() const {
return myItems;
}
void ZLQtItemsListWidget::onNodeClicked(ZLQtTreeItem* itemClicked) {
foreach(ZLQtTreeItem *item, myItems) {
item->setActive(item == itemClicked);
}
emit nodeClicked(itemClicked);
}
void ZLQtItemsListWidget::onSliderMoved(int value) {
int maximum = verticalScrollBar()->maximum();
if ((double)value > (double)maximum * 0.8) {
emit wantMoreChildren();
}
}
ZLQtTreeItem::ZLQtTreeItem(QWidget *parent) : QFrame(parent), myNode(0), myImageRequested(false) {
setAutoFillBackground(true);
setActive(false);
QHBoxLayout *mainLayout = new QHBoxLayout;
QHBoxLayout *infoLayout = new QHBoxLayout;
infoLayout->setAlignment(Qt::AlignLeft);
QVBoxLayout *titlesLayout = new QVBoxLayout;
myIcon = new QLabel;
myTitle = new QLabel;
mySubtitle = new QLabel;
myWaitingIcon = new QtWaitingSpinner(12, 6, 4, 10);
myWaitingIcon->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
myTitle->setWordWrap(true);
mySubtitle->setWordWrap(true);
titlesLayout->addWidget(myTitle);
titlesLayout->addWidget(mySubtitle);
infoLayout->addWidget(myIcon, 0);
infoLayout->addLayout(titlesLayout, 1);
mainLayout->addLayout(infoLayout, 1);
mainLayout->addWidget(myWaitingIcon, 0, Qt::AlignRight);
setLayout(mainLayout);
setFixedHeight(ITEM_HEIGHT);
clear();
}
void ZLQtTreeItem::fill(ZLTreeTitledNode *node) {
clear();
myNode = node;
myTitle->setText(QString("<b>%1</b>").arg(QString::fromStdString(node->title())));
mySubtitle->setText(QString::fromStdString(node->subtitle()));
fillImage();
}
void ZLQtTreeItem::fillImage() {
//separated method for deferred loding of cover (good for slow connections)
//TODO as it starts loading on paintEvent, it works bad while scrolling
if (!myImageRequested) {
return;
}
shared_ptr<const ZLImage> image = myNode->image();
if (!image.isNull()) {
QPixmap pixmap = ZLQtImageUtils::ZLImageToQPixmapWithSize(image, QSize(ITEM_SIZE,ITEM_SIZE), false, Qt::SmoothTransformation);
if (!pixmap.isNull()) {
myIcon->setPixmap(pixmap);
}
}
}
void ZLQtTreeItem::clear() {
myNode = 0;
myImageRequested = false;
myTitle->clear();
mySubtitle->clear();
QPixmap pixmap(ITEM_SIZE, ITEM_SIZE);
pixmap.fill(Qt::transparent);
myIcon->setPixmap(pixmap);
myWaitingIcon->finish();
}
void ZLQtTreeItem::setActive(bool active) {
myIsActive = active;
//TODO due to different themes on OS, take a color from existed palette
QColor mainColor = myIsActive ? QColor::fromHsv(0, 0, 0.75 * 255) : QColor::fromHsv(0, 0, 0.95 * 255);
setFrameStyle(QFrame::Panel | QFrame::Raised);
setLineWidth(2);
QPalette p = palette();
p.setColor(QPalette::Window, mainColor);
setPalette(p);
update();
}
bool ZLQtTreeItem::isActive() const {
return myIsActive;
}
ZLTreeTitledNode *ZLQtTreeItem::getNode() const {
return myNode;
}
QtWaitingSpinner *ZLQtTreeItem::getWaitingIcon() const {
return myWaitingIcon;
}
void ZLQtTreeItem::mousePressEvent(QMouseEvent *) {
emit clicked(this);
}
void ZLQtTreeItem::mouseDoubleClickEvent(QMouseEvent *) {
emit doubleClicked(this);
}
void ZLQtTreeItem::paintEvent(QPaintEvent *event) {
if (myNode && !myImageRequested) {
myNode->image();
myImageRequested = true;
fillImage();
}
QFrame::paintEvent(event);
}

@ -1,106 +0,0 @@
/*
* Copyright (C) 2004-2012 Geometer Plus <contact@geometerplus.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
* 02110-1301, USA.
*/
#ifndef __ZLQTITEMSLISTWIDGET_H__
#define __ZLQTITEMSLISTWIDGET_H__
#include <QtGui/QWidget>
#include <QtGui/QFrame>
#include <QtGui/QPushButton>
#include <QtGui/QLabel>
#include <QtGui/QVBoxLayout>
#include <QtGui/QScrollArea>
#include <ZLTreeTitledNode.h>
#include "QtWaitingSpinner.h"
class ZLQtTreeItem;
class ZLQtItemsListWidget : public QScrollArea {
Q_OBJECT
public:
ZLQtItemsListWidget(QWidget *parent = 0);
void fillNodes(const ZLTreeNode *rootNode);
void fillNewNodes(const ZLTreeNode *rootNode);
QSize sizeHint() const;
void setMinimumWidth(int w);
QList<ZLQtTreeItem*> getItems() const;
Q_SIGNALS:
void nodeClicked(ZLQtTreeItem* item);
void nodeDoubleClicked(ZLQtTreeItem* item);
void wantMoreChildren();
public Q_SLOTS:
void onNodeClicked(ZLQtTreeItem* item);
void onSliderMoved(int value);
private:
void clear();
void addNode(ZLTreeTitledNode *node);
private:
QWidget *myContainerWidget;
QVBoxLayout *myLayout;
QList<ZLQtTreeItem*> myItems;
};
class QtWaitingSpinner;
class ZLQtTreeItem : public QFrame {
Q_OBJECT
public:
ZLQtTreeItem(QWidget *parent = 0);
void fill(ZLTreeTitledNode *node);
void setActive(bool active);
bool isActive() const;
public:
ZLTreeTitledNode *getNode() const;
QtWaitingSpinner *getWaitingIcon() const;
Q_SIGNALS:
void clicked(ZLQtTreeItem* item);
void doubleClicked(ZLQtTreeItem* item);
protected:
void mousePressEvent(QMouseEvent *event);
void mouseDoubleClickEvent(QMouseEvent *event);
void paintEvent(QPaintEvent *event);
protected:
void fillImage();
void clear();
private:
ZLTreeTitledNode *myNode;
QLabel *myIcon;
QLabel *myTitle;
QLabel *mySubtitle;
QtWaitingSpinner *myWaitingIcon;
bool myImageRequested;
bool myIsActive;
};
#endif /* __ZLQTITEMSLISTWIDGET_H__ */

@ -1,411 +0,0 @@
/*
* Copyright (C) 2004-2012 Geometer Plus <contact@geometerplus.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
* 02110-1301, USA.
*/
#include <QtGui/QVBoxLayout>
#include <QtGui/QHBoxLayout>
#include <QtGui/QScrollBar>
#include <QtGui/QGraphicsDropShadowEffect>
#include <QtCore/QDebug>
#include <ZLNetworkManager.h>
#include <ZLStringUtil.h>
#include "QtWaitingSpinner.h"
#include "../image/ZLQtImageUtils.h"
#include "ZLQtPreviewWidget.h"
class ZLQtLabelAction : public QLabel {
public:
ZLQtLabelAction(shared_ptr<ZLTreeAction> action, QWidget *parent=0, Qt::WindowFlags f=0);
protected:
void mousePressEvent(QMouseEvent *ev);
private:
shared_ptr<ZLTreeAction> myAction;
};
ZLQtLabelAction::ZLQtLabelAction(shared_ptr<ZLTreeAction> action,QWidget *parent, Qt::WindowFlags f) :
QLabel(parent, f), myAction(action) {
setCursor(Qt::PointingHandCursor);
QPalette p = palette();
p.setColor(QPalette::WindowText, QColor(33, 96, 180)); //blue color
setPalette(p);
}
void ZLQtLabelAction::mousePressEvent(QMouseEvent *) {
if (myAction.isNull() || !myAction->makesSense()) {
return;
}
myAction->run();
}
ZLQtButtonAction::ZLQtButtonAction(shared_ptr<ZLTreeAction> action,QWidget *parent) :
QPushButton(parent), myAction(action) {
connect(this, SIGNAL(clicked()), this, SLOT(onClicked()), Qt::QueuedConnection); //QueuedConnection used for sending clicked() signal for UI at first
setAttribute(Qt::WA_LayoutUsesWidgetRect);
}
void ZLQtButtonAction::onClicked() {
if (myAction.isNull() || !myAction->makesSense()) {
return;
}
myAction->run();
}
ZLQtPreviewWidget::ZLQtPreviewWidget(QWidget *parent) : QWidget(parent), myCurrentNode(0) {
QSizePolicy policy = QSizePolicy(QSizePolicy::Preferred, QSizePolicy::MinimumExpanding);
//policy.setHorizontalStretch(2);
setSizePolicy(policy);
}
void ZLQtPreviewWidget::show(ZLTreeNode *node) {
clear();
myCurrentNode = node;
if (ZLTreePageNode *pageNode = zlobject_cast<ZLTreePageNode*>(node)) {
if (myDownloadingNodes.contains(pageNode)) {
fillWaitingIcon();
return;
}
fillPageInfo(pageNode);
} else if (const ZLTreeTitledNode *titledNode = zlobject_cast<const ZLTreeTitledNode*>(node)) {
fillCatalog(titledNode);
}
}
void ZLQtPreviewWidget::refresh() {
if (myCurrentNode) {
show(myCurrentNode);
}
}
class PageInfoLoaderListener : public ZLNetworkRequest::Listener {
public:
PageInfoLoaderListener(ZLQtPreviewWidget &previewWidget, ZLTreePageNode *node) :
myPreviewWidget(previewWidget), myNode(node) {
myPreviewWidget.myDownloadingNodes.insert(node);
}
void finished(const std::string &error) {
myPreviewWidget.myDownloadingNodes.remove(myNode);
if (myPreviewWidget.myCurrentNode == myNode) {
myPreviewWidget.refresh();
}
}
private:
ZLQtPreviewWidget &myPreviewWidget;
ZLTreePageNode *myNode;
};
void ZLQtPreviewWidget::fillPageInfo(ZLTreePageNode *node) {
if (myDownloadingNodes.contains(node)) {
fillWaitingIcon();
return;
}
shared_ptr<ZLTreePageInfo> info = node->getPageInfo();
if (info.isNull()) {
return;
}
if (!info->isPageInfoLoaded()) {
fillWaitingIcon();
info->loadAll(new PageInfoLoaderListener(*this, node));
return;
}
setBasicLayout();
QWidget *widget = new ZLQtPageWidget(*info);
widget->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::MinimumExpanding);
layout()->addWidget(widget);
}
void ZLQtPreviewWidget::setBasicLayout() {
QHBoxLayout *layout = new QHBoxLayout;
layout->setSizeConstraint(QLayout::SetMinimumSize);
layout->setContentsMargins(0,0,0,0);
setLayout(layout);
}
void ZLQtPreviewWidget::fillCatalog(const ZLTreeTitledNode *node) {
setBasicLayout();
QWidget *widget = new ZLQtCatalogPageWidget(node);
widget->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::MinimumExpanding);
layout()->addWidget(widget);
}
void ZLQtPreviewWidget::fillWaitingIcon() {
setBasicLayout();
QtWaitingSpinner *icon = new QtWaitingSpinner(12, 26, 8, 36);
icon->start();
layout()->addWidget(icon);
}
void ZLQtPreviewWidget::clear() {
myCurrentNode = 0;
qDeleteAll(children());
}
ZLTreeNode *ZLQtPreviewWidget::getCurrentNode() const {
return myCurrentNode;
}
QSize ZLQtPreviewWidget::sizeHint() const {
QSize hint = QWidget::sizeHint();
// qDebug() << Q_FUNC_INFO << hint << minimumSize();
return hint;
}
ZLQtAbstractPageWidget::ZLQtAbstractPageWidget(QWidget *parent) : QWidget(parent) { }
void ZLQtAbstractPageWidget::onActionActivated() {
foreach(QPushButton* button, myButtonActions) {
button->setEnabled(false);
}
}
ZLQtPageWidget::ZLQtPageWidget(const ZLTreePageInfo &info, QWidget *parent) : ZLQtAbstractPageWidget(parent) {
//TODO fix it: if element is absent, there's a empty space instead it. Looks bad.
createElements();
setInfo(info);
}
void ZLQtPageWidget::createElements() {
myPicLabel = new QLabel;
// the code inside #ifndef does crash on MacOS,
// see https://bugreports.qt-project.org/browse/QTBUG-24792
#ifndef Q_OS_MAC
QGraphicsDropShadowEffect* effect = new QGraphicsDropShadowEffect;
effect->setBlurRadius(12);
effect->setOffset(3);
myPicLabel->setGraphicsEffect(effect);
#endif
// myPicLabel->setMaximumSize(300,300);
// myPicLabel->setMinimumSize(77,77);
myTitleLabel = new QLabel;
myAuthorLabel = new QLabel;
myCategoriesLabel = new QLabel;
mySummaryTitleLabel = new QLabel;
mySummaryLabel = new QLabel;
myScrollArea = new QScrollArea;
myScrollArea->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
myScrollArea->setVerticalScrollBarPolicy(Qt::ScrollBarAsNeeded);
myScrollArea->setWidgetResizable(true);
myScrollArea->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::MinimumExpanding);
mySummaryLabel->setAlignment(Qt::AlignLeft | Qt::AlignTop);
mySummaryLabel->setMargin(3);
//mySummaryLabel->setMaximumHeight(200);
mySummaryLabel->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::MinimumExpanding);
//mySummaryLabel->setIndent(3);
myRelatedWidget = new QWidget;
myActionsWidget = new QWidget;
QVBoxLayout *layout = new QVBoxLayout;
QWidget *containerWidget = new QWidget;
QVBoxLayout *previewLayout = new QVBoxLayout;
QHBoxLayout *actionsLayout = new QHBoxLayout;
QVBoxLayout *relatedLayout = new QVBoxLayout;
myActionsWidget->setLayout(actionsLayout);
previewLayout->setSizeConstraint(QLayout::SetMinimumSize);
layout->setSizeConstraint(QLayout::SetMinimumSize);
QHBoxLayout *picLayout = new QHBoxLayout;
picLayout->addStretch();
picLayout->addWidget(myPicLabel);
picLayout->addStretch();
previewLayout->addLayout(picLayout);
previewLayout->addWidget(myTitleLabel);
previewLayout->addWidget(myAuthorLabel);
previewLayout->addWidget(myCategoriesLabel);
previewLayout->addWidget(mySummaryTitleLabel);
previewLayout->addWidget(mySummaryLabel);
previewLayout->addWidget(myRelatedWidget);
//previewLayout->addStretch();
myRelatedWidget->setLayout(relatedLayout);
containerWidget->setLayout(previewLayout);
myScrollArea->setWidget(containerWidget);
layout->setContentsMargins(0,0,0,0);
layout->addWidget(myScrollArea);
layout->addWidget(myActionsWidget);
setLayout(layout);
}
void ZLQtPageWidget::setInfo(const ZLTreePageInfo &info) {
shared_ptr<const ZLImage> image = info.image();
if (!image.isNull()) {
QPixmap pixmap = ZLQtImageUtils::ZLImageToQPixmap(image);
//TODO implement resizable pixmap widget
const int maxPreviewWidth = 300;
if (pixmap.height() > maxPreviewWidth || pixmap.width() > maxPreviewWidth) {
pixmap = pixmap.scaled(maxPreviewWidth, maxPreviewWidth, Qt::KeepAspectRatio, Qt::SmoothTransformation);
}
myPicLabel->setPixmap(pixmap);
}
//TODO implement 'condition'-like attributes support for ZLResource
static const ZLResource &resource = ZLResource::resource("bookInfo");
static QString colon = "<b>%1</b> %2";
if (!info.title().empty()) {
static QString title = QString::fromStdString(resource["title"].value());
myTitleLabel->setText(colon.arg(title, QString::fromStdString(info.title())));
}
if (info.authors().size() > 0) {
static QString label = QString::fromStdString(resource["authors"].value(info.authors().size()));
myAuthorLabel->setText(colon.arg(label, QString::fromStdString(ZLStringUtil::join(info.authors(), ", "))));
}
if (info.tags().size() > 0) {
static QString label = QString::fromStdString(resource["tags"].value(info.tags().size()));
myCategoriesLabel->setText(colon.arg(label, QString::fromStdString(ZLStringUtil::join(info.tags(), ", "))));
}
if (!info.summary().empty()) {
static QString annotation = QString::fromStdString(resource["annotation"].value());
mySummaryLabel->setText(QString::fromStdString(info.summary()));
mySummaryTitleLabel->setText(QString("<b>%1</b>").arg(annotation));
// mySummaryScrollArea->show();
}
myTitleLabel->setWordWrap(true);
myAuthorLabel->setWordWrap(true);
myCategoriesLabel->setWordWrap(true);
mySummaryLabel->setWordWrap(true);
foreach(shared_ptr<ZLTreeAction> action, info.actions()) {
if (!action->makesSense()) {
continue;
}
QPushButton *actionButton = new ZLQtButtonAction(action);
QString text = QString::fromStdString(info.actionText(action));
actionButton->setText(text);
myActionsWidget->layout()->addWidget(actionButton);
connect(actionButton, SIGNAL(clicked()), this, SLOT(onActionActivated()));
myButtonActions.push_back(actionButton);
}
//TODO check case if I will load all links at the same time
foreach(shared_ptr<ZLTreeAction> action, info.relatedActions()) {
if (!action->makesSense()) {
continue;
}
QLabel *actionLabel = new ZLQtLabelAction(action);
QString text = QString::fromStdString(info.actionText(action));
actionLabel->setText(QString("<big><u>%1</u></big>").arg(text));
actionLabel->setWordWrap(true);
myRelatedWidget->layout()->addWidget(actionLabel);
}
}
ZLQtCatalogPageWidget::ZLQtCatalogPageWidget(const ZLTreeTitledNode *node, QWidget *parent) : ZLQtAbstractPageWidget(parent) {
createElements();
setInfo(node);
}
void ZLQtCatalogPageWidget::createElements() {
myPicLabel = new QLabel;
myTitleLabel = new QLabel;
mySubtitleLabel = new QLabel;
mySubtitleLabel->setWordWrap(true);
myTitleLabel->setAlignment(Qt::AlignCenter);
mySubtitleLabel->setAlignment(Qt::AlignCenter);
myActionsWidget = new QWidget;
QVBoxLayout *previewLayout = new QVBoxLayout;
previewLayout->setSizeConstraint(QLayout::SetMinimumSize);
QHBoxLayout *strechActionsLayout = new QHBoxLayout;
strechActionsLayout->addStretch();
strechActionsLayout->addWidget(myActionsWidget);
strechActionsLayout->addStretch();
QVBoxLayout *actionsLayout = new QVBoxLayout; myActionsWidget->setLayout(actionsLayout);
QHBoxLayout *picLayout = new QHBoxLayout;
picLayout->addStretch();
picLayout->addWidget(myPicLabel);
picLayout->addStretch();
previewLayout->addStretch();
previewLayout->addLayout(picLayout);
previewLayout->addWidget(myTitleLabel);
previewLayout->addWidget(mySubtitleLabel);
previewLayout->addLayout(strechActionsLayout);
previewLayout->addStretch();
setLayout(previewLayout);
}
void ZLQtCatalogPageWidget::setInfo(const ZLTreeTitledNode *node) {
shared_ptr<const ZLImage> image = node->image();
if (!image.isNull()) {
//TODO make async image downloading
ZLNetworkManager::Instance().perform(image->synchronizationData());
QPixmap pixmap = ZLQtImageUtils::ZLImageToQPixmap(image);
//TODO implement resizable pixmap widget
const int maxPreviewWidth = 300;
if (pixmap.height() > maxPreviewWidth || pixmap.width() > maxPreviewWidth) {
pixmap = pixmap.scaled(maxPreviewWidth, maxPreviewWidth, Qt::KeepAspectRatio, Qt::SmoothTransformation);
}
myPicLabel->setPixmap(pixmap);
}
if (!node->title().empty()) {
myTitleLabel->setText(QString("<b>%1</b>").arg(QString::fromStdString(node->title())));
}
if (!node->subtitle().empty()) {
mySubtitleLabel->setText(QString::fromStdString(node->subtitle()));
}
foreach(shared_ptr<ZLTreeAction> action, node->actions()) {
if (!action->makesSense()) {
continue;
}
QPushButton *actionButton = new ZLQtButtonAction(action);
QString text = QString::fromStdString(node->actionText(action));
actionButton->setText(text);
myActionsWidget->layout()->addWidget(actionButton);
connect(actionButton, SIGNAL(clicked()), this, SLOT(onActionActivated()));
myButtonActions.push_back(actionButton);
//TODO maybe buttons should not be too big
//actionButton->setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Preferred);
}
}

@ -1,121 +0,0 @@
/*
* Copyright (C) 2004-2012 Geometer Plus <contact@geometerplus.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
* 02110-1301, USA.
*/
#ifndef __ZLQTPREVIEWWIDGET_H__
#define __ZLQTPREVIEWWIDGET_H__
#include <QtGui/QWidget>
#include <QtGui/QPushButton>
#include <QtGui/QLabel>
#include <QtGui/QScrollArea>
#include <QtGui/QVBoxLayout>
#include <QtCore/QSet>
#include <ZLTreePageNode.h>
class ZLQtPreviewWidget : public QWidget {
public:
ZLQtPreviewWidget(QWidget *parent = 0);
void show(ZLTreeNode *node);
void refresh();
void clear();
ZLTreeNode* getCurrentNode() const;
QSize sizeHint() const;
protected:
void setBasicLayout();
void fillWaitingIcon();
void fillPageInfo(ZLTreePageNode *node);
void fillCatalog(const ZLTreeTitledNode *node);
private:
ZLTreeNode *myCurrentNode;
QSet<ZLTreePageNode *> myDownloadingNodes;
friend class PageInfoLoaderListener;
};
class ZLQtAbstractPageWidget : public QWidget {
Q_OBJECT
public:
ZLQtAbstractPageWidget(QWidget *parent = 0);
public Q_SLOTS:
void onActionActivated();
protected:
QList<QPushButton*> myButtonActions;
};
class ZLQtPageWidget : public ZLQtAbstractPageWidget {
public:
ZLQtPageWidget(const ZLTreePageInfo &info, QWidget *parent = 0);
private:
void createElements();
void setInfo(const ZLTreePageInfo &info);
private:
QScrollArea *myScrollArea;
QLabel *myPicLabel;
QLabel *myTitleLabel;
QLabel *myAuthorLabel;
QLabel *myCategoriesLabel;
QLabel *mySummaryTitleLabel;
QLabel *mySummaryLabel;
QWidget *myRelatedWidget;
QWidget *myActionsWidget;
};
class ZLQtCatalogPageWidget : public ZLQtAbstractPageWidget {
public:
ZLQtCatalogPageWidget(const ZLTreeTitledNode *node, QWidget *parent = 0);
private:
void createElements();
void setInfo(const ZLTreeTitledNode *);
private:
QLabel *myPicLabel;
QLabel *myTitleLabel;
QLabel *mySubtitleLabel;
QWidget *myActionsWidget;
};
class ZLQtButtonAction : public QPushButton {
Q_OBJECT
public:
ZLQtButtonAction(shared_ptr<ZLTreeAction> action, QWidget *parent=0);
private Q_SLOTS:
void onClicked();
private:
shared_ptr<ZLTreeAction> myAction;
};
#endif /* __ZLQTPREVIEWWIDGET_H__ */

@ -1,125 +0,0 @@
/*
* Copyright (C) 2004-2012 Geometer Plus <contact@geometerplus.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
* 02110-1301, USA.
*/
#include <QtCore/QDebug>
#include <QtGui/QStyle>
#include <QtGui/QCompleter>
#include <QtGui/QStringListModel>
#include <ZLibrary.h>
#include <ZLFile.h>
#include <ZLResource.h>
#include <ZLOptions.h>
#include <ZLStringUtil.h>
#include "ZLQtSearchField.h"
ZLQtSearchField::ZLQtSearchField(QWidget *parent) : QLineEdit(parent) {
//TODO somehow make it feathered
//TODO set active and non-active color by default of system
setObjectName("search-field");
myWaitingIcon = new QtWaitingSpinner(12, 3, 2, 3, this);
myWaitingIcon->setSpeed(2);
mySearchIcon = new QLabel(this);
static std::string iconPath = ZLibrary::ApplicationImageDirectory() + ZLibrary::FileNameDelimiter + "search_icon.png";
QPixmap searchIcon = QPixmap(ZLFile(iconPath).path().c_str());
mySearchIcon->setPixmap(searchIcon);
mySearchIcon->setFixedSize(searchIcon.size());
setFixedSize(155,25);
setPlaceholderText(QString::fromStdString(ZLResource::resource("networkView")["searchResultNode"]["searchfield"].value()));
int frameWidth = style()->pixelMetric(QStyle::PM_DefaultFrameWidth);
setStyleSheet(QString("QLineEdit { padding-left: %1px; } ").arg(mySearchIcon->sizeHint().width() + frameWidth));
QCompleter *completer = new QCompleter(this);
completer->setCaseSensitivity(Qt::CaseInsensitive);
completer->setCompletionMode(QCompleter::PopupCompletion);
this->setCompleter(completer);
loadSuggestions();
connect(this, SIGNAL(returnPressed()), this, SLOT(onReturnPressed()));
}
QtWaitingSpinner *ZLQtSearchField::getWaitingIcon() {
return myWaitingIcon;
}
void ZLQtSearchField::onReturnPressed() {
if (text().isEmpty()) {
return;
}
if (mySuggestions.contains(text())) {
return;
}
mySuggestions.insert(text());
saveSuggestions();
}
void ZLQtSearchField::updateSuggestions() {
QStringListModel *model = new QStringListModel(mySuggestions.toList(), this);
this->completer()->setModel(model);
}
static const std::string SUGGESTION = "suggestion";
static const std::string SUGGESTIONS = "suggestions";
void ZLQtSearchField::loadSuggestions() {
mySuggestions.clear();
bool finished = false;
for (unsigned int i = 0; !finished; ++i) {
std::string suggestOptionName(SUGGESTION);
ZLStringUtil::appendNumber(suggestOptionName, i);
std::string suggestion = ZLStringOption(ZLCategoryKey::NETWORK, SUGGESTIONS, suggestOptionName, "").value();
if (suggestion.empty()) {
finished = true;
} else {
mySuggestions.insert(QString::fromStdString(suggestion));
}
}
updateSuggestions();
}
void ZLQtSearchField::saveSuggestions() {
QList<QString> suggestions = mySuggestions.values();
for (int i = 0; i < suggestions.size(); ++i) {
if (suggestions.at(i).isEmpty()) {
continue;
}
std::string suggestOptionName(SUGGESTION);
ZLStringUtil::appendNumber(suggestOptionName, (unsigned int)i);
ZLStringOption suggestion(ZLCategoryKey::NETWORK, SUGGESTIONS, suggestOptionName, "");
suggestion.setValue(suggestions.at(i).toStdString());
}
updateSuggestions();
}
void ZLQtSearchField::resizeEvent(QResizeEvent *ev) {
int frameWidth = style()->pixelMetric(QStyle::PM_DefaultFrameWidth);
mySearchIcon->move(rect().left() + frameWidth + 4, (rect().bottom() - mySearchIcon->sizeHint().height())/2 + 2);
QSize waitingIconSize = myWaitingIcon->size();
myWaitingIcon->move(rect().right() - frameWidth - waitingIconSize.width() - 2, (rect().bottom() + 1 - waitingIconSize.height())/2);
QLineEdit::resizeEvent(ev);
}

@ -1,54 +0,0 @@
/*
* Copyright (C) 2004-2012 Geometer Plus <contact@geometerplus.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
* 02110-1301, USA.
*/
#ifndef __ZLQTSEARCHFIELD_H__
#define __ZLQTSEARCHFIELD_H__
#include <QtCore/QSet>
#include <QtGui/QLabel>
#include <QtGui/QLineEdit>
#include "QtWaitingSpinner.h"
#include "ZLQtItemsListWidget.h"
class ZLQtSearchField : public QLineEdit {
Q_OBJECT;
public:
ZLQtSearchField(QWidget *parent = 0);
QtWaitingSpinner *getWaitingIcon();
protected Q_SLOTS:
void onReturnPressed();
protected:
void updateSuggestions();
void loadSuggestions();
void saveSuggestions();
protected:
void resizeEvent(QResizeEvent *ev);
private:
QLabel *mySearchIcon;
QtWaitingSpinner *myWaitingIcon;
QSet<QString> mySuggestions;
};
#endif /* __ZLQTSEARCHFIELD_H__ */

@ -1,300 +0,0 @@
/*
* Copyright (C) 2004-2012 Geometer Plus <contact@geometerplus.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
* 02110-1301, USA.
*/
#include <algorithm>
#include <QtGui/QLayout>
#include <QtGui/QScrollBar>
#include <QtGui/QPainter>
#include <QtGui/QPixmap>
#include <QtGui/QMouseEvent>
#include <ZLibrary.h>
#include <ZLLanguageUtil.h>
#include "ZLQtViewWidget.h"
#include "ZLQtPaintContext.h"
class MyQScrollBar : public QScrollBar {
public:
MyQScrollBar(Qt::Orientation orientation, QWidget *parent) : QScrollBar(orientation, parent) {
}
private:
void mouseMoveEvent(QMouseEvent *event) {
if (orientation() == Qt::Vertical) {
const int y = event->y();
if ((y <= 0) || (y >= height())) {
return;
}
} else {
const int x = event->x();
if ((x <= 0) || (x >= width())) {
return;
}
}
QScrollBar::mouseMoveEvent(event);
}
};
ZLQtViewWidget::Widget::Widget(QWidget *parent, ZLQtViewWidget &holder) : QWidget(parent), myHolder(holder) {
//setBackgroundMode(NoBackground);
}
QScrollBar *ZLQtViewWidget::addScrollBar(QGridLayout *layout, Qt::Orientation orientation, int x, int y) {
QScrollBar *scrollBar = new MyQScrollBar(orientation, myFrame);
layout->addWidget(scrollBar, x, y);
scrollBar->hide();
if (orientation == Qt::Vertical) {
connect(scrollBar, SIGNAL(sliderMoved(int)), this, SLOT(onVerticalSliderMoved(int)));
connect(scrollBar, SIGNAL(actionTriggered(int)), this, SLOT(onVerticalSliderClicked(int)));
} else {
connect(scrollBar, SIGNAL(sliderMoved(int)), this, SLOT(onHorizontalSliderMoved(int)));
connect(scrollBar, SIGNAL(actionTriggered(int)), this, SLOT(onHorizontalSliderClicked(int)));
}
return scrollBar;
}
ZLQtViewWidget::ZLQtViewWidget(QWidget *parent, ZLApplication *application) : ZLViewWidget((ZLView::Angle)application->AngleStateOption.value()), myApplication(application) {
myFrame = new QWidget(parent);
QGridLayout *layout = new QGridLayout();
layout->setMargin(0);
layout->setSpacing(0);
myFrame->setLayout(layout);
myQWidget = new Widget(myFrame, *this);
layout->addWidget(myQWidget, 1, 1);
myRightScrollBar = addScrollBar(layout, Qt::Vertical, 1, 2);
myLeftScrollBar = addScrollBar(layout, Qt::Vertical, 1, 0);
myShowScrollBarAtRight = true;
myBottomScrollBar = addScrollBar(layout, Qt::Horizontal, 2, 1);
myTopScrollBar = addScrollBar(layout, Qt::Horizontal, 0, 1);
myShowScrollBarAtBottom = true;
}
void ZLQtViewWidget::trackStylus(bool track) {
myQWidget->setMouseTracking(track);
}
void ZLQtViewWidget::Widget::paintEvent(QPaintEvent*) {
ZLQtPaintContext &context = (ZLQtPaintContext&)myHolder.view()->context();
switch (myHolder.rotation()) {
default:
context.setSize(width(), height());
break;
case ZLView::DEGREES90:
case ZLView::DEGREES270:
context.setSize(height(), width());
break;
}
myHolder.view()->paint();
QPainter realPainter(this);
switch (myHolder.rotation()) {
default:
realPainter.drawPixmap(0, 0, context.pixmap());
break;
case ZLView::DEGREES90:
realPainter.rotate(270);
realPainter.drawPixmap(1 - height(), -1, context.pixmap());
break;
case ZLView::DEGREES180:
realPainter.rotate(180);
realPainter.drawPixmap(1 - width(), 1 - height(), context.pixmap());
break;
case ZLView::DEGREES270:
realPainter.rotate(90);
realPainter.drawPixmap(-1, 1 - width(), context.pixmap());
break;
}
}
void ZLQtViewWidget::Widget::mousePressEvent(QMouseEvent *event) {
myHolder.view()->onStylusMove(x(event), y(event));
myHolder.view()->onStylusPress(x(event), y(event));
}
void ZLQtViewWidget::Widget::mouseReleaseEvent(QMouseEvent *event) {
myHolder.view()->onStylusRelease(x(event), y(event));
}
void ZLQtViewWidget::Widget::mouseMoveEvent(QMouseEvent *event) {
switch (event->buttons()) {
case Qt::LeftButton:
myHolder.view()->onStylusMovePressed(x(event), y(event));
break;
case Qt::NoButton:
myHolder.view()->onStylusMove(x(event), y(event));
break;
default:
break;
}
}
int ZLQtViewWidget::Widget::x(const QMouseEvent *event) const {
const int maxX = width() - 1;
const int maxY = height() - 1;
switch (myHolder.rotation()) {
default:
return std::min(std::max(event->x(), 0), maxX);
case ZLView::DEGREES90:
return maxY - std::min(std::max(event->y(), 0), maxY);
case ZLView::DEGREES180:
return maxX - std::min(std::max(event->x(), 0), maxX);
case ZLView::DEGREES270:
return std::min(std::max(event->y(), 0), maxY);
}
}
int ZLQtViewWidget::Widget::y(const QMouseEvent *event) const {
const int maxX = width() - 1;
const int maxY = height() - 1;
switch (myHolder.rotation()) {
default:
return std::min(std::max(event->y(), 0), maxY);
case ZLView::DEGREES90:
return std::min(std::max(event->x(), 0), maxX);
case ZLView::DEGREES180:
return maxY - std::min(std::max(event->y(), 0), maxY);
case ZLView::DEGREES270:
return maxX - std::min(std::max(event->x(), 0), maxX);
}
}
void ZLQtViewWidget::repaint() {
//myQWidget->repaint();
myQWidget->update(); //not repaint for thread safety
}
void ZLQtViewWidget::setScrollbarEnabled(ZLView::Direction direction, bool enabled) {
if (direction == ZLView::VERTICAL) {
myRightScrollBar->setShown(enabled && myShowScrollBarAtRight);
myLeftScrollBar->setShown(enabled && !myShowScrollBarAtRight);
} else {
myBottomScrollBar->setShown(enabled && myShowScrollBarAtBottom);
myTopScrollBar->setShown(enabled && !myShowScrollBarAtBottom);
}
}
void ZLQtViewWidget::setScrollbarPlacement(ZLView::Direction direction, bool standard) {
if ((rotation() == ZLView::DEGREES90) || (rotation() == ZLView::DEGREES270)) {
if (ZLLanguageUtil::isRTLLanguage(ZLibrary::Language())) {
standard = !standard;
}
}
if (direction == ZLView::VERTICAL) {
if (standard != myShowScrollBarAtRight) {
myShowScrollBarAtRight = standard;
QScrollBar *old = standard ? myLeftScrollBar : myRightScrollBar;
QScrollBar *current = standard ? myRightScrollBar : myLeftScrollBar;
if (old->isVisible()) {
old->hide();
current->show();
}
}
} else {
if (standard != myShowScrollBarAtBottom) {
myShowScrollBarAtBottom = standard;
QScrollBar *old = standard ? myTopScrollBar : myBottomScrollBar;
QScrollBar *current = standard ? myBottomScrollBar : myTopScrollBar;
if (old->isVisible()) {
old->hide();
current->show();
}
}
}
}
void ZLQtViewWidget::setScrollbarParameters(ZLView::Direction direction, size_t full, size_t from, size_t to) {
QScrollBar *bar =
(direction == ZLView::VERTICAL) ?
(myShowScrollBarAtRight ? myRightScrollBar : myLeftScrollBar) :
(myShowScrollBarAtBottom ? myBottomScrollBar : myTopScrollBar);
bar->setMinimum(0);
bar->setMaximum(full + from - to);
bar->setValue(from);
bar->setPageStep(to - from);
}
void ZLQtViewWidget::onVerticalSliderMoved(int value) {
QScrollBar *bar =
myShowScrollBarAtRight ? myRightScrollBar : myLeftScrollBar;
int maxValue = bar->maximum();
int pageStep = bar->pageStep();
value = std::max(std::min(value, maxValue), 0);
onScrollbarMoved(
ZLView::VERTICAL,
maxValue + pageStep,
value,
value + pageStep
);
}
void ZLQtViewWidget::onHorizontalSliderMoved(int value) {
QScrollBar *bar =
myShowScrollBarAtBottom ? myBottomScrollBar : myTopScrollBar;
int maxValue = bar->maximum();
int pageStep = bar->pageStep();
value = std::max(std::min(value, maxValue), 0);
onScrollbarMoved(
ZLView::HORIZONTAL,
maxValue + pageStep,
value,
value + pageStep
);
}
void ZLQtViewWidget::onVerticalSliderClicked(int value) {
switch (value) {
case QScrollBar::SliderSingleStepAdd:
onScrollbarStep(ZLView::VERTICAL, 1);
break;
case QScrollBar::SliderSingleStepSub:
onScrollbarStep(ZLView::VERTICAL, -1);
break;
case QScrollBar::SliderPageStepAdd:
onScrollbarPageStep(ZLView::VERTICAL, 1);
break;
case QScrollBar::SliderPageStepSub:
onScrollbarPageStep(ZLView::VERTICAL, -1);
break;
}
}
void ZLQtViewWidget::onHorizontalSliderClicked(int value) {
switch (value) {
case QScrollBar::SliderSingleStepAdd:
onScrollbarStep(ZLView::HORIZONTAL, 1);
break;
case QScrollBar::SliderSingleStepSub:
onScrollbarStep(ZLView::HORIZONTAL, -1);
break;
case QScrollBar::SliderPageStepAdd:
onScrollbarPageStep(ZLView::HORIZONTAL, 1);
break;
case QScrollBar::SliderPageStepSub:
onScrollbarPageStep(ZLView::HORIZONTAL, -1);
break;
}
}
QWidget *ZLQtViewWidget::widget() {
return myFrame;
}

@ -1,88 +0,0 @@
/*
* Copyright (C) 2004-2012 Geometer Plus <contact@geometerplus.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
* 02110-1301, USA.
*/
#ifndef __ZLQTVIEWWIDGET_H__
#define __ZLQTVIEWWIDGET_H__
#include <QtGui/QWidget>
#include "../../../../core/src/view/ZLViewWidget.h"
#include <ZLApplication.h>
class QGridLayout;
class QScrollBar;
class ZLQtViewWidget : public QObject, public ZLViewWidget {
Q_OBJECT
private:
class Widget : public QWidget {
public:
Widget(QWidget *parent, ZLQtViewWidget &holder);
private:
void paintEvent(QPaintEvent *event);
void mousePressEvent(QMouseEvent *event);
void mouseReleaseEvent(QMouseEvent *event);
void mouseMoveEvent(QMouseEvent *event);
int x(const QMouseEvent *event) const;
int y(const QMouseEvent *event) const;
private:
ZLQtViewWidget &myHolder;
};
public:
ZLQtViewWidget(QWidget *parent, ZLApplication *application);
QWidget *widget();
private Q_SLOTS:
void onVerticalSliderMoved(int value);
void onHorizontalSliderMoved(int value);
void onVerticalSliderClicked(int value);
void onHorizontalSliderClicked(int value);
private:
void repaint();
void trackStylus(bool track);
void setScrollbarEnabled(ZLView::Direction direction, bool enabled);
void setScrollbarPlacement(ZLView::Direction direction, bool standard);
void setScrollbarParameters(ZLView::Direction direction, size_t full, size_t from, size_t to);
QScrollBar *addScrollBar(QGridLayout *layout, Qt::Orientation orientation, int x, int y);
private:
QWidget *myFrame;
Widget *myQWidget;
QScrollBar *myRightScrollBar;
QScrollBar *myLeftScrollBar;
bool myShowScrollBarAtRight;
QScrollBar *myBottomScrollBar;
QScrollBar *myTopScrollBar;
bool myShowScrollBarAtBottom;
ZLApplication *myApplication;
};
#endif /* __ZLQTVIEWWIDGET_H__ */

@ -1,304 +0,0 @@
/*
* Copyright (C) 2004-2012 Geometer Plus <contact@geometerplus.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
* 02110-1301, USA.
*/
#include <ZLLogger.h>
#include "OleStorage.h"
#include "OleUtil.h"
#include <cstring>
const std::size_t OleStorage::BBD_BLOCK_SIZE = 512;
OleStorage::OleStorage() {
clear();
}
void OleStorage::clear() {
myInputStream = 0;
mySectorSize = 0;
myShortSectorSize = 0;
myStreamSize = 0;
myRootEntryIndex = -1;
myDIFAT.clear();
myBBD.clear();
mySBD.clear();
myProperties.clear();
myEntries.clear();
}
bool OleStorage::init(shared_ptr<ZLInputStream> stream, std::size_t streamSize) {
clear();
myInputStream = stream;
myStreamSize = streamSize;
myInputStream->seek(0, true);
char oleBuf[BBD_BLOCK_SIZE];
std::size_t ret = myInputStream->read(oleBuf, BBD_BLOCK_SIZE);
if (ret != BBD_BLOCK_SIZE) {
clear();
return false;
}
static const char OLE_SIGN[] = {0xD0, 0xCF, 0x11, 0xE0, 0xA1, 0xB1, 0x1A, 0xE1, 0};
if (std::strncmp(oleBuf, OLE_SIGN, 8) != 0) {
clear();
return false;
}
mySectorSize = 1 << OleUtil::getU2Bytes(oleBuf, 0x1e); //offset for value of big sector size
myShortSectorSize = 1 << OleUtil::getU2Bytes(oleBuf, 0x20); //offset for value of small sector size
if (readDIFAT(oleBuf) && readBBD(oleBuf) && readSBD(oleBuf) && readProperties(oleBuf) && readAllEntries()) {
return true;
}
clear();
return false;
}
bool OleStorage::readDIFAT(char *oleBuf) {
int difatBlock = OleUtil::get4Bytes(oleBuf, 0x44); //address for first difat sector
int difatSectorNumbers = OleUtil::get4Bytes(oleBuf, 0x48); //numbers of additional difat records
//436 of difat records are stored in header, by offset 0x4c
for (unsigned int i = 0; i < 436; i += 4) {
myDIFAT.push_back(OleUtil::get4Bytes(oleBuf + 0x4c, i));
}
//for files > 6.78 mb we need read additional DIFAT fields
for (int i = 0; difatBlock > 0 && i < difatSectorNumbers; ++i) {
ZLLogger::Instance().println("DocPlugin", "Read additional data for DIFAT");
char buffer[mySectorSize];
myInputStream->seek(BBD_BLOCK_SIZE + difatBlock * mySectorSize, true);
if (myInputStream->read(buffer, mySectorSize) != mySectorSize) {
ZLLogger::Instance().println("DocPlugin", "Error read DIFAT!");
return false;
}
for (unsigned int j = 0; j < (mySectorSize - 4); j += 4) {
myDIFAT.push_back(OleUtil::get4Bytes(buffer, j));
}
difatBlock = OleUtil::get4Bytes(buffer, mySectorSize - 4); //next DIFAT block is pointed at the end of the sector
}
//removing unusable DIFAT links
//0xFFFFFFFF means "free section"
while (!myDIFAT.empty() && myDIFAT.back() == (int)0xFFFFFFFF) {
myDIFAT.pop_back();
}
return true;
}
bool OleStorage::readBBD(char *oleBuf) {
char buffer[mySectorSize];
unsigned int bbdNumberBlocks = OleUtil::getU4Bytes(oleBuf, 0x2c); //number of big blocks
if (myDIFAT.size() < bbdNumberBlocks) {
//TODO maybe add check on myDIFAT == bbdNumberBlocks
ZLLogger::Instance().println("DocPlugin", "Wrong number of FAT blocks value");
return false;
}
for (unsigned int i = 0; i < bbdNumberBlocks; ++i) {
int bbdSector = myDIFAT.at(i);
if (bbdSector >= (int)(myStreamSize / mySectorSize) || bbdSector < 0) {
ZLLogger::Instance().println("DocPlugin", "Bad BBD entry!");
return false;
}
myInputStream->seek(BBD_BLOCK_SIZE + bbdSector * mySectorSize, true);
if (myInputStream->read(buffer, mySectorSize) != mySectorSize) {
ZLLogger::Instance().println("DocPlugin", "Error during reading BBD!");
return false;
}
for (unsigned int j = 0; j < mySectorSize; j += 4) {
myBBD.push_back(OleUtil::get4Bytes(buffer, j));
}
}
return true;
}
bool OleStorage::readSBD(char *oleBuf) {
int sbdCur = OleUtil::get4Bytes(oleBuf, 0x3c); //address of first small sector
int sbdCount = OleUtil::get4Bytes(oleBuf, 0x40); //count of small sectors
if (sbdCur <= 0) {
ZLLogger::Instance().println("DocPlugin", "There's no SBD, don't read it");
return true;
}
char buffer[mySectorSize];
for (int i = 0; i < sbdCount; ++i) {
if (i != 0) {
if (sbdCur < 0 || (unsigned int)sbdCur >= myBBD.size()) {
ZLLogger::Instance().println("DocPlugin", "error during parsing SBD");
return false;
}
sbdCur = myBBD.at(sbdCur);
}
if (sbdCur <= 0) {
break;
}
myInputStream->seek(BBD_BLOCK_SIZE + sbdCur * mySectorSize, true);
if (myInputStream->read(buffer, mySectorSize) != mySectorSize) {
ZLLogger::Instance().println("DocPlugin", "reading error during parsing SBD");
return false;
}
for (unsigned int j = 0; j < mySectorSize; j += 4) {
mySBD.push_back(OleUtil::get4Bytes(buffer, j));
}
}
return true;
}
bool OleStorage::readProperties(char *oleBuf) {
int propCur = OleUtil::get4Bytes(oleBuf, 0x30); //offset for address of sector with first property
if (propCur < 0) {
ZLLogger::Instance().println("DocPlugin", "Wrong first directory sector location");
return false;
}
char buffer[mySectorSize];
do {
myInputStream->seek(BBD_BLOCK_SIZE + propCur * mySectorSize, true);
if (myInputStream->read(buffer, mySectorSize) != mySectorSize) {
ZLLogger::Instance().println("DocPlugin", "Error during reading properties");
return false;
}
for (unsigned int j = 0; j < mySectorSize; j += 128) {
myProperties.push_back(std::string(buffer + j, 128));
}
if (propCur < 0 || (std::size_t)propCur >= myBBD.size()) {
break;
}
propCur = myBBD.at(propCur);
} while (propCur >= 0 && propCur < (int)(myStreamSize / mySectorSize));
return true;
}
bool OleStorage::readAllEntries() {
int propCount = myProperties.size();
for (int i = 0; i < propCount; ++i) {
OleEntry entry;
bool result = readOleEntry(i, entry);
if (!result) {
break;
}
if (entry.type == OleEntry::ROOT_DIR) {
myRootEntryIndex = i;
}
myEntries.push_back(entry);
}
if (myRootEntryIndex < 0) {
return false;
}
return true;
}
bool OleStorage::readOleEntry(int propNumber, OleEntry &e) {
static const std::string ROOT_ENTRY = "Root Entry";
std::string property = myProperties.at(propNumber);
char oleType = property.at(0x42); //offset for Ole Type
if (oleType != 1 && oleType != 2 && oleType != 3 && oleType != 5) {
ZLLogger::Instance().println("DocPlugin", "entry -- not right ole type");
return false;
}
e.type = (OleEntry::Type)oleType;
int nameLength = OleUtil::getU2Bytes(property.c_str(), 0x40); //offset for value entry's name length
e.name.clear();
e.name.reserve(33); //max size of entry name
if ((unsigned int)nameLength >= property.size()) {
return false;
}
for (int i = 0; i < nameLength; i+=2) {
char c = property.at(i);
if (c != 0) {
e.name += c;
}
}
e.length = OleUtil::getU4Bytes(property.c_str(), 0x78); //offset for entry's length value
e.isBigBlock = e.length >= 0x1000 || e.name == ROOT_ENTRY;
// Read sector chain
if (property.size() < 0x74 + 4) {
ZLLogger::Instance().println("DocPlugin", "problems with reading ole entry");
return false;
}
int chainCur = OleUtil::get4Bytes(property.c_str(), 0x74); //offset for start block of entry
if (chainCur >= 0 && (chainCur <= (int)(myStreamSize / (e.isBigBlock ? mySectorSize : myShortSectorSize)))) {
//filling blocks with chains
do {
e.blocks.push_back((unsigned int)chainCur);
if (e.isBigBlock && (std::size_t)chainCur < myBBD.size()) {
chainCur = myBBD.at(chainCur);
} else if (!mySBD.empty() && (std::size_t)chainCur < mySBD.size()) {
chainCur = mySBD.at(chainCur);
} else {
chainCur = -1;
}
} while (chainCur > 0 &&
chainCur < (int)(e.isBigBlock ? myBBD.size() : mySBD.size()) &&
e.blocks.size() <= e.length / (e.isBigBlock ? mySectorSize : myShortSectorSize));
}
e.length = std::min(e.length, (unsigned int)((e.isBigBlock ? mySectorSize : myShortSectorSize) * e.blocks.size()));
return true;
}
bool OleStorage::countFileOffsetOfBlock(const OleEntry &e, unsigned int blockNumber, unsigned int &result) const {
//TODO maybe better syntax can be used?
if (e.blocks.size() <= (std::size_t)blockNumber) {
ZLLogger::Instance().println("DocPlugin", "countFileOffsetOfBlock can't be done, blockNumber is invalid");
return false;
}
if (e.isBigBlock) {
result = BBD_BLOCK_SIZE + e.blocks.at(blockNumber) * mySectorSize;
} else {
unsigned int sbdPerSector = mySectorSize / myShortSectorSize;
unsigned int sbdSectorNumber = e.blocks.at(blockNumber) / sbdPerSector;
unsigned int sbdSectorMod = e.blocks.at(blockNumber) % sbdPerSector;
if (myEntries.at(myRootEntryIndex).blocks.size() <= (std::size_t)sbdSectorNumber) {
ZLLogger::Instance().println("DocPlugin", "countFileOffsetOfBlock can't be done, invalid sbd data");
return false;
}
result = BBD_BLOCK_SIZE + myEntries.at(myRootEntryIndex).blocks.at(sbdSectorNumber) * mySectorSize + sbdSectorMod * myShortSectorSize;
}
return true;
}
bool OleStorage::getEntryByName(std::string name, OleEntry &returnEntry) const {
//TODO fix the workaround for duplicates streams: now it takes a stream with max length
unsigned int maxLength = 0;
for (std::size_t i = 0; i < myEntries.size(); ++i) {
const OleEntry &entry = myEntries.at(i);
if (entry.name == name && entry.length >= maxLength) {
returnEntry = entry;
maxLength = entry.length;
}
}
return maxLength > 0;
}

@ -1,109 +0,0 @@
ROOTDIR = $(CURDIR)/../..
MAKEFILESDIR = $(ROOTDIR)/makefiles
include $(MAKEFILESDIR)/config.mk
VERSION = $(shell cat ../VERSION)
SOVERSION = $(shell cat SOVERSION)
ifeq "$(ZLSHARED)" "yes"
ifeq "$(TARGET_ARCH)" "macosx"
TARGET = libzlcore.$(VERSION).dylib
TARGET_SONAME = libzlcore.$(SOVERSION).dylib
TARGET_SHORTNAME = libzlcore.dylib
else
TARGET = libzlcore.so.$(VERSION)
TARGET_SONAME = libzlcore.so.$(SOVERSION)
TARGET_SHORTNAME = libzlcore.so
endif
else
TARGET = libzlcore.a
endif
SUBDIRS_ALL = src/library src/typeId src/util src/constants src/logger src/filesystem src/filesystem/zip src/filesystem/bzip2 src/filesystem/tar src/dialogs src/optionEntries src/application src/view src/encoding src/options src/message src/resources src/time src/xml src/xml/expat src/image src/language src/runnable src/network src/network/requests src/blockTreeView src/tree src/desktop/application src/desktop/dialogs src/unix/time src/unix/xmlconfig src/unix/filesystem src/unix/iconv src/unix/library src/unix/curl src/win32/encoding src/win32/filesystem src/win32/config
SUBDIRS = src/library src/typeId src/util src/constants src/logger src/filesystem src/filesystem/zip src/filesystem/bzip2 src/filesystem/tar src/dialogs src/optionEntries src/application src/view src/encoding src/options src/message src/resources src/time src/xml src/xml/expat src/image src/language src/unix/time src/runnable src/network src/network/requests src/blockTreeView src/tree
ifeq "<$(TARGET_ARCH)>" "$(findstring <$(TARGET_ARCH)>, <desktop> <pepperpad3> <macosx> <bb10>)"
SUBDIRS += src/desktop/application src/desktop/dialogs
endif
ifeq "$(TARGET_ARCH)" "pdaxrom"
SUBDIRS += src/desktop/dialogs
endif
ifeq "$(TARGET_ARCH)" "win32"
SUBDIRS += src/desktop/application src/desktop/dialogs src/win32/encoding src/win32/filesystem src/win32/config
else
SUBDIRS += src/unix/xmlconfig src/unix/filesystem src/unix/iconv src/unix/library
endif
.objects:
+@for subdir in $(SUBDIRS); do \
if [ -d $$subdir ]; then \
if ! $(LIBMAKE) -C $$subdir -f $(MAKEFILESDIR)/subdir.mk; then \
exit 1; \
fi; \
fi; \
done;
$(TARGET): .objects
@echo -n 'Creating $@ ...'
@$(RM_QUIET) $(TARGET)
ifeq "$(ZLSHARED)" "yes"
@$(LD) $(LDFLAGS) -shared -Wl,-soname,$(TARGET_SONAME) -o $(TARGET) -lc $(patsubst %, %/*.o, $(SUBDIRS)) $(XML_LIBS) $(ARCHIVER_LIBS)
#@$(LD) $(LDFLAGS) -dynamiclib -dylinker_install_name $(TARGET_SONAME) -o $(TARGET) -lc $(patsubst %, %/*.o, $(SUBDIRS)) $(XML_LIBS) $(ARCHIVER_LIBS) $(ZLUI_LIB) -ldl -liconv
@ln -sf $(TARGET) $(TARGET_SONAME)
@ln -sf $(TARGET) $(TARGET_SHORTNAME)
else
@$(AR) $(TARGET) $(patsubst %, %/*.o, $(SUBDIRS))
endif
echo ' OK'
SHARE_ZLIBRARY = $(DESTDIR)$(SHAREDIR)/zlibrary
ENCODING_FILES = $(wildcard data/encodings/*)
ifeq "$(TARGET_ARCH)" "maemo"
ENCODING_FILES = $(filter-out %/Big5,$(wildcard data/encodings/*))
endif
do_install:
@install -d $(SHARE_ZLIBRARY)
@install -d $(SHARE_ZLIBRARY)/encodings
@install -m 0644 $(ENCODING_FILES) $(SHARE_ZLIBRARY)/encodings
@install -d $(SHARE_ZLIBRARY)/resources
@install -m 0644 $(wildcard data/resources/*.xml) $(SHARE_ZLIBRARY)/resources
@install -m 0644 data/languagePatterns.zip $(SHARE_ZLIBRARY)
@install -m 0644 data/unicode.xml.gz $(SHARE_ZLIBRARY)
@install -d $(SHARE_ZLIBRARY)/default
@if [ -e data/default/config.$(TARGET_ARCH).xml ]; then \
install -m 0644 data/default/config.$(TARGET_ARCH).xml $(SHARE_ZLIBRARY)/default/config.xml; \
fi
@if [ -e data/default/config.$(TARGET_ARCH)-$(UI_TYPE).xml ]; then \
install -m 0644 data/default/config.$(TARGET_ARCH)-$(UI_TYPE).xml $(SHARE_ZLIBRARY)/default/config.xml; \
fi
ifeq "$(ZLSHARED)" "yes"
@install -d $(DESTDIR)$(LIBDIR)
@install $(TARGET) $(DESTDIR)$(LIBDIR)
@ln -sf $(TARGET) $(DESTDIR)$(LIBDIR)/$(TARGET_SONAME)
@ln -sf $(TARGET) $(DESTDIR)$(LIBDIR)/$(TARGET_SHORTNAME)
endif
do_install_dev:
@install -d $(DESTDIR)$(LIBDIR)
ifeq "$(ZLSHARED)" "yes"
@ln -sf $(TARGET) $(DESTDIR)$(LIBDIR)/$(TARGET_SHORTNAME)
else
@install $(TARGET) $(DESTDIR)$(LIBDIR)
endif
@install -d $(DESTDIR)$(INCDIR)/zlibrary/core
@install -m 0644 $(wildcard include/*.h) $(DESTDIR)$(INCDIR)/zlibrary/core
@install -d $(DESTDIR)$(INCDIR)/zlibrary/core/optionEntries
@install -m 0644 $(wildcard include/optionEntries/*.h) $(DESTDIR)$(INCDIR)/zlibrary/core/optionEntries
clean:
@for subdir in $(SUBDIRS_ALL); do \
if [ -d $$subdir ]; then \
$(MAKE) -C $$subdir -f $(MAKEFILESDIR)/subdir.mk clean; \
fi; \
done;
@$(RM) *.so *.so.* *.dylib *.a

@ -1,74 +0,0 @@
ROOTDIR = $(CURDIR)/../..
MAKEFILESDIR = $(ROOTDIR)/makefiles
include $(MAKEFILESDIR)/config.mk
VERSION = $(shell cat ../VERSION)
SOVERSION = $(shell cat SOVERSION)
ifeq "$(ZLSHARED)" "yes"
ifeq "$(TARGET_ARCH)" "macosx"
TARGET = libzltext.$(VERSION).dylib
TARGET_SONAME = libzltext.$(SOVERSION).dylib
TARGET_SHORTNAME = libzltext.dylib
else
TARGET = libzltext.so.$(VERSION)
TARGET_SONAME = libzltext.so.$(SOVERSION)
TARGET_SHORTNAME = libzltext.so
endif
else
TARGET = libzltext.a
endif
SUBDIRS = src/model src/area src/view src/style src/styleOptions src/hyphenation
.objects:
+@for subdir in $(SUBDIRS); do \
if [ -d $$subdir ]; then \
if ! $(LIBMAKE) -C $$subdir -f $(MAKEFILESDIR)/subdir.mk; then \
exit 1; \
fi; \
fi; \
done;
$(TARGET): .objects
@echo -n 'Creating $@ ...'
@$(RM_QUIET) $(TARGET)
ifeq "$(ZLSHARED)" "yes"
@$(LD) $(LDFLAGS) -shared -Wl,-soname,$(TARGET_SONAME) -o $(TARGET) $(patsubst %, %/*.o, $(SUBDIRS)) $(CORE_LIBS) -lunibreak -lfribidi
#@$(LD) $(LDFLAGS) -dynamiclib -dylinker_install_name $(TARGET_SONAME) -o $(TARGET) $(patsubst %, %/*.o, $(SUBDIRS)) $(CORE_LIBS) $(EXTERNAL_LIBS) -llinebreak -lfribidi
@ln -sf $(TARGET) $(TARGET_SONAME)
@ln -sf $(TARGET) $(TARGET_SHORTNAME)
else
@$(AR) $(TARGET) $(patsubst %, %/*.o, $(SUBDIRS))
endif
@echo ' OK'
SHARE_ZLIBRARY = $(DESTDIR)$(SHAREDIR)/zlibrary
do_install:
@install -d $(SHARE_ZLIBRARY)
@install -m 0644 $(wildcard data/hyphenationPatterns.zip) $(SHARE_ZLIBRARY)
ifeq "$(ZLSHARED)" "yes"
@install -d $(DESTDIR)$(LIBDIR)
@install $(TARGET) $(DESTDIR)$(LIBDIR)
@ln -sf $(TARGET) $(DESTDIR)$(LIBDIR)/$(TARGET_SONAME)
@ln -sf $(TARGET) $(DESTDIR)$(LIBDIR)/$(TARGET_SHORTNAME)
endif
do_install_dev:
@install -d $(DESTDIR)$(LIBDIR)
ifeq "$(ZLSHARED)" "yes"
@ln -sf $(TARGET) $(DESTDIR)$(LIBDIR)/$(TARGET_SHORTNAME)
else
@install $(TARGET) $(DESTDIR)$(LIBDIR)
endif
@install -d $(DESTDIR)$(INCDIR)/zlibrary/text
@install -m 0644 $(wildcard include/*.h) $(DESTDIR)$(INCDIR)/zlibrary/text
clean:
@for subdir in $(SUBDIRS); do \
if [ -d $$subdir ]; then \
$(MAKE) -C $$subdir -f $(MAKEFILESDIR)/subdir.mk clean; \
fi; \
done;
@$(RM) *.so *.so.* *.dylib *.a

@ -1,24 +0,0 @@
include $(ROOTDIR)/makefiles/arch/unix.mk
ifeq "$(INSTALLDIR)" ""
INSTALLDIR=/usr
endif
IMAGEDIR = $(INSTALLDIR)/share/pixmaps
APPIMAGEDIR = $(INSTALLDIR)/share/pixmaps/%APPLICATION_NAME%
CCACHE = $(shell if which ccache > /dev/null; then echo "ccache"; fi) #if ccache is not installed, do not use it
CC = $(CCACHE) gcc
AR = ar rsu
LD = g++
CFLAGS = -pipe -fno-exceptions -Wall -Wno-ctor-dtor-privacy -W -DLIBICONV_PLUG
LDFLAGS =
EXTERNAL_INCLUDE = $(shell $(PKG_CONFIG) --cflags fribidi)
MOC = "$(shell $(PKG_CONFIG) --variable=host_bins Qt5Core)/moc"
QTINCLUDE = $(shell $(PKG_CONFIG) --cflags Qt5Gui Qt5Widgets Qt5Network)
UILIBS = $(shell $(PKG_CONFIG) --libs Qt5Gui Qt5Widgets Qt5Network)
RM = rm -rvf
RM_QUIET = rm -rf

@ -1,28 +0,0 @@
include $(ROOTDIR)/makefiles/config.mk
INCLUDE = $(ZINCLUDE) $(EXTERNAL_INCLUDE) $(GTKINCLUDE)
HEADERS = $(wildcard *.h)
CSOURCES = $(wildcard *.c)
SOURCES = $(wildcard *.cpp)
OBJECTS = $(patsubst %.c, %.o, $(CSOURCES))
OBJECTS += $(patsubst %.cpp, %.o, $(SOURCES))
.SUFFIXES: .c .cpp .o .h
.c.o:
@echo -n 'Compiling $@ ...'
@$(CC) -MMD -c $(CFLAGS) $(INCLUDE) $<
@echo ' OK'
.cpp.o:
@echo -n 'Compiling $@ ...'
@$(CC) -MMD -c $(CFLAGS) $(INCLUDE) $<
@echo ' OK'
all: $(OBJECTS)
clean:
@$(RM) *.o *.d
-include *.d

@ -1,15 +0,0 @@
ifeq "$(TARGET_ARCH)$(UI_TYPE)" ""
include $(ROOTDIR)/makefiles/target.mk
endif
ifeq "$(TARGET_ARCH)" ""
$(error TARGET_ARCH is not defined. Please edit $(ROOTDIR)/makefiles/target.mk)
endif
ifeq "$(UI_TYPE)" ""
$(error UI_TYPE is not defined. Please edit $(ROOTDIR)/makefiles/target.mk)
endif
ifeq "$(TARGET_STATUS)" ""
TARGET_STATUS = release
endif

@ -1,28 +0,0 @@
include $(ROOTDIR)/makefiles/config.mk
-include moc.mk
INCLUDE = $(QTINCLUDE) $(ZINCLUDE) $(EXTERNAL_INCLUDE)
HEADERS = $(wildcard *.h)
SOURCES = $(wildcard *.cpp)
OBJMOC = $(patsubst %.cpp, %.o, $(SRCMOC))
OBJECTS = $(patsubst %.cpp, %.o, $(SOURCES))
.SUFFIXES: .cpp .moc.cpp .moc.o .o .h
.cpp.o:
@echo -n 'Compiling $@ ...'
@$(CC) -MMD -c $(CFLAGS) $(INCLUDE) $<
@echo ' OK'
.h.moc.cpp:
@echo -n 'Generating $@ ...'
@$(MOC) $< -o $@
@echo ' OK'
all: $(OBJECTS) $(OBJMOC)
clean:
@$(RM) *.o *.moc.cpp *.d
-include *.d

@ -1,48 +0,0 @@
include $(ROOTDIR)/makefiles/config.mk
INCLUDE = $(ZINCLUDE) $(EXTERNAL_INCLUDE)
HEADERS = $(wildcard *.h)
SOURCES_CPP = $(wildcard *.cpp)
SOURCES_OBJCPP = $(wildcard *.M)
SOURCES_OBJC = $(wildcard *.m)
OBJECTS = $(patsubst %.cpp, %.o, $(SOURCES_CPP)) $(patsubst %.M, %.o, $(SOURCES_OBJCPP)) $(patsubst %.m, %.o, $(SOURCES_OBJC))
.SUFFIXES: .cpp .M .m .o .h
.cpp.o:
@echo -n 'Compiling $@ ...'
ifdef CFLAGS_NOARCH
@$(CC) -MM $(CFLAGS_PRE) $(INCLUDE) $< -o `basename $< .cpp`.d
@$(CC) -c $(CFLAGS) $(INCLUDE) $<
else
@$(CC) -MMD -c $(CFLAGS) $(INCLUDE) $<
endif
@echo ' OK'
.M.o:
@echo -n 'Compiling $@ ...'
ifdef CFLAGS_NOARCH
@$(CC) -MM $(CFLAGS_PRE) $(INCLUDE) $< -o `basename $< .M`.d
@$(CC) -c $(CFLAGS) $(INCLUDE) $<
else
@$(CC) -MMD -c $(CFLAGS) $(INCLUDE) $<
endif
@echo ' OK'
.m.o:
@echo -n 'Compiling $@ ...'
ifdef CFLAGS_NOARCH
@$(CC) -MM $(CFLAGS_PRE) $(INCLUDE) $< -o `basename $< .m`.d
@$(CC) -c $(CFLAGS) $(INCLUDE) $<
else
@$(CC) -MMD -c $(CFLAGS) $(INCLUDE) $<
endif
@echo ' OK'
all: $(OBJECTS)
clean:
@$(RM) *.o *.s *.ld *.d
-include *.d

@ -1,72 +0,0 @@
ROOTDIR = $(CURDIR)/..
MAKEFILESDIR = $(ROOTDIR)/makefiles
include $(MAKEFILESDIR)/config.mk
TARGET = FBReader
target = fbreader
ALL_SUBDIRS = src src/database src/database/sqldb src/database/sqldb/implsqlite src/database/booksdb src/database/booksdb/runnables src/database/networkdb src/database/networkdb/runnables src/migration src/options src/library src/bookmodel src/formats src/formats/fb2 src/formats/docbook src/formats/css src/formats/html src/formats/pdb src/formats/txt src/formats/tcr src/formats/chm src/formats/xhtml src/formats/oeb src/formats/rtf src/formats/openreader src/formats/pdf src/formats/doc src/formats/dummy src/formats/util src/external src/fbreader src/encodingOption src/network src/network/authentication src/network/atom src/network/opds src/network/litres src/network/tree src/network/authentication/litres src/blockTree src/libraryActions src/libraryTree src/networkActions src/tree src/optionsDialog src/optionsDialog/bookInfo src/optionsDialog/library src/optionsDialog/network src/optionsDialog/system src/optionsDialog/reading src/optionsDialog/lookAndFeel
ALL_ARCHSUBDIRS = desktop pdaxrom opie zaurus maemo openzaurus pma400 win32
SUBDIRS = src/database src/database/sqldb src/database/sqldb/implsqlite src/database/booksdb src/database/booksdb/runnables src/database/networkdb src/database/networkdb/runnables src/migration src/options src/library src/bookmodel \
src/formats src/formats/fb2 src/formats/css src/formats/html src/formats/pdb src/formats/txt src/formats/tcr src/formats/chm src/formats/xhtml src/formats/oeb src/formats/rtf src/formats/openreader src/formats/doc src/formats/util \
src/external src/fbreader src/encodingOption src/network src/network/authentication src/network/atom src/network/opds src/network/litres src/network/tree src/network/authentication/litres \
src/blockTree src/libraryActions src/libraryTree src/networkActions src/tree src/optionsDialog src/optionsDialog/bookInfo src/optionsDialog/library src/optionsDialog/network src/optionsDialog/system src/optionsDialog/reading src/optionsDialog/lookAndFeel
all: .resources
@for subdir in $(SUBDIRS); do \
if ! $(MAKE) -C $$subdir -f $(MAKEFILESDIR)/subdir.mk; then \
exit 1; \
fi; \
done;
@echo -n 'Linking $(TARGET) ...'
@$(LD) $(LDFLAGS) -o $(TARGET) `find src -name *.o` $(TEXT_LIBS) $(CORE_LIBS) $(ZLUI_LIB) -lsqlite3
@echo ' OK'
FBSHAREDIR = $(DESTDIR)$(SHAREDIR)/FBReader
VARIANT = $(TARGET_ARCH)
ifneq "$(RESOLUTION)" ""
VARIANT = $(TARGET_ARCH)_$(RESOLUTION)
endif
APPIMAGEDIR_REAL = $(subst %application_name%,$(target),$(subst %APPLICATION_NAME%,$(TARGET),$(APPIMAGEDIR)))
do_install:
@install -d $(DESTDIR)$(BINDIR)
@install $(TARGET) $(DESTDIR)$(BINDIR)/FBReader
@install -d $(FBSHAREDIR)
@install -d $(FBSHAREDIR)/help
@./scripts/install_help.sh $(VARIANT) $(FBSHAREDIR)/help
@install -d $(FBSHAREDIR)/formats/html
@install -m 0644 data/formats/html/html.ent $(FBSHAREDIR)/formats/html
@install -d $(FBSHAREDIR)/formats/xhtml
@install -m 0644 $(wildcard data/formats/xhtml/*.ent) $(FBSHAREDIR)/formats/xhtml
@install -d $(FBSHAREDIR)/formats/fb2
@sed "s/VERSION/$(VERSION)/" data/formats/fb2/FBReaderVersion.ent > $(FBSHAREDIR)/formats/fb2/FBReaderVersion.ent
@install -m 0644 data/formats/fb2/fb2genres.xml $(FBSHAREDIR)/formats/fb2
@install -d $(FBSHAREDIR)/default
@./scripts/install_toolbar_and_menu.sh $(VARIANT) $(UI_TYPE) $(FBSHAREDIR)/default
@./scripts/install_config.sh $(VARIANT) $(UI_TYPE) $(FBSHAREDIR)/default
@install -m 0644 data/default/external.$(TARGET_ARCH).xml $(FBSHAREDIR)/default/external.xml
@if [ -f data/default/messages.$(TARGET_ARCH).xml ]; then \
install -m 0644 data/default/messages.$(TARGET_ARCH).xml $(FBSHAREDIR)/default/messages.xml; \
fi
@install -d $(FBSHAREDIR)/resources
@install -m 0644 $(wildcard data/resources/*.xml) $(FBSHAREDIR)/resources
@install -d $(DESTDIR)$(APPIMAGEDIR_REAL)
@install -m 0644 $(wildcard data/icons/toolbar/$(VARIANT)/*.*) $(DESTDIR)$(APPIMAGEDIR_REAL)
@install -m 0644 $(wildcard data/icons/filetree/$(VARIANT)/*.*) $(DESTDIR)$(APPIMAGEDIR_REAL)
@install -m 0644 $(wildcard data/icons/booktree/new/*.*) $(DESTDIR)$(APPIMAGEDIR_REAL)
@install -m 0644 $(wildcard data/icons/*.*) $(DESTDIR)$(APPIMAGEDIR_REAL)
@$(MAKE) -C $(TARGET_ARCH) RESOLUTION=$(RESOLUTION) install
clean:
@for subdir in $(ALL_SUBDIRS); do \
$(MAKE) -C $$subdir -f $(MAKEFILESDIR)/subdir.mk clean; \
done;
@for subdir in $(ALL_ARCHSUBDIRS); do \
cd $$subdir; $(MAKE) clean; cd ..; \
done;
@$(RM) $(TARGET) err

@ -1,320 +0,0 @@
/*
* Copyright (C) 2008-2012 Geometer Plus <contact@geometerplus.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
* 02110-1301, USA.
*/
#include <map>
#include <set>
#include <curl/curl.h>
#include <ZLStringUtil.h>
#include <ZLNetworkUtil.h>
#include <ZLResource.h>
#include <ZLOutputStream.h>
#include <ZLXMLReader.h>
#include <ZLNetworkRequest.h>
#include "ZLCurlNetworkManager.h"
class PostData : public ZLUserData {
public:
PostData();
~PostData();
bool addItem(const std::string &name, const std::string &content);
const curl_httppost *postItem() const;
private:
curl_httppost *myPostItem;
curl_httppost *myLastItem;
private: // disable copying
PostData(const PostData &);
const PostData &operator = (const PostData &);
};
PostData::PostData() : myPostItem(0), myLastItem(0) {
}
PostData::~PostData() {
if (myPostItem != 0) {
curl_formfree(myPostItem);
}
}
bool PostData::addItem(const std::string &name, const std::string &content) {
// TODO: url-encode content???
return curl_formadd(&myPostItem, &myLastItem,
CURLFORM_COPYNAME, name.c_str(),
CURLFORM_COPYCONTENTS, content.c_str(),
CURLFORM_END) == 0;
}
inline const curl_httppost *PostData::postItem() const {
return myPostItem;
}
static std::size_t handleHeader(void *ptr, std::size_t size, std::size_t nmemb, ZLNetworkRequest *request) {
const std::size_t dataSize = size * nmemb;
return (request->handleHeader(ptr, dataSize)) ? dataSize : 0;
}
static std::size_t handleContent(void *ptr, std::size_t size, std::size_t nmemb, ZLNetworkRequest *request) {
const std::size_t dataSize = size * nmemb;
return (request->handleContent(ptr, dataSize)) ? dataSize : 0;
}
void ZLCurlNetworkManager::createInstance() {
ourInstance = new ZLCurlNetworkManager();
}
void ZLCurlNetworkManager::setStandardOptions(CURL *handle, const std::string &proxy) const {
const std::string &agent = userAgent();
if (!agent.empty()) {
curl_easy_setopt(handle, CURLOPT_USERAGENT, agent.c_str());
}
if (useProxy()) {
curl_easy_setopt(handle, CURLOPT_PROXY, proxy.c_str());
}
curl_easy_setopt(handle, CURLOPT_LOW_SPEED_LIMIT, 1L);
curl_easy_setopt(handle, CURLOPT_LOW_SPEED_TIME, TimeoutOption().value());
curl_easy_setopt(handle, CURLOPT_CONNECTTIMEOUT, ConnectTimeoutOption().value());
curl_easy_setopt(handle, CURLOPT_SSL_VERIFYPEER, 1L);
curl_easy_setopt(handle, CURLOPT_SSL_VERIFYHOST, 2L);
const std::string cookies = CookiesPath();
curl_easy_setopt(handle, CURLOPT_COOKIEFILE, cookies.c_str());
curl_easy_setopt(handle, CURLOPT_COOKIEJAR, cookies.c_str());
}
std::string ZLCurlNetworkManager::doBeforeRequest(ZLNetworkRequest &request) const {
const ZLResource &errorResource = ZLResource::resource("dialog")["networkError"];
if (!request.doBefore()) {
const std::string &err = request.errorMessage();
if (!err.empty()) {
return err;
}
return ZLStringUtil::printf(errorResource["somethingWrongMessage"].value(), ZLNetworkUtil::hostFromUrl(request.url()));
}
if (request.isInstanceOf(ZLNetworkPostRequest::TYPE_ID)) {
return doBeforePostRequest((ZLNetworkPostRequest &) request);
}
return "";
}
std::string ZLCurlNetworkManager::doBeforePostRequest(ZLNetworkPostRequest &request) const {
shared_ptr<ZLUserData> postDataPtr = new PostData;
PostData &postData = (PostData&)*postDataPtr;
const std::vector<std::pair<std::string, std::string> > &data = request.postParameters();
for (std::size_t i = 0; i < data.size(); ++i) {
if (!postData.addItem(data[i].first, data[i].second)) {
return "Invalid form data for " + ZLNetworkUtil::hostFromUrl(request.url()); // TODO: localize
}
}
request.addUserData("postData", postDataPtr);
return "";
}
void ZLCurlNetworkManager::setRequestOptions(CURL *handle, const ZLNetworkRequest &request) const {
curl_easy_setopt(handle, CURLOPT_URL, request.url().c_str());
if (!request.sslCertificate().Path.empty()) {
curl_easy_setopt(handle, CURLOPT_CAINFO, request.sslCertificate().Path.c_str());
} else if (!request.sslCertificate().DoVerify) {
curl_easy_setopt(handle, CURLOPT_SSL_VERIFYPEER, 0L);
}
curl_easy_setopt(handle, CURLOPT_HEADERFUNCTION, handleHeader);
curl_easy_setopt(handle, CURLOPT_WRITEHEADER, &request);
curl_easy_setopt(handle, CURLOPT_WRITEFUNCTION, handleContent);
curl_easy_setopt(handle, CURLOPT_WRITEDATA, &request);
switch (request.authenticationMethod()) {
case ZLNetworkRequest::NO_AUTH:
break;
case ZLNetworkRequest::BASIC:
#if LIBCURL_VERSION_NUM >= 0x071301
curl_easy_setopt(handle, CURLOPT_USERNAME, request.userName().c_str());
curl_easy_setopt(handle, CURLOPT_PASSWORD, request.password().c_str());
#else
curl_easy_setopt(
handle, CURLOPT_USERPWD,
(request.userName() + ':' + request.password()).c_str()
);
#endif
curl_easy_setopt(handle, CURLOPT_HTTPAUTH, (long) CURLAUTH_BASIC);
break;
}
curl_easy_setopt(handle, CURLOPT_FOLLOWLOCATION, request.isRedirectionSupported());
if (request.isInstanceOf(ZLNetworkPostRequest::TYPE_ID)) {
shared_ptr<ZLUserData> postDataPtr = request.getUserData("postData");
PostData &postData = (PostData&)*postDataPtr;
if (postData.postItem() != 0) {
curl_easy_setopt(handle, CURLOPT_HTTPPOST, postData.postItem());
}
}
}
void ZLCurlNetworkManager::clearRequestOptions(ZLNetworkRequest &request) const {
if (request.isInstanceOf(ZLNetworkPostRequest::TYPE_ID)) {
request.removeUserData("postData");
}
}
std::string ZLCurlNetworkManager::perform(const ZLExecutionData::Vector &dataList) const {
const ZLResource &errorResource = ZLResource::resource("dialog")["networkError"];
if (dataList.empty()) {
return errorResource["emptyLibrariesList"].value();
}
std::set<std::string> errors;
const std::string proxy = proxyHost() + ':' + proxyPort();
CURLM *handle = curl_multi_init();
std::map<CURL*,shared_ptr<ZLExecutionData> > handleToRequest;
for (ZLExecutionData::Vector::const_iterator it = dataList.begin(); it != dataList.end(); ++it) {
if (it->isNull() || !(*it)->isInstanceOf(ZLNetworkRequest::TYPE_ID)) {
continue;
}
ZLNetworkRequest &request = (ZLNetworkRequest&)**it;
const std::string err = doBeforeRequest(request);
if (!err.empty()) {
errors.insert(err);
continue;
}
CURL *easyHandle = curl_easy_init();
if (easyHandle != 0) {
handleToRequest[easyHandle] = *it;
setStandardOptions(easyHandle, proxy);
setRequestOptions(easyHandle, request);
curl_multi_add_handle(handle, easyHandle);
}
}
int counter;
CURLMcode res;
do {
res = curl_multi_perform(handle, &counter);
} while ((res == CURLM_CALL_MULTI_PERFORM) || (counter > 0));
CURLMsg *message;
do {
int queueSize;
message = curl_multi_info_read(handle, &queueSize);
if ((message != 0) && (message->msg == CURLMSG_DONE)) {
ZLNetworkRequest &request = (ZLNetworkRequest&)*handleToRequest[message->easy_handle];
const std::string &url = request.url();
CURLcode result = message->data.result;
bool doAfterResult = request.doAfter(result == CURLE_OK);
if (result == CURLE_OK && !doAfterResult) {
result = CURLE_WRITE_ERROR;
}
switch (result) {
case CURLE_OK:
break;
case CURLE_WRITE_ERROR:
if (!request.errorMessage().empty()) {
errors.insert(request.errorMessage());
} else {
errors.insert(ZLStringUtil::printf(errorResource["somethingWrongMessage"].value(), ZLNetworkUtil::hostFromUrl(url)));
}
break;
default:
errors.insert(ZLStringUtil::printf(errorResource["somethingWrongMessage"].value(), ZLNetworkUtil::hostFromUrl(url)));
break;
case CURLE_COULDNT_RESOLVE_PROXY:
errors.insert(ZLStringUtil::printf(errorResource["couldntResolveProxyMessage"].value(), proxyHost()));
break;
case CURLE_COULDNT_RESOLVE_HOST:
errors.insert(ZLStringUtil::printf(errorResource["couldntResolveHostMessage"].value(), ZLNetworkUtil::hostFromUrl(url)));
break;
case CURLE_COULDNT_CONNECT:
errors.insert(ZLStringUtil::printf(errorResource["couldntConnectMessage"].value(), ZLNetworkUtil::hostFromUrl(url)));
break;
case CURLE_OPERATION_TIMEDOUT:
errors.insert(errorResource["operationTimedOutMessage"].value());
break;
case CURLE_SSL_CONNECT_ERROR:
errors.insert(ZLStringUtil::printf(errorResource["sslConnectErrorMessage"].value(), curl_easy_strerror(CURLE_SSL_CONNECT_ERROR)));
break;
#if LIBCURL_VERSION_NUM > 0x071100
case CURLE_PEER_FAILED_VERIFICATION:
#else
case CURLE_SSL_PEER_CERTIFICATE:
#endif
errors.insert(ZLStringUtil::printf(errorResource["peerFailedVerificationMessage"].value(), ZLNetworkUtil::hostFromUrl(url)));
break;
case CURLE_SSL_CACERT:
errors.insert(ZLStringUtil::printf(errorResource["sslCertificateAuthorityMessage"].value(), ZLNetworkUtil::hostFromUrl(url)));
break;
case CURLE_SSL_CACERT_BADFILE:
errors.insert(ZLStringUtil::printf(errorResource["sslBadCertificateFileMessage"].value(), request.sslCertificate().Path));
break;
case CURLE_SSL_SHUTDOWN_FAILED:
errors.insert(ZLStringUtil::printf(errorResource["sslShutdownFailedMessage"].value(), ZLNetworkUtil::hostFromUrl(url)));
break;
}
}
} while ((message != 0) && (errors.size() < 3));
for (std::map<CURL*,shared_ptr<ZLExecutionData> >::const_iterator jt = handleToRequest.begin(); jt != handleToRequest.end(); ++jt) {
CURL *easyHandle = jt->first;
curl_multi_remove_handle(handle, easyHandle);
curl_easy_cleanup(easyHandle);
ZLNetworkRequest &request = (ZLNetworkRequest&)*jt->second;
clearRequestOptions(request);
}
handleToRequest.clear();
curl_multi_cleanup(handle);
std::string result;
for (std::set<std::string>::const_iterator et = errors.begin(); et != errors.end(); ++et) {
if (!result.empty()) {
result += '\n';
}
result += *et;
}
return result;
}

@ -1,70 +0,0 @@
ROOTDIR = $(CURDIR)/..
MAKEFILESDIR = $(ROOTDIR)/makefiles
include $(MAKEFILESDIR)/config.mk
TARGET = FBReader
target = fbreader
ALL_SUBDIRS = src src/database src/database/sqldb src/database/sqldb/implsqlite src/database/booksdb src/database/booksdb/runnables src/database/networkdb src/database/networkdb/runnables src/migration src/options src/library src/bookmodel src/formats src/formats/fb2 src/formats/docbook src/formats/css src/formats/html src/formats/pdb src/formats/txt src/formats/tcr src/formats/chm src/formats/xhtml src/formats/oeb src/formats/rtf src/formats/openreader src/formats/pdf src/formats/doc src/formats/dummy src/formats/util src/external src/fbreader src/encodingOption src/network src/network/authentication src/network/atom src/network/opds src/network/litres src/network/tree src/network/authentication/litres src/blockTree src/libraryActions src/libraryTree src/networkActions src/tree src/optionsDialog src/optionsDialog/bookInfo src/optionsDialog/library src/optionsDialog/network src/optionsDialog/system src/optionsDialog/reading src/optionsDialog/lookAndFeel
ALL_ARCHSUBDIRS = desktop pdaxrom opie zaurus maemo openzaurus pma400 win32
SUBDIRS = src/database src/database/sqldb src/database/sqldb/implsqlite src/database/booksdb src/database/booksdb/runnables src/database/networkdb src/database/networkdb/runnables src/migration src/options src/library src/bookmodel \
src/formats src/formats/fb2 src/formats/css src/formats/html src/formats/pdb src/formats/txt src/formats/tcr src/formats/chm src/formats/xhtml src/formats/oeb src/formats/rtf src/formats/openreader src/formats/doc src/formats/util \
src/external src/fbreader src/encodingOption src/network src/network/authentication src/network/atom src/network/opds src/network/litres src/network/tree src/network/authentication/litres \
src/blockTree src/libraryActions src/libraryTree src/networkActions src/tree src/optionsDialog src/optionsDialog/bookInfo src/optionsDialog/library src/optionsDialog/network src/optionsDialog/system src/optionsDialog/reading src/optionsDialog/lookAndFeel
all: .resources
@for subdir in $(SUBDIRS); do \
if ! $(MAKE) -C $$subdir -f $(MAKEFILESDIR)/subdir.mk; then \
exit 1; \
fi; \
done;
@echo -n 'Linking $(TARGET) ...'
@$(LD) $(LDFLAGS) -o $(TARGET) `find src -name *.o` $(TEXT_LIBS) $(CORE_LIBS) $(ZLUI_LIB) -lsqlite3
@echo ' OK'
FBSHAREDIR = $(DESTDIR)$(SHAREDIR)/FBReader
VARIANT = $(TARGET_ARCH)
ifneq "$(RESOLUTION)" ""
VARIANT = $(TARGET_ARCH)_$(RESOLUTION)
endif
APPIMAGEDIR_REAL = $(subst %application_name%,$(target),$(subst %APPLICATION_NAME%,$(TARGET),$(APPIMAGEDIR)))
do_install:
@install -d $(DESTDIR)$(BINDIR)
@install $(TARGET) $(DESTDIR)$(BINDIR)/FBReader
@install -d $(FBSHAREDIR)
@install -d $(FBSHAREDIR)/help
@./scripts/install_help.sh $(VARIANT) $(FBSHAREDIR)/help
@install -d $(FBSHAREDIR)/formats/html
@install -m 0644 data/formats/html/html.ent $(FBSHAREDIR)/formats/html
@install -d $(FBSHAREDIR)/formats/fb2
@sed "s/VERSION/$(VERSION)/" data/formats/fb2/FBReaderVersion.ent > $(FBSHAREDIR)/formats/fb2/FBReaderVersion.ent
@install -m 0644 data/formats/fb2/fb2genres.xml $(FBSHAREDIR)/formats/fb2
@install -d $(FBSHAREDIR)/default
@./scripts/install_toolbar_and_menu.sh $(VARIANT) $(UI_TYPE) $(FBSHAREDIR)/default
@./scripts/install_config.sh $(VARIANT) $(UI_TYPE) $(FBSHAREDIR)/default
@install -m 0644 data/default/external.$(TARGET_ARCH).xml $(FBSHAREDIR)/default/external.xml
@if [ -f data/default/messages.$(TARGET_ARCH).xml ]; then \
install -m 0644 data/default/messages.$(TARGET_ARCH).xml $(FBSHAREDIR)/default/messages.xml; \
fi
@install -d $(FBSHAREDIR)/resources
@install -m 0644 $(wildcard data/resources/*.xml) $(FBSHAREDIR)/resources
@install -d $(DESTDIR)$(APPIMAGEDIR_REAL)
@install -m 0644 $(wildcard data/icons/toolbar/$(VARIANT)/*.*) $(DESTDIR)$(APPIMAGEDIR_REAL)
@install -m 0644 $(wildcard data/icons/filetree/$(VARIANT)/*.*) $(DESTDIR)$(APPIMAGEDIR_REAL)
@install -m 0644 $(wildcard data/icons/booktree/new/*.*) $(DESTDIR)$(APPIMAGEDIR_REAL)
@install -m 0644 $(wildcard data/icons/*.*) $(DESTDIR)$(APPIMAGEDIR_REAL)
@$(MAKE) -C $(TARGET_ARCH) RESOLUTION=$(RESOLUTION) install
clean:
@for subdir in $(ALL_SUBDIRS); do \
$(MAKE) -C $$subdir -f $(MAKEFILESDIR)/subdir.mk clean; \
done;
@for subdir in $(ALL_ARCHSUBDIRS); do \
cd $$subdir; $(MAKE) clean; cd ..; \
done;
@$(RM) $(TARGET) err

@ -1,23 +0,0 @@
[Desktop Entry]
Name=FBReader
GenericName=E-book reader
GenericName[ar]=قارئ الكتب الإلكترونية
GenericName[es]=Lector de Libros
GenericName[hu]=E-könyv olvasó
GenericName[pl]=Czytnik e-książek
GenericName[ru]=Чтение электронных книг
GenericName[zh_CN]=电子书阅读
Comment=FBReader E-book reader
Comment[ar]=قارئ الكتب الإلكترونية
Comment[es]=FBReader Lector de Libros Elecrónicos
Comment[hu]=FBReader, E-könyv olvasó program
Comment[pl]=FBReader, czytnik książek elektronicznych
Comment[ru]=FBReader, программа для чтения электронных книг
Comment[zh_CN]=FBReader 电子书阅读器
TryExec=FBReader
Exec=FBReader %F
StartupNotify=true
Terminal=false
Type=Application
Icon=FBReader
Categories=Office;Viewer;Literature;

@ -1,9 +0,0 @@
0001-ZLQtFSManager.cpp.patch
0002-Qt5.patch
0003-gcc-6.patch
0004-prevent-so-install.patch
0008-951-fix-calling-compiler.patch
0009-fbreader-Makefile-do-not-try-to-install-empty-format.patch
0011-zlibrary-unix-curl-avoid-duplicate-case-in-a-switch.patch
0013-fbreader-Makefile-make-linking-order-reproducible.patch
1014-desktop-mime-type.patch

@ -1,44 +0,0 @@
ROOTDIR = $(CURDIR)
include makefiles/platforms.mk
ZLIBDIRS = zlibrary/core zlibrary/text zlibrary/ui
APPDIRS = fbreader
all:
@for dir in $(ZLIBDIRS) $(APPDIRS); do \
if [ -d $$dir ]; then \
cd $$dir; \
if ! $(MAKE); then \
exit 1; \
fi; \
cd $(ROOTDIR); \
fi; \
done;
install: all do_install
do_install:
@for dir in $(ZLIBDIRS) $(APPDIRS); do \
if [ -d $$dir ]; then \
cd $$dir; $(MAKE) $@; cd $(ROOTDIR); \
fi; \
done
do_install_dev:
@for dir in $(ZLIBDIRS); do \
if [ -d $$dir ]; then \
cd $$dir; $(MAKE) $@; cd $(ROOTDIR); \
fi; \
done
clean:
@for dir in $(ZLIBDIRS) $(APPDIRS); do \
if [ -d $$dir ]; then \
cd $$dir; $(MAKE) $@; cd $(ROOTDIR); \
fi; \
done
distclean: clean
@rm -rvf *.tgz *.tar.gz *.ipk *.deb *.prc *.exe *.log *.dsc *.changes *.rpm
@rm -rf tmp packages packages-nonGPL fbreader-*

@ -1,72 +0,0 @@
This is a very short description of FBReader build procedure.
1. Compiler.
All version of FBReader are configured for building on linux desktop
computer. You need gcc compiler for building desktop version or cross
gcc compiler for building package for another platform.
2. Libraries.
FBReader requires
** expat -- library for XML parsing. AFAIK, all popular destributions
includes package with name like 'expat-dev' or 'libexpat-dev'.
If you cannot find expat in your distribution, please visit
http://expat.sourceforge.net
** libz and libbz2 -- libraries for zip and bzip2 (de)compression
** UI library -- this depends on your target platform. For desktop,
Qt library, version 3.* or 4.*
OR
GTK+ library, version >= 2.4
should be installed
** libunibreak (http://vimgadgets.cvs.sourceforge.net/vimgadgets/common/tools/linebreak/) -- library for line breaking in a Unicode sequence
** libfribidi -- for bidirectional text support
** libcurl, version >= 7.17 -- for network libraries integration
** libsqlite3
** for win32 version, we use also libpng, libungif, libjpeg and libtiff
3. How to configure.
Before building FBReader, you should check (and maybe edit) 2 files:
** makefiles/target.mk
In this file you should define 3 variables:
TARGET_ARCH -- target platform for building FBReader
UI_TYPE -- UI library
TARGET_STATUS -- "release", "debug" or "profile". "release" is
reasonable choice for almost all users.
Possible pairs for TARGET_ARCH + UI_TYPE are:
TARGET_ARCH = desktop UI_TYPE = gtk
TARGET_ARCH = desktop UI_TYPE = qt
TARGET_ARCH = desktop UI_TYPE = qt4
TARGET_ARCH = pepperpad3 UI_TYPE = gtk
TARGET_ARCH = zaurus UI_TYPE = qtopia-240x320
TARGET_ARCH = zaurus UI_TYPE = qtopia-640x480
TARGET_ARCH = openzaurus UI_TYPE = opie
TARGET_ARCH = openzaurus UI_TYPE = gpe
TARGET_ARCH = pdaxrom UI_TYPE = gtk
TARGET_ARCH = pdaxrom UI_TYPE = qt
TARGET_ARCH = opensimpad-0.9.0 UI_TYPE = opie
TARGET_ARCH = maemo UI_TYPE = maemo2
TARGET_ARCH = maemo UI_TYPE = maemo4
TARGET_ARCH = pma400 UI_TYPE = qtopia
TARGET_ARCH = moto UI_TYPE = ezx
TARGET_ARCH = win32 UI_TYPE = win32
TARGET_ARCH = macosx UI_TYPE = cocoa
** makefiles/arch/$(TARGET_ARCH).mk
This file defines compiler name and location, headers and libraries
locations, compilation flags, installation path (for desktop), etc.
4. How to build.
Just type 'make' in FBReader root directory. (FBReader root directory ==
directory containing this file.)
5. How to install.
If you want to install FBReader on your desktop computer, just run 'make install'
as root in FBReader root directory.
If you want to create package for another platform, run 'make packages' in
FBReader root directory.

@ -1,155 +0,0 @@
#! /bin/bash
version=`cat fbreader/VERSION`
tmpdir=fbreader-$version
if [ "$1" == "-non-GPL" ]; then
distdir=distributions-nonGPL
pkgdir=packages-nonGPL
prepare_nonGPL=true
shift;
else
distdir=distributions
pkgdir=packages
prepare_nonGPL=false
fi
if [ $# -lt 1 ]; then
echo "usage:"
echo " $0 [-non-GPL] <architecture>"
echo "or"
echo " $0 [-non-GPL] all"
echo "or"
echo " $0 [-non-GPL] supported"
echo ""
echo "available architectures are:"
for pkgtype in $distdir/*; do
for archtype in $pkgtype/*; do
echo " `basename $archtype`-`basename $pkgtype`";
done;
done;
exit 1;
fi
create_tmpdir() {
mkdir $tmpdir
cp -r Makefile build_packages.sh zlibrary fbreader makefiles README.build CHANGES* distributions distributions-nonGPL ChangeLog $tmpdir
rm -rf `find $tmpdir -name ".svn"`
make -C $tmpdir distclean 1> /dev/null 2>&1
if [ "$prepare_nonGPL" == "true" ]; then
pushd $tmpdir > /dev/null;
echo -en "Removing Arabic localization... ";
rm -rf fbreader/data/resources/ar.xml zlibrary/core/data/resources/ar.xml fbreader/data/help/MiniHelp.*.ar.fb2;
echo OK;
echo -en "Removing Finnish localization... ";
rm -rf fbreader/data/resources/fi.xml zlibrary/core/data/resources/fi.xml fbreader/data/help/MiniHelp.*.fi.fb2;
echo OK;
echo -en "Removing Swedish localization... ";
rm -rf fbreader/data/resources/sv.xml zlibrary/core/data/resources/sv.xml fbreader/data/help/MiniHelp.*.sv.fb2;
echo OK;
echo -en "Removing German localization... ";
rm -rf fbreader/data/resources/de.xml zlibrary/core/data/resources/de.xml fbreader/data/help/MiniHelp.*.de.fb2;
echo OK;
echo -en "Removing Czech hyphenation patterns... ";
zip -dq zlibrary/text/data/hyphenationPatterns.zip cs.pattern;
echo OK;
echo -en "Removing Indonesian hyphenation patterns... ";
zip -dq zlibrary/text/data/hyphenationPatterns.zip id.pattern;
echo OK;
echo -en "Removing Qt-based interface... ";
rm -rf zlibrary/ui/src/opie zlibrary/ui/src/qtopia zlibrary/ui/src/qt zlibrary/ui/src/qt4
echo OK;
popd > /dev/null;
fi;
}
remove_tmpdir() {
rm -rf $tmpdir
}
build_package() {
make_package="make -f makefiles/packaging.mk -C $tmpdir DIST_DIR=$distdir"
case "$2" in
debian)
case "$1" in
maemo)
/scratchbox/login sb-conf se SDK_ARM
/scratchbox/login -d `pwd` $make_package ARCHITECTURE=$1 $2
;;
maemo2|maemo3)
/scratchbox/login sb-conf se SDK_ARMEL
/scratchbox/login -d `pwd` $make_package ARCHITECTURE=$1 $2
;;
maemo4)
/scratchbox/login sb-conf se CHINOOK_ARMEL
/scratchbox/login -d `pwd` $make_package ARCHITECTURE=$1 $2
;;
maemo5)
/scratchbox/login sb-conf se FREMANTLE_ARMEL
/scratchbox/login -d `pwd` $make_package ARCHITECTURE=$1 $2
;;
*)
$make_package ARCHITECTURE=$1 $2
;;
esac;
mkdir -p $pkgdir/$1
mv -f $tmpdir/*.deb $tmpdir/*.dsc $tmpdir/*.changes $tmpdir/*.tar.gz $pkgdir/$1
;;
ipk|debipk)
$make_package ARCHITECTURE=$1 $2
mkdir -p $pkgdir/$1
mv -f $tmpdir/*.ipk $pkgdir/$1
;;
motopkg)
$make_package ARCHITECTURE=$1 $2
mkdir -p $pkgdir/$1
mv -f $tmpdir/*.pkg $pkgdir/$1
;;
tarball)
$make_package ARCHITECTURE=$1 $2
mkdir -p $pkgdir/$1
mv -f $tmpdir/*.tgz $pkgdir/$1
;;
nsi)
$make_package ARCHITECTURE=$1 $2
mkdir -p $pkgdir/$1
mv -f $tmpdir/*.exe $pkgdir/$1
;;
*)
echo no rule is defined for package type ''$2'';
;;
esac;
}
if [ $1 == all ]; then
create_tmpdir
for pkgtype in $distdir/*; do
for archtype in $pkgtype/*; do
build_package `basename $archtype` `basename $pkgtype`;
done;
done;
remove_tmpdir
elif [ $1 == supported ]; then
create_tmpdir
build_package desktop debian
build_package win32 nsi
build_package source tarball
remove_tmpdir
else
while [ $# -gt 0 ] ; do
archtype=`echo $1 | cut -d "-" -f 1`;
pkgtype=`echo $1 | cut -d "-" -f 2`;
extra=`echo $1 | cut -d "-" -f 3`;
if [ "$pkgtype" != "" -a "$extra" == "" -a -d $distdir/$pkgtype/$archtype ]; then
create_tmpdir
build_package $archtype $pkgtype
remove_tmpdir
else
echo "unknown architecture: $1"
fi;
shift;
done;
fi;

@ -1,354 +0,0 @@
fbreader (0.99.4-1) stable; urgency=low
* new upstream version
-- Alexander Turkin <snowwlex@fbreader.org> Fri, 30 Nov 2012 16:30:00 +0300
fbreader (0.99.3-1) stable; urgency=low
* new upstream version
-- Alexander Turkin <snowwlex@fbreader.org> Sat, 17 Nov 2012 21:00:00 +0300
fbreader (0.99.2-1) stable; urgency=low
* new upstream version
-- Alexander Turkin <snowwlex@fbreader.org> Fri, 7 Sep 2012 00:42:00 +0300
fbreader (0.99.1-1) stable; urgency=low
* new upstream version
* instead of liblinebreak package it depends on libunibreak (because this package has been renamed)
-- Alexander Turkin <snowwlex@fbreader.org> Wed, 25 Jul 2012 21:47:00 +0300
fbreader (0.99.0-1) stable; urgency=low
* new upstream version
* as from version 0.99.0 FBReader for Linux supports qt4 interface only
-- Alexander Turkin <snowwlex@fbreader.org> Thu, 28 Jun 2012 20:02:00 +0300
fbreader (0.14.20100422-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Thu, 22 Apr 2010 13:49:00 +0400
fbreader (0.12.10-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Thu, 1 Apr 2010 13:48:00 +0400
fbreader (0.12.9-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Thu, 25 Mar 2010 02:33:00 +0300
fbreader (0.12.8-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Mon, 22 Mar 2010 21:42:00 +0300
fbreader (0.12.7-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Fri, 5 Mar 2010 00:39:00 +0300
fbreader (0.12.6-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Tue, 2 Mar 2010 20:53:00 +0300
fbreader (0.12.5-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Sun, 21 Feb 2010 16:20:00 +0300
fbreader (0.12.2-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Fri, 29 Jan 2010 19:53:00 +0300
fbreader (0.12.1-2) stable; urgency=low
* cosmetical fixes
-- Nikolay Pultsin <geometer@fbreader.org> Sun, 13 Dec 2009 11:41:00 +0300
fbreader (0.12.1-1) stable; urgency=low
* new upstream version
* updated man page
-- Nikolay Pultsin <geometer@fbreader.org> Sun, 13 Dec 2009 09:23:00 +0300
fbreader (0.12.0-3) stable; urgency=low
* fixed rules file
-- Nikolay Pultsin <geometer@fbreader.org> Sun, 6 Dec 2009 19:48:00 +0300
fbreader (0.12.0-2) stable; urgency=low
* fixed dependencies list
-- Nikolay Pultsin <geometer@fbreader.org> Sun, 6 Dec 2009 19:05:00 +0300
fbreader (0.12.0-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Sat, 5 Dec 2009 03:40:00 +0300
fbreader (0.11.2-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Tue, 20 Oct 2009 13:22:00 +0400
fbreader (0.11.1-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Tue, 13 Oct 2009 23:38:00 +0400
fbreader (0.11.0-2) stable; urgency=low
* fixed package dependencies in debian files
-- Nikolay Pultsin <geometer@fbreader.org> Sat, 26 Sep 2009 11:23:00 +0400
fbreader (0.11.0-1) stable; urgency=low
* new upstream version
-- Vasiliy Bout <bout.vasiliy@gmail.com> Wed, 16 Sep 2009 16:48:00 +0400
fbreader (0.10.7-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Mon, 30 Mar 2009 13:29:00 +0400
fbreader (0.10.6-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Thu, 26 Mar 2009 22:15:00 +0200
fbreader (0.10.5-1) stable; urgency=low
* new upstream version
* conflicts with ubuntu fbreader packages have been resolved
* dependencies for libzltext-dev have been fixed
-- Nikolay Pultsin <geometer@fbreader.org> Fri, 20 Mar 2009 18:12:00 +0200
fbreader (0.10.4-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Wed, 18 Mar 2009 23:33:00 +0200
fbreader (0.10.3-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Thu, 5 Feb 2009 01:11:00 +0200
fbreader (0.10.2-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Fri, 17 Jan 2009 23:42:00 +0300
fbreader (0.10.1-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Fri, 16 Jan 2009 12:31:00 +0300
fbreader (0.10.0-1) stable; urgency=low
* new upstream version
* add-missing-headers.patch integrated into the upstream
* fix-centering-with-margins.patch integrated into the upstream
* use-sensible-browser.patch added to the upstream debian fileset
* remove-deprecated-fields-in-desktop-file.patch intgerated into the upstream
-- Nikolay Pultsin <geometer@fbreader.org> Sun, 3 Aug 2008 19:01:00 +0400
fbreader (0.8.17-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Sun, 23 Mar 2008 03:30:00 +0300
fbreader (0.8.16-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Fri, 20 Mar 2008 03:10:00 +0300
fbreader (0.8.15-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Tue, 26 Feb 2008 02:41:00 +0300
fbreader (0.8.14-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Sat, 9 Feb 2008 22:48:00 +0300
fbreader (0.8.13-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Thr, 24 Jan 2008 15:24:00 +0300
fbreader (0.8.12-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Sat, 19 Jan 2008 03:47:00 +0300
fbreader (0.8.11-1) stable; urgency=low
* new upstream version
* dependency rules have been changed
-- Nikolay Pultsin <geometer@fbreader.org> Sat, 12 Jan 2008 22:27:00 +0300
fbreader (0.8.10-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Fri, 4 Jan 2008 20:53:00 +0300
fbreader (0.8.9-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Thr, 27 Dec 2007 07:13:00 +0300
fbreader (0.8.8d-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Mon, 24 Dec 2007 10:27:00 +0300
fbreader (0.8.8c-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Sun, 23 Dec 2007 08:14:00 +0300
fbreader (0.8.8a-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Mon, 17 Dec 2007 03:03:00 +0300
fbreader (0.8.8-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Fri, 23 Nov 2007 22:55:00 +0300
fbreader (0.8.7b-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Tue, 6 Nov 2007 22:55:00 +0300
fbreader (0.8.7a-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Wed, 31 Oct 2007 00:00:00 +0400
fbreader (0.8.7-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Fri, 5 Oct 2007 00:00:00 +0400
fbreader (0.8.6c-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Thr, 30 Aug 2007 02:30:00 +0400
fbreader (0.8.6a-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Thr, 8 Aug 2007 18:47:00 +0400
fbreader (0.8.6-1) stable; urgency=low
* new upstream version
* added libzlibrary-dev package
-- Nikolay Pultsin <geometer@fbreader.org> Thr, 5 Aug 2007 23:49:00 +0400
fbreader (0.8.5c-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Thr, 19 Jul 2007 15:20:00 +0400
fbreader (0.8.5b-1) stable; urgency=low
* new upstream version
* almost all changes from the previous change are now included into
the upstream version: zlibrary shared objects moving, rpath deletion,
and the man page.
-- Nikolay Pultsin <geometer@fbreader.org> Tue, 10 Jul 2007 21:50:00 +0400
fbreader (0.8.5a-1) unstable; urgency=low
* First upload to Debian. Closes: #432274
* Misc debianisation changes.
* Move zlibrary shared object files to /usr/lib from /usr/share.
* Remove use of rpath.
* Use sensible-browser.
* Added a basic man page.
-- Joey Hess <joeyh@debian.org> Mon, 09 Jul 2007 15:04:31 -0400
fbreader (0.8.5-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Sat, 7 Jul 2007 02:12:00 +0400
fbreader (0.8.4zz-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Thu, 5 Jul 2007 03:17:00 +0400
fbreader (0.8.4z-2) stable; urgency=low
* postinst/postrm scripts were added
-- Nikolay Pultsin <geometer@fbreader.org> Fri, 29 Jun 2007 21:23:00 +0400
fbreader (0.8.4z-1) stable; urgency=low
* Initial release.
-- Nikolay Pultsin <geometer@fbreader.org> Fri, 29 Jun 2007 17:53:00 +0400

@ -1,30 +0,0 @@
Source: fbreader
Section: text
Priority: optional
Maintainer: Nikolay Pultsin <geometer@fbreader.org>
Standards-Version: 3.8.0
Build-Depends: debhelper (>= 5), libqt4-dev, libexpat1-dev, libbz2-dev, libz-dev, libunibreak-dev (>= 1.0-1), libfribidi-dev, quilt (>= 0.40), libsqlite3-dev
Package: fbreader
Priority: optional
Architecture: any
Replaces: fbreader-gtk, fbreader-qt, fbreader-qt4, libzlcore, libzlcore0.10, libzlcore-data, libzltext, libzltext0.9, libzltext0.10, libzltext-data, libzlui, libzlui-gtk, libzlui-qt4, libzlui-qt
Depends: ${shlibs:Depends}
Description: e-book reader
FBReader is an e-book reader.
.
Main features:
* supports several open e-book formats: fb2, html, chm, plucker,
palmdoc, ztxt, tcr (psion text), rtf, oeb, openreader, non-DRM'ed
mobipocket, plain text, also MsWord doc files
* reads directly from tar, zip, gzip, bzip2 archives (you can have
several books in one archive)
* supports a structured view of your e-book collection
* automatically determines encodings
* automatically generates a table of contents
* keeps the last open book and the last read positions for all open books
between runs
* automatic hyphenation (patterns for several languages are included)
* search and download books from network libraries
.
Homepage: http://www.fbreader.org/

@ -1,51 +0,0 @@
This is the Debian prepackaged version of FBReader.
It was originally Debianised by Nikolay Pultsin <geometer@fbreader.org>.
Sources are downloaded from its website at:
http://www.fbreader.org/
It is copyright as follows:
/*
* Copyright (C) 2004-2012 Geometer Plus <contact@geometerplus.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
* 02110-1301, USA.
*/
On Debian systems, the full text of the GPL can be found in
/usr/share/common-licenses/GPL
It also includes html entity files with these licenses:
<!-- Portions (C) International Organization for Standardization 1986
Permission to copy in any form is granted for use with
conforming SGML systems and applications as defined in
ISO 8879, provided this notice is included in all copies.
-->
<!-- Copyright (C) 2001, 2002 Organization for the Advancement of Structured
Information Standards (OASIS).
Permission to use, copy, modify and distribute this entity set
and its accompanying documentation for any purpose and without
fee is hereby granted in perpetuity, provided that the above
copyright notice and this paragraph appear in all copies. The
copyright holders make no representation about the suitability of
the entities for any purpose. It is provided "as is" without
expressed or implied warranty.
-->

@ -1,2 +0,0 @@
?package(fbreader):needs="x11" section="Applications/Viewers" \
title="E-book reader" command="FBReader"

@ -1,50 +0,0 @@
#!/usr/bin/make -f
clean: unpatch
dh_testdir
dh_testroot
[ ! -f Makefile ] || $(MAKE) distclean
dh_clean build-stamp install-stamp
build: patch build-stamp
build-stamp:
dh_testdir
$(MAKE) -C zlibrary/core TARGET_ARCH=desktop UI_TYPE=dummy
$(MAKE) -C zlibrary/text TARGET_ARCH=desktop UI_TYPE=dummy
$(MAKE) -C zlibrary/ui TARGET_ARCH=desktop UI_TYPE=qt4
$(MAKE) -C fbreader TARGET_ARCH=desktop UI_TYPE=dummy
touch build-stamp
install: DEB_DIR = $(CURDIR)/debian
install: build
dh_testdir
dh_testroot
dh_clean -k
dh_installdirs
$(MAKE) -C zlibrary/core TARGET_ARCH=desktop UI_TYPE=dummy DESTDIR=$(DEB_DIR)/fbreader do_install
$(MAKE) -C zlibrary/text TARGET_ARCH=desktop UI_TYPE=dummy DESTDIR=$(DEB_DIR)/fbreader do_install
$(MAKE) -C zlibrary/ui TARGET_ARCH=desktop UI_TYPE=qt4 DESTDIR=$(DEB_DIR)/fbreader do_install
$(MAKE) -C fbreader TARGET_ARCH=desktop UI_TYPE=dummy DESTDIR=$(DEB_DIR)/fbreader do_install
touch install-stamp
binary-arch: VERSION=$(shell expr "`dpkg-parsechangelog |grep Version:`" : '.*Version: \(.*\)')
binary-arch: build install
dh_testdir
dh_testroot
dh_desktop
dh_installmenu
dh_installdocs
dh_installman fbreader/desktop/FBReader.1
dh_installchangelogs
dh_strip
dh_compress
dh_fixperms
dh_installdeb
dh_shlibdeps -l debian/libzlcore/usr/lib:debian/libzltext/usr/lib
dh_gencontrol
dh_md5sums
dh_builddeb
binary: binary-arch
include /usr/share/quilt/quilt.make

@ -1,2 +0,0 @@
version=2
http://www.fbreader.org/downloads.php fbreader-sources-(.*).tgz

@ -1,225 +0,0 @@
fbreader (0.10.7-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Mon, 30 Mar 2009 13:29:00 +0400
fbreader (0.10.6-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Thu, 26 Mar 2009 22:15:00 +0200
fbreader (0.10.5-3) stable; urgency=low
* versions for maemo2 and maemo3 were separated: maemo2 doesn't contain
conic library
-- Nikolay Pultsin <geometer@fbreader.org> Sun, 22 Mar 2009 17:37:00 +0200
fbreader (0.10.5-2) stable; urgency=low
* version with more debug information
-- Nikolay Pultsin <geometer@fbreader.org> Sun, 22 Mar 2009 11:42:00 +0200
fbreader (0.10.5-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Fri, 20 Mar 2009 18:12:00 +0200
fbreader (0.10.4-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Sun, 8 Feb 2009 03:24:00 +0300
fbreader (0.10.0-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Sun, 3 Aug 2008 19:01:00 +0400
fbreader (0.8.17-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Sun, 23 Mar 2008 03:30:00 +0300
fbreader (0.8.16-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Fri, 20 Mar 2008 03:10:00 +0300
fbreader (0.8.15-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Tue, 26 Feb 2008 02:41:00 +0300
fbreader (0.8.14-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Sat, 9 Feb 2008 22:48:00 +0300
fbreader (0.8.13-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Thr, 24 Jan 2008 15:24:00 +0300
fbreader (0.8.12-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Sat, 19 Jan 2008 03:47:00 +0300
fbreader (0.8.11-1) stable; urgency=low
* new upstream version
* dependency rules have been changed
-- Nikolay Pultsin <geometer@fbreader.org> Sat, 12 Jan 2008 22:27:00 +0300
fbreader (0.8.10-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Fri, 4 Jan 2008 20:53:00 +0300
fbreader (0.8.9-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Thr, 27 Dec 2007 07:13:00 +0300
fbreader (0.8.8d-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Mon, 24 Dec 2007 10:27:00 +0300
fbreader (0.8.8c-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Sun, 23 Dec 2007 08:14:00 +0300
fbreader (0.8.8b-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Thr, 20 Dec 2007 22:30:00 +0300
fbreader (0.8.8a-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Mon, 17 Dec 2007 03:03:00 +0300
fbreader (0.8.8-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Fri, 23 Nov 2007 22:55:00 +0300
fbreader (0.8.7b-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Tue, 6 Nov 2007 22:55:00 +0300
fbreader (0.8.7a-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Sat, 3 Nov 2007 00:00:00 +0400
fbreader (0.8.7-3) stable; urgency=low
* dependencies list has been fixed
-- Nikolay Pultsin <geometer@fbreader.org> Sat, 20 Oct 2007 00:00:00 +0400
fbreader (0.8.7-2) stable; urgency=low
* dependencies list has been fixed
-- Nikolay Pultsin <geometer@fbreader.org> Fri, 19 Oct 2007 00:00:00 +0400
fbreader (0.8.7-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Fri, 5 Sep 2007 00:00:00 +0400
fbreader (0.8.6d-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Thr, 7 Sep 2007 12:00:00 +0400
fbreader (0.8.6c-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Thr, 30 Aug 2007 02:30:00 +0400
fbreader (0.8.6a-1) stable; urgency=low
* fixed stylus/finger pressing detection problem on Nokia 770 device
-- Nikolay Pultsin <geometer@fbreader.org> Thr, 8 Aug 2007 18:47:00 +0400
fbreader (0.8.6-3) stable; urgency=low
* fixed fbreader-maemo2 package icon
-- Nikolay Pultsin <geometer@fbreader.org> Thr, 8 Aug 2007 01:55:00 +0400
fbreader (0.8.6-2) stable; urgency=low
* fixed fbreader-maemo2 package icon
-- Nikolay Pultsin <geometer@fbreader.org> Thr, 8 Aug 2007 01:09:00 +0400
fbreader (0.8.6-1) stable; urgency=low
* new upstream version
* added libzlibrary-dev package
-- Nikolay Pultsin <geometer@fbreader.org> Thr, 5 Aug 2007 23:49:00 +0400
fbreader (0.8.5c-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Thr, 19 Jul 2007 15:20:00 +0400
fbreader (0.8.5a-1) stable; urgency=low
* new upstream version
* maemo package icon has been restored
-- Nikolay Pultsin <geometer@fbreader.org> Sat, 7 Jul 2007 02:12:00 +0400
fbreader (0.8.5-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Sat, 7 Jul 2007 02:12:00 +0400
fbreader (0.8.4zz-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Thr, 5 Jul 2007 03:17:00 +0400
fbreader (0.8.4z-1) stable; urgency=low
* Initial release.
-- Nikolay Pultsin <geometer@fbreader.org> Sat, 30 Jun 2007 01:48:00 +0400

@ -1,81 +0,0 @@
Source: fbreader
Priority: optional
Maintainer: Nikolay Pultsin <geometer@fbreader.org>
Standards-Version: 3.6.1
Build-Depends: debhelper, libexpat1-dev, libbz2-dev, libz-dev, hildon-libs-dev, libosso-dev, liblinebreak-dev, libfribidi-dev, libcurl3-dev
Package: libzlibrary-maemo2-noconic
Section: user/libs
Priority: optional
Architecture: armel
Replaces: libzlibrary-maemo2
Conflicts: fbreader-maemo2 (<< 0.8.0)
Depends: hildon-libs0, libatk1.0-0 (>= 1.9.0), libbz2-1.0, libc6 (>= 2.3.5-1), libexpat1 (>= 1.95.8), libgcc1 (>= 1:3.4.4), libglib2.0-0 (>= 2.8.6-1osso1), libgtk2.0-0 (>= 2:2.6.10-1.osso8), libosso1, libpango1.0-0 (>= 1.8.1), libstdc++6 (>= 3.4.4), zlib1g (>= 1:1.2.1), libfribidi0, libcurl3, liblinebreak-maemo2
Description: Platform-dependent part of fbreader
Home page: http://www.fbreader.org/
Package: libzlibrary-maemo2-dev
Section: libdevel
Priority: optional
Architecture: armel
Replaces: libzlibrary-dev
Depends: libzlibrary-maemo2 (= ${Source-Version}) | libzlibrary-maemo2-noconic (= ${Source-Version})
Description: zlibrary - development files
Home page: http://www.fbreader.org/
Package: fbreader-maemo2
Section: user/tools
Priority: optional
Architecture: armel
Depends: ${shlibs:Depends}
Description: e-book reader
FBReader is an e-book reader for UNIX/Windows computers.
.
Main features:
* supports several open e-book formats: fb2, html, chm, plucker,
palmdoc, ztxt, tcr (psion text), rtf, oeb, openreader, non-DRM'ed
mobipocket, plain text
* reads directly from tar, zip, gzip, bzip2 archives (you can have
several books in one archive)
* supports structured view for your e-book collection
* automatically determines encoding
* automatically generates table of contents
* keeps the last open book and the last read positions for all open books
between runs
* automatic hyphenation (patterns for several languages are included)
.
Home page: http://www.fbreader.org/
XB-Maemo-Icon-26:
iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAYAAACpSkzOAAAABmJLR0QA/wD/
AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH2QEKFjEFBaQC
bAAABStJREFUSMftlsmPXFcVh79zhzfX0Gm3y+20GwcnDomMEJEVAXIk2CAG
YaYVEUhs2WWTRRbsQCzZgGADKyT2RkLKAgkiYaJsIkAx3R7iEbvT6a4eqrte
Vb07ZFHV7W6TPwAkrnSk867OO997v3N07oX/r//2JQfOlT+9ZT+xdLqXhiBl
WTYhENc2Hsn2j9/49MI4LKjLX7u9cPmr7zz9yRf90QTr+7uiXaoGdS1b21uy
v9VnY+1RlNCEb3732+E/QN//2a9/+qVLn3/9QmLlxFNt70PD8MN1Vl/7UbJ0
77Ysd8rQPPvstb9++RtXRifPP1VuPlgmNr25qlVOTp1Ni7LU7XbLdMqCTqvw
mzvbk9/+4c+j8eLp3/zyB1//uTkAPZr4Z665wr75q5+wt71pyiKn1+pQzs1z
dXWV17ulym/fupC9+ccL409tcHH0kPTUaf6tc/bEkmlDqhRaKZI0ocpzbHTs
mnwJ4BA09JFoDSsr17hz8zpoQYBQO85OFN/r72CMYrhyHbf4PH2nKUc5e16z
s7FJkIi1lixJIQoQiTEiRADUASjPC3yIKGUQLWgRtGhERVCRXQn4xjHyEU9k
f+xogiIqM9U/ggiIHKYkxgjyBKjKMyYxYo3BKIM1ljzLKfOCEzi8g2Hj6HuH
pMn0a5VCRRCtpr5SKA1KTUtflOUB57F0mTWMG48gJDYlzTKyrCBVwvm9XULj
2PeeD7SmlVXEuEkwBiOC0hpRgiCIKESmvjEJ+CdAIpHBYAgiZFlBVbVotzpk
ecqp+zfZH48JUdhpzSPtDlEZnPMYQBmDPG5gEEFESIxlEvxx6SyKwf4eRZ5T
lS263S7tToeyrKiMxUdQEhh3u4Q0Q0JAxTBNavSs+LNiAdpoqqrE+SdqZIKj
HjWkSUpRlFRVSVHk5EWBa1WUEqmAKNM+SgUSPFpAqWmaOIMIoJWmVRSznSPS
RTyT8Zhet8u4HpHlOXmeYWzCZl7RU5okETKtic2YNDqsimA1WmsAQpy2dIwR
rYQ0fSzpIagZjXEywugEY+ysIQqKvGA9BpL5ORYTz9lmj2TjIa1OSt7O+SAx
s+JD8B7nAsEHtNbkWQZhcFy6wdbONEAprDUYM21xrYXGGv5y5jnM/AlefWaR
xa0HlN0MFye4rJjKpYQQPK6Z4BqHKEWZ58gMcfhHdV1Dy9GZn6PfXwcUzjtC
tGSfe4V3rr7FP3pPUyc9Xj73AlY79PwSae8EfjxNbLQBEaJERCBJ7KxBjoC0
NnSU49IXXqH32UvUJmVdlfTrPfxwh/iZL1KlmnqiWY2OUW+R83MZ81UbY0aI
gLEWmySIKEKIpEaBhOOgIkvwSuGLioEkDCYNy8rR155+XlDfvcmWUYgWfFIx
HA3pDyFpJqjop1NBCTFmTLwD0YhAnB0UhzVSCKUEnBh6MmK5GdAUBec6GUux
Yb9oMxlssPfuVXqjXc5XCWfaOd1OSVEUlGWJtVOpvPf4EDBaMxrVT4ygxPhW
YlGDD+kkHVwzonP3PaIQ9drDcXbtn2s3Htx59+b1f71968bKuYsvXXzphedf
XDpzZrnd6XSTVquljDGilCARYgj+/dWVv6/+/hdXjh58cvnVH37n5a9863f1
yoqcXJjfvv/w3q17d99/e2Xlvb/dv3/vxs7Odj+E4GfvqJnpJEkypXSxsHCy
yLM8ESXWWuvrerh2587tW977GggHICUiutXunLLG6MFgUDfNpIkxTgDHdDSG
j7kCyMfsxVlsPGLHAg+eD+xY4P/M+ght8RxOZDxGnAAAAABJRU5ErkJggg==
====

@ -1,21 +0,0 @@
#! /bin/sh
if [ -x /usr/bin/gtk-update-icon-cache ]
then
/usr/bin/gtk-update-icon-cache -f /usr/share/icons/hicolor
fi
if [ -x /usr/bin/update-desktop-database ]
then
/usr/bin/update-desktop-database
fi
if [ -x /usr/bin/update-mime-database ]
then
/usr/bin/update-mime-database /usr/share/mime
fi
if [ "$1" = "configure" -a -z "$2" -a -x /usr/bin/maemo-select-menu-location ]
then
/usr/bin/maemo-select-menu-location FBReader.desktop
fi

@ -1,16 +0,0 @@
#! /bin/sh
if [ -x /usr/bin/gtk-update-icon-cache ]
then
/usr/bin/gtk-update-icon-cache -f /usr/share/icons/hicolor
fi
if [ -x /usr/bin/update-desktop-database ]
then
/usr/bin/update-desktop-database
fi
if [ -x /usr/bin/update-mime-database ]
then
/usr/bin/update-mime-database /usr/share/mime
fi

@ -1,7 +0,0 @@
#! /bin/sh
set -e
if [ "$1" = "configure" ]; then
ldconfig
fi

@ -1,7 +0,0 @@
#! /bin/sh
set -e
if [ "$1" = "configure" ]; then
ldconfig
fi

@ -1,2 +0,0 @@
libzlcore @SOVERSIONCORE@ libzlibrary-maemo2 (>= @VERSION@-1) | libzlibrary-maemo2-noconic (>= @VERSION@-1), libzlibrary-maemo2 (<< 0.11.0) | libzlibrary-maemo2-noconic (<< 0.11.0)
libzltext @SOVERSIONCORE@ libzlibrary-maemo2 (>= @VERSION@-1) | libzlibrary-maemo2-noconic (>= @VERSION@-1), libzlibrary-maemo2 (<< 0.11.0) | libzlibrary-maemo2-noconic (<< 0.11.0)

@ -1,66 +0,0 @@
#!/usr/bin/make -f
## ----------------------------------------------------------------------
## debian/rules : package script for fbreader
## ----------------------------------------------------------------------
## ----------------------------------------------------------------------
## uncomment this to turn on verbose mode
#export DH_VERBOSE=1
## ----------------------------------------------------------------------
DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
## ----------------------------------------------------------------------
DEB_DIR = $(CURDIR)/debian
## ----------------------------------------------------------------------
## targets
clean:
dh_testdir
dh_testroot
[ ! -f Makefile ] || $(MAKE) distclean
dh_clean build-stamp install-stamp
build: build-stamp
build-stamp:
dh_testdir
$(MAKE) -C zlibrary/core TARGET_ARCH=maemo UI_TYPE=maemo2
$(MAKE) -C zlibrary/text TARGET_ARCH=maemo UI_TYPE=maemo2
$(MAKE) -C zlibrary/ui TARGET_ARCH=maemo UI_TYPE=maemo2
$(MAKE) -C fbreader TARGET_ARCH=maemo UI_TYPE=maemo2
touch build-stamp
install: install-stamp
install-stamp: build
dh_testdir
dh_testroot
dh_clean -k
dh_installdirs
$(MAKE) -C zlibrary/core TARGET_ARCH=maemo UI_TYPE=maemo2 DESTDIR=$(DEB_DIR)/libzlibrary-maemo2-noconic do_install
$(MAKE) -C zlibrary/text TARGET_ARCH=maemo UI_TYPE=maemo2 DESTDIR=$(DEB_DIR)/libzlibrary-maemo2-noconic do_install
$(MAKE) -C zlibrary/ui TARGET_ARCH=maemo UI_TYPE=maemo2 DESTDIR=$(DEB_DIR)/libzlibrary-maemo2-noconic do_install
$(MAKE) -C fbreader TARGET_ARCH=maemo UI_TYPE=maemo2 DESTDIR=$(DEB_DIR)/fbreader-maemo2 do_install
$(MAKE) -C zlibrary/core TARGET_ARCH=maemo UI_TYPE=maemo2 DESTDIR=$(DEB_DIR)/libzlibrary-maemo2-dev do_install_dev
$(MAKE) -C zlibrary/text TARGET_ARCH=maemo UI_TYPE=maemo2 DESTDIR=$(DEB_DIR)/libzlibrary-maemo2-dev do_install_dev
touch install-stamp
binary-indep:
binary-arch: build install
dh_testdir
dh_testroot
dh_compress -a
dh_fixperms -a
dh_installdeb -a
dh_shlibdeps -a -l $(PWD)/debian/libzlibrary-maemo2/usr/lib
dh_gencontrol -a
dh_md5sums -a
dh_builddeb -a
binary: binary-indep binary-arch
.PHONY: clean build install binary-indep binary-arch binary
## ----------------------------------------------------------------------

@ -1,225 +0,0 @@
fbreader (0.10.7-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Mon, 30 Mar 2009 13:29:00 +0400
fbreader (0.10.6-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Thu, 26 Mar 2009 22:15:00 +0200
fbreader (0.10.5-3) stable; urgency=low
* versions for maemo2 and maemo3 were separated: maemo2 doesn't contain
conic library
-- Nikolay Pultsin <geometer@fbreader.org> Sun, 22 Mar 2009 17:37:00 +0200
fbreader (0.10.5-2) stable; urgency=low
* version with more debug information
-- Nikolay Pultsin <geometer@fbreader.org> Sun, 22 Mar 2009 11:42:00 +0200
fbreader (0.10.5-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Fri, 20 Mar 2009 18:12:00 +0200
fbreader (0.10.4-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Sun, 8 Feb 2009 03:24:00 +0300
fbreader (0.10.0-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Sun, 3 Aug 2008 19:01:00 +0400
fbreader (0.8.17-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Sun, 23 Mar 2008 03:30:00 +0300
fbreader (0.8.16-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Fri, 20 Mar 2008 03:10:00 +0300
fbreader (0.8.15-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Tue, 26 Feb 2008 02:41:00 +0300
fbreader (0.8.14-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Sat, 9 Feb 2008 22:48:00 +0300
fbreader (0.8.13-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Thr, 24 Jan 2008 15:24:00 +0300
fbreader (0.8.12-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Sat, 19 Jan 2008 03:47:00 +0300
fbreader (0.8.11-1) stable; urgency=low
* new upstream version
* dependency rules have been changed
-- Nikolay Pultsin <geometer@fbreader.org> Sat, 12 Jan 2008 22:27:00 +0300
fbreader (0.8.10-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Fri, 4 Jan 2008 20:53:00 +0300
fbreader (0.8.9-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Thr, 27 Dec 2007 07:13:00 +0300
fbreader (0.8.8d-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Mon, 24 Dec 2007 10:27:00 +0300
fbreader (0.8.8c-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Sun, 23 Dec 2007 08:14:00 +0300
fbreader (0.8.8b-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Thr, 20 Dec 2007 22:30:00 +0300
fbreader (0.8.8a-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Mon, 17 Dec 2007 03:03:00 +0300
fbreader (0.8.8-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Fri, 23 Nov 2007 22:55:00 +0300
fbreader (0.8.7b-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Tue, 6 Nov 2007 22:55:00 +0300
fbreader (0.8.7a-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Sat, 3 Nov 2007 00:00:00 +0400
fbreader (0.8.7-3) stable; urgency=low
* dependencies list has been fixed
-- Nikolay Pultsin <geometer@fbreader.org> Sat, 20 Oct 2007 00:00:00 +0400
fbreader (0.8.7-2) stable; urgency=low
* dependencies list has been fixed
-- Nikolay Pultsin <geometer@fbreader.org> Fri, 19 Oct 2007 00:00:00 +0400
fbreader (0.8.7-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Fri, 5 Sep 2007 00:00:00 +0400
fbreader (0.8.6d-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Thr, 7 Sep 2007 12:00:00 +0400
fbreader (0.8.6c-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Thr, 30 Aug 2007 02:30:00 +0400
fbreader (0.8.6a-1) stable; urgency=low
* fixed stylus/finger pressing detection problem on Nokia 770 device
-- Nikolay Pultsin <geometer@fbreader.org> Thr, 8 Aug 2007 18:47:00 +0400
fbreader (0.8.6-3) stable; urgency=low
* fixed fbreader-maemo2 package icon
-- Nikolay Pultsin <geometer@fbreader.org> Thr, 8 Aug 2007 01:55:00 +0400
fbreader (0.8.6-2) stable; urgency=low
* fixed fbreader-maemo2 package icon
-- Nikolay Pultsin <geometer@fbreader.org> Thr, 8 Aug 2007 01:09:00 +0400
fbreader (0.8.6-1) stable; urgency=low
* new upstream version
* added libzlibrary-dev package
-- Nikolay Pultsin <geometer@fbreader.org> Thr, 5 Aug 2007 23:49:00 +0400
fbreader (0.8.5c-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Thr, 19 Jul 2007 15:20:00 +0400
fbreader (0.8.5a-1) stable; urgency=low
* new upstream version
* maemo package icon has been restored
-- Nikolay Pultsin <geometer@fbreader.org> Sat, 7 Jul 2007 02:12:00 +0400
fbreader (0.8.5-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Sat, 7 Jul 2007 02:12:00 +0400
fbreader (0.8.4zz-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Thr, 5 Jul 2007 03:17:00 +0400
fbreader (0.8.4z-1) stable; urgency=low
* Initial release.
-- Nikolay Pultsin <geometer@fbreader.org> Sat, 30 Jun 2007 01:48:00 +0400

@ -1,81 +0,0 @@
Source: fbreader
Priority: optional
Maintainer: Nikolay Pultsin <geometer@fbreader.org>
Standards-Version: 3.6.1
Build-Depends: debhelper, libexpat1-dev, libbz2-dev, libz-dev, hildon-libs-dev, libosso-dev, liblinebreak-dev, libfribidi-dev, libcurl3-dev, libconic0-dev
Package: libzlibrary-maemo2
Section: user/libs
Priority: optional
Architecture: armel
Replaces: libzlibrary-maemo2-noconic
Conflicts: fbreader-maemo2 (<< 0.8.0)
Depends: hildon-libs0, libatk1.0-0 (>= 1.9.0), libbz2-1.0, libc6 (>= 2.3.5-1), libexpat1 (>= 1.95.8), libgcc1 (>= 1:3.4.4), libglib2.0-0 (>= 2.8.6-1osso1), libgtk2.0-0 (>= 2:2.6.10-1.osso8), libosso1, libpango1.0-0 (>= 1.8.1), libstdc++6 (>= 3.4.4), zlib1g (>= 1:1.2.1), libfribidi0, libcurl3, libconic0, liblinebreak-maemo2
Description: Platform-dependent part of fbreader
Home page: http://www.fbreader.org/
Package: libzlibrary-maemo2-dev
Section: libdevel
Priority: optional
Architecture: armel
Replaces: libzlibrary-dev
Depends: libzlibrary-maemo2 (= ${Source-Version}) | libzlibrary-maemo2-noconic (= ${Source-Version})
Description: zlibrary - development files
Home page: http://www.fbreader.org/
Package: fbreader-maemo2
Section: user/tools
Priority: optional
Architecture: armel
Depends: ${shlibs:Depends}
Description: e-book reader
FBReader is an e-book reader for UNIX/Windows computers.
.
Main features:
* supports several open e-book formats: fb2, html, chm, plucker,
palmdoc, ztxt, tcr (psion text), rtf, oeb, openreader, non-DRM'ed
mobipocket, plain text
* reads directly from tar, zip, gzip, bzip2 archives (you can have
several books in one archive)
* supports structured view for your e-book collection
* automatically determines encoding
* automatically generates table of contents
* keeps the last open book and the last read positions for all open books
between runs
* automatic hyphenation (patterns for several languages are included)
.
Home page: http://www.fbreader.org/
XB-Maemo-Icon-26:
iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAYAAACpSkzOAAAABmJLR0QA/wD/
AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH2QEKFjEFBaQC
bAAABStJREFUSMftlsmPXFcVh79zhzfX0Gm3y+20GwcnDomMEJEVAXIk2CAG
YaYVEUhs2WWTRRbsQCzZgGADKyT2RkLKAgkiYaJsIkAx3R7iEbvT6a4eqrte
Vb07ZFHV7W6TPwAkrnSk867OO997v3N07oX/r//2JQfOlT+9ZT+xdLqXhiBl
WTYhENc2Hsn2j9/49MI4LKjLX7u9cPmr7zz9yRf90QTr+7uiXaoGdS1b21uy
v9VnY+1RlNCEb3732+E/QN//2a9/+qVLn3/9QmLlxFNt70PD8MN1Vl/7UbJ0
77Ysd8rQPPvstb9++RtXRifPP1VuPlgmNr25qlVOTp1Ni7LU7XbLdMqCTqvw
mzvbk9/+4c+j8eLp3/zyB1//uTkAPZr4Z665wr75q5+wt71pyiKn1+pQzs1z
dXWV17ulym/fupC9+ccL409tcHH0kPTUaf6tc/bEkmlDqhRaKZI0ocpzbHTs
mnwJ4BA09JFoDSsr17hz8zpoQYBQO85OFN/r72CMYrhyHbf4PH2nKUc5e16z
s7FJkIi1lixJIQoQiTEiRADUASjPC3yIKGUQLWgRtGhERVCRXQn4xjHyEU9k
f+xogiIqM9U/ggiIHKYkxgjyBKjKMyYxYo3BKIM1ljzLKfOCEzi8g2Hj6HuH
pMn0a5VCRRCtpr5SKA1KTUtflOUB57F0mTWMG48gJDYlzTKyrCBVwvm9XULj
2PeeD7SmlVXEuEkwBiOC0hpRgiCIKESmvjEJ+CdAIpHBYAgiZFlBVbVotzpk
ecqp+zfZH48JUdhpzSPtDlEZnPMYQBmDPG5gEEFESIxlEvxx6SyKwf4eRZ5T
lS263S7tToeyrKiMxUdQEhh3u4Q0Q0JAxTBNavSs+LNiAdpoqqrE+SdqZIKj
HjWkSUpRlFRVSVHk5EWBa1WUEqmAKNM+SgUSPFpAqWmaOIMIoJWmVRSznSPS
RTyT8Zhet8u4HpHlOXmeYWzCZl7RU5okETKtic2YNDqsimA1WmsAQpy2dIwR
rYQ0fSzpIagZjXEywugEY+ysIQqKvGA9BpL5ORYTz9lmj2TjIa1OSt7O+SAx
s+JD8B7nAsEHtNbkWQZhcFy6wdbONEAprDUYM21xrYXGGv5y5jnM/AlefWaR
xa0HlN0MFye4rJjKpYQQPK6Z4BqHKEWZ58gMcfhHdV1Dy9GZn6PfXwcUzjtC
tGSfe4V3rr7FP3pPUyc9Xj73AlY79PwSae8EfjxNbLQBEaJERCBJ7KxBjoC0
NnSU49IXXqH32UvUJmVdlfTrPfxwh/iZL1KlmnqiWY2OUW+R83MZ81UbY0aI
gLEWmySIKEKIpEaBhOOgIkvwSuGLioEkDCYNy8rR155+XlDfvcmWUYgWfFIx
HA3pDyFpJqjop1NBCTFmTLwD0YhAnB0UhzVSCKUEnBh6MmK5GdAUBec6GUux
Yb9oMxlssPfuVXqjXc5XCWfaOd1OSVEUlGWJtVOpvPf4EDBaMxrVT4ygxPhW
YlGDD+kkHVwzonP3PaIQ9drDcXbtn2s3Htx59+b1f71968bKuYsvXXzphedf
XDpzZrnd6XSTVquljDGilCARYgj+/dWVv6/+/hdXjh58cvnVH37n5a9863f1
yoqcXJjfvv/w3q17d99/e2Xlvb/dv3/vxs7Odj+E4GfvqJnpJEkypXSxsHCy
yLM8ESXWWuvrerh2587tW977GggHICUiutXunLLG6MFgUDfNpIkxTgDHdDSG
j7kCyMfsxVlsPGLHAg+eD+xY4P/M+ght8RxOZDxGnAAAAABJRU5ErkJggg==
====

@ -1,21 +0,0 @@
#! /bin/sh
if [ -x /usr/bin/gtk-update-icon-cache ]
then
/usr/bin/gtk-update-icon-cache -f /usr/share/icons/hicolor
fi
if [ -x /usr/bin/update-desktop-database ]
then
/usr/bin/update-desktop-database
fi
if [ -x /usr/bin/update-mime-database ]
then
/usr/bin/update-mime-database /usr/share/mime
fi
if [ "$1" = "configure" -a -z "$2" -a -x /usr/bin/maemo-select-menu-location ]
then
/usr/bin/maemo-select-menu-location FBReader.desktop
fi

@ -1,16 +0,0 @@
#! /bin/sh
if [ -x /usr/bin/gtk-update-icon-cache ]
then
/usr/bin/gtk-update-icon-cache -f /usr/share/icons/hicolor
fi
if [ -x /usr/bin/update-desktop-database ]
then
/usr/bin/update-desktop-database
fi
if [ -x /usr/bin/update-mime-database ]
then
/usr/bin/update-mime-database /usr/share/mime
fi

@ -1,7 +0,0 @@
#! /bin/sh
set -e
if [ "$1" = "configure" ]; then
ldconfig
fi

@ -1,7 +0,0 @@
#! /bin/sh
set -e
if [ "$1" = "configure" ]; then
ldconfig
fi

@ -1,2 +0,0 @@
libzlcore @SOVERSIONCORE@ libzlibrary-maemo2 (>= @VERSION@-1) | libzlibrary-maemo2-noconic (>= @VERSION@-1), libzlibrary-maemo2 (<< 0.11.0) | libzlibrary-maemo2-noconic (<< 0.11.0)
libzltext @SOVERSIONCORE@ libzlibrary-maemo2 (>= @VERSION@-1) | libzlibrary-maemo2-noconic (>= @VERSION@-1), libzlibrary-maemo2 (<< 0.11.0) | libzlibrary-maemo2-noconic (<< 0.11.0)

@ -1,66 +0,0 @@
#!/usr/bin/make -f
## ----------------------------------------------------------------------
## debian/rules : package script for fbreader
## ----------------------------------------------------------------------
## ----------------------------------------------------------------------
## uncomment this to turn on verbose mode
#export DH_VERBOSE=1
## ----------------------------------------------------------------------
DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
## ----------------------------------------------------------------------
DEB_DIR = $(CURDIR)/debian
## ----------------------------------------------------------------------
## targets
clean:
dh_testdir
dh_testroot
[ ! -f Makefile ] || $(MAKE) distclean
dh_clean build-stamp install-stamp
build: build-stamp
build-stamp:
dh_testdir
$(MAKE) -C zlibrary/core TARGET_ARCH=maemo UI_TYPE=maemo3
$(MAKE) -C zlibrary/text TARGET_ARCH=maemo UI_TYPE=maemo3
$(MAKE) -C zlibrary/ui TARGET_ARCH=maemo UI_TYPE=maemo3
$(MAKE) -C fbreader TARGET_ARCH=maemo UI_TYPE=maemo3
touch build-stamp
install: install-stamp
install-stamp: build
dh_testdir
dh_testroot
dh_clean -k
dh_installdirs
$(MAKE) -C zlibrary/core TARGET_ARCH=maemo UI_TYPE=maemo3 DESTDIR=$(DEB_DIR)/libzlibrary-maemo2 do_install
$(MAKE) -C zlibrary/text TARGET_ARCH=maemo UI_TYPE=maemo3 DESTDIR=$(DEB_DIR)/libzlibrary-maemo2 do_install
$(MAKE) -C zlibrary/ui TARGET_ARCH=maemo UI_TYPE=maemo3 DESTDIR=$(DEB_DIR)/libzlibrary-maemo2 do_install
$(MAKE) -C fbreader TARGET_ARCH=maemo UI_TYPE=maemo3 DESTDIR=$(DEB_DIR)/fbreader-maemo2 do_install
$(MAKE) -C zlibrary/core TARGET_ARCH=maemo UI_TYPE=maemo3 DESTDIR=$(DEB_DIR)/libzlibrary-maemo2-dev do_install_dev
$(MAKE) -C zlibrary/text TARGET_ARCH=maemo UI_TYPE=maemo3 DESTDIR=$(DEB_DIR)/libzlibrary-maemo2-dev do_install_dev
touch install-stamp
binary-indep:
binary-arch: build install
dh_testdir
dh_testroot
dh_compress -a
dh_fixperms -a
dh_installdeb -a
dh_shlibdeps -a -l $(PWD)/debian/libzlibrary-maemo2/usr/lib
dh_gencontrol -a
dh_md5sums -a
dh_builddeb -a
binary: binary-indep binary-arch
.PHONY: clean build install binary-indep binary-arch binary
## ----------------------------------------------------------------------

@ -1,200 +0,0 @@
fbreader (0.10.7-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Mon, 30 Mar 2009 13:29:00 +0400
fbreader (0.10.6-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Thu, 26 Mar 2009 22:15:00 +0200
fbreader (0.10.5-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Fri, 20 Mar 2009 18:12:00 +0200
fbreader (0.10.4-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Sun, 8 Feb 2009 03:24:00 +0300
fbreader (0.10.0-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Sun, 3 Aug 2008 19:01:00 +0400
fbreader (0.8.17-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Sun, 23 Mar 2008 03:30:00 +0300
fbreader (0.8.16-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Fri, 20 Mar 2008 03:10:00 +0300
fbreader (0.8.15-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Tue, 26 Feb 2008 02:41:00 +0300
fbreader (0.8.14-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Sat, 9 Feb 2008 22:48:00 +0300
fbreader (0.8.13-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Thr, 24 Jan 2008 15:24:00 +0300
fbreader (0.8.12-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Sat, 19 Jan 2008 03:47:00 +0300
fbreader (0.8.11-1) stable; urgency=low
* new upstream version
* dependency rules have been changed
-- Nikolay Pultsin <geometer@fbreader.org> Sat, 12 Jan 2008 22:27:00 +0300
fbreader (0.8.10-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Fri, 4 Jan 2008 20:53:00 +0300
fbreader (0.8.9-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Thr, 27 Dec 2007 07:13:00 +0300
fbreader (0.8.8d-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Mon, 24 Dec 2007 10:27:00 +0300
fbreader (0.8.8c-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Sun, 23 Dec 2007 08:14:00 +0300
fbreader (0.8.8b-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Thr, 20 Dec 2007 22:30:00 +0300
fbreader (0.8.8a-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Mon, 17 Dec 2007 03:03:00 +0300
fbreader (0.8.8-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Fri, 23 Nov 2007 22:55:00 +0300
fbreader (0.8.7b-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Tue, 6 Nov 2007 22:55:00 +0300
fbreader (0.8.7a-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Sat, 3 Nov 2007 00:00:00 +0400
fbreader (0.8.7-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Fri, 5 Sep 2007 00:00:00 +0400
fbreader (0.8.6d-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Thr, 7 Sep 2007 12:00:00 +0400
fbreader (0.8.6c-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Thr, 30 Aug 2007 02:30:00 +0400
fbreader (0.8.6a-1) stable; urgency=low
* fixed stylus/finger pressing detection problem on Nokia 770 device
-- Nikolay Pultsin <geometer@fbreader.org> Thr, 8 Aug 2007 18:47:00 +0400
fbreader (0.8.6-3) stable; urgency=low
* fixed fbreader-maemo2 package icon
-- Nikolay Pultsin <geometer@fbreader.org> Thr, 8 Aug 2007 01:55:00 +0400
fbreader (0.8.6-2) stable; urgency=low
* fixed fbreader-maemo2 package icon
-- Nikolay Pultsin <geometer@fbreader.org> Thr, 8 Aug 2007 01:09:00 +0400
fbreader (0.8.6-1) stable; urgency=low
* new upstream version
* added libzlibrary-dev package
-- Nikolay Pultsin <geometer@fbreader.org> Thr, 5 Aug 2007 23:49:00 +0400
fbreader (0.8.5c-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Thr, 19 Jul 2007 15:20:00 +0400
fbreader (0.8.5a-1) stable; urgency=low
* new upstream version
* maemo package icon has been restored
-- Nikolay Pultsin <geometer@fbreader.org> Sat, 7 Jul 2007 02:12:00 +0400
fbreader (0.8.5-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Sat, 7 Jul 2007 02:12:00 +0400
fbreader (0.8.4zz-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Thr, 5 Jul 2007 03:17:00 +0400
fbreader (0.8.4z-1) stable; urgency=low
* Initial release.
-- Nikolay Pultsin <geometer@fbreader.org> Sat, 30 Jun 2007 01:48:00 +0400

@ -1,79 +0,0 @@
Source: fbreader
Priority: optional
Maintainer: Nikolay Pultsin <geometer@fbreader.org>
Standards-Version: 3.6.1
Build-Depends: debhelper, libexpat1-dev, libbz2-dev, libz-dev, libhildon1-dev, libosso-dev, liblinebreak-dev, libfribidi-dev, libcurl3-dev
Package: libzlibrary
Section: user/libs
Priority: optional
Architecture: armel
Conflicts: fbreader (<< 0.8.0)
Depends: ${shlibs:Depends}
Description: Platform-dependent part of fbreader
Home page: http://www.fbreader.org/
Package: libzlibrary-dev
Section: libdevel
Priority: optional
Architecture: armel
Depends: libzlibrary (= ${Source-Version})
Description: zlibrary - development files
Home page: http://www.fbreader.org/
Package: fbreader
Section: user/tools
Priority: optional
Architecture: armel
Depends: ${shlibs:Depends}
Description: e-book reader
FBReader is an e-book reader for UNIX/Windows computers.
.
Main features:
* supports several open e-book formats: fb2, html, chm, plucker,
palmdoc, ztxt, tcr (psion text), rtf, oeb, openreader, non-DRM'ed
mobipocket, plain text
* reads directly from tar, zip, gzip, bzip2 archives (you can have
several books in one archive)
* supports structured view for your e-book collection
* automatically determines encoding
* automatically generates table of contents
* keeps the last open book and the last read positions for all open books
between runs
* automatic hyphenation (patterns for several languages are included)
.
Home page: http://www.fbreader.org/
XB-Maemo-Icon-26:
iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAYAAACpSkzOAAAABmJLR0QA/wD/
AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH2QEKFjEFBaQC
bAAABStJREFUSMftlsmPXFcVh79zhzfX0Gm3y+20GwcnDomMEJEVAXIk2CAG
YaYVEUhs2WWTRRbsQCzZgGADKyT2RkLKAgkiYaJsIkAx3R7iEbvT6a4eqrte
Vb07ZFHV7W6TPwAkrnSk867OO997v3N07oX/r//2JQfOlT+9ZT+xdLqXhiBl
WTYhENc2Hsn2j9/49MI4LKjLX7u9cPmr7zz9yRf90QTr+7uiXaoGdS1b21uy
v9VnY+1RlNCEb3732+E/QN//2a9/+qVLn3/9QmLlxFNt70PD8MN1Vl/7UbJ0
77Ysd8rQPPvstb9++RtXRifPP1VuPlgmNr25qlVOTp1Ni7LU7XbLdMqCTqvw
mzvbk9/+4c+j8eLp3/zyB1//uTkAPZr4Z665wr75q5+wt71pyiKn1+pQzs1z
dXWV17ulym/fupC9+ccL409tcHH0kPTUaf6tc/bEkmlDqhRaKZI0ocpzbHTs
mnwJ4BA09JFoDSsr17hz8zpoQYBQO85OFN/r72CMYrhyHbf4PH2nKUc5e16z
s7FJkIi1lixJIQoQiTEiRADUASjPC3yIKGUQLWgRtGhERVCRXQn4xjHyEU9k
f+xogiIqM9U/ggiIHKYkxgjyBKjKMyYxYo3BKIM1ljzLKfOCEzi8g2Hj6HuH
pMn0a5VCRRCtpr5SKA1KTUtflOUB57F0mTWMG48gJDYlzTKyrCBVwvm9XULj
2PeeD7SmlVXEuEkwBiOC0hpRgiCIKESmvjEJ+CdAIpHBYAgiZFlBVbVotzpk
ecqp+zfZH48JUdhpzSPtDlEZnPMYQBmDPG5gEEFESIxlEvxx6SyKwf4eRZ5T
lS263S7tToeyrKiMxUdQEhh3u4Q0Q0JAxTBNavSs+LNiAdpoqqrE+SdqZIKj
HjWkSUpRlFRVSVHk5EWBa1WUEqmAKNM+SgUSPFpAqWmaOIMIoJWmVRSznSPS
RTyT8Zhet8u4HpHlOXmeYWzCZl7RU5okETKtic2YNDqsimA1WmsAQpy2dIwR
rYQ0fSzpIagZjXEywugEY+ysIQqKvGA9BpL5ORYTz9lmj2TjIa1OSt7O+SAx
s+JD8B7nAsEHtNbkWQZhcFy6wdbONEAprDUYM21xrYXGGv5y5jnM/AlefWaR
xa0HlN0MFye4rJjKpYQQPK6Z4BqHKEWZ58gMcfhHdV1Dy9GZn6PfXwcUzjtC
tGSfe4V3rr7FP3pPUyc9Xj73AlY79PwSae8EfjxNbLQBEaJERCBJ7KxBjoC0
NnSU49IXXqH32UvUJmVdlfTrPfxwh/iZL1KlmnqiWY2OUW+R83MZ81UbY0aI
gLEWmySIKEKIpEaBhOOgIkvwSuGLioEkDCYNy8rR155+XlDfvcmWUYgWfFIx
HA3pDyFpJqjop1NBCTFmTLwD0YhAnB0UhzVSCKUEnBh6MmK5GdAUBec6GUux
Yb9oMxlssPfuVXqjXc5XCWfaOd1OSVEUlGWJtVOpvPf4EDBaMxrVT4ygxPhW
YlGDD+kkHVwzonP3PaIQ9drDcXbtn2s3Htx59+b1f71968bKuYsvXXzphedf
XDpzZrnd6XSTVquljDGilCARYgj+/dWVv6/+/hdXjh58cvnVH37n5a9863f1
yoqcXJjfvv/w3q17d99/e2Xlvb/dv3/vxs7Odj+E4GfvqJnpJEkypXSxsHCy
yLM8ESXWWuvrerh2587tW977GggHICUiutXunLLG6MFgUDfNpIkxTgDHdDSG
j7kCyMfsxVlsPGLHAg+eD+xY4P/M+ght8RxOZDxGnAAAAABJRU5ErkJggg==
====

@ -1,21 +0,0 @@
#! /bin/sh
if [ -x /usr/bin/gtk-update-icon-cache ]
then
/usr/bin/gtk-update-icon-cache -f /usr/share/icons/hicolor
fi
if [ -x /usr/bin/update-desktop-database ]
then
/usr/bin/update-desktop-database
fi
if [ -x /usr/bin/update-mime-database ]
then
/usr/bin/update-mime-database /usr/share/mime
fi
if [ "$1" = "configure" -a -z "$2" -a -x /usr/bin/maemo-select-menu-location ]
then
/usr/bin/maemo-select-menu-location FBReader.desktop
fi

@ -1,16 +0,0 @@
#! /bin/sh
if [ -x /usr/bin/gtk-update-icon-cache ]
then
/usr/bin/gtk-update-icon-cache -f /usr/share/icons/hicolor
fi
if [ -x /usr/bin/update-desktop-database ]
then
/usr/bin/update-desktop-database
fi
if [ -x /usr/bin/update-mime-database ]
then
/usr/bin/update-mime-database /usr/share/mime
fi

@ -1,7 +0,0 @@
#! /bin/sh
set -e
if [ "$1" = "configure" ]; then
ldconfig
fi

@ -1,7 +0,0 @@
#! /bin/sh
set -e
if [ "$1" = "configure" ]; then
ldconfig
fi

@ -1,2 +0,0 @@
libzlcore @SOVERSIONCORE@ libzlibrary (>= @VERSION@-1), libzlibrary (<< 0.11.0-1)
libzltext @SOVERSIONTEXT@ libzlibrary (>= @VERSION@-1), libzlibrary (<< 0.11.0-1)

@ -1,66 +0,0 @@
#!/usr/bin/make -f
## ----------------------------------------------------------------------
## debian/rules : package script for fbreader
## ----------------------------------------------------------------------
## ----------------------------------------------------------------------
## uncomment this to turn on verbose mode
#export DH_VERBOSE=1
## ----------------------------------------------------------------------
DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
## ----------------------------------------------------------------------
DEB_DIR = $(CURDIR)/debian
## ----------------------------------------------------------------------
## targets
clean:
dh_testdir
dh_testroot
[ ! -f Makefile ] || $(MAKE) distclean
dh_clean build-stamp install-stamp
build: build-stamp
build-stamp:
dh_testdir
$(MAKE) -C zlibrary/core TARGET_ARCH=maemo UI_TYPE=maemo4
$(MAKE) -C zlibrary/text TARGET_ARCH=maemo UI_TYPE=maemo4
$(MAKE) -C zlibrary/ui TARGET_ARCH=maemo UI_TYPE=maemo4
$(MAKE) -C fbreader TARGET_ARCH=maemo UI_TYPE=maemo4
touch build-stamp
install: install-stamp
install-stamp: build
dh_testdir
dh_testroot
dh_clean -k
dh_installdirs
$(MAKE) -C zlibrary/core TARGET_ARCH=maemo UI_TYPE=maemo4 DESTDIR=$(DEB_DIR)/libzlibrary do_install
$(MAKE) -C zlibrary/text TARGET_ARCH=maemo UI_TYPE=maemo4 DESTDIR=$(DEB_DIR)/libzlibrary do_install
$(MAKE) -C zlibrary/ui TARGET_ARCH=maemo UI_TYPE=maemo4 DESTDIR=$(DEB_DIR)/libzlibrary do_install
$(MAKE) -C fbreader TARGET_ARCH=maemo UI_TYPE=maemo4 DESTDIR=$(DEB_DIR)/fbreader do_install
$(MAKE) -C zlibrary/core TARGET_ARCH=maemo UI_TYPE=maemo4 DESTDIR=$(DEB_DIR)/libzlibrary-dev do_install_dev
$(MAKE) -C zlibrary/text TARGET_ARCH=maemo UI_TYPE=maemo4 DESTDIR=$(DEB_DIR)/libzlibrary-dev do_install_dev
touch install-stamp
binary-indep:
binary-arch: build install
dh_testdir
dh_testroot
dh_compress -a
dh_fixperms -a
dh_installdeb -a
dh_shlibdeps -a -l $(DEB_DIR)/libzlibrary/usr/lib
dh_gencontrol -a
dh_md5sums -a
dh_builddeb -a
binary: binary-indep binary-arch
.PHONY: clean build install binary-indep binary-arch binary
## ----------------------------------------------------------------------

@ -1,218 +0,0 @@
fbreader (0.14.0-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Thu, 24 Mar 2010 14:49:00 +0300
fbreader (0.12.5.1-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Thu, 25 Feb 2010 17:45:00 +0300
fbreader (0.11.3-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Sun, 25 Oct 2009 21:30:07 +0200
fbreader (0.10.7-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Mon, 30 Mar 2009 13:29:00 +0400
fbreader (0.10.6-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Thu, 26 Mar 2009 22:15:00 +0200
fbreader (0.10.5-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Fri, 20 Mar 2009 18:12:00 +0200
fbreader (0.10.4-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Sun, 8 Feb 2009 03:24:00 +0300
fbreader (0.10.0-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Sun, 3 Aug 2008 19:01:00 +0400
fbreader (0.8.17-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Sun, 23 Mar 2008 03:30:00 +0300
fbreader (0.8.16-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Fri, 20 Mar 2008 03:10:00 +0300
fbreader (0.8.15-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Tue, 26 Feb 2008 02:41:00 +0300
fbreader (0.8.14-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Sat, 9 Feb 2008 22:48:00 +0300
fbreader (0.8.13-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Thr, 24 Jan 2008 15:24:00 +0300
fbreader (0.8.12-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Sat, 19 Jan 2008 03:47:00 +0300
fbreader (0.8.11-1) stable; urgency=low
* new upstream version
* dependency rules have been changed
-- Nikolay Pultsin <geometer@fbreader.org> Sat, 12 Jan 2008 22:27:00 +0300
fbreader (0.8.10-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Fri, 4 Jan 2008 20:53:00 +0300
fbreader (0.8.9-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Thr, 27 Dec 2007 07:13:00 +0300
fbreader (0.8.8d-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Mon, 24 Dec 2007 10:27:00 +0300
fbreader (0.8.8c-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Sun, 23 Dec 2007 08:14:00 +0300
fbreader (0.8.8b-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Thr, 20 Dec 2007 22:30:00 +0300
fbreader (0.8.8a-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Mon, 17 Dec 2007 03:03:00 +0300
fbreader (0.8.8-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Fri, 23 Nov 2007 22:55:00 +0300
fbreader (0.8.7b-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Tue, 6 Nov 2007 22:55:00 +0300
fbreader (0.8.7a-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Sat, 3 Nov 2007 00:00:00 +0400
fbreader (0.8.7-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Fri, 5 Sep 2007 00:00:00 +0400
fbreader (0.8.6d-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Thr, 7 Sep 2007 12:00:00 +0400
fbreader (0.8.6c-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Thr, 30 Aug 2007 02:30:00 +0400
fbreader (0.8.6a-1) stable; urgency=low
* fixed stylus/finger pressing detection problem on Nokia 770 device
-- Nikolay Pultsin <geometer@fbreader.org> Thr, 8 Aug 2007 18:47:00 +0400
fbreader (0.8.6-3) stable; urgency=low
* fixed fbreader-maemo2 package icon
-- Nikolay Pultsin <geometer@fbreader.org> Thr, 8 Aug 2007 01:55:00 +0400
fbreader (0.8.6-2) stable; urgency=low
* fixed fbreader-maemo2 package icon
-- Nikolay Pultsin <geometer@fbreader.org> Thr, 8 Aug 2007 01:09:00 +0400
fbreader (0.8.6-1) stable; urgency=low
* new upstream version
* added libzlibrary-dev package
-- Nikolay Pultsin <geometer@fbreader.org> Thr, 5 Aug 2007 23:49:00 +0400
fbreader (0.8.5c-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Thr, 19 Jul 2007 15:20:00 +0400
fbreader (0.8.5a-1) stable; urgency=low
* new upstream version
* maemo package icon has been restored
-- Nikolay Pultsin <geometer@fbreader.org> Sat, 7 Jul 2007 02:12:00 +0400
fbreader (0.8.5-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Sat, 7 Jul 2007 02:12:00 +0400
fbreader (0.8.4zz-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Thr, 5 Jul 2007 03:17:00 +0400
fbreader (0.8.4z-1) stable; urgency=low
* Initial release.
-- Nikolay Pultsin <geometer@fbreader.org> Sat, 30 Jun 2007 01:48:00 +0400

@ -1,79 +0,0 @@
Source: fbreader
Priority: optional
Maintainer: Nikolay Pultsin <geometer@fbreader.org>
Standards-Version: 3.6.1
Build-Depends: debhelper, libexpat1-dev, libbz2-dev, libz-dev, libhildon1-dev, libosso-dev, liblinebreak-dev, libfribidi-dev, libcurl3-dev, libconic0-dev, libsqlite3-dev
Package: libzlibrary
Section: user/libs
Priority: optional
Architecture: armel i386
Conflicts: fbreader (<< 0.8.0)
Depends: ${shlibs:Depends}
Description: Platform-dependent part of fbreader
Home page: http://www.fbreader.org/
Package: libzlibrary-dev
Section: libdevel
Priority: optional
Architecture: armel i386
Depends: libzlibrary (= ${Source-Version})
Description: zlibrary - development files
Home page: http://www.fbreader.org/
Package: fbreader
Section: user/tools
Priority: optional
Architecture: armel i386
Depends: ${shlibs:Depends}
Description: e-book reader
FBReader is an e-book reader for UNIX/Windows computers.
.
Main features:
* supports several open e-book formats: fb2, html, chm, plucker,
palmdoc, ztxt, tcr (psion text), rtf, oeb, openreader, non-DRM'ed
mobipocket, plain text
* reads directly from tar, zip, gzip, bzip2 archives (you can have
several books in one archive)
* supports structured view for your e-book collection
* automatically determines encoding
* automatically generates table of contents
* keeps the last open book and the last read positions for all open books
between runs
* automatic hyphenation (patterns for several languages are included)
.
Home page: http://www.fbreader.org/
XB-Maemo-Icon-26:
iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAYAAACpSkzOAAAABmJLR0QA/wD/
AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH2QEKFjEFBaQC
bAAABStJREFUSMftlsmPXFcVh79zhzfX0Gm3y+20GwcnDomMEJEVAXIk2CAG
YaYVEUhs2WWTRRbsQCzZgGADKyT2RkLKAgkiYaJsIkAx3R7iEbvT6a4eqrte
Vb07ZFHV7W6TPwAkrnSk867OO997v3N07oX/r//2JQfOlT+9ZT+xdLqXhiBl
WTYhENc2Hsn2j9/49MI4LKjLX7u9cPmr7zz9yRf90QTr+7uiXaoGdS1b21uy
v9VnY+1RlNCEb3732+E/QN//2a9/+qVLn3/9QmLlxFNt70PD8MN1Vl/7UbJ0
77Ysd8rQPPvstb9++RtXRifPP1VuPlgmNr25qlVOTp1Ni7LU7XbLdMqCTqvw
mzvbk9/+4c+j8eLp3/zyB1//uTkAPZr4Z665wr75q5+wt71pyiKn1+pQzs1z
dXWV17ulym/fupC9+ccL409tcHH0kPTUaf6tc/bEkmlDqhRaKZI0ocpzbHTs
mnwJ4BA09JFoDSsr17hz8zpoQYBQO85OFN/r72CMYrhyHbf4PH2nKUc5e16z
s7FJkIi1lixJIQoQiTEiRADUASjPC3yIKGUQLWgRtGhERVCRXQn4xjHyEU9k
f+xogiIqM9U/ggiIHKYkxgjyBKjKMyYxYo3BKIM1ljzLKfOCEzi8g2Hj6HuH
pMn0a5VCRRCtpr5SKA1KTUtflOUB57F0mTWMG48gJDYlzTKyrCBVwvm9XULj
2PeeD7SmlVXEuEkwBiOC0hpRgiCIKESmvjEJ+CdAIpHBYAgiZFlBVbVotzpk
ecqp+zfZH48JUdhpzSPtDlEZnPMYQBmDPG5gEEFESIxlEvxx6SyKwf4eRZ5T
lS263S7tToeyrKiMxUdQEhh3u4Q0Q0JAxTBNavSs+LNiAdpoqqrE+SdqZIKj
HjWkSUpRlFRVSVHk5EWBa1WUEqmAKNM+SgUSPFpAqWmaOIMIoJWmVRSznSPS
RTyT8Zhet8u4HpHlOXmeYWzCZl7RU5okETKtic2YNDqsimA1WmsAQpy2dIwR
rYQ0fSzpIagZjXEywugEY+ysIQqKvGA9BpL5ORYTz9lmj2TjIa1OSt7O+SAx
s+JD8B7nAsEHtNbkWQZhcFy6wdbONEAprDUYM21xrYXGGv5y5jnM/AlefWaR
xa0HlN0MFye4rJjKpYQQPK6Z4BqHKEWZ58gMcfhHdV1Dy9GZn6PfXwcUzjtC
tGSfe4V3rr7FP3pPUyc9Xj73AlY79PwSae8EfjxNbLQBEaJERCBJ7KxBjoC0
NnSU49IXXqH32UvUJmVdlfTrPfxwh/iZL1KlmnqiWY2OUW+R83MZ81UbY0aI
gLEWmySIKEKIpEaBhOOgIkvwSuGLioEkDCYNy8rR155+XlDfvcmWUYgWfFIx
HA3pDyFpJqjop1NBCTFmTLwD0YhAnB0UhzVSCKUEnBh6MmK5GdAUBec6GUux
Yb9oMxlssPfuVXqjXc5XCWfaOd1OSVEUlGWJtVOpvPf4EDBaMxrVT4ygxPhW
YlGDD+kkHVwzonP3PaIQ9drDcXbtn2s3Htx59+b1f71968bKuYsvXXzphedf
XDpzZrnd6XSTVquljDGilCARYgj+/dWVv6/+/hdXjh58cvnVH37n5a9863f1
yoqcXJjfvv/w3q17d99/e2Xlvb/dv3/vxs7Odj+E4GfvqJnpJEkypXSxsHCy
yLM8ESXWWuvrerh2587tW977GggHICUiutXunLLG6MFgUDfNpIkxTgDHdDSG
j7kCyMfsxVlsPGLHAg+eD+xY4P/M+ght8RxOZDxGnAAAAABJRU5ErkJggg==
====

@ -1,21 +0,0 @@
#! /bin/sh
if [ -x /usr/bin/gtk-update-icon-cache ]
then
/usr/bin/gtk-update-icon-cache -f /usr/share/icons/hicolor
fi
if [ -x /usr/bin/update-desktop-database ]
then
/usr/bin/update-desktop-database
fi
if [ -x /usr/bin/update-mime-database ]
then
/usr/bin/update-mime-database /usr/share/mime
fi
if [ "$1" = "configure" -a -z "$2" -a -x /usr/bin/maemo-select-menu-location ]
then
/usr/bin/maemo-select-menu-location FBReader.desktop
fi

@ -1,16 +0,0 @@
#! /bin/sh
if [ -x /usr/bin/gtk-update-icon-cache ]
then
/usr/bin/gtk-update-icon-cache -f /usr/share/icons/hicolor
fi
if [ -x /usr/bin/update-desktop-database ]
then
/usr/bin/update-desktop-database
fi
if [ -x /usr/bin/update-mime-database ]
then
/usr/bin/update-mime-database /usr/share/mime
fi

@ -1,7 +0,0 @@
#! /bin/sh
set -e
if [ "$1" = "configure" ]; then
ldconfig
fi

@ -1,7 +0,0 @@
#! /bin/sh
set -e
if [ "$1" = "configure" ]; then
ldconfig
fi

@ -1,2 +0,0 @@
libzlcore @SOVERSIONCORE@ libzlibrary (>= @VERSION@-1), libzlibrary (<< 0.15.0-1)
libzltext @SOVERSIONTEXT@ libzlibrary (>= @VERSION@-1), libzlibrary (<< 0.15.0-1)

@ -1,66 +0,0 @@
#!/usr/bin/make -f
## ----------------------------------------------------------------------
## debian/rules : package script for fbreader
## ----------------------------------------------------------------------
## ----------------------------------------------------------------------
## uncomment this to turn on verbose mode
#export DH_VERBOSE=1
## ----------------------------------------------------------------------
DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
## ----------------------------------------------------------------------
DEB_DIR = $(CURDIR)/debian
## ----------------------------------------------------------------------
## targets
clean:
dh_testdir
dh_testroot
[ ! -f Makefile ] || $(MAKE) distclean
dh_clean build-stamp install-stamp
build: build-stamp
build-stamp:
dh_testdir
$(MAKE) -C zlibrary/core TARGET_ARCH=maemo UI_TYPE=maemo5
$(MAKE) -C zlibrary/text TARGET_ARCH=maemo UI_TYPE=maemo5
$(MAKE) -C zlibrary/ui TARGET_ARCH=maemo UI_TYPE=maemo5
$(MAKE) -C fbreader TARGET_ARCH=maemo UI_TYPE=maemo5
touch build-stamp
install: install-stamp
install-stamp: build
dh_testdir
dh_testroot
dh_clean -k
dh_installdirs
$(MAKE) -C zlibrary/core TARGET_ARCH=maemo UI_TYPE=maemo5 DESTDIR=$(DEB_DIR)/libzlibrary do_install
$(MAKE) -C zlibrary/text TARGET_ARCH=maemo UI_TYPE=maemo5 DESTDIR=$(DEB_DIR)/libzlibrary do_install
$(MAKE) -C zlibrary/ui TARGET_ARCH=maemo UI_TYPE=maemo5 DESTDIR=$(DEB_DIR)/libzlibrary do_install
$(MAKE) -C fbreader TARGET_ARCH=maemo UI_TYPE=maemo5 DESTDIR=$(DEB_DIR)/fbreader do_install
$(MAKE) -C zlibrary/core TARGET_ARCH=maemo UI_TYPE=maemo5 DESTDIR=$(DEB_DIR)/libzlibrary-dev do_install_dev
$(MAKE) -C zlibrary/text TARGET_ARCH=maemo UI_TYPE=maemo5 DESTDIR=$(DEB_DIR)/libzlibrary-dev do_install_dev
touch install-stamp
binary-indep:
binary-arch: build install
dh_testdir
dh_testroot
dh_compress -a
dh_fixperms -a
dh_installdeb -a
dh_shlibdeps -a -l $(DEB_DIR)/libzlibrary/usr/lib
dh_gencontrol -a
dh_md5sums -a
dh_builddeb -a
binary: binary-indep binary-arch
.PHONY: clean build install binary-indep binary-arch binary
## ----------------------------------------------------------------------

@ -1,344 +0,0 @@
fbreader (0.12.10-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Thu, 1 Apr 2010 13:48:00 +0300
fbreader (0.12.9-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Thu, 25 Mar 2010 02:33:00 +0300
fbreader (0.12.8-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Mon, 22 Mar 2010 21:42:00 +0300
fbreader (0.12.7-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Fri, 5 Mar 2010 00:39:00 +0300
fbreader (0.12.6-1) stable; urgency=low
* new upstream version
* Text selection is disabled by default. That means the tap scrolling
works faster in 200 ms.
-- Nikolay Pultsin <geometer@fbreader.org> Tue, 2 Mar 2010 20:53:00 +0300
fbreader (0.12.5.smartq-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Sun, 21 Feb 2010 16:20:00 +0300
fbreader (0.12.2-5) stable; urgency=low
* Double-click detection is switched off if a text selection is disabled
-- Nikolay Pultsin <geometer@fbreader.org> Tue, 16 Feb 2010 16:35:00 +0300
fbreader (0.12.2-4) stable; urgency=low
* Better solution for chm crash problem: gcc 4.3 is used instead of 4.4
* Fixed position indicator behaviour
-- Nikolay Pultsin <geometer@fbreader.org> Sun, 14 Feb 2010 15:46:00 +0300
fbreader (0.12.2-3) stable; urgency=low
* Arabic and Chinese entries have been added to the desktop file
* A SmartQ-specific crach on chm files has been fixed
-- Nikolay Pultsin <geometer@fbreader.org> Sat, 13 Feb 2010 14:46:00 +0300
fbreader (0.12.2-2) stable; urgency=low
* several SmartQ-specific patches have been added
-- Nikolay Pultsin <geometer@fbreader.org> Tue, 9 Feb 2010 18:51:00 +0300
fbreader (0.12.2-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Fri, 29 Jan 2010 19:53:00 +0300
fbreader (0.12.1-2) stable; urgency=low
* cosmetical fixes
-- Nikolay Pultsin <geometer@fbreader.org> Sun, 13 Dec 2009 11:41:00 +0300
fbreader (0.12.1-1) stable; urgency=low
* new upstream version
* updated man page
-- Nikolay Pultsin <geometer@fbreader.org> Sun, 13 Dec 2009 09:23:00 +0300
fbreader (0.12.0-3) stable; urgency=low
* fixed rules file
-- Nikolay Pultsin <geometer@fbreader.org> Sun, 6 Dec 2009 19:48:00 +0300
fbreader (0.12.0-2) stable; urgency=low
* fixed dependencies list
-- Nikolay Pultsin <geometer@fbreader.org> Sun, 6 Dec 2009 19:05:00 +0300
fbreader (0.12.0-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Sat, 5 Dec 2009 03:40:00 +0300
fbreader (0.11.2-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Tue, 20 Oct 2009 13:22:00 +0400
fbreader (0.11.1-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Tue, 13 Oct 2009 23:38:00 +0400
fbreader (0.11.0-2) stable; urgency=low
* fixed package dependencies in debian files
-- Nikolay Pultsin <geometer@fbreader.org> Sat, 26 Sep 2009 11:23:00 +0400
fbreader (0.11.0-1) stable; urgency=low
* new upstream version
-- Vasiliy Bout <bout.vasiliy@gmail.com> Wed, 16 Sep 2009 16:48:00 +0400
fbreader (0.10.7-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Mon, 30 Mar 2009 13:29:00 +0400
fbreader (0.10.6-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Thu, 26 Mar 2009 22:15:00 +0200
fbreader (0.10.5-1) stable; urgency=low
* new upstream version
* conflicts with ubuntu fbreader packages have been resolved
* dependencies for libzltext-dev have been fixed
-- Nikolay Pultsin <geometer@fbreader.org> Fri, 20 Mar 2009 18:12:00 +0200
fbreader (0.10.4-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Wed, 18 Mar 2009 23:33:00 +0200
fbreader (0.10.3-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Thu, 5 Feb 2009 01:11:00 +0200
fbreader (0.10.2-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Fri, 17 Jan 2009 23:42:00 +0300
fbreader (0.10.1-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Fri, 16 Jan 2009 12:31:00 +0300
fbreader (0.10.0-1) stable; urgency=low
* new upstream version
* add-missing-headers.patch integrated into the upstream
* fix-centering-with-margins.patch integrated into the upstream
* use-sensible-browser.patch added to the upstream debian fileset
* remove-deprecated-fields-in-desktop-file.patch intgerated into the upstream
-- Nikolay Pultsin <geometer@fbreader.org> Sun, 3 Aug 2008 19:01:00 +0400
fbreader (0.8.17-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Sun, 23 Mar 2008 03:30:00 +0300
fbreader (0.8.16-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Fri, 20 Mar 2008 03:10:00 +0300
fbreader (0.8.15-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Tue, 26 Feb 2008 02:41:00 +0300
fbreader (0.8.14-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Sat, 9 Feb 2008 22:48:00 +0300
fbreader (0.8.13-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Thr, 24 Jan 2008 15:24:00 +0300
fbreader (0.8.12-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Sat, 19 Jan 2008 03:47:00 +0300
fbreader (0.8.11-1) stable; urgency=low
* new upstream version
* dependency rules have been changed
-- Nikolay Pultsin <geometer@fbreader.org> Sat, 12 Jan 2008 22:27:00 +0300
fbreader (0.8.10-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Fri, 4 Jan 2008 20:53:00 +0300
fbreader (0.8.9-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Thr, 27 Dec 2007 07:13:00 +0300
fbreader (0.8.8d-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Mon, 24 Dec 2007 10:27:00 +0300
fbreader (0.8.8c-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Sun, 23 Dec 2007 08:14:00 +0300
fbreader (0.8.8a-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Mon, 17 Dec 2007 03:03:00 +0300
fbreader (0.8.8-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Fri, 23 Nov 2007 22:55:00 +0300
fbreader (0.8.7b-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Tue, 6 Nov 2007 22:55:00 +0300
fbreader (0.8.7a-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Wed, 31 Oct 2007 00:00:00 +0400
fbreader (0.8.7-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Fri, 5 Oct 2007 00:00:00 +0400
fbreader (0.8.6c-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Thr, 30 Aug 2007 02:30:00 +0400
fbreader (0.8.6a-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Thr, 8 Aug 2007 18:47:00 +0400
fbreader (0.8.6-1) stable; urgency=low
* new upstream version
* added libzlibrary-dev package
-- Nikolay Pultsin <geometer@fbreader.org> Thr, 5 Aug 2007 23:49:00 +0400
fbreader (0.8.5c-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Thr, 19 Jul 2007 15:20:00 +0400
fbreader (0.8.5b-1) stable; urgency=low
* new upstream version
* almost all changes from the previous change are now included into
the upstream version: zlibrary shared objects moving, rpath deletion,
and the man page.
-- Nikolay Pultsin <geometer@fbreader.org> Tue, 10 Jul 2007 21:50:00 +0400
fbreader (0.8.5a-1) unstable; urgency=low
* First upload to Debian. Closes: #432274
* Misc debianisation changes.
* Move zlibrary shared object files to /usr/lib from /usr/share.
* Remove use of rpath.
* Use sensible-browser.
* Added a basic man page.
-- Joey Hess <joeyh@debian.org> Mon, 09 Jul 2007 15:04:31 -0400
fbreader (0.8.5-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Sat, 7 Jul 2007 02:12:00 +0400
fbreader (0.8.4zz-1) stable; urgency=low
* new upstream version
-- Nikolay Pultsin <geometer@fbreader.org> Thu, 5 Jul 2007 03:17:00 +0400
fbreader (0.8.4z-2) stable; urgency=low
* postinst/postrm scripts were added
-- Nikolay Pultsin <geometer@fbreader.org> Fri, 29 Jun 2007 21:23:00 +0400
fbreader (0.8.4z-1) stable; urgency=low
* Initial release.
-- Nikolay Pultsin <geometer@fbreader.org> Fri, 29 Jun 2007 17:53:00 +0400

@ -1,115 +0,0 @@
Source: fbreader
Section: text
Priority: optional
Maintainer: Nikolay Pultsin <geometer@fbreader.org>
Standards-Version: 3.8.0
Build-Depends: debhelper (>= 5), libgtk2.0-dev, libqt3-mt-dev, libqt4-dev, libexpat1-dev, libbz2-dev, libz-dev, liblinebreak-dev (>= 1.0-1), libjpeg-dev, libfribidi-dev, libcurl-dev, quilt (>= 0.40), libsqlite3-dev
Package: fbreader
Priority: optional
Architecture: any
Replaces: fbreader-gtk, fbreader-qt, fbreader-qt4
Depends: ${shlibs:Depends}, libzlui
Description: e-book reader
FBReader is an e-book reader.
.
Main features:
* supports several open e-book formats: fb2, html, chm, plucker,
palmdoc, ztxt, tcr (psion text), rtf, oeb, openreader, non-DRM'ed
mobipocket, plain text
* reads directly from tar, zip, gzip, bzip2 archives (you can have
several books in one archive)
* supports a structured view of your e-book collection
* automatically determines encodings
* automatically generates a table of contents
* keeps the last open book and the last read positions for all open books
between runs
* automatic hyphenation (patterns for several languages are included)
* search and download books from network libraries
.
Homepage: http://www.fbreader.org/
Package: libzlcore
Section: libs
Priority: optional
Architecture: any
Conflicts: fbreader-gtk, fbreader-qt, fbreader-qt4
Replaces: libzlcore-data
Depends: ${shlibs:Depends}
Description: ZLibrary core
This is the core of ZLibrary, the library that the fbreader e-book reader
is based on.
.
ZLibrary is a cross-platform library to build applications running on desktop
Linux, Windows, different Linux-based PDAs using this library.
Package: libzltext
Section: libs
Priority: optional
Architecture: any
Replaces: libzltext-data
Depends: ${shlibs:Depends}, libzlcore (= ${binary:Version})
Description: ZLibrary text model/viewer
This package provides text model/viewer part of ZLibrary.
.
ZLibrary is a cross-platform library to build applications running on desktop
Linux, Windows, different Linux-based PDAs using this library.
Package: libzlui-gtk
Section: libs
Priority: optional
Architecture: any
Depends: ${shlibs:Depends}, libzlcore (= ${binary:Version})
Provides: libzlui
Description: GTK+ interface module for ZLibrary
This package provides a GTK+-based UI for ZLibrary.
.
ZLibrary is a cross-platform library to build applications running on desktop
Linux, Windows, different Linux-based PDAs using this library.
Package: libzlui-qt
Section: libs
Priority: optional
Architecture: any
Depends: ${shlibs:Depends}, libzlcore (= ${binary:Version})
Provides: libzlui
Description: Qt3 interface module for ZLibrary
This package provides a Qt3-based UI for ZLibrary.
.
ZLibrary is a cross-platform library to build applications running on desktop
Linux, Windows, different Linux-based PDAs using this library.
Package: libzlui-qt4
Section: libs
Priority: optional
Architecture: any
Depends: ${shlibs:Depends}
Provides: libzlui
Description: Qt4 interface module for ZLibrary
This package provides a Qt4-based UI for ZLibrary.
.
ZLibrary is a cross-platform library to build applications running on desktop
Linux, Windows, different Linux-based PDAs using this library.
Package: libzlcore-dev
Section: libdevel
Priority: optional
Architecture: any
Depends: libzlcore, ${shlibs:Depends}, libzlcore (= ${binary:Version})
Description: ZLibrary core - development files
This package contains development files for the ZLibrary core.
.
ZLibrary is a cross-platform library to build applications running on desktop
Linux, Windows, different Linux-based PDAs using this library.
Package: libzltext-dev
Section: libdevel
Priority: optional
Architecture: any
Depends: libzltext, ${shlibs:Depends}, libzltext (= ${binary:Version})
Description: ZLibrary text model/viewer - development files
This package contains development files for the ZLibrary text model/viewer
library.
.
ZLibrary is a cross-platform library to build applications running on desktop
Linux, Windows, different Linux-based PDAs using this library.

@ -1,51 +0,0 @@
This is the Debian prepackaged version of FBReader.
It was originally Debianised by Nikolay Pultsin <geometer@fbreader.org>.
Sources are downloaded from its website at:
http://www.fbreader.org/
It is copyright as follows:
/*
* Copyright (C) 2004-2009 Geometer Plus <contact@geometerplus.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
* 02110-1301, USA.
*/
On Debian systems, the full text of the GPL can be found in
/usr/share/common-licenses/GPL
It also includes html entity files with these licenses:
<!-- Portions (C) International Organization for Standardization 1986
Permission to copy in any form is granted for use with
conforming SGML systems and applications as defined in
ISO 8879, provided this notice is included in all copies.
-->
<!-- Copyright (C) 2001, 2002 Organization for the Advancement of Structured
Information Standards (OASIS).
Permission to use, copy, modify and distribute this entity set
and its accompanying documentation for any purpose and without
fee is hereby granted in perpetuity, provided that the above
copyright notice and this paragraph appear in all copies. The
copyright holders make no representation about the suitability of
the entities for any purpose. It is provided "as is" without
expressed or implied warranty.
-->

@ -1,2 +0,0 @@
?package(fbreader):needs="x11" section="Applications/Viewers" \
title="E-book reader" command="FBReader"

@ -1,11 +0,0 @@
--- fbreader-0.10.0.orig/fbreader/data/default/external.desktop.xml
+++ fbreader-0.10.0/fbreader/data/default/external.desktop.xml
@@ -3,7 +3,7 @@
<section name="Web Browser">
<program name="%browser" protocol="execute">
<action name="openLink" command="%command"/>
- <option name="command" defaultValue="mozilla %1 &amp;"/>
+ <option name="command" defaultValue="sensible-browser %1 &amp;"/>
</program>
</section>
</ExternalPrograms>

@ -1,58 +0,0 @@
--- fbreader-0.12.2.orig/fbreader/data/default/keymap.desktop.xml
+++ fbreader-0.12.2/fbreader/data/default/keymap.desktop.xml
@@ -1,36 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<keymap>
- <binding key="&lt;L&gt;" action="showLibrary"/>
- <binding key="&lt;W&gt;" action="showNetLibrary"/>
- <binding key="&lt;O&gt;" action="preferences"/>
- <binding key="&lt;LeftArrow&gt;" action="undo"/>
- <binding key="&lt;RightArrow&gt;" action="redo"/>
- <binding key="&lt;C&gt;" action="toc"/>
- <binding key="&lt;Ctrl&gt;+&lt;F&gt;" action="search"/>
- <binding key="&lt;F&gt;" action="search"/>
- <binding key="&lt;P&gt;" action="findPrevious"/>
- <binding key="&lt;F3&gt;" action="findNext"/>
- <binding key="&lt;N&gt;" action="findNext"/>
<binding key="&lt;PageDown&gt;" action="pageForward"/>
<binding key="&lt;PageUp&gt;" action="pageBackward"/>
- <binding key="&lt;DownArrow&gt;" action="lineForward"/>
- <binding key="&lt;UpArrow&gt;" action="lineBackward"/>
- <binding key="&lt;MouseScrollDown&gt;" action="mouseScrollForward"/>
- <binding key="&lt;MouseScrollUp&gt;" action="mouseScrollBackward"/>
- <binding key="&lt;Ctrl&gt;+&lt;Home&gt;" action="gotoHome"/>
- <binding key="&lt;Home&gt;" action="gotoSectionStart"/>
- <binding key="&lt;End&gt;" action="gotoSectionEnd"/>
+ <binding key="&lt;Return&gt;" action="rotate"/>
+ <binding key="&lt;FullScreen&gt;" action="toggleFullscreen"/>
<binding key="&lt;Esc&gt;" action="cancel"/>
- <binding key="&lt;=&gt;" action="increaseFont"/>
- <binding key="&lt;-&gt;" action="decreaseFont"/>
- <binding key="&lt;D&gt;" action="toggleIndicator"/>
- <binding key="&lt;Return&gt;" action="toggleFullscreen"/>
- <binding key="&lt;A&gt;" action="addBook"/>
- <binding key="&lt;I&gt;" action="bookInfo"/>
- <binding key="&lt;R&gt;" action="rotate"/>
- <binding key="&lt;Ctrl&gt;+&lt;DownArrow&gt;" action="nextTOCSection"/>
- <binding key="&lt;Ctrl&gt;+&lt;UpArrow&gt;" action="previousTOCSection"/>
- <binding key="&lt;Ctrl&gt;+&lt;C&gt;" action="copyToClipboard"/>
- <binding key="&lt;G&gt;" action="gotoPageNumber"/>
- <binding key="&lt;Z&gt;" action="debugNL"/>
</keymap>
--- fbreader-0.12.2.orig/zlibrary/ui/data/keynames.desktop-gtk.xml
+++ fbreader-0.12.2/zlibrary/ui/data/keynames.desktop-gtk.xml
@@ -1,5 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<keynames>
+ <key code="0xFFE9" name="&lt;FullScreen&gt;"/>
<key code="0xFF1B" name="&lt;Esc&gt;"/>
<key code="0x1B" name="&lt;Esc&gt;"/>
<key code="0xFF09" name="&lt;Tab&gt;"/>
@@ -41,7 +42,6 @@
<key code="0xFFE2" name="&lt;RShift&gt;"/>
<key code="0xFFE3" name="&lt;Ctrl&gt;"/>
<key code="0xFE08" name="&lt;RCtrl&gt;"/>
- <key code="0xFFE9" name="&lt;Alt&gt;"/>
<key code="0xFFEA" name="&lt;RAlt&gt;"/>
<key code="0xFFEB" name="&lt;Win&gt;"/>
<key code="0xFF6B" name="&lt;Break&gt;"/>

@ -1,13 +0,0 @@
--- fbreader-0.12.2.orig/fbreader/data/default/config.desktop.xml
+++ fbreader-0.12.2/fbreader/data/default/config.desktop.xml
@@ -4,6 +4,10 @@
<option name="Base:fontFamily" value="Georgia"/>
<option name="Base:fontSize" value="16"/>
</group>
+ <group name="Indicator">
+ <option name="Type" value="1"/>
+ <option name="Time" value="true"/>
+ </group>
<group name="Scrollings">
<option name="Delay" value="0"/>
</group>

@ -1,41 +0,0 @@
--- fbreader-0.12.2.orig/zlibrary/ui/src/gtk/view/ZLGtkViewWidget.cpp
+++ fbreader-0.12.2/zlibrary/ui/src/gtk/view/ZLGtkViewWidget.cpp
@@ -203,7 +204,6 @@
ZLGtkSignalUtil::connectSignal(GTK_OBJECT(myArea), "button_release_event", GTK_SIGNAL_FUNC(mouseReleased), this);
ZLGtkSignalUtil::connectSignal(GTK_OBJECT(myArea), "motion_notify_event", GTK_SIGNAL_FUNC(mouseMoved), this);
ZLGtkSignalUtil::connectSignal(GTK_OBJECT(myArea), "expose_event", GTK_SIGNAL_FUNC(::doPaint), this);
- myRepaintBlocked = false;
}
void ZLGtkViewWidget::setScrollbarEnabled(ZLView::Direction direction, bool enabled) {
@@ -292,9 +292,7 @@
}
void ZLGtkViewWidget::repaint() {
- if (!myRepaintBlocked) {
- gtk_widget_queue_draw(myArea);
- }
+ gtk_widget_queue_draw(myArea);
}
void ZLGtkViewWidget::doPaint() {
@@ -352,9 +350,6 @@
gdk_draw_pixbuf(myArea->window, myArea->style->white_gc, myRotatedPixbuf, 0, 0, 0, 0, h, w, GDK_RGB_DITHER_NONE, 0, 0);
break;
}
- myRepaintBlocked = true;
- myApplication->refreshWindow();
- myRepaintBlocked = false;
}
GtkWidget *ZLGtkViewWidget::area() {
--- fbreader-0.12.2.orig/zlibrary/ui/src/gtk/view/ZLGtkViewWidget.h
+++ fbreader-0.12.2/zlibrary/ui/src/gtk/view/ZLGtkViewWidget.h
@@ -61,7 +61,6 @@
GdkPixbuf *myOriginalPixbuf;
GdkPixbuf *myRotatedPixbuf;
GdkImage *myImage;
- bool myRepaintBlocked;
GtkAdjustment *myVerticalAdjustment;
GtkWidget *myRightScrollBar;

@ -1,12 +0,0 @@
--- fbreader-0.12.2.orig/fbreader/data/default/config.desktop.xml
+++ fbreader-0.12.2/fbreader/data/default/config.desktop.xml
@@ -9,6 +9,9 @@
<option name="PositionText" value="true"/>
<option name="Time" value="true"/>
</group>
+ <group name="Rotation">
+ <option name="Angle" value="270"/>
+ </group>
<group name="Scrollings">
<option name="Delay" value="0"/>
</group>

@ -1,14 +0,0 @@
--- fbreader-0.12.2.orig/makefiles/arch/desktop.mk 2010-02-13 08:04:07.000000000 +0000
+++ fbreader-0.12.2/makefiles/arch/desktop.mk 2010-02-13 10:26:41.000000000 +0000
@@ -6,9 +6,9 @@
IMAGEDIR = $(INSTALLDIR)/share/pixmaps
APPIMAGEDIR = $(INSTALLDIR)/share/pixmaps/%APPLICATION_NAME%
-CC = gcc
+CC = gcc-4.3
AR = ar rsu
-LD = g++
+LD = g++-4.3
CFLAGS = -pipe -fno-exceptions -Wall -Wno-ctor-dtor-privacy -W -DLIBICONV_PLUG
LDFLAGS =

@ -1,10 +0,0 @@
--- fbreader-0.12.2.orig/fbreader/data/default/config.desktop.xml
+++ fbreader-0.12.2/fbreader/data/default/config.desktop.xml
@@ -15,6 +15,7 @@
<option name="Delay" value="0"/>
</group>
<group name="Options">
+ <option name="IsSelectionEnabled" value="false"/>
<option name="LeftMargin" value="50"/>
<option name="RightMargin" value="50"/>
<option name="KeyDelay" value="0"/>

@ -1,7 +0,0 @@
110-use-sensible-browser.patch
120-key-names-and-actions.patch
130-default-indicator.patch
140-fullscreen-scrolling.patch
150-default-rotation-direction.patch
160-use-gcc-4-3.patch
170-disable-selection-by-default.patch

@ -1,58 +0,0 @@
#!/usr/bin/make -f
clean: unpatch
dh_testdir
dh_testroot
[ ! -f Makefile ] || $(MAKE) distclean
dh_clean build-stamp install-stamp
build: patch build-stamp
build-stamp:
dh_testdir
$(MAKE) -C zlibrary/core TARGET_ARCH=desktop UI_TYPE=dummy
$(MAKE) -C zlibrary/text TARGET_ARCH=desktop UI_TYPE=dummy
$(MAKE) -C zlibrary/ui TARGET_ARCH=desktop UI_TYPE=gtk
$(MAKE) -C zlibrary/ui TARGET_ARCH=desktop UI_TYPE=qt
$(MAKE) -C zlibrary/ui TARGET_ARCH=desktop UI_TYPE=qt4
$(MAKE) -C fbreader TARGET_ARCH=desktop UI_TYPE=dummy
touch build-stamp
install: DEB_DIR = $(CURDIR)/debian
install: build
dh_testdir
dh_testroot
dh_clean -k
dh_installdirs
$(MAKE) -C zlibrary/core TARGET_ARCH=desktop UI_TYPE=dummy DESTDIR=$(DEB_DIR)/libzlcore do_install
$(MAKE) -C zlibrary/text TARGET_ARCH=desktop UI_TYPE=dummy DESTDIR=$(DEB_DIR)/libzltext do_install
$(MAKE) -C zlibrary/core TARGET_ARCH=desktop UI_TYPE=dummy DESTDIR=$(DEB_DIR)/libzlcore-dev do_install_dev
$(MAKE) -C zlibrary/text TARGET_ARCH=desktop UI_TYPE=dummy DESTDIR=$(DEB_DIR)/libzltext-dev do_install_dev
$(MAKE) -C zlibrary/ui TARGET_ARCH=desktop UI_TYPE=gtk DESTDIR=$(DEB_DIR)/libzlui-gtk do_install
$(MAKE) -C zlibrary/ui TARGET_ARCH=desktop UI_TYPE=qt DESTDIR=$(DEB_DIR)/libzlui-qt do_install
$(MAKE) -C zlibrary/ui TARGET_ARCH=desktop UI_TYPE=qt4 DESTDIR=$(DEB_DIR)/libzlui-qt4 do_install
$(MAKE) -C fbreader TARGET_ARCH=desktop UI_TYPE=dummy DESTDIR=$(DEB_DIR)/fbreader do_install
touch install-stamp
binary-arch: VERSION=$(shell expr "`dpkg-parsechangelog |grep Version:`" : '.*Version: \(.*\)')
binary-arch: build install
dh_testdir
dh_testroot
dh_desktop
dh_installmenu
dh_installdocs
dh_installman fbreader/desktop/FBReader.1
dh_installchangelogs
dh_strip
dh_compress
dh_fixperms
dh_makeshlibs -plibzlcore -V"libzlcore (>= $(VERSION)),libzlcore(<< 0.13.0)"
dh_makeshlibs -plibzltext -V"libzltext (>= $(VERSION)),libzltext(<< 0.13.0)"
dh_installdeb
dh_shlibdeps -l debian/libzlcore/usr/lib:debian/libzltext/usr/lib
dh_gencontrol
dh_md5sums
dh_builddeb
binary: binary-arch
include /usr/share/quilt/quilt.make

@ -1,2 +0,0 @@
version=2
http://www.fbreader.org/downloads.php fbreader-sources-(.*).tgz

@ -1,9 +0,0 @@
Package: fbreader-opie
Version: @VERSION@
Section: apps
Priority: extra
Architecture: arm
Depends: libqpe1, libqte2, libexpat0, bzip2
Installed-Size: @SIZE@
Maintainer: Nikolay Pultsin <geometer@fbreader.org>
Description: E-Book reader.

@ -1 +0,0 @@
fbreader-opie_@VERSION@_opensimpad-0.9.0_arm.ipk

@ -1,17 +0,0 @@
clean:
make -C zlibrary/core TARGET_ARCH=opensimpad-0.9.0 UI_TYPE=opie clean
make -C zlibrary/text TARGET_ARCH=opensimpad-0.9.0 UI_TYPE=opie clean
make -C zlibrary/ui TARGET_ARCH=opensimpad-0.9.0 UI_TYPE=opie clean
make -C fbreader TARGET_ARCH=opensimpad-0.9.0 UI_TYPE=opie clean
build:
make -C zlibrary/core TARGET_ARCH=opensimpad-0.9.0 UI_TYPE=opie
make -C zlibrary/text TARGET_ARCH=opensimpad-0.9.0 UI_TYPE=opie
make -C zlibrary/ui TARGET_ARCH=opensimpad-0.9.0 UI_TYPE=opie
make -C fbreader TARGET_ARCH=opensimpad-0.9.0 UI_TYPE=opie
install-fbreader:
make -C zlibrary/core TARGET_ARCH=opensimpad-0.9.0 UI_TYPE=opie do_install
make -C zlibrary/text TARGET_ARCH=opensimpad-0.9.0 UI_TYPE=opie do_install
make -C zlibrary/ui TARGET_ARCH=opensimpad-0.9.0 UI_TYPE=opie do_install
make -C fbreader TARGET_ARCH=opensimpad-0.9.0 UI_TYPE=opie do_install

@ -1,9 +0,0 @@
Package: fbreader-gpe
Version: @VERSION@
Section: apps
Priority: extra
Architecture: arm
Depends: libstdc++6, libexpat0, bzip2
Installed-Size: @SIZE@
Maintainer: Nikolay Pultsin <geometer@fbreader.org>
Description: E-Book reader.

@ -1 +0,0 @@
fbreader-gpe_@VERSION@_openzaurus_240x320_arm.ipk

@ -1,9 +0,0 @@
Package: fbreader-gpe
Version: @VERSION@
Section: apps
Priority: extra
Architecture: arm
Depends: libstdc++6, libexpat0, bzip2
Installed-Size: @SIZE@
Maintainer: Nikolay Pultsin <geometer@fbreader.org>
Description: E-Book reader.

@ -1 +0,0 @@
fbreader-gpe_@VERSION@_openzaurus_640x480_arm.ipk

@ -1,23 +0,0 @@
clean:
make -C zlibrary/core TARGET_ARCH=openzaurus UI_TYPE=gpe clean
make -C zlibrary/text TARGET_ARCH=openzaurus UI_TYPE=gpe clean
make -C zlibrary/ui TARGET_ARCH=openzaurus UI_TYPE=gpe clean
make -C fbreader TARGET_ARCH=openzaurus UI_TYPE=gpe clean
build:
make -C zlibrary/core TARGET_ARCH=openzaurus UI_TYPE=gpe
make -C zlibrary/text TARGET_ARCH=openzaurus UI_TYPE=gpe
make -C zlibrary/ui TARGET_ARCH=openzaurus UI_TYPE=gpe
make -C fbreader TARGET_ARCH=openzaurus UI_TYPE=gpe
install-240x320:
make -C zlibrary/core TARGET_ARCH=openzaurus UI_TYPE=gpe do_install
make -C zlibrary/text TARGET_ARCH=openzaurus UI_TYPE=gpe do_install
make -C zlibrary/ui TARGET_ARCH=openzaurus UI_TYPE=gpe do_install
make -C fbreader TARGET_ARCH=openzaurus UI_TYPE=gpe RESOLUTION=240x320 do_install
install-640x480:
make -C zlibrary/core TARGET_ARCH=openzaurus UI_TYPE=gpe do_install
make -C zlibrary/text TARGET_ARCH=openzaurus UI_TYPE=gpe do_install
make -C zlibrary/ui TARGET_ARCH=openzaurus UI_TYPE=gpe do_install
make -C fbreader TARGET_ARCH=openzaurus UI_TYPE=gpe RESOLUTION=640x480 do_install

@ -1,9 +0,0 @@
Package: fbreader-opie
Version: @VERSION@
Section: apps
Priority: extra
Architecture: arm
Depends: libqpe1, libqte2, libexpat0, bzip2
Installed-Size: @SIZE@
Maintainer: Nikolay Pultsin <geometer@fbreader.org>
Description: E-Book reader.

@ -1 +0,0 @@
fbreader-opie_@VERSION@_openzaurus_240x320_arm.ipk

@ -1,9 +0,0 @@
Package: fbreader-opie
Version: @VERSION@
Section: apps
Priority: extra
Architecture: arm
Depends: libqpe1, libqte2, libexpat0, bzip2
Installed-Size: @SIZE@
Maintainer: Nikolay Pultsin <geometer@fbreader.org>
Description: E-Book reader.

@ -1 +0,0 @@
fbreader-opie_@VERSION@_openzaurus_640x480_arm.ipk

@ -1,23 +0,0 @@
clean:
make -C zlibrary/core TARGET_ARCH=openzaurus UI_TYPE=opie clean
make -C zlibrary/text TARGET_ARCH=openzaurus UI_TYPE=opie clean
make -C zlibrary/ui TARGET_ARCH=openzaurus UI_TYPE=opie clean
make -C fbreader TARGET_ARCH=openzaurus UI_TYPE=opie clean
build:
make -C zlibrary/core TARGET_ARCH=openzaurus UI_TYPE=opie
make -C zlibrary/text TARGET_ARCH=openzaurus UI_TYPE=opie
make -C zlibrary/ui TARGET_ARCH=openzaurus UI_TYPE=opie
make -C fbreader TARGET_ARCH=openzaurus UI_TYPE=opie
install-240x320:
make -C zlibrary/core TARGET_ARCH=openzaurus UI_TYPE=opie do_install
make -C zlibrary/text TARGET_ARCH=openzaurus UI_TYPE=opie do_install
make -C zlibrary/ui TARGET_ARCH=openzaurus UI_TYPE=opie do_install
make -C fbreader TARGET_ARCH=openzaurus UI_TYPE=opie RESOLUTION=240x320 do_install
install-640x480:
make -C zlibrary/core TARGET_ARCH=openzaurus UI_TYPE=opie do_install
make -C zlibrary/text TARGET_ARCH=openzaurus UI_TYPE=opie do_install
make -C zlibrary/ui TARGET_ARCH=openzaurus UI_TYPE=opie do_install
make -C fbreader TARGET_ARCH=openzaurus UI_TYPE=opie RESOLUTION=640x480 do_install

@ -1,10 +0,0 @@
Package: FBReader
Version: @VERSION@
Filename: ./FBReader_@VERSION@_pdaxrom_armv5tel.ipk
Depends: expat,bzip2
Priority: optional
Section: Office
Maintainer: Nikolay Pultsin <geometer@fbreader.org>
Architecture: armv5tel
License: GPLv2
Description: e-book reader (http://www.fbreader.org/)

@ -1,16 +0,0 @@
build:
@make -C zlibrary/core TARGET_ARCH=pdaxrom UI_TYPE=dummy
@make -C zlibrary/text TARGET_ARCH=pdaxrom UI_TYPE=dummy
@make -C zlibrary/ui TARGET_ARCH=pdaxrom UI_TYPE=gtk
@make -C zlibrary/ui TARGET_ARCH=pdaxrom UI_TYPE=qt
@make -C fbreader TARGET_ARCH=pdaxrom UI_TYPE=dummy
clean:
@make TARGET_ARCH=pdaxrom UI_TYPE=dummy clean
install-fbreader:
@make -C zlibrary/core TARGET_ARCH=pdaxrom UI_TYPE=dummy DESTDIR=$(DESTDIR) do_install
@make -C zlibrary/text TARGET_ARCH=pdaxrom UI_TYPE=dummy DESTDIR=$(DESTDIR) do_install
@make -C zlibrary/ui TARGET_ARCH=pdaxrom UI_TYPE=gtk DESTDIR=$(DESTDIR) do_install
@make -C zlibrary/ui TARGET_ARCH=pdaxrom UI_TYPE=qt DESTDIR=$(DESTDIR) do_install
@make -C fbreader TARGET_ARCH=pdaxrom UI_TYPE=dummy DESTDIR=$(DESTDIR) do_install

@ -1,11 +0,0 @@
Package: FBReader
Installed-Size: @SIZE@
Filename: ./FBReader_@VERSION@_pma400_arm.ipk
Version: @VERSION@
Depends: expat,libbz2
Priority: optional
Section: qpe/applications
Maintainer: Nikolay Pultsin <geometer@fbreader.org>
Architecture: arm
License: GPLv2
Description: E-book reader.

@ -1,14 +0,0 @@
build:
@make -C zlibrary/core TARGET_ARCH=pma400 UI_TYPE=qtopia
@make -C zlibrary/text TARGET_ARCH=pma400 UI_TYPE=qtopia
@make -C zlibrary/ui TARGET_ARCH=pma400 UI_TYPE=qtopia
@make -C fbreader TARGET_ARCH=pma400 UI_TYPE=qtopia
clean:
@make TARGET_ARCH=pma400 UI_TYPE=qtopia clean
install-fbreader:
@make -C zlibrary/core TARGET_ARCH=pma400 UI_TYPE=qtopia DESTDIR=$(DESTDIR) do_install
@make -C zlibrary/text TARGET_ARCH=pma400 UI_TYPE=qtopia DESTDIR=$(DESTDIR) do_install
@make -C zlibrary/ui TARGET_ARCH=pma400 UI_TYPE=qtopia DESTDIR=$(DESTDIR) do_install
@make -C fbreader TARGET_ARCH=pma400 UI_TYPE=qtopia DESTDIR=$(DESTDIR) do_install

@ -1,11 +0,0 @@
Package: FBReader
Installed-Size: @SIZE@
Filename: ./FBReader_@VERSION@_240x320_arm.ipk
Version: @VERSION@
Depends: libzlibrary-qtopia-240x320
Priority: optional
Section: qpe/applications
Maintainer: Nikolay Pultsin <geometer@fbreader.org>
Architecture: arm
License: GPLv2
Description: E-book reader.

@ -1,11 +0,0 @@
Package: libzlibrary-qtopia-240x320
Installed-Size: @SIZE@
Filename: ./libzlibrary-qtopia-240x320_@VERSION@_arm.ipk
Version: @VERSION@
Depends: expat,libbz2
Priority: optional
Section: qpe/applications
Maintainer: Nikolay Pultsin <geometer@fbreader.org>
Architecture: arm
License: GPLv2
Description: Platform-dependent part of FBReader

@ -1,16 +0,0 @@
build:
@make -C zlibrary/core TARGET_ARCH=zaurus UI_TYPE=qtopia-240x320
@make -C zlibrary/text TARGET_ARCH=zaurus UI_TYPE=qtopia-240x320
@make -C zlibrary/ui TARGET_ARCH=zaurus UI_TYPE=qtopia-240x320
@make -C fbreader TARGET_ARCH=zaurus UI_TYPE=qtopia-240x320
clean:
@make TARGET_ARCH=zaurus UI_TYPE=qtopia-240x320 clean
install-fbreader:
@make -C fbreader TARGET_ARCH=zaurus UI_TYPE=qtopia-240x320 DESTDIR=$(DESTDIR) RESOLUTION=240x320 do_install
install-libzlibrary:
@make -C zlibrary/core TARGET_ARCH=zaurus UI_TYPE=qtopia-240x320 DESTDIR=$(DESTDIR) do_install
@make -C zlibrary/text TARGET_ARCH=zaurus UI_TYPE=qtopia-240x320 DESTDIR=$(DESTDIR) do_install
@make -C zlibrary/ui TARGET_ARCH=zaurus UI_TYPE=qtopia-240x320 DESTDIR=$(DESTDIR) do_install

@ -1,11 +0,0 @@
Package: FBReader
Installed-Size: @SIZE@
Filename: ./FBReader_@VERSION@_640x480_arm.ipk
Version: @VERSION@
Depends: libzlibrary-qtopia-640x480
Priority: optional
Section: qpe/applications
Maintainer: Nikolay Pultsin <geometer@fbreader.org>
Architecture: arm
License: GPLv2
Description: E-book reader.

@ -1,11 +0,0 @@
Package: libzlibrary-qtopia-640x480
Installed-Size: @SIZE@
Filename: ./libzlibrary-qtopia-640x480_@VERSION@_arm.ipk
Version: @VERSION@
Depends: expat,libbz2
Priority: optional
Section: qpe/applications
Maintainer: Nikolay Pultsin <geometer@fbreader.org>
Architecture: arm
License: GPLv2
Description: Platform-dependent part of FBReader

@ -1,16 +0,0 @@
build:
@make -C zlibrary/core TARGET_ARCH=zaurus UI_TYPE=qtopia-640x480
@make -C zlibrary/text TARGET_ARCH=zaurus UI_TYPE=qtopia-640x480
@make -C zlibrary/ui TARGET_ARCH=zaurus UI_TYPE=qtopia-640x480
@make -C fbreader TARGET_ARCH=zaurus UI_TYPE=qtopia-640x480
clean:
@make TARGET_ARCH=zaurus UI_TYPE=qtopia-640x480 clean
install-fbreader:
@make -C fbreader TARGET_ARCH=zaurus UI_TYPE=qtopia-640x480 DESTDIR=$(DESTDIR) RESOLUTION=640x480 do_install
install-libzlibrary:
@make -C zlibrary/core TARGET_ARCH=zaurus UI_TYPE=qtopia-640x480 DESTDIR=$(DESTDIR) do_install
@make -C zlibrary/text TARGET_ARCH=zaurus UI_TYPE=qtopia-640x480 DESTDIR=$(DESTDIR) do_install
@make -C zlibrary/ui TARGET_ARCH=zaurus UI_TYPE=qtopia-640x480 DESTDIR=$(DESTDIR) do_install

@ -1,29 +0,0 @@
PREFIX = /mmc/mmca1/.system/QTDownLoad
LIBVERSION = $(shell cat zlibrary/VERSION)
LIBSOVERSION = $(shell cat zlibrary/SOVERSION)
APPVERSION = $(shell cat fbreader/VERSION)
clean:
@make TARGET_ARCH=moto UI_TYPE=ezx clean
build:
@make -C zlibrary/core TARGET_ARCH=moto UI_TYPE=ezx
@make -C zlibrary/text TARGET_ARCH=moto UI_TYPE=ezx
@make -C zlibrary/ui TARGET_ARCH=moto UI_TYPE=ezx
@make -C fbreader TARGET_ARCH=moto UI_TYPE=ezx
install:
@make -C zlibrary/core TARGET_ARCH=moto UI_TYPE=ezx DESTDIR=$(DESTDIR) do_install
@make -C zlibrary/text TARGET_ARCH=moto UI_TYPE=ezx DESTDIR=$(DESTDIR) do_install
@make -C zlibrary/ui TARGET_ARCH=moto UI_TYPE=ezx DESTDIR=$(DESTDIR) do_install
@install ../libs/moto/libexpat.so.1.5.2 $(DESTDIR)$(PREFIX)/fbreader/lib/libexpat.so.1
@install ../libs/moto/libbz2.so.1.0.4 $(DESTDIR)$(PREFIX)/fbreader/lib/libbz2.so.1.0
@rm $(DESTDIR)$(PREFIX)/fbreader/lib/libzlcore.so.$(LIBSOVERSION)
@mv $(DESTDIR)$(PREFIX)/fbreader/lib/libzlcore.so.$(LIBVERSION) $(DESTDIR)$(PREFIX)/fbreader/lib/libzlcore.so.$(LIBSOVERSION)
@rm $(DESTDIR)$(PREFIX)/fbreader/lib/libzltext.so.$(LIBSOVERSION)
@mv $(DESTDIR)$(PREFIX)/fbreader/lib/libzltext.so.$(LIBVERSION) $(DESTDIR)$(PREFIX)/fbreader/lib/libzltext.so.$(LIBSOVERSION)
@make -C fbreader TARGET_ARCH=moto UI_TYPE=ezx DESTDIR=$(DESTDIR) do_install
package:
@tar -czf FBReader-$(APPVERSION).pkg -C $(DESTDIR)$(PREFIX) .

@ -1,91 +0,0 @@
Name "FBReader for Windows"
OutFile "FBReaderSetup-@VERSION@.exe"
InstallDir $PROGRAMFILES\FBReader
InstallDirRegKey HKCU "Software\FBReader" ""
Page directory
Page components
Page instfiles
UninstPage uninstConfirm
UninstPage instfiles
Section "FBReader"
SectionIn RO
SetOutPath "$INSTDIR"
WriteRegStr HKCU "Software\FBReader" "" $INSTDIR
File /oname=FBReader.exe bin/FBReader
File ../../libs/win32/*.*
File /r share
Delete "$INSTDIR\libiconv-2.dll"
Delete "$INSTDIR\share\FBReader\help\MiniHelp.fb2"
Delete "$INSTDIR\share\FBReader\hyphenationPatterns.zip"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\FBReader for Windows" "DisplayName" "FBReader for Windows"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\FBReader for Windows" "UninstallString" '"$INSTDIR\uninstall.exe"'
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\FBReader for Windows" "NoModify" 1
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\FBReader for Windows" "NoRepair" 1
WriteUninstaller "uninstall.exe"
CreateDirectory "$SMPROGRAMS\FBReader for Windows"
CreateShortCut "$SMPROGRAMS\FBReader for Windows\Uninstall.lnk" "$INSTDIR\uninstall.exe" "" "$INSTDIR\uninstall.exe" 0
CreateShortCut "$SMPROGRAMS\FBReader for Windows\FBReader.lnk" "$INSTDIR\FBReader.exe" "" "$INSTDIR\FBReader.exe" 0
ReadRegStr $0 HKCU "Software\FBReader\options\Options" "Base:fontFamily"
StrCmp $0 "" 0 +2
WriteRegStr HKCU "Software\FBReader\options\Style" "Base:fontFamily" "Georgia"
ReadRegStr $0 HKCU "Software\FBReader\options\Options" "Base:fontSize"
StrCmp $0 "" 0 +2
WriteRegStr HKCU "Software\FBReader\options\Style" "Base:fontSize" "20"
ReadRegStr $0 HKCU "Software\FBReader\options\Options" "BookPath"
StrCmp $0 "" 0 +2
WriteRegStr HKCU "Software\FBReader\options\Options" "BookPath" "C:\Books;$PROFILE\Books"
ReadRegStr $0 HKCU "Software\FBReader\options\Options" "DownloadDirectory"
StrCmp $0 "" 0 +2
WriteRegStr HKCU "Software\FBReader\options\Options" "DownloadDirectory" "$PROFILE\Books"
WriteRegStr HKCU "Software\FBReader\options\PlatformOptions" "TouchScreenPresented" "true"
WriteRegStr HKCU "Software\FBReader\options\PlatformOptions" "MousePresented" "true"
WriteRegStr HKCU "Software\FBReader\options\PlatformOptions" "KeyboardPresented" "true"
WriteRegStr HKCU "Software\FBReader\options\Options" "LeftMargin" "50"
WriteRegStr HKCU "Software\FBReader\options\Options" "RightMargin" "50"
WriteRegStr HKCU "Software\FBReader\options\Options" "KeyDelay" "0"
WriteRegStr HKCU "Software\FBReader\options\Scrollings" "Delay" "0"
WriteRegStr HKCU "Software\FBReader\options\TapScrolling" "Enabled" "true"
SectionEnd
Section "Create Shortcut on Desktop"
CreateShortCut "$DESKTOP\FBReader.lnk" "$INSTDIR\FBReader.exe" "" "$INSTDIR\FBReader.exe" 0
SectionEnd
Section "Uninstall"
ClearErrors
Delete "$INSTDIR\FBReader.exe"
IfErrors 0 ContinueUninstallation
MessageBox MB_OK "Cannot uninstall FBReader while the program is running.$\nPlease quit FBReader and try again."
Quit
ContinueUninstallation:
RMDir /r "$INSTDIR\share"
Delete "$INSTDIR\*.dll"
Delete "$INSTDIR\*.license"
Delete "$INSTDIR\uninstall.exe"
RMDir "$INSTDIR"
RMDir /r "$SMPROGRAMS\FBReader for Windows"
Delete "$DESKTOP\FBReader.lnk"
DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\FBReader for Windows"
DeleteRegKey /ifempty HKCU "Software\FBReader"
MessageBox MB_YESNO "Remove FBReader configuration from registry?" IDNO SkipConfigDeletion
DeleteRegKey HKCU "Software\FBReader"
SkipConfigDeletion:
MessageBox MB_YESNO "Remove FBReader library information?" IDNO SkipLibraryDeletion
RMDir /r "$PROFILE\.FBReader"
SkipLibraryDeletion:
SectionEnd

@ -1,17 +0,0 @@
build:
make -C zlibrary/core TARGET_ARCH=win32 UI_TYPE=win32
make -C zlibrary/text TARGET_ARCH=win32 UI_TYPE=win32
make -C zlibrary/ui TARGET_ARCH=win32 UI_TYPE=win32
make -C fbreader TARGET_ARCH=win32 UI_TYPE=win32
install:
make -C zlibrary/core TARGET_ARCH=win32 UI_TYPE=win32 DESTDIR=$(DESTDIR) SHAREDIR=/share do_install
make -C zlibrary/text TARGET_ARCH=win32 UI_TYPE=win32 DESTDIR=$(DESTDIR) SHAREDIR=/share do_install
make -C zlibrary/ui TARGET_ARCH=win32 UI_TYPE=win32 DESTDIR=$(DESTDIR) SHAREDIR=/share do_install
make -C fbreader TARGET_ARCH=win32 UI_TYPE=win32 DESTDIR=$(DESTDIR) SHAREDIR=/share do_install
clean:
make -C zlibrary/core TARGET_ARCH=win32 UI_TYPE=win32 clean
make -C zlibrary/text TARGET_ARCH=win32 UI_TYPE=win32 clean
make -C zlibrary/ui TARGET_ARCH=win32 UI_TYPE=win32 clean
make -C fbreader TARGET_ARCH=win32 UI_TYPE=win32 clean

@ -1,26 +0,0 @@
clean:
make -C zlibrary/core TARGET_ARCH=desktop UI_TYPE=dummy clean
make -C zlibrary/text TARGET_ARCH=desktop UI_TYPE=dummy clean
make -C zlibrary/ui TARGET_ARCH=desktop UI_TYPE=gtk clean
make -C zlibrary/ui TARGET_ARCH=desktop UI_TYPE=qt clean
make -C zlibrary/ui TARGET_ARCH=desktop UI_TYPE=qt4 clean
make -C fbreader TARGET_ARCH=desktop UI_TYPE=dummy clean
build:
make -C zlibrary/core TARGET_ARCH=desktop UI_TYPE=dummy
make -C zlibrary/text TARGET_ARCH=desktop UI_TYPE=dummy
make -C zlibrary/ui TARGET_ARCH=desktop UI_TYPE=gtk
make -C zlibrary/ui TARGET_ARCH=desktop UI_TYPE=qt
make -C zlibrary/ui TARGET_ARCH=desktop UI_TYPE=qt4
make -C fbreader TARGET_ARCH=desktop UI_TYPE=dummy
install:
make -C zlibrary/core TARGET_ARCH=desktop UI_TYPE=dummy DESTDIR=$(DESTDIR) do_install
make -C zlibrary/text TARGET_ARCH=desktop UI_TYPE=dummy DESTDIR=$(DESTDIR) do_install
make -C zlibrary/ui TARGET_ARCH=desktop UI_TYPE=gtk DESTDIR=$(DESTDIR) do_install
make -C zlibrary/ui TARGET_ARCH=desktop UI_TYPE=qt DESTDIR=$(DESTDIR) do_install
make -C zlibrary/ui TARGET_ARCH=desktop UI_TYPE=qt4 DESTDIR=$(DESTDIR) do_install
make -C fbreader TARGET_ARCH=desktop UI_TYPE=dummy DESTDIR=$(DESTDIR) do_install
package:
tar czf fbreader-`cat fbreader/VERSION`.tgz -C $(DESTDIR) .

@ -1,13 +0,0 @@
VERSION = $(shell cat $(CURDIR)/fbreader/VERSION)
SRCDIR = fbreader-$(VERSION)
clean:
build:
install:
mkdir $(DESTDIR)/$(SRCDIR)
cp -r Makefile build_packages.sh zlibrary fbreader makefiles distributions README.build ChangeLog $(DESTDIR)/$(SRCDIR)
package:
tar czf fbreader-sources-$(VERSION).tgz -C $(DESTDIR) $(SRCDIR)

@ -1,70 +0,0 @@
ROOTDIR = $(CURDIR)/..
MAKEFILESDIR = $(ROOTDIR)/makefiles
include $(MAKEFILESDIR)/config.mk
TARGET = FBReader
target = fbreader
ALL_SUBDIRS = src src/database src/database/sqldb src/database/sqldb/implsqlite src/database/booksdb src/database/booksdb/runnables src/database/networkdb src/database/networkdb/runnables src/migration src/options src/library src/bookmodel src/formats src/formats/fb2 src/formats/docbook src/formats/css src/formats/html src/formats/pdb src/formats/txt src/formats/tcr src/formats/chm src/formats/xhtml src/formats/oeb src/formats/rtf src/formats/openreader src/formats/pdf src/formats/doc src/formats/dummy src/formats/util src/external src/fbreader src/encodingOption src/network src/network/authentication src/network/atom src/network/opds src/network/litres src/network/tree src/network/authentication/litres src/blockTree src/libraryActions src/libraryTree src/networkActions src/tree src/optionsDialog src/optionsDialog/bookInfo src/optionsDialog/library src/optionsDialog/network src/optionsDialog/system src/optionsDialog/reading src/optionsDialog/lookAndFeel
ALL_ARCHSUBDIRS = desktop pdaxrom opie zaurus maemo openzaurus pma400 win32
SUBDIRS = src/database src/database/sqldb src/database/sqldb/implsqlite src/database/booksdb src/database/booksdb/runnables src/database/networkdb src/database/networkdb/runnables src/migration src/options src/library src/bookmodel \
src/formats src/formats/fb2 src/formats/css src/formats/html src/formats/pdb src/formats/txt src/formats/tcr src/formats/chm src/formats/xhtml src/formats/oeb src/formats/rtf src/formats/openreader src/formats/doc src/formats/util \
src/external src/fbreader src/encodingOption src/network src/network/authentication src/network/atom src/network/opds src/network/litres src/network/tree src/network/authentication/litres \
src/blockTree src/libraryActions src/libraryTree src/networkActions src/tree src/optionsDialog src/optionsDialog/bookInfo src/optionsDialog/library src/optionsDialog/network src/optionsDialog/system src/optionsDialog/reading src/optionsDialog/lookAndFeel
all: .resources
@for subdir in $(SUBDIRS); do \
if ! $(MAKE) -C $$subdir -f $(MAKEFILESDIR)/subdir.mk; then \
exit 1; \
fi; \
done;
@echo -n 'Linking $(TARGET) ...'
@$(LD) $(LDFLAGS) -o $(TARGET) `find src -name *.o | LC_ALL=C sort` $(TEXT_LIBS) $(CORE_LIBS) $(ZLUI_LIB) -lsqlite3
@echo ' OK'
FBSHAREDIR = $(DESTDIR)$(SHAREDIR)/FBReader
VARIANT = $(TARGET_ARCH)
ifneq "$(RESOLUTION)" ""
VARIANT = $(TARGET_ARCH)_$(RESOLUTION)
endif
APPIMAGEDIR_REAL = $(subst %application_name%,$(target),$(subst %APPLICATION_NAME%,$(TARGET),$(APPIMAGEDIR)))
do_install:
@install -d $(DESTDIR)$(BINDIR)
@install $(TARGET) $(DESTDIR)$(BINDIR)/FBReader
@install -d $(FBSHAREDIR)
@install -d $(FBSHAREDIR)/help
@./scripts/install_help.sh $(VARIANT) $(FBSHAREDIR)/help
@install -d $(FBSHAREDIR)/formats/html
@install -m 0644 data/formats/html/html.ent $(FBSHAREDIR)/formats/html
@install -d $(FBSHAREDIR)/formats/fb2
@sed "s/VERSION/$(VERSION)/" data/formats/fb2/FBReaderVersion.ent > $(FBSHAREDIR)/formats/fb2/FBReaderVersion.ent
@install -m 0644 data/formats/fb2/fb2genres.xml $(FBSHAREDIR)/formats/fb2
@install -d $(FBSHAREDIR)/default
@./scripts/install_toolbar_and_menu.sh $(VARIANT) $(UI_TYPE) $(FBSHAREDIR)/default
@./scripts/install_config.sh $(VARIANT) $(UI_TYPE) $(FBSHAREDIR)/default
@install -m 0644 data/default/external.$(TARGET_ARCH).xml $(FBSHAREDIR)/default/external.xml
@if [ -f data/default/messages.$(TARGET_ARCH).xml ]; then \
install -m 0644 data/default/messages.$(TARGET_ARCH).xml $(FBSHAREDIR)/default/messages.xml; \
fi
@install -d $(FBSHAREDIR)/resources
@install -m 0644 $(wildcard data/resources/*.xml) $(FBSHAREDIR)/resources
@install -d $(DESTDIR)$(APPIMAGEDIR_REAL)
@install -m 0644 $(wildcard data/icons/toolbar/$(VARIANT)/*.*) $(DESTDIR)$(APPIMAGEDIR_REAL)
@install -m 0644 $(wildcard data/icons/filetree/$(VARIANT)/*.*) $(DESTDIR)$(APPIMAGEDIR_REAL)
@install -m 0644 $(wildcard data/icons/booktree/new/*.*) $(DESTDIR)$(APPIMAGEDIR_REAL)
@install -m 0644 $(wildcard data/icons/*.*) $(DESTDIR)$(APPIMAGEDIR_REAL)
@$(MAKE) -C $(TARGET_ARCH) RESOLUTION=$(RESOLUTION) install
clean:
@for subdir in $(ALL_SUBDIRS); do \
$(MAKE) -C $$subdir -f $(MAKEFILESDIR)/subdir.mk clean; \
done;
@for subdir in $(ALL_ARCHSUBDIRS); do \
cd $$subdir; $(MAKE) clean; cd ..; \
done;
@$(RM) $(TARGET) err

@ -1,19 +0,0 @@
ROOTDIR = $(CURDIR)/../..
include $(ROOTDIR)/makefiles/config.mk
TARGET = FBReader
SHARE_FBREADER = $(DESTDIR)$(SHAREDIR)/FBReader
BINARY = $(DESTDIR)$(BINDIR)/FBReader
install:
@strip $(BINARY)
@install -d $(DESTDIR)/usr/share/applications
@install -m 0644 desktop $(DESTDIR)/usr/share/applications/$(TARGET).desktop
@install -d $(DESTDIR)$(IMAGEDIR)
@install -m 0644 ../data/icons/application/$(TARGET_ARCH).png $(DESTDIR)$(IMAGEDIR)/FBReader.png
@install -m 0644 ../data/default/config.desktop.xml $(SHARE_FBREADER)/default/config.xml
@install -m 0644 ../data/default/keymap.desktop.xml $(SHARE_FBREADER)/default/keymap.xml
@install -m 0644 ../data/default/styles.desktop.xml $(SHARE_FBREADER)/default/styles.xml
clean:

@ -1,592 +0,0 @@
######################################################################
# Automatically generated by qmake (2.01a) ?? ??? 20 12:23:40 2012
######################################################################
TEMPLATE = app
TARGET =
DEPENDPATH +=
INCLUDEPATH +=
# Input
HEADERS += src/blockTree/FBReaderNode.h \
src/bookmodel/BookModel.h \
src/bookmodel/BookReader.h \
src/bookmodel/FBTextKind.h \
src/encodingOption/EncodingOptionEntry.h \
src/external/ProgramCollection.h \
src/fbreader/BookTextView.h \
src/fbreader/ContentsView.h \
src/fbreader/FBReader.h \
src/fbreader/FBReaderActions.h \
src/fbreader/FBView.h \
src/fbreader/FootnoteView.h \
src/fbreader/PreferencesPopupData.h \
src/fbreader/ReadingState.h \
src/fbreader/RecentBooksPopupData.h \
src/fbreader/ScrollingAction.h \
src/fbreader/TimeUpdater.h \
src/formats/EncodedTextReader.h \
src/formats/FormatPlugin.h \
src/library/Author.h \
src/library/Book.h \
src/library/Library.h \
src/library/Lists.h \
src/library/Tag.h \
src/libraryActions/AuthorInfoDialog.h \
src/libraryActions/BooksUtil.h \
src/libraryActions/LibraryAuthorActions.h \
src/libraryActions/LibraryBookActions.h \
src/libraryActions/LibraryTagActions.h \
src/libraryTree/LibraryNodes.h \
src/libraryTree/LibraryView.h \
src/migration/BookInfo.h \
src/migration/FB2MigrationReader.h \
src/migration/HtmlDCTagsReader.h \
src/migration/migrate.h \
src/migration/Migration.h \
src/migration/OEBMigrationReader.h \
src/network/BookReference.h \
src/network/NetworkBookCollection.h \
src/network/NetworkComparators.h \
src/network/NetworkErrors.h \
src/network/NetworkItems.h \
src/network/NetworkLink.h \
src/network/NetworkLinkCollection.h \
src/network/NetworkOperationData.h \
src/network/SearchResult.h \
src/network/UserList.h \
src/networkActions/AuthenticationDialog.h \
src/networkActions/NetworkActions.h \
src/networkActions/NetworkOperationRunnable.h \
src/networkActions/PasswordRecoveryDialog.h \
src/networkActions/RegisterUserDialog.h \
src/networkTree/NetworkCatalogUtil.h \
src/networkTree/NetworkNodes.h \
src/networkTree/NetworkNodesFactory.h \
src/networkTree/NetworkView.h \
src/options/FBCategoryKey.h \
src/options/FBOptions.h \
src/options/FBTextStyle.h \
src/optionsDialog/AbstractOptionsDialog.h \
src/database/booksdb/BooksDB.h \
src/database/booksdb/BooksDBQuery.h \
src/database/booksdb/BooksDBUtil.h \
src/database/booksdb/DBRunnables.h \
src/database/sqldb/DataBase.h \
src/database/sqldb/DBCommand.h \
src/database/sqldb/DBCommandParameter.h \
src/database/sqldb/DBConnection.h \
src/database/sqldb/DBDataReader.h \
src/database/sqldb/DBRunnable.h \
src/database/sqldb/DBValues.h \
src/formats/chm/BitStream.h \
src/formats/chm/CHMFile.h \
src/formats/chm/CHMFileImage.h \
src/formats/chm/CHMPlugin.h \
src/formats/chm/CHMReferenceCollection.h \
src/formats/chm/HHCReader.h \
src/formats/chm/HHCReferenceCollector.h \
src/formats/chm/HtmlSectionReader.h \
src/formats/chm/HuffmanDecoder.h \
src/formats/chm/LZXDecompressor.h \
src/formats/css/StyleSheetParser.h \
src/formats/css/StyleSheetTable.h \
src/formats/docbook/DocBookBookReader.h \
src/formats/docbook/DocBookDescriptionReader.h \
src/formats/docbook/DocBookPlugin.h \
src/formats/docbook/DocBookReader.h \
src/formats/dummy/DummyBookReader.h \
src/formats/dummy/DummyMetaInfoReader.h \
src/formats/dummy/DummyPlugin.h \
src/formats/fb2/FB2BookReader.h \
src/formats/fb2/FB2CoverReader.h \
src/formats/fb2/FB2MetaInfoReader.h \
src/formats/fb2/FB2Plugin.h \
src/formats/fb2/FB2Reader.h \
src/formats/fb2/FB2TagManager.h \
src/formats/html/HtmlBookReader.h \
src/formats/html/HtmlDescriptionReader.h \
src/formats/html/HtmlEntityCollection.h \
src/formats/html/HtmlPlugin.h \
src/formats/html/HtmlReader.h \
src/formats/html/HtmlReaderStream.h \
src/formats/html/HtmlTagActions.h \
src/formats/oeb/NCXReader.h \
src/formats/oeb/OEBBookReader.h \
src/formats/oeb/OEBCoverReader.h \
src/formats/oeb/OEBMetaInfoReader.h \
src/formats/oeb/OEBPlugin.h \
src/formats/oeb/OEBTextStream.h \
src/formats/openreader/OpenReaderPlugin.h \
src/formats/openreader/ORBookReader.h \
src/formats/openreader/ORDescriptionReader.h \
src/formats/pdb/BitReader.h \
src/formats/pdb/DocDecompressor.h \
src/formats/pdb/EReaderStream.h \
src/formats/pdb/HtmlMetainfoReader.h \
src/formats/pdb/HuffDecompressor.h \
src/formats/pdb/MobipocketHtmlBookReader.h \
src/formats/pdb/PalmDocLikeStream.h \
src/formats/pdb/PalmDocStream.h \
src/formats/pdb/PdbPlugin.h \
src/formats/pdb/PdbReader.h \
src/formats/pdb/PdbStream.h \
src/formats/pdb/PluckerBookReader.h \
src/formats/pdb/PluckerImages.h \
src/formats/pdb/PluckerTextStream.h \
src/formats/pdb/PmlBookReader.h \
src/formats/pdb/PmlReader.h \
src/formats/pdb/ZTXTStream.h \
src/formats/pdf/PdfBookReader.h \
src/formats/pdf/PdfDescriptionReader.h \
src/formats/pdf/PdfObject.h \
src/formats/pdf/PdfPlugin.h \
src/formats/pdf/StringStream.h \
src/formats/rtf/RtfBookReader.h \
src/formats/rtf/RtfDescriptionReader.h \
src/formats/rtf/RtfImage.h \
src/formats/rtf/RtfPlugin.h \
src/formats/rtf/RtfReader.h \
src/formats/rtf/RtfReaderStream.h \
src/formats/tcr/PPLBookReader.h \
src/formats/tcr/TcrPlugin.h \
src/formats/tcr/TcrStream.h \
src/formats/txt/PlainTextFormat.h \
src/formats/txt/TxtBookReader.h \
src/formats/txt/TxtPlugin.h \
src/formats/txt/TxtReader.h \
src/formats/util/EntityFilesCollector.h \
src/formats/util/MergedStream.h \
src/formats/util/MiscUtil.h \
src/formats/util/TextFormatDetector.h \
src/formats/util/XMLTextStream.h \
src/formats/xhtml/XHTMLReader.h \
src/network/atom/ATOMConstructs.h \
src/network/atom/ATOMContainers.h \
src/network/atom/ATOMMetadata.h \
src/network/authentication/NetworkAuthenticationManager.h \
src/network/opds/NetworkOPDSFeedReader.h \
src/network/opds/OPDSCatalogItem.h \
src/network/opds/OPDSFeedReader.h \
src/network/opds/OPDSLink.h \
src/network/opds/OPDSLink_AdvancedSearch.h \
src/network/opds/OPDSLink_Reader.h \
src/network/opds/OPDSMetadata.h \
src/network/opds/OPDSXMLParser.h \
src/network/opds/URLRewritingRule.h \
src/optionsDialog/bookInfo/BookInfoDialog.h \
src/optionsDialog/library/LibraryOptionsDialog.h \
src/optionsDialog/lookAndFeel/FormatOptionsPage.h \
src/optionsDialog/lookAndFeel/LookAndFeelOptionsDialog.h \
src/optionsDialog/lookAndFeel/OptionsPage.h \
src/optionsDialog/lookAndFeel/StyleOptionsPage.h \
src/optionsDialog/network/NetworkOptionsDialog.h \
src/optionsDialog/reading/ReadingOptionsDialog.h \
src/optionsDialog/system/SystemOptionsDialog.h \
src/database/sqldb/implsqlite/SQLiteCommand.h \
src/database/sqldb/implsqlite/SQLiteConnection.h \
src/database/sqldb/implsqlite/SQLiteDataBase.h \
src/database/sqldb/implsqlite/SQLiteDataReader.h \
src/database/sqldb/implsqlite/SQLiteFactory.h \
src/network/authentication/basic/BasicAuthenticationManager.h \
src/network/authentication/basic/BasicAuthenticationRequest.h \
src/network/authentication/litres/LitResAuthenticationDataParser.h \
src/network/authentication/litres/LitResAuthenticationManager.h \
src/network/authentication/litres/LitResBookshelfItem.h \
src/network/authentication/litres/LitResDataParser.h \
src/network/authentication/litres/LitResGenre.h \
src/network/authentication/litres/LitResGenresParser.h \
src/network/authentication/litres/LitResUtil.h \
src/formats/doc/DocPlugin.h \
src/formats/doc/DocMetaInfoReader.h \
src/formats/doc/DocBookReader.h \
src/formats/doc/OleStorage.h \
src/formats/doc/OleStream.h \
src/formats/doc/OleStream.h \
src/formats/doc/catdoc/config.h \
src/formats/doc/catdoc/catdoc.h \
src/formats/doc/OleStreamReader.h \
src/formats/doc/OleUtil.h \
src/formats/doc/OleMainStream.h \
src/formats/doc/OleUtil.h \
src/formats/doc/OleStreamReader.h \
src/formats/doc/OleStream.h \
src/formats/doc/OleStorage.h \
src/formats/doc/OleMainStream.h \
src/formats/doc/DocPlugin.h \
src/formats/doc/DocMetaInfoReader.h \
src/formats/doc/DocBookReader.h \
src/formats/rtf/RtfImage.h \
src/formats/oeb/XHTMLImageFinder.h \
src/bookmodel/FBHyperlinkType.h \
src/library/Number.h \
src/formats/doc/DocFloatImageReader.h \
src/formats/doc/DocInlineImageReader.h \
src/network/opds/OPDSLink_GenericFeedReader.h \
src/network/opds/OPDSLink_GenericXMLParser.h \
src/network/opds/OPDSLink_GenericXMLParser.h \
src/network/opds/OPDSLink_GenericFeedReader.h \
src/network/opds/OpenSearchXMLReader.h \
src/network/opds/OPDSLink_GenericXMLParser.h \
src/database/networkdb/NetworkDBQuery.h \
src/database/networkdb/NetworkDB.h \
src/database/networkdb/DBRunnables.h \
src/network/authentication/litres/LitResRecommendationsItem.h \
src/network/authentication/litres/SortedCatalogItem.h \
src/network/authentication/litres/LitResByGenresItem.h \
src/network/authentication/litres/LitResAuthorsItem.h \
src/network/authentication/litres/LitResAuthorsParser.h \
src/network/authentication/litres/LitresAuthorsByLetter.h \
src/network/authentication/litres/LitResAuthorsByLetterItem.h \
src/network/authentication/litres/LitResAuthorsByLetterItem.h \
src/network/authentication/litres/LitResBooksFeedItem.h \
src/network/litres/SortedCatalogItem.h \
src/network/litres/LitResUtil.h \
src/network/litres/LitResRecommendationsItem.h \
src/network/litres/LitResGenresParser.h \
src/network/litres/LitResGenre.h \
src/network/litres/LitResByGenresItem.h \
src/network/litres/LitResBookshelfItem.h \
src/network/litres/LitResBooksFeedItem.h \
src/network/litres/LitResAuthorsParser.h \
src/network/litres/LitResAuthorsItem.h \
src/network/litres/LitResBooksFeedParser.h \
src/network/litres/LitResBooksFeedItem.h \
src/network/tree/NetworkNodesFactory.h \
src/network/tree/FBNode.h \
src/network/tree/NetworkOperationRunnable.h \
src/network/tree/NetworkLibrary.h \
src/network/tree/NetworkLibrary.h \
src/tree/FBTree.h \
src/network/tree/NetworkTreeNodes.h \
src/network/tree/NetworkTreeFactory.h \
src/network/opds/OPDSBookItem.h \
src/network/litres/LitResBookItem.h \
src/network/tree/SearchCatalogTree.h \
src/network/tree/NetworkSearcher.h \
src/formats/doc/DocReaderStream.h \
src/formats/doc/OleStreamParser.h \
src/formats/doc/DocStreams.h \
src/network/tree/NetworkCatalogUtil.h \
src/networkActions/AuthenticationDialogManager.h
SOURCES += src/blockTree/FBReaderNode.cpp \
src/bookmodel/BookModel.cpp \
src/bookmodel/BookReader.cpp \
src/encodingOption/EncodingOptionEntry.cpp \
src/external/ProgramCollection.cpp \
src/fbreader/AddBookAction.cpp \
src/fbreader/BooksOrderAction.cpp \
src/fbreader/BookTextView.cpp \
src/fbreader/ContentsView.cpp \
src/fbreader/FBReader.cpp \
src/fbreader/FBReaderActionCode.cpp \
src/fbreader/FBReaderActions.cpp \
src/fbreader/FBView.cpp \
src/fbreader/main.cpp \
src/fbreader/PreferencesPopupData.cpp \
src/fbreader/RecentBooksPopupData.cpp \
src/fbreader/ScrollingAction.cpp \
src/fbreader/SearchActions.cpp \
src/fbreader/SearchOnNetworkAction.cpp \
src/fbreader/TimeUpdater.cpp \
src/formats/EncodedTextReader.cpp \
src/formats/FormatPlugin.cpp \
src/formats/PluginCollection.cpp \
src/library/Author.cpp \
src/library/Book.cpp \
src/library/Comparators.cpp \
src/library/Library.cpp \
src/library/Tag.cpp \
src/libraryActions/AuthorInfoDialog.cpp \
src/libraryActions/BooksUtil.cpp \
src/libraryActions/LibraryAuthorActions.cpp \
src/libraryActions/LibraryBookActions.cpp \
src/libraryActions/LibraryTagActions.cpp \
src/libraryTree/AuthorNode.cpp \
src/libraryTree/BookNode.cpp \
src/libraryTree/LibraryByAuthorView.cpp \
src/libraryTree/LibraryByTagView.cpp \
src/libraryTree/LibraryView.cpp \
src/libraryTree/SeriesNode.cpp \
src/libraryTree/TagNode.cpp \
src/migration/BookInfo.cpp \
src/migration/FB2MigrationReader.cpp \
src/migration/HtmlDCTagsReader.cpp \
src/migration/migrate.cpp \
src/migration/Migration.cpp \
src/migration/Migration_0_10_4.cpp \
src/migration/Migration_0_11_0.cpp \
src/migration/Migration_0_8_11.cpp \
src/migration/Migration_0_8_13.cpp \
src/migration/Migration_0_8_16.cpp \
src/migration/OEBMigrationReader.cpp \
src/network/BookReference.cpp \
src/network/NetworkBookCollection.cpp \
src/network/NetworkBookItem.cpp \
src/network/NetworkCatalogItem.cpp \
src/network/NetworkComparators.cpp \
src/network/NetworkErrors.cpp \
src/network/NetworkItem.cpp \
src/network/NetworkLink.cpp \
src/network/NetworkLinkCollection.cpp \
src/network/NetworkOperationData.cpp \
src/network/SearchResult.cpp \
src/network/UserList.cpp \
src/networkActions/AuthenticationDialog.cpp \
src/networkActions/NetworkActions.cpp \
src/networkActions/NetworkOperationRunnable.cpp \
src/networkActions/PasswordRecoveryDialog.cpp \
src/networkActions/RegisterUserDialog.cpp \
src/networkTree/NetworkAuthorNode.cpp \
src/networkTree/NetworkBookNode.cpp \
src/networkTree/NetworkCatalogNode.cpp \
src/networkTree/NetworkCatalogRootNode.cpp \
src/networkTree/NetworkCatalogUtil.cpp \
src/networkTree/NetworkContainerNode.cpp \
src/networkTree/NetworkNodesFactory.cpp \
src/networkTree/NetworkSeriesNode.cpp \
src/networkTree/NetworkView.cpp \
src/networkTree/SearchResultNode.cpp \
src/options/FBCategoryKey.cpp \
src/options/FBOptions.cpp \
src/options/FBTextStyle.cpp \
src/optionsDialog/AbstractOptionsDialog.cpp \
src/optionsDialog/IntegrationTab.cpp \
src/database/booksdb/BooksDB.cpp \
src/database/booksdb/BooksDB_BookAuthor.cpp \
src/database/booksdb/BooksDB_BookSeries.cpp \
src/database/booksdb/BooksDB_BookTag.cpp \
src/database/booksdb/BooksDBQuery.cpp \
src/database/booksdb/BooksDBUtil.cpp \
src/database/sqldb/DataBase.cpp \
src/database/sqldb/DBCommand.cpp \
src/database/sqldb/DBCommandParameter.cpp \
src/database/sqldb/DBConnection.cpp \
src/database/sqldb/DBDataReader.cpp \
src/database/sqldb/DBIntValue.cpp \
src/database/sqldb/DBNullValue.cpp \
src/database/sqldb/DBRealValue.cpp \
src/database/sqldb/DBTextValue.cpp \
src/database/sqldb/DBValue.cpp \
src/formats/chm/BitStream.cpp \
src/formats/chm/CHMFile.cpp \
src/formats/chm/CHMFileImage.cpp \
src/formats/chm/CHMPlugin.cpp \
src/formats/chm/CHMReferenceCollection.cpp \
src/formats/chm/E8Decoder.cpp \
src/formats/chm/HHCReader.cpp \
src/formats/chm/HHCReferenceCollector.cpp \
src/formats/chm/HtmlSectionReader.cpp \
src/formats/chm/HuffmanDecoder.cpp \
src/formats/chm/LZXDecompressor.cpp \
src/formats/css/StyleSheetParser.cpp \
src/formats/css/StyleSheetTable.cpp \
src/formats/docbook/DocBookBookReader.cpp \
src/formats/docbook/DocBookDescriptionReader.cpp \
src/formats/docbook/DocBookPlugin.cpp \
src/formats/docbook/DocBookReader.cpp \
src/formats/dummy/DummyBookReader.cpp \
src/formats/dummy/DummyMetaInfoReader.cpp \
src/formats/dummy/DummyPlugin.cpp \
src/formats/fb2/FB2BookReader.cpp \
src/formats/fb2/FB2CoverReader.cpp \
src/formats/fb2/FB2MetaInfoReader.cpp \
src/formats/fb2/FB2Plugin.cpp \
src/formats/fb2/FB2Reader.cpp \
src/formats/fb2/FB2TagManager.cpp \
src/formats/html/HtmlBookReader.cpp \
src/formats/html/HtmlDescriptionReader.cpp \
src/formats/html/HtmlEntityCollection.cpp \
src/formats/html/HtmlPlugin.cpp \
src/formats/html/HtmlReader.cpp \
src/formats/html/HtmlReaderStream.cpp \
src/formats/oeb/NCXReader.cpp \
src/formats/oeb/OEBBookReader.cpp \
src/formats/oeb/OEBCoverReader.cpp \
src/formats/oeb/OEBMetaInfoReader.cpp \
src/formats/oeb/OEBPlugin.cpp \
src/formats/oeb/OEBTextStream.cpp \
src/formats/openreader/OpenReaderPlugin.cpp \
src/formats/openreader/ORBookReader.cpp \
src/formats/openreader/ORDescriptionReader.cpp \
src/formats/pdb/BitReader.cpp \
src/formats/pdb/DocDecompressor.cpp \
src/formats/pdb/EReaderPlugin.cpp \
src/formats/pdb/EReaderStream.cpp \
src/formats/pdb/HtmlMetainfoReader.cpp \
src/formats/pdb/HuffDecompressor.cpp \
src/formats/pdb/MobipocketHtmlBookReader.cpp \
src/formats/pdb/MobipocketPlugin.cpp \
src/formats/pdb/PalmDocLikePlugin.cpp \
src/formats/pdb/PalmDocLikeStream.cpp \
src/formats/pdb/PalmDocPlugin.cpp \
src/formats/pdb/PalmDocStream.cpp \
src/formats/pdb/PdbPlugin.cpp \
src/formats/pdb/PdbReader.cpp \
src/formats/pdb/PdbStream.cpp \
src/formats/pdb/PluckerBookReader.cpp \
src/formats/pdb/PluckerImages.cpp \
src/formats/pdb/PluckerPlugin.cpp \
src/formats/pdb/PluckerTextStream.cpp \
src/formats/pdb/PmlBookReader.cpp \
src/formats/pdb/PmlReader.cpp \
src/formats/pdb/SimplePdbPlugin.cpp \
src/formats/pdb/ZTXTPlugin.cpp \
src/formats/pdb/ZTXTStream.cpp \
src/formats/pdf/PdfBookReader.cpp \
src/formats/pdf/PdfDescriptionReader.cpp \
src/formats/pdf/PdfObject.cpp \
src/formats/pdf/PdfPlugin.cpp \
src/formats/pdf/StringStream.cpp \
src/formats/rtf/RtfBookReader.cpp \
src/formats/rtf/RtfDescriptionReader.cpp \
src/formats/rtf/RtfImage.cpp \
src/formats/rtf/RtfPlugin.cpp \
src/formats/rtf/RtfReader.cpp \
src/formats/rtf/RtfReaderStream.cpp \
src/formats/tcr/PPLBookReader.cpp \
src/formats/tcr/TcrPlugin.cpp \
src/formats/tcr/TcrStream.cpp \
src/formats/txt/PlainTextFormat.cpp \
src/formats/txt/TxtBookReader.cpp \
src/formats/txt/TxtPlugin.cpp \
src/formats/txt/TxtReader.cpp \
src/formats/util/EntityFilesCollector.cpp \
src/formats/util/MergedStream.cpp \
src/formats/util/MiscUtil.cpp \
src/formats/util/TextFormatDetector.cpp \
src/formats/util/XMLTextStream.cpp \
src/formats/xhtml/XHTMLReader.cpp \
src/network/atom/ATOMConstructs.cpp \
src/network/atom/ATOMContainers.cpp \
src/network/atom/ATOMMetadata.cpp \
src/network/authentication/NetworkAuthenticationManager.cpp \
src/network/opds/NetworkOPDSFeedReader.cpp \
src/network/opds/OPDSCatalogItem.cpp \
src/network/opds/OPDSLink.cpp \
src/network/opds/OPDSLink_Reader.cpp \
src/network/opds/OPDSMetadata.cpp \
src/network/opds/OPDSXMLParser.cpp \
src/optionsDialog/bookInfo/BookInfoDialog.cpp \
src/optionsDialog/library/LibraryOptionsDialog.cpp \
src/optionsDialog/lookAndFeel/FormatOptionsPage.cpp \
src/optionsDialog/lookAndFeel/LookAndFeelOptionsDialog.cpp \
src/optionsDialog/lookAndFeel/OptionsPage.cpp \
src/optionsDialog/lookAndFeel/StyleOptionsPage.cpp \
src/optionsDialog/network/NetworkOptionsDialog.cpp \
src/optionsDialog/reading/IndicatorTab.cpp \
src/optionsDialog/reading/KeyBindingsTab.cpp \
src/optionsDialog/reading/ReadingOptionsDialog.cpp \
src/optionsDialog/system/SystemOptionsDialog.cpp \
src/database/booksdb/runnables/ClearBooksDBRunnable.cpp \
src/database/booksdb/runnables/DeleteBookRunnable.cpp \
src/database/booksdb/runnables/DeleteFileEntriesRunnable.cpp \
src/database/booksdb/runnables/FindFileIdRunnable.cpp \
src/database/booksdb/runnables/InitBooksDBRunnable.cpp \
src/database/booksdb/runnables/LoadFileEntriesRunnable.cpp \
src/database/booksdb/runnables/LoadRecentBooksRunnable.cpp \
src/database/booksdb/runnables/SaveAuthorsRunnable.cpp \
src/database/booksdb/runnables/SaveBookRunnable.cpp \
src/database/booksdb/runnables/SaveBookStateStackRunnable.cpp \
src/database/booksdb/runnables/SaveRecentBooksRunnable.cpp \
src/database/booksdb/runnables/SaveSeriesRunnable.cpp \
src/database/booksdb/runnables/SaveTableBookRunnable.cpp \
src/database/sqldb/implsqlite/SQLiteCommand.cpp \
src/database/sqldb/implsqlite/SQLiteConnection.cpp \
src/database/sqldb/implsqlite/SQLiteDataBase.cpp \
src/database/sqldb/implsqlite/SQLiteDataReader.cpp \
src/database/sqldb/implsqlite/SQLiteFactory.cpp \
src/network/authentication/basic/BasicAuthenticationManager.cpp \
src/network/authentication/basic/BasicAuthenticationRequest.cpp \
src/network/authentication/litres/LitResAuthenticationDataParser.cpp \
src/network/authentication/litres/LitResAuthenticationManager.cpp \
src/network/authentication/litres/LitResBookshelfItem.cpp \
src/network/authentication/litres/LitResDataParser.cpp \
src/network/authentication/litres/LitResGenre.cpp \
src/network/authentication/litres/LitResGenresParser.cpp \
src/network/authentication/litres/LitResUtil.cpp \
src/formats/doc/DocPlugin.cpp \
src/formats/doc/DocMetaInfoReader.cpp \
src/formats/doc/DocBookReader.cpp \
src/formats/doc/OleStorage.cpp \
src/formats/doc/OleStream.cpp \
src/formats/doc/OleStream.cpp \
src/formats/doc/catdoc/numutils.cpp \
src/formats/doc/catdoc/analyze.cpp \
src/formats/doc/OleStreamReader.cpp \
src/formats/doc/OleUtil.cpp \
src/formats/doc/OleMainStream.cpp \
src/formats/oeb/XHTMLImageFinder.cpp \
src/library/Number.cpp \
src/migration/Migration_0_99_0.cpp \
src/formats/doc/DocFloatImageReader.cpp \
src/formats/doc/DocInlineImageReader.cpp \
src/network/opds/OPDSLink_GenericFeedReader.cpp \
src/database/booksdb/runnables/SaveNetworkLinkRunnable.cpp \
src/network/opds/OPDSLink_GenericXMLParser.cpp \
src/network/opds/OPDSLink_Reader.cpp \
src/network/opds/OpenSearchXMLReader.cpp \
src/network/opds/URLRewritingRule.cpp \
src/database/networkdb/NetworkDBQuery.cpp \
src/database/networkdb/NetworkDB.cpp \
src/database/networkdb/runnables/SaveNetworkLinkRunnable.cpp \
src/database/networkdb/runnables/InitNetworkDBRunnable.cpp \
src/database/networkdb/runnables/ClearNetworkDBRunnable.cpp \
src/migration/Migration_0_99_1.cpp \
src/fbreader/AddNetworkCatalogAction.cpp \
src/network/opds/OPDSLink_FeedReader.cpp \
src/network/authentication/litres/LitResRecommendationsItem.cpp \
src/network/authentication/litres/SortedCatalogItem.cpp \
src/network/authentication/litres/LitResByGenresItem.cpp \
src/network/authentication/litres/LitResAuthorsItem.cpp \
src/network/authentication/litres/LitResAuthorsParser.cpp \
src/network/authentication/litres/LitresAuthorsByLetter.cpp \
src/network/authentication/litres/LitResAuthorsByLetterItem.cpp \
src/network/authentication/litres/LitResBooksFeedItem.cpp \
src/network/litres/SortedCatalogItem.cpp \
src/network/litres/LitResUtil.cpp \
src/network/litres/LitResRecommendationsItem.cpp \
src/network/litres/LitResGenresParser.cpp \
src/network/litres/LitResGenre.cpp \
src/network/litres/LitResByGenresItem.cpp \
src/network/litres/LitResBookshelfItem.cpp \
src/network/litres/LitResBooksFeedItem.cpp \
src/network/litres/LitResAuthorsParser.cpp \
src/network/litres/LitResAuthorsItem.cpp \
src/network/litres/LitResBooksFeedParser.cpp \
src/network/tree/SearchResultNode.cpp \
src/network/tree/NetworkView.cpp \
src/network/tree/NetworkSeriesNode.cpp \
src/network/tree/NetworkNodesFactory.cpp \
src/network/tree/NetworkContainerNode.cpp \
src/network/tree/NetworkCatalogUtil.cpp \
src/network/tree/NetworkCatalogRootNode.cpp \
src/network/tree/NetworkCatalogNode.cpp \
src/network/tree/NetworkBookNode.cpp \
src/network/tree/NetworkAuthorNode.cpp \
src/network/tree/FBNode.cpp \
src/network/tree/NetworkActions.cpp \
src/network/tree/NetworkOperationRunnable.cpp \
src/network/tree/NetworkLibrary.cpp \
src/network/tree/RootTree.cpp \
src/network/tree/NetworkCatalogRootTree.cpp \
src/tree/FBTree.cpp \
src/network/tree/NetworkTree.cpp \
src/network/tree/NetworkCatalogTree.cpp \
src/network/tree/NetworkTreeFactory.cpp \
src/network/tree/NetworkSeriesTree.cpp \
src/network/tree/NetworkBookTree.cpp \
src/network/tree/NetworkAuthorTree.cpp \
src/network/opds/OPDSBookItem.cpp \
src/network/litres/LitResBookItem.cpp \
src/network/tree/SearchCatalogTree.cpp \
src/network/tree/NetworkSearcher.cpp \
src/network/tree/SearchCatalogTree.cpp \
src/formats/doc/DocReaderStream.cpp \
src/formats/doc/OleStreamParser.cpp \
src/formats/doc/DocStreams.cpp \
src/network/tree/SearchCatalogTree.cpp \
src/networkActions/AuthenticationDialogManager.cpp
OTHER_FILES += \
src/formats/doc/catdoc/analyze.o

@ -1,33 +0,0 @@
#!/bin/sh
if [ $# != 3 ]; then
echo -e "usage\n $0 <platform> <ui_type> <install_dir>";
exit 0;
fi;
case "$1" in
desktop|win32)
;;
macosx)
;;
maemo)
case "$2" in
maemo5)
config_file=data/default/config.maemo5.xml
;;
*)
config_file=data/default/config.maemo.xml
;;
esac;
;;
pepperpad3)
;;
zaurus_640x480)
;;
*)
;;
esac;
if [ "$config_file" != "" ]; then
install -m 0644 $config_file $3/config.xml;
fi;

@ -1,34 +0,0 @@
#!/bin/sh
if [ $# != 2 ]; then
echo -e "usage\n $0 <platform> <install_dir>";
exit 0;
fi;
case "$1" in
desktop|openzaurus_640x480|pdaxrom|pepperpad3|zaurus_640x480|macosx)
platform=desktop;
;;
maemo)
platform=maemo;
;;
opensimpad-0.9.0|qvfb)
platform=640x480;
;;
openzaurus_240x320|pma400|zaurus_240x320|moto)
platform=240x320;
;;
win32)
platform=win32;
;;
*)
echo "$0: unknown platform \"$1\"";
exit 0;
;;
esac;
installdir=$2;
for file in data/help/MiniHelp.$platform.*.fb2; do
lang=`echo $file | cut -d . -f 3`;
install -m 0644 $file $installdir/MiniHelp.$lang.fb2
done

@ -1,67 +0,0 @@
#!/bin/sh
if [ $# != 3 ]; then
echo -e "usage\n $0 <platform> <ui_type> <install_dir>";
exit 0;
fi;
case "$1" in
desktop|win32)
toolbar_file=data/default/toolbar.desktop.xml
fullscreen_toolbar_file=data/default/fullscreen_toolbar.desktop.xml
;;
macosx)
toolbar_file=data/default/toolbar.macosx.xml
;;
maemo)
case "$2" in
maemo5)
;;
*)
toolbar_file=data/default/toolbar.maemo.xml
;;
esac;
;;
pepperpad3)
toolbar_file=data/default/toolbar.full.xml
;;
zaurus_640x480)
toolbar_file=data/default/toolbar.zaurus.xml
;;
*)
toolbar_file=data/default/toolbar.short.xml
;;
esac;
case "$1" in
zaurus_640x480|zaurus_240x320|pma400)
menubar_file=data/default/menubar.xml
;;
maemo)
case "$2" in
maemo5)
menubar_file=data/default/menubar.maemo5.xml
;;
*)
menubar_file=data/default/menubar.xml
;;
esac;
;;
moto)
menubar_file=data/default/menubar.moto.xml
;;
*)
;;
esac;
if [ "$toolbar_file" != "" ]; then
install -m 0644 $toolbar_file $3/toolbar.xml;
fi;
if [ "$fullscreen_toolbar_file" != "" ]; then
install -m 0644 $fullscreen_toolbar_file $3/fullscreen_toolbar.xml;
fi;
if [ "$menubar_file" != "" ]; then
install -m 0644 $menubar_file $3/menubar.xml;
fi;

@ -1,10 +0,0 @@
ROOTDIR = $(CURDIR)/../..
include $(ROOTDIR)/makefiles/config.mk
SHARE_FBREADER = $(DESTDIR)/share/FBReader
install:
@install -m 0644 ../data/default/keymap.win32.xml $(SHARE_FBREADER)/default/keymap.xml
@install -m 0644 ../data/default/styles.win32.xml $(SHARE_FBREADER)/default/styles.xml
clean:

@ -1,19 +0,0 @@
ROOTDIR = $(CURDIR)/../..
include $(ROOTDIR)/makefiles/config.mk
ifeq "$(RESOLUTION)" "240x320"
PICS_TO = pics
else # RESOLUTION == 640x480
PICS_TO = pics144
endif
install:
@install -m 0644 ../data/default/config.zaurus.xml $(DESTDIR)$(SHAREDIR)/FBReader/default/config.xml
@install -m 0644 ../data/default/keymap.zaurus.xml $(DESTDIR)$(SHAREDIR)/FBReader/default/keymap.xml
@install -m 0644 ../data/default/styles.$(RESOLUTION).xml $(DESTDIR)$(SHAREDIR)/FBReader/default/styles.xml
@install -d $(DESTDIR)$(INSTALLDIR)/$(PICS_TO)
@install -m 0644 ../data/icons/application/$(TARGET_ARCH)_$(RESOLUTION).png $(DESTDIR)$(INSTALLDIR)/$(PICS_TO)/FBReader.png
@install -d $(DESTDIR)$(INSTALLDIR)/apps/Applications
@install -m 0644 FBReader.$(RESOLUTION).desktop $(DESTDIR)$(INSTALLDIR)/apps/Applications/FBReader.desktop
clean:

@ -1,42 +0,0 @@
include $(ROOTDIR)/makefiles/arch/unix.mk
QNX_HOST = /Applications/bbndk/host_10_0_9_52/darwin/x86
QNX_TARGET = /Applications/bbndk/target_10_0_9_386/qnx6
BB10_SDK_BIN_FOLDER = $(QNX_HOST)/usr/bin
#BINDIR = $(INSTALLDIR)/Contents/MacOS
#SHAREDIR = $(INSTALLDIR)/Contents/Resources
#IMAGEDIR = $(SHAREDIR)/icons
#APPIMAGEDIR = $(IMAGEDIR)
#
## ~~ is a macros that will be expanded at runtime into QApplication::applicationDirPath() + "/.."
#SHAREDIR_MACRO = ~~/Resources
#IMAGEDIR_MACRO = $(SHAREDIR_MACRO)/icons
#APPIMAGEDIR_MACRO = $(IMAGEDIR_MACRO)
#
ZLSHARED = no
CCACHE = $(shell if which ccache > /dev/null; then echo "ccache"; fi) #if ccache is not installed, do not use it
CC = QNX_HOST=$(QNX_HOST) QNX_TARGET=$(QNX_TARGET) $(CCACHE) $(BB10_SDK_BIN_FOLDER)/qcc
AR = $(BB10_SDK_BIN_FOLDER)/ntoarmv7-ar rsu
LD = QNX_HOST=$(QNX_HOST) QNX_TARGET=$(QNX_TARGET) $(BB10_SDK_BIN_FOLDER)/qcc
MOC = $(BB10_SDK_BIN_FOLDER)/moc
ARCH_FLAGS = -Vgcc_ntoarmv7le
CFLAGS = $(ARCH_FLAGS) -Wall -Wno-ctor-dtor-privacy -W
LDFLAGS = $(ARCH_FLAGS)
EXTERNAL_LIBS = -lcpp-ne -liconv
QTINCLUDE = -I $(QNX_TARGET)/usr/include/qt4
UILIBS = -L $(QNX_TARGET)/armle-v7/usr/lib/qt4/lib -lQtCore -lQtGui -lQtNetwork
#ifeq "$(UI_TYPE)" "qt4"
# QTBASEDIR = ~/QtSDK/Desktop/Qt/4.8.1/gcc
# QTINCLUDE = -I $(QTBASEDIR)/include
# MOC = $(QTBASEDIR)/bin/moc
# UILIBS = -F $(QTBASEDIR)/lib -framework QtCore -framework QtGui -framework QtNetwork
#endif
#
RM = rm -rvf
RM_QUIET = rm -rf

@ -1,23 +0,0 @@
include $(ROOTDIR)/makefiles/arch/unix.mk
ifeq "$(INSTALLDIR)" ""
INSTALLDIR=/usr
endif
IMAGEDIR = $(INSTALLDIR)/share/pixmaps
APPIMAGEDIR = $(INSTALLDIR)/share/pixmaps/%APPLICATION_NAME%
CCACHE = $(shell if which ccache > /dev/null; then echo "ccache"; fi) #if ccache is not installed, do not use it
CC = $(CCACHE) gcc
AR = ar rsu
LD = g++
CFLAGS += -pipe -fno-exceptions -Wall -Wno-ctor-dtor-privacy -W -DLIBICONV_PLUG
EXTERNAL_INCLUDE = $(shell $(PKG_CONFIG) --cflags fribidi)
MOC = "$(shell $(PKG_CONFIG) --variable=host_bins Qt5Core)/moc"
QTINCLUDE = $(shell $(PKG_CONFIG) --cflags Qt5Gui Qt5Widgets Qt5Network)
UILIBS = $(shell $(PKG_CONFIG) --libs Qt5Gui Qt5Widgets Qt5Network)
RM = rm -rvf
RM_QUIET = rm -rf

@ -1,19 +0,0 @@
include $(ROOTDIR)/makefiles/arch/unix.mk
INSTALLDIR = /mnt/ext2
ZLSHARED = no
SDK_DIR = /usr/local/arm/3.4.1
SDK_BIN_DIR = $(SDK_DIR)/arm-linux/bin
CC = $(SDK_BIN_DIR)/gcc
AR = $(SDK_BIN_DIR)/ar rsu
LD = $(SDK_BIN_DIR)/g++
CFLAGS = -pipe -fno-exceptions -Wall -Wno-ctor-dtor-privacy -W -DLIBICONV_PLUG -I $(ROOTDIR)/../ebr/microwin/src/include -I $(ROOTDIR)/../ebr/ext/include -DXMLCONFIGHOMEDIR=\"/mnt/ext2\" -DDO_ICONV_CAST
LDFLAGS = -L $(ROOTDIR)/../ebr/microwin/lib/jpeg -L $(ROOTDIR)/../ebr/microwin/lib/mfont -L $(ROOTDIR)/../ebr/microwin/src/lib -L $(ROOTDIR)/../ebr/ext/lib
UILIBS = -lnano-X -ljpeg -lmfont
RM = rm -rvf
RM_QUIET = rm -rf

@ -1,21 +0,0 @@
include $(ROOTDIR)/makefiles/arch/unix.mk
ifeq "$(INSTALLDIR)" ""
INSTALLDIR=/usr
endif
IMAGEDIR = $(INSTALLDIR)/share/pixmaps
APPIMAGEDIR = $(INSTALLDIR)/share/pixmaps/%APPLICATION_NAME%
ZLSHARED = no
CC = /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/arm-apple-darwin9-g++-4.2.1
AR = /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/ar rsu
LD = /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/arm-apple-darwin9-g++-4.2.1
CFLAGS = -pipe -fno-exceptions -Wall -Wno-ctor-dtor-privacy -W -DLIBICONV_PLUG -I/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.0.sdk/usr/include/ -I/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.0.sdk/usr/include/c++/4.2.1/
LDFLAGS =
EXTERNAL_INCLUDE =
EXTERNAL_LIBS =
RM = rm -rvf
RM_QUIET = rm -rf

@ -1,34 +0,0 @@
include $(ROOTDIR)/makefiles/arch/unix.mk
BINDIR = $(INSTALLDIR)/Contents/MacOS
SHAREDIR = $(INSTALLDIR)/Contents/Resources
IMAGEDIR = $(SHAREDIR)/icons
APPIMAGEDIR = $(IMAGEDIR)
# ~~ is a macros that will be expanded at runtime into QApplication::applicationDirPath() + "/.."
SHAREDIR_MACRO = ~~/Resources
IMAGEDIR_MACRO = $(SHAREDIR_MACRO)/icons
APPIMAGEDIR_MACRO = $(IMAGEDIR_MACRO)
ZLSHARED = no
CCACHE = $(shell if which ccache > /dev/null; then echo "ccache"; fi) #if ccache is not installed, do not use it
CC = $(CCACHE) gcc
AR = ar rsu
LD = g++
ARCH_FLAGS = -arch x86_64 -mmacosx-version-min=10.5
CFLAGS = $(ARCH_FLAGS) -pipe -fno-exceptions -Wall -Wno-ctor-dtor-privacy -W
LDFLAGS = $(ARCH_FLAGS)
EXTERNAL_LIBS = -liconv
ifeq "$(UI_TYPE)" "qt4"
QTBASEDIR = ~/QtSDK/Desktop/Qt/4.8.1/gcc
QTINCLUDE = -I $(QTBASEDIR)/include
MOC = $(QTBASEDIR)/bin/moc
UILIBS = -F $(QTBASEDIR)/lib -framework QtCore -framework QtGui -framework QtNetwork
endif
RM = rm -rvf
RM_QUIET = rm -rf

@ -1,33 +0,0 @@
include $(ROOTDIR)/makefiles/arch/unix.mk
INSTALLDIR = /usr
IMAGEDIR = $(INSTALLDIR)/share/%APPLICATION_NAME%/icons
APPIMAGEDIR = $(IMAGEDIR)
CC = ccache gcc
AR = ar rsu
DEPGEN = $(CC) -MM
RM = rm -rvf
RM_QUIET = rm -rf
LD = g++
ifeq "$(UI_TYPE)" "maemo5"
CFLAGS = -pipe -fno-exceptions -fno-rtti -Wall -Wno-ctor-dtor-privacy -W -pthread -DMAEMO_VERSION=5
GTKINCLUDE = -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/freetype2 -I/usr/include/libpng12 -DMAEMO_CHANGES -I/usr/include/hildon-1 -I/usr/include/hildon-fm-2 -I/usr/include/dbus-1.0 -I/usr/lib/dbus-1.0/include -I/usr/include/conic
UILIBS = -lhildon-1 -lhildonfm -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lm -lpangocairo-1.0 -lpango-1.0 -lcairo -lgmodule-2.0 -ldl -lfreetype -lz -lfontconfig -lpng12 -lXrender -lX11 -losso -ldbus-glib-1 -ldbus-1 -lgobject-2.0 -lglib-2.0 -lconic
else ifeq "$(UI_TYPE)" "maemo4"
CFLAGS = -pipe -fno-exceptions -fno-rtti -Wall -Wno-ctor-dtor-privacy -W -pthread -mthumb -DMAEMO_VERSION=4
GTKINCLUDE = -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/freetype2 -I/usr/include/libpng12 -DMAEMO_CHANGES -I/usr/include/hildon-1 -I/usr/include/dbus-1.0 -I/usr/lib/dbus-1.0/include -I/usr/include/conic
UILIBS = -lhildon-1 -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lm -lpangocairo-1.0 -lpango-1.0 -lcairo -lgmodule-2.0 -ldl -lfreetype -lz -lfontconfig -lpng12 -lXrender -lX11 -losso -ldbus-glib-1 -ldbus-1 -lgobject-2.0 -lglib-2.0 -lconic
else # ifeq "$(UI_TYPE)" "maemo2/3"
CFLAGS = -pipe -fno-exceptions -fno-rtti -Wall -Wno-ctor-dtor-privacy -W -pthread -mthumb
GTKINCLUDE = -I/usr/include/libxml2 -I/usr/include/libglade-2.0 -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/X11R6/include -I/usr/include/atk-1.0 -I/usr/include/pango-1.0 -I/usr/include/freetype2 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/hildon-widgets -I/usr/include/hildon-lgpl -I/usr/include/dbus-1.0 -I/usr/lib/dbus-1.0/include -I/usr/include/conic
UILIBS = -lz -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lm -lpangoxft-1.0 -lpangox-1.0 -lpango-1.0 -lgobject-2.0 -lgmodule-2.0 -ldl -lglib-2.0 -lm -lgmodule-2.0 -ldl -lgthread-2.0 -lhildonwidgets -losso
ifeq "$(UI_TYPE)" "maemo2"
CFLAGS += -DMAEMO_VERSION=2
else # ifeq "$(UI_TYPE)" "maemo3"
CFLAGS += -DMAEMO_VERSION=3
UILIBS += -lconic
endif
endif

@ -1,23 +0,0 @@
include $(ROOTDIR)/makefiles/arch/unix.mk
INSTALLDIR = /mmc/mmca1/.system/QTDownLoad/fbreader
IMAGEDIR = $(INSTALLDIR)/pics
APPIMAGEDIR = $(IMAGEDIR)/%APPLICATION_NAME%
ARM_PATH = /usr/local/a1200/gcc-arm-iwmmxt/gcc-3.3.6-glibc-2.3.2/arm-linux
TOOLS_PATH = $(ARM_PATH)/arm-linux/bin
QT_PATH = $(ARM_PATH)/qt
CC = $(TOOLS_PATH)/gcc
AR = $(TOOLS_PATH)/ar rsu
LD = $(TOOLS_PATH)/g++
MOC = $(QT_PATH)/bin/moc
RM = rm -rvf
RM_QUIET = rm -rf
QTINCLUDE = -I $(QT_PATH)/include -I $(QT_PATH)/include/ezx
UILIBS = -L$(QT_PATH)/lib -L$(QT_PATH)/lib/ezx -lqte-mt -lezxappbase -lezxappsdk -lezxopenwindow -lipp-miscGen -lipp-jp -lezxjpeg -lezxpm
CFLAGS = -pipe -Duint16_t="unsigned short" -Duint32_t="unsigned int" -DQWS -fno-exceptions -fno-rtti -Wall -W -O2 -mcpu=iwmmxt -mtune=iwmmxt -Wno-ctor-dtor-privacy -W -ftemplate-depth-30
LDFLAGS =

@ -1,26 +0,0 @@
include $(ROOTDIR)/makefiles/arch/unix.mk
INSTALLDIR=/opt/QtPalmtop
IMAGEDIR = $(INSTALLDIR)/pics
APPIMAGEDIR = $(IMAGEDIR)/%application_name%
BASEPATH = /stuff/build/opensimpad-0.9.0
TOOLSPATH = $(BASEPATH)/cross/arm-linux/bin
OEPATH = $(BASEPATH)/staging/arm-linux
QTPATH = $(BASEPATH)/staging/arm-linux/qt2
MOC = $(BASEPATH)/staging/i686-linux/bin/moc
RM = rm -rvf
RM_QUIET = rm -rf
QTINCLUDE = -I $(QTPATH)/include
UILIBS = -L $(QTPATH)/lib -lqte -L $(OEPATH)/lib -lqpe -ljpeg -lpng12 -lz -lts
CC = $(TOOLSPATH)/gcc -I $(OEPATH)/include
AR = $(TOOLSPATH)/ar rsu
LD = $(TOOLSPATH)/g++
XML_LIBS = -L $(OEPATH)/lib -lexpat
ARCHIVER_LIBS = -L $(OEPATH)/lib -lz -lbz2
CFLAGS = -pipe -DOPIE_NO_DEBUG -DQT_NO_DEBUG -DQWS -fno-exceptions -fno-rtti -march=armv4 -mtune=xscale -mfloat-abi=soft --param large-function-growth=2000 --param inline-unit-growth=200 -Wall -Wno-ctor-dtor-privacy -W -Winline
LDFLAGS = -Wl,-rpath,$(LIBDIR)

@ -1,33 +0,0 @@
include $(ROOTDIR)/makefiles/arch/unix.mk
ifeq "$(UI_TYPE)" "opie"
INSTALLDIR = /opt/QtPalmtop
IMAGEDIR = $(INSTALLDIR)/pics
else # UI_TYPE == gpe
INSTALLDIR = /usr
IMAGEDIR = /usr/share/pixmaps
endif
APPIMAGEDIR = $(IMAGEDIR)/%application_name%
BASEPATH = /opt/openzaurus-3.5.4/usr/local/arm/oe
TOOLSPATH = $(BASEPATH)/bin
INCPATH = $(BASEPATH)/arm-linux/include
LIBPATH = $(BASEPATH)/arm-linux/lib
RM = rm -rvf
RM_QUIET = rm -rf
QTINCLUDE = -I $(INCPATH)/qt2
GTKINCLUDE = -I$(LIBPATH)/glib-2.0/include -I$(LIBPATH)/gtk-2.0/include -I$(INCPATH)/glib-2.0 -I$(INCPATH)/gtk-2.0 -I$(INCPATH)/pango-1.0 -I$(INCPATH)/atk-1.0
MOC = $(TOOLSPATH)/moc
CC = $(TOOLSPATH)/arm-linux-gcc
AR = $(TOOLSPATH)/arm-linux-ar rsu
LD = $(TOOLSPATH)/arm-linux-g++
ifeq "$(UI_TYPE)" "opie"
UILIBS = -lqte -lqpe
else
UILIBS = -lgpewidget -lgtk-x11-2.0 -lgdk-x11-2.0 -lgdk_pixbuf-2.0
endif
CFLAGS = -pipe -DOPIE_NO_DEBUG -DQT_NO_DEBUG -DQWS -fno-exceptions -fno-rtti -march=armv4 -mtune=xscale --param inline-unit-growth=200 --param large-function-growth=2000 -Wall -Wno-ctor-dtor-privacy -W -Winline
LDFLAGS = -Wl,-rpath,$(LIBDIR)

@ -1,29 +0,0 @@
include $(ROOTDIR)/makefiles/arch/unix.mk
INSTALLDIR = /usr
IMAGEDIR = /usr/share/pixmaps
APPIMAGEDIR = $(IMAGEDIR)/%APPLICATION_NAME%
BASEPATH = /opt/cross/arm/3.4.4-xscale-softvfp
USRPATH = $(BASEPATH)/armv5tel-cacko-linux
CC = $(BASEPATH)/bin/armv5tel-linux-gcc -I $(BASEPATH)/include
AR = $(BASEPATH)/bin/armv5tel-linux-ar rsu
LD = $(BASEPATH)/bin/armv5tel-linux-g++
DEPGEN = $(CC) -MM
CFLAGS = -pipe -fno-exceptions -fno-rtti -Wall -Wno-ctor-dtor-privacy -W -DLIBICONV_PLUG
MOC = $(BASEPATH)/bin/moc
QTINCLUDE = -I $(USRPATH)/qt/include
INCPATH = $(USRPATH)/include
GTKINCLUDE = -I$(INCPATH)/libxml2 -I$(INCPATH)/libglade-2.0 -I$(INCPATH)/gtk-2.0 -I$(USRPATH)/lib/gtk-2.0/include -I$(USRPATH)/X11R6/include -I$(INCPATH)/atk-1.0 -I$(INCPATH)/pango-1.0 -I$(INCPATH)/freetype2 -I$(INCPATH)/glib-2.0 -I$(USRPATH)/lib/glib-2.0/include
ifeq "$(UI_TYPE)" "qt"
UILIBS = -L $(USRPATH)/qt/lib -lqt-mt -L $(USRPATH)/X11R6/lib -lXext -lXrender -lXrandr -lXcursor -lX11 -lXft -lSM -lICE
else
UILIBS = -L $(USRPATH)/lib -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lm -lpangoxft-1.0 -lpangox-1.0 -lpango-1.0 -lgobject-2.0 -lgmodule-2.0 -ldl -lglib-2.0 -lm -lgmodule-2.0 -ldl -lgthread-2.0 -L $(USRPATH)/X11R6/lib -lXext -lXrender -lXrandr -lXcursor -lX11 -lXft -lSM -lICE
endif
RM = rm -rvf
RM_QUIET = rm -rf

@ -1,19 +0,0 @@
include $(ROOTDIR)/makefiles/arch/unix.mk
INSTALLDIR = /opt/QtPalmtop
IMAGEDIR = $(INSTALLDIR)/pics
APPIMAGEDIR = $(IMAGEDIR)/%APPLICATION_NAME%
QTPATH = /opt/Qtopia/sharp
TOOLSPATH = /opt/Embedix/tools/arm-linux/bin
MOC = $(QTPATH)/bin/moc
RM = rm -rvf
RM_QUIET = rm -rf
QTINCLUDE = -I $(QTPATH)/include
UILIBS = -L $(QTPATH)/lib -lqte -lqpe
CC = $(TOOLSPATH)/gcc
AR = $(TOOLSPATH)/ar rsu
LD = $(TOOLSPATH)/g++
CFLAGS = -pipe -DQT_QWS_EBX -DQT_QWS_CUSTOM -DQWS -fno-exceptions -fno-rtti -Wall -Wno-ctor-dtor-privacy -W -ftemplate-depth-30 -DXMLCONFIGHOMEDIR=\"~/Documents\"
DEPGEN = $(CC) -MM

@ -1,32 +0,0 @@
SHAREDIR = %APPLICATION_PATH%\\\\share
IMAGEDIR = $(SHAREDIR)\\\\icons
APPIMAGEDIR = $(IMAGEDIR)
FILENAMEDELIMITER = "\\\\"
PATHDELIMITER = ";"
EOLCHARS = "\\r\\n"
ZLSHARED = no
PREFIX = /usr/ppc/arm-wince-cegcc/bin/
CC = $(PREFIX)gcc
AR = $(PREFIX)ar rsu
LD = $(PREFIX)g++
RESOURCE_COMPILER = /usr/arm-wince-mingw32ce/bin/arm-wince-mingw32ce-windres
CFLAGS = -pipe -fno-exceptions -Wall -Wno-ctor-dtor-privacy -W -DUNICODE -D_WIN32_IE=0x0500 -D_WIN32_WINNT=0x0501 -DWINVER=0x0500 -DNOMINMAX
#LDFLAGS = -mwindows
#UILIBS = -lgdi32 -lcomctl32 -lcomdlg32 -lpng12 -ljpeg -lungif -ltiff
UILIBS = -lcoredll -lpng -ljpeg -lungif -ltiff
RM = rm -rvf
RM_QUIET = rm -rf
BUILD_RESOURCE_OBJECT = yes
.resources:
@echo -n 'Creating resource object...'
@echo 'ApplicationIcon ICON icons/win32/$(TARGET).ico' > $(TARGET).rc
@$(RESOURCE_COMPILER) $(TARGET).rc -o src/$(TARGET)_rc.o
@$(RM_QUIET) $(TARGET).rc
@echo ' OK'

@ -1,19 +0,0 @@
include $(ROOTDIR)/makefiles/arch/unix.mk
INSTALLDIR = /opt/opie/opie
IMAGEDIR = $(INSTALLDIR)/pics
APPIMAGEDIR = $(IMAGEDIR)/%application_name%
QTPATH = /opt/opie/qt-2.3.10
OPIEPATH = /opt/opie/opie
MOC = $(QTPATH)/bin/moc
RM = rm -rvf
RM_QUIET = rm -rf
QTINCLUDE = -I $(QTPATH)/include -I $(OPIEPATH)/include
UILIBS = -L $(QTPATH)/lib -lqte -L $(OPIEPATH)/lib -lqpe
CC = gcc
AR = ar rsu
LD = g++
CFLAGS = -pipe -DOPIE_NO_DEBUG -DOPIE_NO_BUILTIN_SHUTDOWN -DUSE_FILE_NOTIFICATION -DOPIE_SOUND_FRAGMENT_SHIFT=16 -DQT_NO_DEBUG -DQWS -fno-exceptions -fno-rtti -Wall -Wno-ctor-dtor-privacy -W -DLIBICONV_PLUG
DEPGEN = $(CC) -MM

@ -1,34 +0,0 @@
SHAREDIR = /share
IMAGEDIR = $(SHAREDIR)/icons
APPIMAGEDIR = $(IMAGEDIR)
SHAREDIR_MACRO = ~~\\\\share
IMAGEDIR_MACRO = $(SHAREDIR_MACRO)\\\\icons
APPIMAGEDIR_MACRO = $(IMAGEDIR_MACRO)
ZLSHARED = no
CC = i586-mingw32msvc-gcc
AR = i586-mingw32msvc-ar rsu
LD = i586-mingw32msvc-g++
RESOURCE_COMPILER = i586-mingw32msvc-windres
CFLAGS = -pipe -fno-exceptions -Wall -Wno-ctor-dtor-privacy -W -DUNICODE -D_WIN32_IE=0x0501 -D_WIN32_WINNT=0x0501 -DWINVER=0x0500 -DXMLCONFIGHOMEDIR=\"~\\\\..\"
LDFLAGS = -mwindows
#LDFLAGS = -mconsole
UILIBS = -lgdi32 -lcomctl32 -lcomdlg32 -lpng12 -ljpeg -lungif -ltiff
NETWORK_LIBS ?= -lcurl -lcurldll
RM = rm -rvf
RM_QUIET = rm -rf
BUILD_RESOURCE_OBJECT = yes
.resources:
@echo -n 'Creating resource object...'
@echo 'ApplicationIcon ICON data/icons/application/win32.ico' > $(TARGET).rc
@echo '1 24 win32/manifest' >> $(TARGET).rc
@$(RESOURCE_COMPILER) $(TARGET).rc -o src/$(TARGET)_rc.o
@$(RM_QUIET) $(TARGET).rc
@echo ' OK'

@ -1,23 +0,0 @@
include $(ROOTDIR)/makefiles/arch/unix.mk
INSTALLDIR = /opt/QtPalmtop
ifeq "$(UI_TYPE)" "qtopia-240x320"
IMAGEDIR = $(INSTALLDIR)/pics
else # UI_TYPE == qtopia-640x480
IMAGEDIR = $(INSTALLDIR)/pics144
endif
APPIMAGEDIR = $(IMAGEDIR)/%APPLICATION_NAME%
QTPATH = /opt/Qtopia/sharp
TOOLSPATH = /opt/Embedix/tools/arm-linux/bin
MOC = $(QTPATH)/bin/moc
RM = rm -rvf
RM_QUIET = rm -rf
QTINCLUDE = -I $(QTPATH)/include
UILIBS = -L $(QTPATH)/lib -lqte -lqpe
CC = $(TOOLSPATH)/gcc
AR = $(TOOLSPATH)/ar rsu
LD = $(TOOLSPATH)/g++
CFLAGS = -pipe -Duint16_t="unsigned short" -Duint32_t="unsigned int" -DQT_QWS_EBX -DQT_QWS_CUSTOM -DQWS -fno-exceptions -fno-rtti -Wall -Wno-ctor-dtor-privacy -W -DUSE_ZAURUS_FONTHACK -ftemplate-depth-30
LDFLAGS = -Wl,-rpath,$(LIBDIR),-rpath,/usr/lib

@ -1,54 +0,0 @@
include $(ROOTDIR)/makefiles/platforms.mk
VERSION = $(shell cat $(ROOTDIR)/fbreader/VERSION)
MAKE = make ROOTDIR=$(ROOTDIR)
LIBMAKE = $(MAKE) ZLSHARED=$(ZLSHARED)
include $(ROOTDIR)/makefiles/arch/$(TARGET_ARCH).mk
BINDIR ?= $(INSTALLDIR)/bin
LIBDIR ?= $(INSTALLDIR)/lib
INCDIR ?= $(INSTALLDIR)/include
SHAREDIR ?= $(INSTALLDIR)/share
INSTALLDIR_MACRO ?= $(INSTALLDIR)
LIBDIR_MACRO ?= $(LIBDIR)
SHAREDIR_MACRO ?= $(SHAREDIR)
IMAGEDIR_MACRO ?= $(IMAGEDIR)
APPIMAGEDIR_MACRO ?= $(APPIMAGEDIR)
XML_LIBS ?= -lexpat
ARCHIVER_LIBS ?= -lz -lbz2
CFLAGS += -DINSTALLDIR=\"$(INSTALLDIR_MACRO)\" -DBASEDIR=\"$(SHAREDIR_MACRO)\" -DLIBDIR=\"$(LIBDIR_MACRO)\" -DIMAGEDIR=\"$(IMAGEDIR_MACRO)\" -DAPPIMAGEDIR=\"$(APPIMAGEDIR_MACRO)\" -DVERSION=\"$(VERSION)\"
ifeq "$(ZLSHARED)" "yes"
CFLAGS += -fPIC -DZLSHARED
endif
ifeq "$(TARGET_STATUS)" "release"
CFLAGS += -O3
endif
ifeq "$(TARGET_STATUS)" "debug"
CFLAGS += -O0 -g
endif
ifeq "$(TARGET_STATUS)" "profile"
CFLAGS += -O3 -g -pg
LDFLAGS += -pg
endif
ZINCLUDE = -I $(ROOTDIR)/zlibrary/core/include -I $(ROOTDIR)/zlibrary/text/include
ZLSHARED ?= yes
ifeq "$(ZLSHARED)" "yes"
CORE_LIBS = -lm -L$(ROOTDIR)/zlibrary/core -lzlcore
TEXT_LIBS = -L$(ROOTDIR)/zlibrary/text -lzltext
ZLUI_LIB = -L$(ROOTDIR)/zlibrary/ui -lzlui
else
CORE_LIBS = -lm -L$(ROOTDIR)/zlibrary/ui -L$(ROOTDIR)/zlibrary/core -lzlcore -lzlui -lzlcore $(UILIBS) $(XML_LIBS) $(ARCHIVER_LIBS)
TEXT_LIBS = -L$(ROOTDIR)/zlibrary/text -lzltext $(EXTERNAL_LIBS) -lunibreak -lfribidi
endif
ifneq "$(BUILD_RESOURCE_OBJECT)" "yes"
.resources:
endif

@ -1,24 +0,0 @@
include $(ROOTDIR)/makefiles/config.mk
INCLUDE = $(ZINCLUDE) $(EXTERNAL_INCLUDE) $(GTKINCLUDE)
HEADERS = $(wildcard *.h)
CSOURCES = $(wildcard *.c)
SOURCES = $(wildcard *.cpp)
OBJECTS = $(patsubst %.c, %.o, $(CSOURCES))
OBJECTS += $(patsubst %.cpp, %.o, $(SOURCES))
.SUFFIXES: .c .cpp .o .h
.c.o:
$(CC) -MMD -c $(CPPFLAGS) $(CFLAGS) $(INCLUDE) $<
.cpp.o:
$(CC) -MMD -c $(CPPFLAGS) $(CFLAGS) $(CXXFLAGS) $(INCLUDE) $<
all: $(OBJECTS)
clean:
@$(RM) *.o *.d
-include *.d

@ -1,101 +0,0 @@
VERSION = $(shell cat fbreader/VERSION)
SOVERSIONCORE = $(shell cat zlibrary/core/SOVERSION)
SOVERSIONTEXT = $(shell cat zlibrary/text/SOVERSION)
TMPDIR = $(CURDIR)/fbreader-$(VERSION)
motopkg:
@echo -n 'Building $(ARCHITECTURE) $@ package...'
@make -f $(DIST_DIR)/$@/$(ARCHITECTURE)/rules build 1> $(ARCHITECTURE)-$@.log 2>&1
@mkdir $(TMPDIR)
@make -f $(DIST_DIR)/$@/$(ARCHITECTURE)/rules DESTDIR=$(TMPDIR) install 1>> $(ARCHITECTURE)-$@.log 2>&1
@make -f $(DIST_DIR)/$@/$(ARCHITECTURE)/rules DESTDIR=$(TMPDIR) package 1>> $(ARCHITECTURE)-$@.log 2>&1
@make -f $(DIST_DIR)/$@/$(ARCHITECTURE)/rules clean 1> /dev/null 2>&1
@rm -rf $(TMPDIR)
@rm -f $(CURDIR)/$(ARCHITECTURE)-$@.log
@echo ' OK'
tarball:
@echo -n 'Building $(ARCHITECTURE) $@ package...'
@make -f $(DIST_DIR)/$@/$(ARCHITECTURE)/rules build 1> $(ARCHITECTURE)-$@.log 2>&1
@mkdir $(TMPDIR)
@make -f $(DIST_DIR)/$@/$(ARCHITECTURE)/rules DESTDIR=$(TMPDIR) install 1>> $(ARCHITECTURE)-$@.log 2>&1
@make -f $(DIST_DIR)/$@/$(ARCHITECTURE)/rules DESTDIR=$(TMPDIR) package 1>> $(ARCHITECTURE)-$@.log 2>&1
@make -f $(DIST_DIR)/$@/$(ARCHITECTURE)/rules clean 1> /dev/null 2>&1
@rm -rf $(TMPDIR)
@rm -f $(CURDIR)/$(ARCHITECTURE)-$@.log
@echo ' OK'
debian:
@echo -n 'Building $(ARCHITECTURE) debian package...'
@mkdir $(TMPDIR)
@cp -a Makefile zlibrary fbreader makefiles ChangeLog $(TMPDIR)
@rm -rf `find $(TMPDIR) -name ".svn"`
@mkdir $(TMPDIR)/debian
@for file in $(DIST_DIR)/debian/$(ARCHITECTURE)/*; do \
if [ -f $$file ]; then \
sed -e "s#@SOVERSIONCORE@#$(SOVERSIONCORE)#g" $$file | \
sed -e "s#@SOVERSIONTEXT@#$(SOVERSIONTEXT)#g" | \
sed -e "s#@VERSION@#$(VERSION)#g" > $(TMPDIR)/debian/`basename $$file`; \
chmod --reference $$file $(TMPDIR)/debian/`basename $$file`; \
else \
cp -r $$file $(TMPDIR)/debian/`basename $$file`; \
fi; \
done
@cd $(TMPDIR); dpkg-buildpackage -rfakeroot -us -uc 1> $(CURDIR)/$(ARCHITECTURE)-debian.log 2>&1; cd $(CURDIR)
@rm -rf $(TMPDIR)
@rm -f $(CURDIR)/$(ARCHITECTURE)-debian.log
@echo ' OK'
ipk:
@echo -n 'Building $(ARCHITECTURE) ipk package...'
@make -f $(DIST_DIR)/ipk/$(ARCHITECTURE)/rules build 1> $(ARCHITECTURE)-ipk.log 2>&1
@for controlfile in $(DIST_DIR)/ipk/$(ARCHITECTURE)/*.control; do \
controlname=`basename $$controlfile .control`; \
mkdir $(TMPDIR); \
mkdir $(TMPDIR)/data; \
make -f $(DIST_DIR)/ipk/$(ARCHITECTURE)/rules DESTDIR=$(TMPDIR)/data install-$$controlname 1>> $(ARCHITECTURE)-ipk.log 2>&1; \
sed \
-e "s#@VERSION@#$(VERSION)#" \
-e "s#@SIZE@#`du -s -b $(TMPDIR)/data | cut -f1`#" \
$$controlfile > $(TMPDIR)/control; \
tar czf $(TMPDIR)/control.tar.gz -C $(TMPDIR) ./control; \
tar czf $(TMPDIR)/data.tar.gz -C $(TMPDIR)/data .; \
echo 2.0 > $(TMPDIR)/debian-binary; \
tar czf `egrep ^Filename: $(TMPDIR)/control | cut -d' ' -f2` -C $(TMPDIR) ./debian-binary ./control.tar.gz ./data.tar.gz; \
rm -rf $(TMPDIR); \
done
@make -f $(DIST_DIR)/ipk/$(ARCHITECTURE)/rules clean 1> /dev/null 2>&1;
@rm -f $(CURDIR)/$(ARCHITECTURE)-ipk.log
@echo ' OK'
debipk:
@echo -n 'Building $(ARCHITECTURE) debipk package...'
@make -f $(DIST_DIR)/debipk/$(ARCHITECTURE)/rules build 1> $(ARCHITECTURE)-debipk.log 2>&1
@for controlfile in $(DIST_DIR)/debipk/$(ARCHITECTURE)/*.control; do \
controlname=`basename $$controlfile .control`; \
mkdir $(TMPDIR); \
make -f $(DIST_DIR)/debipk/$(ARCHITECTURE)/rules DESTDIR=$(TMPDIR) install-$$controlname 1>> $(ARCHITECTURE)-debipk.log 2>&1; \
mkdir $(TMPDIR)/DEBIAN; \
sed \
-e "s#@VERSION@#$(VERSION)#" \
-e "s#@SIZE@#`du -s -b $(TMPDIR) | cut -f1`#" \
$$controlfile > $(TMPDIR)/DEBIAN/control; \
dpkg -b $(TMPDIR) `sed "s#@VERSION@#$(VERSION)#" $(DIST_DIR)/debipk/$(ARCHITECTURE)/$$controlname.name` 1>> $(ARCHITECTURE)-debipk.log 2>&1; \
rm -rf $(TMPDIR); \
done
@make -f $(DIST_DIR)/debipk/$(ARCHITECTURE)/rules clean 1> /dev/null 2>&1
@rm -f $(CURDIR)/$(ARCHITECTURE)-debipk.log
@echo ' OK'
nsi:
@echo -n 'Building $(ARCHITECTURE) nsi package...'
@make -f $(DIST_DIR)/nsi/$(ARCHITECTURE)/rules build 1> $(ARCHITECTURE)-nsi.log 2>&1
@mkdir $(TMPDIR)
@make -f $(DIST_DIR)/nsi/$(ARCHITECTURE)/rules DESTDIR=$(TMPDIR) install 1>> $(ARCHITECTURE)-nsi.log 2>&1
@sed "s#@VERSION@#$(VERSION)#" $(DIST_DIR)/nsi/$(ARCHITECTURE)/control.nsi > $(TMPDIR)/control.nsi
@cd $(TMPDIR); makensis control.nsi 1>> $(CURDIR)/$(ARCHITECTURE)-nsi.log 2>&1
@mv $(TMPDIR)/*.exe .
@make -f $(DIST_DIR)/nsi/$(ARCHITECTURE)/rules clean 1> /dev/null 2>&1
@rm -rf $(TMPDIR)
@rm -f $(CURDIR)/$(ARCHITECTURE)-nsi.log
@echo ' OK'

@ -1,13 +0,0 @@
ifeq "$(TARGET_ARCH)$(UI_TYPE)" ""
include $(ROOTDIR)/makefiles/target.mk
endif
ifeq "$(TARGET_ARCH)" ""
$(error TARGET_ARCH is not defined. Please edit $(ROOTDIR)/makefiles/target.mk)
endif
ifeq "$(UI_TYPE)" ""
$(error UI_TYPE is not defined. Please edit $(ROOTDIR)/makefiles/target.mk)
endif
TARGET_STATUS = "" # Debian packaging always set flags itself

@ -1,24 +0,0 @@
include $(ROOTDIR)/makefiles/config.mk
-include moc.mk
INCLUDE = $(QTINCLUDE) $(ZINCLUDE) $(EXTERNAL_INCLUDE)
HEADERS = $(wildcard *.h)
SOURCES = $(wildcard *.cpp)
OBJMOC = $(patsubst %.cpp, %.o, $(SRCMOC))
OBJECTS = $(patsubst %.cpp, %.o, $(SOURCES))
.SUFFIXES: .cpp .moc.cpp .moc.o .o .h
.cpp.o:
$(CC) -MMD -c $(CPPFLAGS) $(CFLAGS) $(CXXFLAGS) $(INCLUDE) $<
.h.moc.cpp:
$(MOC) $< -o $@
all: $(OBJECTS) $(OBJMOC)
clean:
@$(RM) *.o *.moc.cpp *.d
-include *.d

@ -1,41 +0,0 @@
include $(ROOTDIR)/makefiles/config.mk
INCLUDE = $(ZINCLUDE) $(EXTERNAL_INCLUDE)
HEADERS = $(wildcard *.h)
SOURCES_CPP = $(wildcard *.cpp)
SOURCES_OBJCPP = $(wildcard *.M)
SOURCES_OBJC = $(wildcard *.m)
OBJECTS = $(patsubst %.cpp, %.o, $(SOURCES_CPP)) $(patsubst %.M, %.o, $(SOURCES_OBJCPP)) $(patsubst %.m, %.o, $(SOURCES_OBJC))
.SUFFIXES: .cpp .M .m .o .h
.cpp.o:
$(CC) -MMD -c $(CPPFLAGS) $(CFLAGS) $(CXXFLAGS) $(INCLUDE) $<
.M.o:
@echo -n 'Compiling $@ ...'
ifdef CFLAGS_NOARCH
@$(CC) -MM $(CFLAGS_PRE) $(INCLUDE) $< -o `basename $< .M`.d
@$(CC) -c $(CFLAGS) $(INCLUDE) $<
else
@$(CC) -MMD -c $(CFLAGS) $(INCLUDE) $<
endif
@echo ' OK'
.m.o:
@echo -n 'Compiling $@ ...'
ifdef CFLAGS_NOARCH
@$(CC) -MM $(CFLAGS_PRE) $(INCLUDE) $< -o `basename $< .m`.d
@$(CC) -c $(CFLAGS) $(INCLUDE) $<
else
@$(CC) -MMD -c $(CFLAGS) $(INCLUDE) $<
endif
@echo ' OK'
all: $(OBJECTS)
clean:
@$(RM) *.o *.s *.ld *.d
-include *.d

@ -1,4 +0,0 @@
TARGET_ARCH = desktop
UI_TYPE = qt4
#TARGET_STATUS = debug
#ZLSHARED = no

@ -1,108 +0,0 @@
ROOTDIR = $(CURDIR)/../..
MAKEFILESDIR = $(ROOTDIR)/makefiles
include $(MAKEFILESDIR)/config.mk
VERSION = $(shell cat ../VERSION)
SOVERSION = $(shell cat SOVERSION)
ifeq "$(ZLSHARED)" "yes"
ifeq "$(TARGET_ARCH)" "macosx"
TARGET = libzlcore.$(VERSION).dylib
TARGET_SONAME = libzlcore.$(SOVERSION).dylib
TARGET_SHORTNAME = libzlcore.dylib
else
TARGET = libzlcore.so.$(VERSION)
TARGET_SONAME = libzlcore.so.$(SOVERSION)
TARGET_SHORTNAME = libzlcore.so
endif
else
TARGET = libzlcore.a
endif
SUBDIRS_ALL = src/library src/typeId src/util src/constants src/logger src/filesystem src/filesystem/zip src/filesystem/bzip2 src/filesystem/tar src/dialogs src/optionEntries src/application src/view src/encoding src/options src/message src/resources src/time src/xml src/xml/expat src/image src/language src/runnable src/network src/network/requests src/blockTreeView src/tree src/desktop/application src/desktop/dialogs src/unix/time src/unix/xmlconfig src/unix/filesystem src/unix/iconv src/unix/library src/unix/curl src/win32/encoding src/win32/filesystem src/win32/config
SUBDIRS = src/library src/typeId src/util src/constants src/logger src/filesystem src/filesystem/zip src/filesystem/bzip2 src/filesystem/tar src/dialogs src/optionEntries src/application src/view src/encoding src/options src/message src/resources src/time src/xml src/xml/expat src/image src/language src/unix/time src/runnable src/network src/network/requests src/blockTreeView src/tree
ifeq "<$(TARGET_ARCH)>" "$(findstring <$(TARGET_ARCH)>, <desktop> <pepperpad3> <macosx> <bb10>)"
SUBDIRS += src/desktop/application src/desktop/dialogs
endif
ifeq "$(TARGET_ARCH)" "pdaxrom"
SUBDIRS += src/desktop/dialogs
endif
ifeq "$(TARGET_ARCH)" "win32"
SUBDIRS += src/desktop/application src/desktop/dialogs src/win32/encoding src/win32/filesystem src/win32/config
else
SUBDIRS += src/unix/xmlconfig src/unix/filesystem src/unix/iconv src/unix/library
endif
.objects:
+@for subdir in $(SUBDIRS); do \
if [ -d $$subdir ]; then \
if ! $(LIBMAKE) -C $$subdir -f $(MAKEFILESDIR)/subdir.mk; then \
exit 1; \
fi; \
fi; \
done;
$(TARGET): .objects
@echo -n 'Creating $@ ...'
@$(RM_QUIET) $(TARGET)
ifeq "$(ZLSHARED)" "yes"
@$(LD) $(LDFLAGS) -shared -Wl,-soname,$(TARGET_SONAME) -o $(TARGET) -lc $(patsubst %, %/*.o, $(SUBDIRS)) $(XML_LIBS) $(ARCHIVER_LIBS)
#@$(LD) $(LDFLAGS) -dynamiclib -dylinker_install_name $(TARGET_SONAME) -o $(TARGET) -lc $(patsubst %, %/*.o, $(SUBDIRS)) $(XML_LIBS) $(ARCHIVER_LIBS) $(ZLUI_LIB) -ldl -liconv
@ln -sf $(TARGET) $(TARGET_SONAME)
@ln -sf $(TARGET) $(TARGET_SHORTNAME)
else
@$(AR) $(TARGET) $(patsubst %, %/*.o, $(SUBDIRS))
endif
echo ' OK'
SHARE_ZLIBRARY = $(DESTDIR)$(SHAREDIR)/zlibrary
ENCODING_FILES = $(wildcard data/encodings/*)
ifeq "$(TARGET_ARCH)" "maemo"
ENCODING_FILES = $(filter-out %/Big5,$(wildcard data/encodings/*))
endif
do_install:
@install -d $(SHARE_ZLIBRARY)
@install -d $(SHARE_ZLIBRARY)/encodings
@install -m 0644 $(ENCODING_FILES) $(SHARE_ZLIBRARY)/encodings
@install -d $(SHARE_ZLIBRARY)/resources
@install -m 0644 $(wildcard data/resources/*.xml) $(SHARE_ZLIBRARY)/resources
@install -m 0644 data/languagePatterns.zip $(SHARE_ZLIBRARY)
@install -m 0644 data/unicode.xml.gz $(SHARE_ZLIBRARY)
@install -d $(SHARE_ZLIBRARY)/default
@if [ -e data/default/config.$(TARGET_ARCH).xml ]; then \
install -m 0644 data/default/config.$(TARGET_ARCH).xml $(SHARE_ZLIBRARY)/default/config.xml; \
fi
@if [ -e data/default/config.$(TARGET_ARCH)-$(UI_TYPE).xml ]; then \
install -m 0644 data/default/config.$(TARGET_ARCH)-$(UI_TYPE).xml $(SHARE_ZLIBRARY)/default/config.xml; \
fi
ifeq "$(ZLSHARED)" "yes"
@install -d $(DESTDIR)$(LIBDIR)
@install $(TARGET) $(DESTDIR)$(LIBDIR)
@ln -sf $(TARGET) $(DESTDIR)$(LIBDIR)/$(TARGET_SONAME)
endif
do_install_dev:
@install -d $(DESTDIR)$(LIBDIR)
ifeq "$(ZLSHARED)" "yes"
@ln -sf $(TARGET) $(DESTDIR)$(LIBDIR)/$(TARGET_SHORTNAME)
else
@install $(TARGET) $(DESTDIR)$(LIBDIR)
endif
@install -d $(DESTDIR)$(INCDIR)/zlibrary/core
@install -m 0644 $(wildcard include/*.h) $(DESTDIR)$(INCDIR)/zlibrary/core
@install -d $(DESTDIR)$(INCDIR)/zlibrary/core/optionEntries
@install -m 0644 $(wildcard include/optionEntries/*.h) $(DESTDIR)$(INCDIR)/zlibrary/core/optionEntries
clean:
@for subdir in $(SUBDIRS_ALL); do \
if [ -d $$subdir ]; then \
$(MAKE) -C $$subdir -f $(MAKEFILESDIR)/subdir.mk clean; \
fi; \
done;
@$(RM) *.so *.so.* *.dylib *.a

@ -1,300 +0,0 @@
######################################################################
# Automatically generated by qmake (2.01a) ?? ??? 20 11:55:12 2012
######################################################################
TEMPLATE = app
TARGET =
DEPENDPATH +=
INCLUDEPATH +=
# Input
HEADERS += src/util/allocator.h \
src/util/shared_ptr.h \
src/application/ZLApplication.h \
src/network/ZLAsynchronousInputStream.h \
src/image/ZLBase64EncodedImage.h \
src/blockTreeView/ZLBlockTreeNode.h \
src/blockTreeView/ZLBlockTreeView.h \
src/util/ZLBoolean3.h \
src/util/ZLColor.h \
src/dialogs/ZLDialog.h \
src/dialogs/ZLDialogContent.h \
src/dialogs/ZLDialogManager.h \
src/filesystem/ZLDir.h \
src/encoding/ZLEncodingConverter.h \
src/runnable/ZLExecutionData.h \
src/filesystem/ZLFile.h \
src/image/ZLFileImage.h \
src/filesystem/ZLFileInfo.h \
src/util/ZLFileUtil.h \
src/library/ZLibrary.h \
src/image/ZLImage.h \
src/image/ZLImageManager.h \
src/filesystem/ZLInputStream.h \
src/application/ZLKeyBindings.h \
src/language/ZLLanguageDetector.h \
src/language/ZLLanguageList.h \
src/util/ZLLanguageUtil.h \
src/logger/ZLLogger.h \
src/message/ZLMessage.h \
src/constants/ZLMimeType.h \
src/view/ZLMirroredPaintContext.h \
src/image/ZLNetworkImage.h \
src/network/ZLNetworkManager.h \
src/network/ZLNetworkRequest.h \
src/network/ZLNetworkSSLCertificate.h \
src/network/ZLNetworkUtil.h \
src/dialogs/ZLOpenFileDialog.h \
src/dialogs/ZLOptionEntry.h \
src/options/ZLOptions.h \
src/dialogs/ZLOptionsDialog.h \
src/filesystem/ZLOutputStream.h \
src/view/ZLPaintContext.h \
src/network/ZLPlainAsynchronousInputStream.h \
src/application/ZLPopupData.h \
src/dialogs/ZLProgressDialog.h \
src/resources/ZLResource.h \
src/runnable/ZLRunnable.h \
src/util/ZLSearchUtil.h \
src/image/ZLStreamImage.h \
src/util/ZLStringUtil.h \
src/time/ZLTime.h \
src/time/ZLTimeManager.h \
src/typeId/ZLTypeId.h \
src/util/ZLUnicodeUtil.h \
src/util/ZLUserData.h \
src/view/ZLView.h \
src/constants/ZLXMLNamespace.h \
src/xml/ZLXMLReader.h \
src/xml/ZLXMLWriter.h \
src/filesystem/zip/ZLZDecompressor.h \
src/optionEntries/ZLColorOptionBuilder.h \
src/optionEntries/ZLFontFamilyOptionEntry.h \
src/optionEntries/ZLLanguageOptionEntry.h \
src/optionEntries/ZLSimpleKeyOptionEntry.h \
src/optionEntries/ZLSimpleOptionEntry.h \
src/optionEntries/ZLStringEditOptionEntry.h \
src/optionEntries/ZLStringInfoEntry.h \
src/optionEntries/ZLToggleBooleanOptionEntry.h \
src/application/ZLApplicationWindow.h \
src/application/ZLMenu.h \
src/application/ZLToolbar.h \
src/dialogs/ZLDialogContentBuilder.h \
src/dialogs/ZLOptionView.h \
src/encoding/DummyEncodingConverter.h \
src/encoding/EncodingCollectionReader.h \
src/encoding/MyEncodingConverter.h \
src/encoding/ZLEncodingConverterProvider.h \
src/filesystem/ZLFSDir.h \
src/filesystem/ZLFSManager.h \
src/language/ZLCharSequence.h \
src/language/ZLLanguageMatcher.h \
src/language/ZLStatistics.h \
src/language/ZLStatisticsGenerator.h \
src/language/ZLStatisticsItem.h \
src/language/ZLStatisticsXMLReader.h \
src/language/ZLStatisticsXMLWriter.h \
src/network/ZLGzipAsynchronousInputStream.h \
src/options/ZLConfig.h \
src/util/ZLKeyUtil.h \
src/view/ZLViewWidget.h \
src/desktop/application/ZLDesktopApplicationWindow.h \
src/desktop/dialogs/ZLDesktopOpenFileDialog.h \
src/desktop/dialogs/ZLDesktopOptionsDialog.h \
src/filesystem/bzip2/ZLBzip2InputStream.h \
src/filesystem/tar/ZLTar.h \
src/filesystem/zip/ZLZip.h \
src/filesystem/zip/ZLZipHeader.h \
src/network/requests/ZLNetworkDownloadRequest.h \
src/network/requests/ZLNetworkNoActionRequest.h \
src/network/requests/ZLNetworkReadToStringRequest.h \
src/network/requests/ZLNetworkXMLParserRequest.h \
src/unix/curl/ZLCurlNetworkManager.h \
src/unix/filesystem/ZLUnixFileInputStream.h \
src/unix/filesystem/ZLUnixFileOutputStream.h \
src/unix/filesystem/ZLUnixFSDir.h \
src/unix/filesystem/ZLUnixFSManager.h \
src/unix/iconv/IConvEncodingConverter.h \
src/unix/library/ZLibraryImplementation.h \
src/unix/time/ZLUnixTime.h \
src/unix/xmlconfig/AsciiEncoder.h \
src/unix/xmlconfig/XMLConfig.h \
src/unix/xmlconfig/XMLConfigDelta.h \
src/unix/xmlconfig/XMLConfigDeltaWriter.h \
src/unix/xmlconfig/XMLConfigReader.h \
src/unix/xmlconfig/XMLConfigValue.h \
src/unix/xmlconfig/XMLConfigWriter.h \
src/xml/expat/ZLXMLReaderInternal.h \
src/util/SliceInputStream.h \
src/util/HexInputStream.h \
src/util/Base64InputStream.h \
src/image/ZLHexEncodedImage.h \
src/util/ZLSliceInputStream.h \
src/util/ZLHexInputStream.h \
src/util/ZLBase64InputStream.h \
src/image/ZLFileImage.h \
src/filesystem/plugins/ZLFSPlugin.h \
src/filesystem/plugins/ZLFSPluginManager.h \
src/filesystem/plugins/ZLFSCompressorBzip2.h \
src/filesystem/plugins/ZLFSArchiverTar.h \
src/filesystem/plugins/ZLFSArchiverZip.h \
src/filesystem/plugins/ZLFSCompressorGzip.h \
src/filesystem/tar/ZLFSArchiverTar.h \
src/filesystem/bzip2/ZLFSCompressorBzip2.h \
src/filesystem/zip/ZLFSCompressorGzip.h \
src/filesystem/zip/ZLFSArchiverZip.h \
src/filesystem/ZLFSPlugin.h \
src/filesystem/ZLFSPluginManager.h \
src/tree/ZLTreeTitledNode.h \
src/tree/ZLTreePageNode.h \
src/tree/ZLTreeNode.h \
src/tree/ZLTreeListener.h \
src/tree/ZLTreeActionNode.h \
src/dialogs/ZLTreeDialog.h \
src/runnable/ZLExecutionUtil.h \
src/runnable/ZLExecutionUtil.h \
src/tree/ZLTreeSearcher.h
SOURCES += src/application/ZLApplication.cpp \
src/application/ZLApplicationActions.cpp \
src/application/ZLApplicationBase.cpp \
src/application/ZLApplicationWindow.cpp \
src/application/ZLKeyBindings.cpp \
src/application/ZLMenu.cpp \
src/application/ZLToolbar.cpp \
src/blockTreeView/ZLBlockTreeNode.cpp \
src/blockTreeView/ZLBlockTreeView.cpp \
src/constants/ZLMimeType.cpp \
src/constants/ZLXMLNamespace.cpp \
src/dialogs/ZLDialog.cpp \
src/dialogs/ZLDialogContent.cpp \
src/dialogs/ZLDialogContentBuilder.cpp \
src/dialogs/ZLDialogManager.cpp \
src/dialogs/ZLOpenFileDialog.cpp \
src/dialogs/ZLOptionEntry.cpp \
src/dialogs/ZLOptionsDialog.cpp \
src/dialogs/ZLOptionView.cpp \
src/dialogs/ZLProgressDialog.cpp \
src/encoding/DummyEncodingConverter.cpp \
src/encoding/EncodingCollectionReader.cpp \
src/encoding/MyEncodingConverter.cpp \
src/encoding/ZLEncodingCollection.cpp \
src/encoding/ZLEncodingConverter.cpp \
src/encoding/ZLEncodingSet.cpp \
src/filesystem/ZLDir.cpp \
src/filesystem/ZLFile.cpp \
src/filesystem/ZLFSManager.cpp \
src/filesystem/ZLInputStreamDecorator.cpp \
src/image/ZLBase64EncodedImage.cpp \
src/image/ZLFileImage.cpp \
src/image/ZLImage.cpp \
src/image/ZLImageManager.cpp \
src/image/ZLNetworkImage.cpp \
src/image/ZLStreamImage.cpp \
src/language/ZLCharSequence.cpp \
src/language/ZLLanguageDetector.cpp \
src/language/ZLLanguageList.cpp \
src/language/ZLLanguageMatcher.cpp \
src/language/ZLStatistics.cpp \
src/language/ZLStatisticsGenerator.cpp \
src/language/ZLStatisticsItem.cpp \
src/language/ZLStatisticsXMLReader.cpp \
src/language/ZLStatisticsXMLWriter.cpp \
src/library/ZLibrary.cpp \
src/logger/ZLLogger.cpp \
src/message/ZLMessage.cpp \
src/network/ZLAsynchronousInputStream.cpp \
src/network/ZLGzipAsynchronousInputStream.cpp \
src/network/ZLNetworkManager.cpp \
src/network/ZLNetworkRequest.cpp \
src/network/ZLNetworkSSLCertificate.cpp \
src/network/ZLNetworkUtil.cpp \
src/network/ZLPlainAsynchronousInputStream.cpp \
src/optionEntries/ZLColorOptionBuilder.cpp \
src/optionEntries/ZLFontFamilyOptionEntry.cpp \
src/optionEntries/ZLLanguageOptionEntry.cpp \
src/optionEntries/ZLSimpleKeyOptionEntry.cpp \
src/optionEntries/ZLSimpleOptionEntry.cpp \
src/optionEntries/ZLStringEditOptionEntry.cpp \
src/optionEntries/ZLStringInfoEntry.cpp \
src/optionEntries/ZLToggleBooleanOptionEntry.cpp \
src/options/ZLCategoryKey.cpp \
src/options/ZLConfig.cpp \
src/options/ZLOptions.cpp \
src/resources/ZLResource.cpp \
src/runnable/ZLExecutionData.cpp \
src/runnable/ZLRunnable.cpp \
src/time/ZLTime.cpp \
src/time/ZLTimeManager.cpp \
src/typeId/ZLTypeId.cpp \
src/util/ZLFileUtil.cpp \
src/util/ZLKeyUtil.cpp \
src/util/ZLLanguageUtil.cpp \
src/util/ZLSearchUtil.cpp \
src/util/ZLStringUtil.cpp \
src/util/ZLUnicodeUtil.cpp \
src/util/ZLUserData.cpp \
src/view/ZLMirroredPaintContext.cpp \
src/view/ZLPaintContext.cpp \
src/view/ZLView.cpp \
src/xml/ZLXMLReader.cpp \
src/xml/ZLXMLWriter.cpp \
src/desktop/application/ZLDesktopApplicationWindow.cpp \
src/desktop/dialogs/ZLDesktopOpenFileDialog.cpp \
src/desktop/dialogs/ZLDesktopOptionsDialog.cpp \
src/filesystem/bzip2/ZLBzip2InputStream.cpp \
src/filesystem/tar/ZLTar.cpp \
src/filesystem/zip/ZLGzipInputStream.cpp \
src/filesystem/zip/ZLZDecompressor.cpp \
src/filesystem/zip/ZLZipDir.cpp \
src/filesystem/zip/ZLZipEntryCache.cpp \
src/filesystem/zip/ZLZipHeader.cpp \
src/filesystem/zip/ZLZipInputStream.cpp \
src/network/requests/ZLNetworkDownloadRequest.cpp \
src/network/requests/ZLNetworkNoActionRequest.cpp \
src/network/requests/ZLNetworkReadToStringRequest.cpp \
src/network/requests/ZLNetworkXMLParserRequest.cpp \
src/unix/curl/ZLCurlNetworkManager.cpp \
src/unix/filesystem/ZLUnixFileInputStream.cpp \
src/unix/filesystem/ZLUnixFileOutputStream.cpp \
src/unix/filesystem/ZLUnixFSDir.cpp \
src/unix/filesystem/ZLUnixFSManager.cpp \
src/unix/iconv/IConvEncodingConverter.cpp \
src/unix/library/ZLibrary.cpp \
src/unix/time/ZLUnixTime.cpp \
src/unix/xmlconfig/AsciiEncoder.cpp \
src/unix/xmlconfig/XMLConfig.cpp \
src/unix/xmlconfig/XMLConfigDelta.cpp \
src/unix/xmlconfig/XMLConfigDeltaWriter.cpp \
src/unix/xmlconfig/XMLConfigIO.cpp \
src/unix/xmlconfig/XMLConfigReader.cpp \
src/unix/xmlconfig/XMLConfigWriter.cpp \
src/xml/expat/ZLXMLReaderInternal.cpp \
src/util/SliceInputStream.cpp \
src/util/HexInputStream.cpp \
src/util/Base64InputStream.cpp \
src/image/ZLHexEncodedImage.cpp \
src/util/ZLSliceInputStream.cpp \
src/util/ZLHexInputStream.cpp \
src/util/ZLBase64InputStream.cpp \
src/image/ZLFileImage.cpp \
src/filesystem/plugins/ZLFSPluginManager.cpp \
src/filesystem/plugins/ZLFSPlugin.cpp \
src/filesystem/plugins/ZLFSCompressorGzip.cpp \
src/filesystem/plugins/ZLFSCompressorBzip2.cpp \
src/filesystem/plugins/ZLFSArchiverTar.cpp \
src/filesystem/plugins/ZLFSArchiverZip.cpp \
src/filesystem/tar/ZLFSArchiverTar.cpp \
src/filesystem/bzip2/ZLFSCompressorBzip2.cpp \
src/filesystem/zip/ZLFSArchiverZip.cpp \
src/filesystem/zip/ZLFSCompressorGzip.cpp \
src/filesystem/ZLFSPluginManager.cpp \
src/filesystem/ZLFSPluginManager.cpp \
src/tree/ZLTreeTitledNode.cpp \
src/tree/ZLTreePageNode.cpp \
src/tree/ZLTreeNode.cpp \
src/tree/ZLTreeListener.cpp \
src/tree/ZLTreeActionNode.cpp \
src/dialogs/ZLTreeDialog.cpp \
src/runnable/ZLExecutionUtil.cpp \
src/tree/ZLTreeSearcher.cpp

@ -1,73 +0,0 @@
ROOTDIR = $(CURDIR)/../..
MAKEFILESDIR = $(ROOTDIR)/makefiles
include $(MAKEFILESDIR)/config.mk
VERSION = $(shell cat ../VERSION)
SOVERSION = $(shell cat SOVERSION)
ifeq "$(ZLSHARED)" "yes"
ifeq "$(TARGET_ARCH)" "macosx"
TARGET = libzltext.$(VERSION).dylib
TARGET_SONAME = libzltext.$(SOVERSION).dylib
TARGET_SHORTNAME = libzltext.dylib
else
TARGET = libzltext.so.$(VERSION)
TARGET_SONAME = libzltext.so.$(SOVERSION)
TARGET_SHORTNAME = libzltext.so
endif
else
TARGET = libzltext.a
endif
SUBDIRS = src/model src/area src/view src/style src/styleOptions src/hyphenation
.objects:
+@for subdir in $(SUBDIRS); do \
if [ -d $$subdir ]; then \
if ! $(LIBMAKE) -C $$subdir -f $(MAKEFILESDIR)/subdir.mk; then \
exit 1; \
fi; \
fi; \
done;
$(TARGET): .objects
@echo -n 'Creating $@ ...'
@$(RM_QUIET) $(TARGET)
ifeq "$(ZLSHARED)" "yes"
@$(LD) $(LDFLAGS) -shared -Wl,-soname,$(TARGET_SONAME) -o $(TARGET) $(patsubst %, %/*.o, $(SUBDIRS)) $(CORE_LIBS) -lunibreak -lfribidi
#@$(LD) $(LDFLAGS) -dynamiclib -dylinker_install_name $(TARGET_SONAME) -o $(TARGET) $(patsubst %, %/*.o, $(SUBDIRS)) $(CORE_LIBS) $(EXTERNAL_LIBS) -llinebreak -lfribidi
@ln -sf $(TARGET) $(TARGET_SONAME)
@ln -sf $(TARGET) $(TARGET_SHORTNAME)
else
@$(AR) $(TARGET) $(patsubst %, %/*.o, $(SUBDIRS))
endif
@echo ' OK'
SHARE_ZLIBRARY = $(DESTDIR)$(SHAREDIR)/zlibrary
do_install:
@install -d $(SHARE_ZLIBRARY)
@install -m 0644 $(wildcard data/hyphenationPatterns.zip) $(SHARE_ZLIBRARY)
ifeq "$(ZLSHARED)" "yes"
@install -d $(DESTDIR)$(LIBDIR)
@install $(TARGET) $(DESTDIR)$(LIBDIR)
@ln -sf $(TARGET) $(DESTDIR)$(LIBDIR)/$(TARGET_SONAME)
endif
do_install_dev:
@install -d $(DESTDIR)$(LIBDIR)
ifeq "$(ZLSHARED)" "yes"
@ln -sf $(TARGET) $(DESTDIR)$(LIBDIR)/$(TARGET_SHORTNAME)
else
@install $(TARGET) $(DESTDIR)$(LIBDIR)
endif
@install -d $(DESTDIR)$(INCDIR)/zlibrary/text
@install -m 0644 $(wildcard include/*.h) $(DESTDIR)$(INCDIR)/zlibrary/text
clean:
@for subdir in $(SUBDIRS); do \
if [ -d $$subdir ]; then \
$(MAKE) -C $$subdir -f $(MAKEFILESDIR)/subdir.mk clean; \
fi; \
done;
@$(RM) *.so *.so.* *.dylib *.a

@ -1,80 +0,0 @@
######################################################################
# Automatically generated by qmake (2.01a) ?? ??? 20 11:56:27 2012
######################################################################
TEMPLATE = app
TARGET =
DEPENDPATH +=
INCLUDEPATH +=
# Input
HEADERS += src/model/ZLTextAlignmentType.h \
src/area/ZLTextArea.h \
src/area/ZLTextAreaController.h \
src/area/ZLTextElement.h \
src/hyphenation/ZLTextHyphenator.h \
src/model/ZLTextKind.h \
src/model/ZLTextMark.h \
src/model/ZLTextModel.h \
src/model/ZLTextParagraph.h \
src/area/ZLTextParagraphCursor.h \
src/view/ZLTextPositionIndicator.h \
src/view/ZLTextPositionIndicatorInfo.h \
src/area/ZLTextRectangle.h \
src/model/ZLTextRowMemoryAllocator.h \
src/area/ZLTextSelectionModel.h \
src/style/ZLTextStyle.h \
src/style/ZLTextStyleCollection.h \
src/styleOptions/ZLTextStyleOptions.h \
src/hyphenation/ZLTextTeXHyphenator.h \
src/view/ZLTextView.h \
src/area/ZLTextWord.h \
src/area/ZLTextAreaStyle.h \
src/area/ZLTextLineInfo.h \
src/area/ZLTextParagraphBuilder.h \
src/hyphenation/ZLTextHyphenationReader.h \
src/style/ZLTextDecoratedStyle.h \
src/view/ZLTextSelectionScroller.h \
include/ZLTextModel.h \
include/ZLTextParagraph.h \
include/ZLTextKind.h \
include/ZLTextAlignmentType.h \
include/ZLTextFontModifier.h \
include/ZLTextMark.h \
include/ZLTextRowMemoryAllocator.h \
include/ZLTextParagraphCursor.h \
include/ZLTextRectangle.h \
include/ZLTextStyle.h \
include/ZLTextHyphenator.h \
include/ZLTextStyleCollection.h \
include/ZLTextView.h \
include/ZLTextPositionIndicatorInfo.h \
src/model/ZLTextStyleEntry.h \
src/model/ZLHyperlinkType.h
SOURCES += src/area/ZLTextArea.cpp \
src/area/ZLTextArea_drawTextLine.cpp \
src/area/ZLTextArea_drawTreeLines.cpp \
src/area/ZLTextArea_drawWord.cpp \
src/area/ZLTextArea_prepareTextLine.cpp \
src/area/ZLTextArea_processTextLine.cpp \
src/area/ZLTextAreaController.cpp \
src/area/ZLTextAreaStyle.cpp \
src/area/ZLTextElement.cpp \
src/area/ZLTextParagraphBuilder.cpp \
src/area/ZLTextParagraphCursor.cpp \
src/area/ZLTextSelectionModel.cpp \
src/area/ZLTextWord.cpp \
src/hyphenation/ZLTextHyphenationReader.cpp \
src/hyphenation/ZLTextHyphenator.cpp \
src/hyphenation/ZLTextTeXHyphenator.cpp \
src/model/ZLTextModel.cpp \
src/model/ZLTextParagraph.cpp \
src/model/ZLTextRowMemoryAllocator.cpp \
src/style/ZLTextDecoratedStyle.cpp \
src/style/ZLTextStyle.cpp \
src/style/ZLTextStyleCollection.cpp \
src/styleOptions/ZLTextStyleOptions.cpp \
src/view/ZLTextPositionIndicator.cpp \
src/view/ZLTextSelectionScroller.cpp \
src/view/ZLTextView.cpp \
src/view/ZLTextView_paint.cpp

@ -1,169 +0,0 @@
ROOTDIR = $(CURDIR)/../..
MAKEFILESDIR = $(ROOTDIR)/makefiles
include $(MAKEFILESDIR)/config.mk
VERSION = $(shell cat ../VERSION)
SOVERSION = $(shell cat SOVERSION)
ifeq "$(ZLSHARED)" "yes"
ifeq "$(TARGET_ARCH)" "macosx"
TARGET = libzlui.$(VERSION).dylib
TARGET_SONAME = libzlui.$(SOVERSION).dylib
TARGET_SHORTNAME = libzlui.dylib
else
TARGET = libzlui.so.$(VERSION)
TARGET_SONAME = libzlui.so.$(SOVERSION)
TARGET_SHORTNAME = libzlui.so
endif
else
TARGET = libzlui.a
endif
SUBDIRS_ALL = \
src/win32/view src/win32/w32widgets src/win32/dialogs src/win32/application \
src/win32/image src/win32/library src/win32/time src/unix/message \
src/win32/message \
src/nanoX/time src/nanoX/dialogs src/nanoX/optionView src/nanoX/view \
src/nanoX/image src/nanoX/filesystem src/nanoX/library src/nanoX/application \
src/cocoa/application src/cocoa/filesystem src/cocoa/library src/cocoa/view \
src/cocoa/dialogs src/cocoa/image src/cocoa/time src/cocoa/util \
src/cocoa/message \
src/iphone/application src/iphone/filesystem src/iphone/library src/iphone/view \
src/iphone/dialogs src/iphone/image src/iphone/time
QTSUBDIRS_ALL = src/qt/time src/qtopia/message src/qtopia/application src/qtopia/dialogs src/qtopia/optionView src/qtopia/view src/qt/dialogs src/qt/view src/qt/image src/qt/util src/opie/view src/opie/dialogs src/opie/application src/qt/application-desktop src/qt/application-pdaxrom src/opie/library src/qt/library src/qtopia/library src/qt/filesystem src/qt4/time src/qt4/dialogs src/qt4/view src/qt4/image src/qt4/util src/qt4/application src/qt4/library src/qt4/filesystem src/qt4/network src/qt4/tree src/ezx/library src/ezx/application src/ezx/dialogs src/ezx/view src/ezx/optionView
GTKSUBDIRS_ALL = src/gtk/time src/gtk/dialogs src/gtk/optionView src/gtk/view src/gtk/image src/gtk/util src/maemo/dialogs src/maemo/optionView src/maemo/view src/gpe/dialogs src/gpe/view src/gtk/application-desktop src/gtk/application-pdaxrom src/maemo/application src/maemo5/application src/maemo5/dialogs src/maemo5/optionView src/maemo5/library src/maemo5/network src/gpe/application src/maemo/library src/gtk/library src/gpe/library src/gtk/filesystem src/maemo/message src/maemo/network src/gtk/pixbuf
SUBDIRS =
ifeq "$(UI_TYPE)" "cocoa"
SUBDIRS = \
src/cocoa/application src/cocoa/filesystem src/cocoa/library src/cocoa/view \
src/cocoa/dialogs src/cocoa/image src/cocoa/time src/cocoa/util \
src/cocoa/message
endif
ifeq "$(UI_TYPE)" "nanoX"
SUBDIRS = src/nanoX/time src/nanoX/dialogs src/nanoX/optionView src/nanoX/view src/nanoX/image src/nanoX/filesystem src/nanoX/library src/unix/message src/nanoX/application
endif
ifeq "$(UI_TYPE)" "qt"
QTSUBDIRS = src/qt/time src/qt/dialogs src/qt/view src/qt/image src/qt/util src/qt/filesystem src/qt/library src/unix/message src/qt/application-$(TARGET_ARCH)
endif
ifeq "$(UI_TYPE)" "qt4"
QTSUBDIRS = src/qt4/time src/qt4/dialogs src/qt4/view src/qt4/image src/qt4/util src/qt4/filesystem src/qt4/library src/unix/message src/qt4/application src/qt4/network src/qt4/tree
endif
ifeq "$(UI_TYPE)" "gtk"
GTKSUBDIRS = src/gtk/time src/gtk/dialogs src/gtk/optionView src/gtk/image src/gtk/util src/gtk/filesystem src/gtk/library src/gtk/view src/unix/message src/gtk/application-$(TARGET_ARCH) src/gtk/pixbuf
endif
ifeq "$(UI_TYPE)" "gpe"
GTKSUBDIRS = src/gpe/library src/gtk/time src/gpe/dialogs src/gpe/application src/gtk/image src/gtk/util src/gpe/view src/gtk/filesystem src/unix/message src/gtk/pixbuf
endif
ifeq "$(UI_TYPE)" "opie"
QTSUBDIRS = src/opie/library src/qt/time src/opie/dialogs src/opie/application src/opie/view src/qt/image src/qt/util src/unix/message src/qt/filesystem
endif
ifeq "<$(UI_TYPE)>" "$(findstring <$(UI_TYPE)>, <qtopia> <qtopia-240x320> <qtopia-640x480>)"
QTSUBDIRS = src/qtopia/message src/qtopia/library src/qt/time src/qtopia/application src/qtopia/dialogs src/qtopia/optionView src/qtopia/view src/qt/util src/qt/image src/qt/filesystem
endif
ifeq "$(UI_TYPE)" "ezx"
QTSUBDIRS = src/unix/message src/ezx/library src/qt/time src/ezx/application src/ezx/dialogs src/ezx/optionView src/ezx/view src/qt/util src/qt/image src/qt/filesystem
endif
ifeq "<$(UI_TYPE)>" "$(findstring <$(UI_TYPE)>, <maemo2> <maemo3> <maemo4>)"
GTKSUBDIRS = src/gtk/time src/maemo/dialogs src/maemo/optionView src/maemo/view src/gtk/image src/gtk/util src/maemo/application src/maemo/library src/gtk/filesystem src/maemo/message src/gtk/pixbuf
endif
ifeq "<$(UI_TYPE)>" "$(findstring <$(UI_TYPE)>, <maemo3> <maemo4>)"
GTKSUBDIRS += src/maemo/network
endif
ifeq "$(UI_TYPE)" "maemo5"
GTKSUBDIRS = src/gtk/time src/maemo5/dialogs src/maemo5/optionView src/maemo/view src/gtk/image src/gtk/util src/maemo5/application src/maemo5/library src/gtk/filesystem src/maemo/message src/gtk/pixbuf src/maemo5/network
endif
ifeq "$(UI_TYPE)" "win32"
SUBDIRS += src/win32/view src/win32/w32widgets src/win32/dialogs src/win32/application src/win32/image src/win32/library src/win32/time src/win32/message
endif
.objects:
+@for subdir in $(SUBDIRS); do \
if [ -d $$subdir ]; then \
if ! $(LIBMAKE) -C $$subdir -f $(MAKEFILESDIR)/subdir.mk; then \
exit 1; \
fi; \
fi; \
done;
+@for subdir in $(QTSUBDIRS); do \
if [ -d $$subdir ]; then \
if ! $(LIBMAKE) -C $$subdir -f $(MAKEFILESDIR)/qsubdir.mk; then \
exit 1; \
fi; \
fi; \
done;
+@for subdir in $(GTKSUBDIRS); do \
if [ -d $$subdir ]; then \
if ! $(LIBMAKE) -C $$subdir -f $(MAKEFILESDIR)/gtksubdir.mk; then \
exit 1; \
fi; \
fi; \
done;
$(TARGET): .objects
@echo -n 'Creating $@ ...'
@$(RM_QUIET) $(TARGET)
ifeq "$(ZLSHARED)" "yes"
@$(LD) $(LDFLAGS) -shared -Wl,-soname,$(TARGET_SONAME) -o $(TARGET) $(patsubst %, %/*.o, $(SUBDIRS) $(QTSUBDIRS) $(GTKSUBDIRS)) $(UILIBS) $(CORE_LIBS)
#@$(LD) $(LDFLAGS) -dynamiclib -dylinker_install_name $(TARGET_SONAME) -o $(TARGET) $(patsubst %, %/*.o, $(SUBDIRS) $(QTSUBDIRS) $(GTKSUBDIRS)) $(UILIBS) $(CORE_LIBS)
@ln -sf $(TARGET) $(TARGET_SONAME)
@ln -sf $(TARGET) $(TARGET_SHORTNAME)
else
@$(AR) $(TARGET) $(patsubst %, %/*.o, $(SUBDIRS) $(QTSUBDIRS) $(GTKSUBDIRS))
endif
@echo ' OK'
SHARE_ZLIBRARY = $(DESTDIR)$(SHAREDIR)/zlibrary
ifeq "<$(TARGET_ARCH)>" "$(findstring <$(TARGET_ARCH)>, <desktop> <pdaxrom>)"
KEYNAMES = keynames-$(UI_TYPE).xml
else
KEYNAMES = keynames.xml
endif
do_install:
@install -d $(SHARE_ZLIBRARY)
@if [ -f data/messages.$(TARGET_ARCH).xml ]; then \
install -m 0644 data/messages.$(TARGET_ARCH).xml $(SHARE_ZLIBRARY)/messages.xml; \
fi
@install -m 0644 data/keynames.$(TARGET_ARCH)-$(UI_TYPE).xml $(SHARE_ZLIBRARY)/$(KEYNAMES)
@install -m 0644 data/style.$(TARGET_ARCH).qss $(SHARE_ZLIBRARY)/style.qss
ifeq "$(ZLSHARED)" "yes"
@install -d $(DESTDIR)$(LIBDIR)
@install $(TARGET) $(DESTDIR)$(LIBDIR)
@ln -sf $(TARGET) $(DESTDIR)$(LIBDIR)/$(TARGET_SONAME)
@ln -sf $(TARGET) $(DESTDIR)$(LIBDIR)/$(TARGET_SHORTNAME)
endif
do_install_dev:
clean:
@for subdir in $(SUBDIRS_ALL); do \
if [ -d $$subdir ]; then \
$(MAKE) -C $$subdir -f $(MAKEFILESDIR)/subdir.mk clean; \
fi; \
done;
@for subdir in $(QTSUBDIRS_ALL); do \
if [ -d $$subdir ]; then \
$(MAKE) -C $$subdir -f $(MAKEFILESDIR)/qsubdir.mk clean; \
fi; \
done;
@for subdir in $(GTKSUBDIRS_ALL); do \
if [ -d $$subdir ]; then \
$(MAKE) -C $$subdir -f $(MAKEFILESDIR)/gtksubdir.mk clean; \
fi; \
done;
@$(RM) *.so *.so.* *.dylib *.a

@ -1,61 +0,0 @@
######################################################################
# Automatically generated by qmake (2.01a) ?? ??? 20 11:56:47 2012
######################################################################
TEMPLATE = app
TARGET =
DEPENDPATH +=
INCLUDEPATH +=
# Input
HEADERS += src/qt4/application/ZLQtApplicationWindow.h \
src/qt4/dialogs/ZLQtDialog.h \
src/qt4/dialogs/ZLQtDialogContent.h \
src/qt4/dialogs/ZLQtDialogManager.h \
src/qt4/dialogs/ZLQtOpenFileDialog.h \
src/qt4/dialogs/ZLQtOptionsDialog.h \
src/qt4/dialogs/ZLQtOptionView.h \
src/qt4/dialogs/ZLQtProgressDialog.h \
src/qt4/dialogs/ZLQtUtil.h \
src/qt4/filesystem/ZLQtFSManager.h \
src/qt4/image/ZLQtImageManager.h \
src/qt4/time/ZLQtTime.h \
src/qt4/util/ZLQtKeyUtil.h \
src/qt4/view/ZLQtPaintContext.h \
src/qt4/view/ZLQtViewWidget.h \
src/qt4/network/ZLQtNetworkManager.h \
src/qt4/dialogs/ZLQtTreeDialog.h \
src/qt4/tree/ZLQtPreviewWidget.h \
src/qt4/tree/ZLQtItemsListWidget.h \
src/qt4/tree/ZLQtImageUtils.h \
src/qt4/image/ZLQtImageUtils.h \
src/qt4/tree/ZLQtSearchField.h \
src/qt4/tree/ZLQtWaitingIcons.h \
src/qt4/tree/QtWaitingSpinner.h
SOURCES += src/qt4/application/LineEditParameter.cpp \
src/qt4/application/ZLQtApplicationWindow.cpp \
src/qt4/dialogs/ZLQtDialog.cpp \
src/qt4/dialogs/ZLQtDialogContent.cpp \
src/qt4/dialogs/ZLQtDialogManager.cpp \
src/qt4/dialogs/ZLQtOpenFileDialog.cpp \
src/qt4/dialogs/ZLQtOptionsDialog.cpp \
src/qt4/dialogs/ZLQtOptionView.cpp \
src/qt4/dialogs/ZLQtProgressDialog.cpp \
src/qt4/dialogs/ZLQtUtil.cpp \
src/qt4/filesystem/ZLQtFSManager.cpp \
src/qt4/image/ZLQtImageManager.cpp \
src/qt4/library/ZLibrary.cpp \
src/qt4/time/ZLQtTime.cpp \
src/qt4/util/ZLQtKeyUtil.cpp \
src/qt4/view/ZLQtPaintContext.cpp \
src/qt4/view/ZLQtViewWidget.cpp \
src/qt4/network/ZLQtNetworkManager.cpp \
src/qt4/dialogs/ZLQtTreeDialog.cpp \
src/qt4/tree/ZLQtPreviewWidget.cpp \
src/qt4/tree/ZLQtItemsListWidget.cpp \
src/qt4/tree/ZLQtImageUtils.cpp \
src/qt4/image/ZLQtImageUtils.cpp \
src/qt4/tree/ZLQtSearchField.cpp \
src/qt4/tree/ZLQtWaitingIcons.cpp \
src/qt4/tree/QtWaitingSpinner.cpp

@ -1,2 +0,0 @@
TEMPLATE = subdirs
SUBDIRS = core text ui
Loading…
Cancel
Save