Remove autotools related files, '.pro' files and 'distribution' and '.pc' folders
Signed-off-by: Michele Calgaro <michele.calgaro@yahoo.it>pull/1/head
parent
2462d03f32
commit
02625a6051
@ -1 +0,0 @@
|
||||
debian/patches
|
@ -1 +0,0 @@
|
||||
series
|
@ -1 +0,0 @@
|
||||
2
|
@ -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 ¶meter, 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 ¶meter, 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 +0,0 @@
|
||||
5
|
@ -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 +0,0 @@
|
||||
4
|
@ -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 +0,0 @@
|
||||
4
|
@ -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 +0,0 @@
|
||||
4
|
@ -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 +0,0 @@
|
||||
4
|
@ -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 +0,0 @@
|
||||
5
|
@ -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 &"/>
|
||||
+ <option name="command" defaultValue="sensible-browser %1 &"/>
|
||||
</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="<L>" action="showLibrary"/>
|
||||
- <binding key="<W>" action="showNetLibrary"/>
|
||||
- <binding key="<O>" action="preferences"/>
|
||||
- <binding key="<LeftArrow>" action="undo"/>
|
||||
- <binding key="<RightArrow>" action="redo"/>
|
||||
- <binding key="<C>" action="toc"/>
|
||||
- <binding key="<Ctrl>+<F>" action="search"/>
|
||||
- <binding key="<F>" action="search"/>
|
||||
- <binding key="<P>" action="findPrevious"/>
|
||||
- <binding key="<F3>" action="findNext"/>
|
||||
- <binding key="<N>" action="findNext"/>
|
||||
<binding key="<PageDown>" action="pageForward"/>
|
||||
<binding key="<PageUp>" action="pageBackward"/>
|
||||
- <binding key="<DownArrow>" action="lineForward"/>
|
||||
- <binding key="<UpArrow>" action="lineBackward"/>
|
||||
- <binding key="<MouseScrollDown>" action="mouseScrollForward"/>
|
||||
- <binding key="<MouseScrollUp>" action="mouseScrollBackward"/>
|
||||
- <binding key="<Ctrl>+<Home>" action="gotoHome"/>
|
||||
- <binding key="<Home>" action="gotoSectionStart"/>
|
||||
- <binding key="<End>" action="gotoSectionEnd"/>
|
||||
+ <binding key="<Return>" action="rotate"/>
|
||||
+ <binding key="<FullScreen>" action="toggleFullscreen"/>
|
||||
<binding key="<Esc>" action="cancel"/>
|
||||
- <binding key="<=>" action="increaseFont"/>
|
||||
- <binding key="<->" action="decreaseFont"/>
|
||||
- <binding key="<D>" action="toggleIndicator"/>
|
||||
- <binding key="<Return>" action="toggleFullscreen"/>
|
||||
- <binding key="<A>" action="addBook"/>
|
||||
- <binding key="<I>" action="bookInfo"/>
|
||||
- <binding key="<R>" action="rotate"/>
|
||||
- <binding key="<Ctrl>+<DownArrow>" action="nextTOCSection"/>
|
||||
- <binding key="<Ctrl>+<UpArrow>" action="previousTOCSection"/>
|
||||
- <binding key="<Ctrl>+<C>" action="copyToClipboard"/>
|
||||
- <binding key="<G>" action="gotoPageNumber"/>
|
||||
- <binding key="<Z>" 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="<FullScreen>"/>
|
||||
<key code="0xFF1B" name="<Esc>"/>
|
||||
<key code="0x1B" name="<Esc>"/>
|
||||
<key code="0xFF09" name="<Tab>"/>
|
||||
@@ -41,7 +42,6 @@
|
||||
<key code="0xFFE2" name="<RShift>"/>
|
||||
<key code="0xFFE3" name="<Ctrl>"/>
|
||||
<key code="0xFE08" name="<RCtrl>"/>
|
||||
- <key code="0xFFE9" name="<Alt>"/>
|
||||
<key code="0xFFEA" name="<RAlt>"/>
|
||||
<key code="0xFFEB" name="<Win>"/>
|
||||
<key code="0xFF6B" name="<Break>"/>
|
@ -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 +0,0 @@
|
||||
0.99.4
|
@ -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 +0,0 @@
|
||||
desktop.mk
|
@ -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 +0,0 @@
|
||||
0.99.4
|
@ -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 +0,0 @@
|
||||
0.99
|
@ -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 +0,0 @@
|
||||
0.99
|
@ -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 +0,0 @@
|
||||
0.99
|
@ -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…
Reference in New Issue