Commit 16e7033f authored by Albert Astals Cid's avatar Albert Astals Cid

Initial Qt5 port

parent 714ee1e6
......@@ -25,6 +25,7 @@ set(POPPLER_VERSION "${POPPLER_MAJOR_VERSION}.${POPPLER_MINOR_VERSION}.${POPPLER
option(ENABLE_XPDF_HEADERS "Install unsupported xpdf headers." OFF)
option(BUILD_GTK_TESTS "Whether compile the GTK+ test programs." ON)
option(BUILD_QT4_TESTS "Whether compile the Qt4 test programs." ON)
option(BUILD_QT5_TESTS "Whether compile the Qt5 test programs." ON)
option(BUILD_CPP_TESTS "Whether compile the CPP test programs." ON)
option(ENABLE_SPLASH "Build the Splash graphics backend." ON)
option(ENABLE_UTILS "Compile poppler command line utils." ON)
......@@ -101,6 +102,18 @@ if(JPEG_FOUND)
set(ENABLE_LIBJPEG ${JPEG_FOUND})
endif(JPEG_FOUND)
macro_optional_find_package(Qt4)
find_package(Qt5Core)
find_package(Qt5Gui)
find_package(Qt5Xml)
find_package(Qt5Widgets)
find_package(Qt5Test)
if (NOT Qt5Core_FOUND AND Qt5Gui_FOUND AND Qt5Xml_FOUND AND Qt5Widgets_FOUND AND Qt5Test_FOUND)
message("-- Package Qt5Core or Qt5Gui or Qt5Xml or Qt5Widgets or Qt5Test not found")
set(QT5_FOUND false)
else(NOT Qt5Core_FOUND AND Qt5Gui_FOUND AND Qt5Xml_FOUND AND Qt5Widgets_FOUND AND Qt5Test_FOUND)
set(QT5_FOUND true)
endif(NOT Qt5Core_FOUND AND Qt5Gui_FOUND AND Qt5Xml_FOUND AND Qt5Widgets_FOUND AND Qt5Test_FOUND)
macro_optional_find_package(Cairo ${CAIRO_VERSION})
if(CAIRO_FOUND)
set(HAVE_CAIRO ${CAIRO_FOUND})
......@@ -579,6 +592,9 @@ add_subdirectory(test)
if(QT4_FOUND)
add_subdirectory(qt4)
endif(QT4_FOUND)
if(QT5_FOUND)
add_subdirectory(qt5)
endif(QT5_FOUND)
if(ENABLE_CPP)
add_subdirectory(cpp)
endif(ENABLE_CPP)
......@@ -603,6 +619,9 @@ endif(ENABLE_SPLASH)
if(QT4_FOUND)
poppler_create_install_pkgconfig(poppler-qt4.pc lib${LIB_SUFFIX}/pkgconfig)
endif(QT4_FOUND)
if(QT5_FOUND)
poppler_create_install_pkgconfig(poppler-qt5.pc lib${LIB_SUFFIX}/pkgconfig)
endif(QT5_FOUND)
if(ENABLE_GLIB)
poppler_create_install_pkgconfig(poppler-glib.pc lib${LIB_SUFFIX}/pkgconfig)
endif(ENABLE_GLIB)
......@@ -619,6 +638,7 @@ show_end_message("font configuration" ${font_configuration})
show_end_message_yesno("splash output" ENABLE_SPLASH)
show_end_message_yesno("cairo output" CAIRO_FOUND)
show_end_message_yesno("qt4 wrapper" QT4_FOUND)
show_end_message_yesno("qt5 wrapper" QT5_FOUND)
show_end_message_yesno("glib wrapper" ENABLE_GLIB)
show_end_message_yesno(" introspection" INTROSPECTION_FOUND)
show_end_message_yesno("cpp wrapper" ENABLE_CPP)
......
......@@ -15,11 +15,17 @@ glib_subdir = glib
glib_pc_file = poppler-glib.pc
endif
if BUILD_POPPLER_QT5
qt5_subdir = qt5
qt5_pc_file = poppler-qt5.pc
endif
if BUILD_POPPLER_QT4
qt4_subdir = qt4
qt4_pc_file = poppler-qt4.pc
endif
if BUILD_POPPLER_CPP
cpp_subdir = cpp
cpp_pc_file = poppler-cpp.pc
......@@ -29,7 +35,7 @@ if BUILD_UTILS
utils_subdir = utils
endif
SUBDIRS = goo fofi $(splash_subdir) poppler $(utils_subdir) $(glib_subdir) test $(qt4_subdir) $(cpp_subdir)
SUBDIRS = goo fofi $(splash_subdir) poppler $(utils_subdir) $(glib_subdir) test $(qt4_subdir) $(qt5_subdir) $(cpp_subdir)
EXTRA_DIST = \
README-XPDF \
......@@ -41,6 +47,8 @@ EXTRA_DIST = \
poppler-splash-uninstalled.pc.in \
poppler-qt4.pc.in \
poppler-qt4-uninstalled.pc.in \
poppler-qt5.pc.in \
poppler-qt5-uninstalled.pc.in \
poppler-cpp.pc.in \
poppler-cpp-uninstalled.pc.in
......@@ -51,6 +59,7 @@ pkgconfig_DATA = \
$(splash_pc_file) \
$(glib_pc_file) \
$(qt4_pc_file) \
$(qt5_pc_file) \
$(cpp_pc_file)
# Add CMake buildsystem files here so they get added on make dist
......@@ -64,6 +73,10 @@ EXTRA_DIST += \
qt4/tests/CMakeLists.txt \
qt4/CMakeLists.txt \
qt4/demos/CMakeLists.txt \
qt5/src/CMakeLists.txt \
qt5/tests/CMakeLists.txt \
qt5/CMakeLists.txt \
qt5/demos/CMakeLists.txt \
test/CMakeLists.txt \
utils/CMakeLists.txt \
CMakeLists.txt \
......@@ -79,7 +92,7 @@ EXTRA_DIST += \
cmake/modules/FindIconv.cmake \
cmake/modules/FindLCMS.cmake \
cmake/modules/FindLCMS2.cmake \
cmake/modules/FindQt4.cmake \
cmake/modules/FindQt5.cmake \
cmake/modules/GObjectIntrospectionMacros.cmake \
cmake/modules/MacroBoolTo01.cmake \
cmake/modules/MacroEnsureVersion.cmake \
......@@ -94,6 +107,7 @@ EXTRA_DIST += \
poppler-cpp.pc.cmake \
poppler-glib.pc.cmake \
poppler-qt4.pc.cmake \
poppler-qt5.pc.cmake \
poppler-splash.pc.cmake \
poppler.pc.cmake
......
......@@ -624,6 +624,61 @@ fi
AM_CONDITIONAL(BUILD_POPPLER_QT4, test "x$enable_poppler_qt4" = "xyes")
dnl
dnl Try Qt5
dnl
AC_ARG_ENABLE(poppler-qt5,
AC_HELP_STRING([--disable-poppler-qt5],
[Don't compile poppler Qt5 wrapper.]),
enable_poppler_qt5=$enableval,
enable_poppler_qt5="try")
if test x$enable_poppler_qt5 = xyes; then
PKG_CHECK_MODULES(POPPLER_QT5,
Qt5Core >= 5.0.0 Qt5Gui >= 5.0.0 Qt5Xml >= 5.0.0 Qt5Widgets >= 5.0.0)
PKG_CHECK_MODULES(POPPLER_QT5_TEST,
Qt5Test >= 5.0.0 )
elif test x$enable_poppler_qt5 = xtry; then
PKG_CHECK_MODULES(POPPLER_QT5,
Qt5Core >= 5.0.0 Qt5Gui >= 5.0.0 Qt5Xml >= 5.0.0 Qt5Widgets >= 5.0.0,
[enable_poppler_qt5="yes"],
[enable_poppler_qt5="no"])
if test x$enable_poppler_qt5 = xyes; then
PKG_CHECK_MODULES(POPPLER_QT5_TEST,
Qt5Test >= 5.0.0,
[enable_poppler_qt5="yes"],
[enable_poppler_qt5="no"])
fi
fi
AC_SUBST(POPPLER_QT5_CXXFLAGS)
AC_SUBST(POPPLER_QT5_LIBS)
AC_SUBST(POPPLER_QT5_TEST_LIBS)
if test x$enable_poppler_qt5 = xyes; then
AC_CHECK_TOOL(MOCQT5, moc)
AC_MSG_CHECKING([for Qt5 moc])
mocversion=`$MOCQT5 -v 2>&1`
mocversiongrep=`echo $mocversion | grep "Qt 5"`
if test x"$mocversiongrep" != x"$mocversion"; then
AC_MSG_RESULT([no])
# moc was not the qt5 one, try with moc-qt5
AC_CHECK_TOOL(MOCQT5, moc-qt5)
AC_MSG_CHECKING([for Qt5 moc-qt5])
mocversion=`$MOCQT5 -v 2>&1`
mocversiongrep=`echo $mocversion | grep "Qt 5"`
if test x"$mocversiongrep" != x"$mocversion"; then
# no valid moc found
enable_poppler_qt5=no;
MOCQT5="not found"
fi
fi
AC_SUBST(MOCQT5)
AC_MSG_RESULT([$MOCQT5])
fi
AM_CONDITIONAL(BUILD_POPPLER_QT5, test "x$enable_poppler_qt5" = "xyes")
dnl
dnl CPP frontend
dnl
......@@ -747,14 +802,14 @@ if test "x$GCC" != xyes; then
fi
case "$enable_compile_warnings" in
no) ;;
yes) CXXFLAGS="-Wall -Woverloaded-virtual -Wnon-virtual-dtor -Wcast-align -fno-exceptions -fno-check-new -fno-common $CXXFLAGS";
yes) CXXFLAGS="-Wall -Woverloaded-virtual -Wnon-virtual-dtor -Wcast-align -fno-exceptions -fno-check-new -fno-common -fPIE $CXXFLAGS";
CFLAGS="-Wall $CFLAGS" ;;
kde) CXXFLAGS="-Wnon-virtual-dtor -Wno-long-long -Wundef \
-D_XOPEN_SOURCE=600 -D_BSD_SOURCE -Wcast-align \
-Wconversion -Wall -W -Wpointer-arith \
-Wwrite-strings -O2 -Wformat-security \
-Wmissing-format-attribute -fno-exceptions -fno-check-new \
-fno-common $CXXFLAGS" ;;
-fno-common -fPIE $CXXFLAGS" ;;
esac
case `$PKG_CONFIG --version` in
......@@ -791,6 +846,10 @@ qt4/Makefile
qt4/src/Makefile
qt4/tests/Makefile
qt4/demos/Makefile
qt5/Makefile
qt5/src/Makefile
qt5/tests/Makefile
qt5/demos/Makefile
cpp/Makefile
cpp/poppler-version.h
cpp/tests/Makefile
......@@ -804,6 +863,8 @@ poppler-glib.pc
poppler-glib-uninstalled.pc
poppler-qt4.pc
poppler-qt4-uninstalled.pc
poppler-qt5.pc
poppler-qt5-uninstalled.pc
poppler-cpp.pc
poppler-cpp-uninstalled.pc])
......@@ -814,6 +875,7 @@ echo " font configuration: $with_font_configuration"
echo " splash output: $enable_splash_output"
echo " cairo output: $use_cairo"
echo " qt4 wrapper: $enable_poppler_qt4"
echo " qt5 wrapper: $enable_poppler_qt5"
echo " glib wrapper: $use_glib"
echo " introspection: $found_introspection"
echo " cpp wrapper: $enable_poppler_cpp"
......
Makefile
Makefile.in
*~
add_subdirectory(src)
add_subdirectory(tests)
add_subdirectory(demos)
SUBDIRS = src tests demos
.deps
.libs
*moc
poppler_qt5viewer
set(CMAKE_AUTOMOC ON)
add_definitions(${QT5_DEFINITIONS})
add_definitions(${Qt5Core_DEFINITIONS})
add_definitions(${Qt5Gui_DEFINITIONS})
add_definitions(${Qt5Widgets_DEFINITIONS})
add_definitions(${Qt5Xml_DEFINITIONS})
include_directories(
${CMAKE_CURRENT_SOURCE_DIR}
${CMAKE_CURRENT_SOURCE_DIR}/../src
${CMAKE_CURRENT_BINARY_DIR}
${Qt5Core_INCLUDE_DIRS}
${Qt5Widgets_INCLUDE_DIRS}
${Qt5Gui_INCLUDE_DIRS}
${Qt5Xml_INCLUDE_DIRS}
)
set(poppler_qt5viewer_SRCS
abstractinfodock.cpp
documentobserver.cpp
embeddedfiles.cpp
fonts.cpp
info.cpp
main_viewer.cpp
metadata.cpp
navigationtoolbar.cpp
optcontent.cpp
pageview.cpp
permissions.cpp
thumbnails.cpp
toc.cpp
viewer.cpp
)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${Qt5Core_EXECUTABLE_COMPILE_FLAGS} ${Qt5Widgets_EXECUTABLE_COMPILE_FLAGS}")
poppler_add_test(poppler_qt5viewer BUILD_QT5_TESTS ${poppler_qt5viewer_SRCS})
target_link_libraries(poppler_qt5viewer poppler-qt5 ${Qt5Core_LIBRARIES} ${Qt5Gui_LIBRARIES} ${Qt5Widgets_LIBRARIES} ${Qt5Xml_LIBRARIES})
AM_LDFLAGS = @auto_import_flags@
INCLUDES = \
-I$(top_srcdir) \
-I$(top_srcdir)/poppler \
-I$(top_srcdir)/qt5/src \
$(POPPLER_QT5_CFLAGS)
LDADDS = \
$(top_builddir)/poppler/libpoppler.la \
$(top_builddir)/qt5/src/libpoppler-qt5.la \
$(POPPLER_QT5_LIBS)
SUFFIXES: .moc
# This rule lets GNU make create any *.moc from the equivalent *.h
.h.moc:
$(AM_V_GEN) $(MOCQT5) -i $< -o $@
noinst_PROGRAMS = poppler_qt5viewer
poppler_qt5viewer_SOURCES = \
abstractinfodock.cpp \
abstractinfodock.h \
documentobserver.cpp \
documentobserver.h \
embeddedfiles.cpp \
embeddedfiles.h \
fonts.cpp \
fonts.h \
info.cpp \
info.h \
main_viewer.cpp \
metadata.cpp \
metadata.h \
navigationtoolbar.cpp \
navigationtoolbar.h \
optcontent.cpp \
optcontent.h \
pageview.cpp \
pageview.h \
permissions.cpp \
permissions.h \
thumbnails.cpp \
thumbnails.h \
toc.cpp \
toc.h \
viewer.cpp \
viewer.h
abstractinfodock.$(OBJEXT): abstractinfodock.moc
embeddedfiles.$(OBJEXT): embeddedfiles.moc
fonts.$(OBJEXT): fonts.moc
info.$(OBJEXT): info.moc
metadata.$(OBJEXT): metadata.moc
navigationtoolbar.$(OBJEXT): navigationtoolbar.moc
optcontent.$(OBJEXT): optcontent.moc
pageview.$(OBJEXT): pageview.moc
permissions.$(OBJEXT): permissions.moc
thumbnails.$(OBJEXT): thumbnails.moc
toc.$(OBJEXT): toc.moc
viewer.$(OBJEXT): viewer.moc
poppler_qt5viewer_LDADD = $(LDADDS)
clean-generic:
rm -f *.moc
/*
* Copyright (C) 2008, Pino Toscano <pino@kde.org>
*
* 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, 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 "fonts.h"
AbstractInfoDock::AbstractInfoDock(QWidget *parent)
: QDockWidget(parent), m_filled(false)
{
connect(this, SIGNAL(visibilityChanged(bool)), SLOT(slotVisibilityChanged(bool)));
}
AbstractInfoDock::~AbstractInfoDock()
{
}
void AbstractInfoDock::documentLoaded()
{
if (!isHidden()) {
fillInfo();
m_filled = true;
}
}
void AbstractInfoDock::documentClosed()
{
m_filled = false;
}
void AbstractInfoDock::pageChanged(int page)
{
Q_UNUSED(page)
}
void AbstractInfoDock::slotVisibilityChanged(bool visible)
{
if (visible && document() && !m_filled) {
fillInfo();
m_filled = true;
}
}
#include "abstractinfodock.moc"
/*
* Copyright (C) 2008, Pino Toscano <pino@kde.org>
*
* 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, 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 ABSTRACTINFODOCK_H
#define ABSTRACTINFODOCK_H
#include <QtWidgets/QDockWidget>
#include "documentobserver.h"
class AbstractInfoDock : public QDockWidget, public DocumentObserver
{
Q_OBJECT
public:
AbstractInfoDock(QWidget *parent = 0);
~AbstractInfoDock();
/*virtual*/ void documentLoaded();
/*virtual*/ void documentClosed();
/*virtual*/ void pageChanged(int page);
protected:
virtual void fillInfo() = 0;
private Q_SLOTS:
void slotVisibilityChanged(bool visible);
private:
bool m_filled;
};
#endif
/*
* Copyright (C) 2008, Pino Toscano <pino@kde.org>
*
* 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, 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 "documentobserver.h"
#include "viewer.h"
DocumentObserver::DocumentObserver()
: m_viewer(0)
{
}
DocumentObserver::~DocumentObserver()
{
}
Poppler::Document* DocumentObserver::document() const
{
return m_viewer->m_doc;
}
void DocumentObserver::setPage(int page)
{
m_viewer->setPage(page);
}
int DocumentObserver::page() const
{
return m_viewer->page();
}
void DocumentObserver::reloadPage()
{
m_viewer->setPage(m_viewer->page());
}
/*
* Copyright (C) 2008, Pino Toscano <pino@kde.org>
*
* 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, 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 DOCUMENTOBSERVER_H
#define DOCUMENTOBSERVER_H
class PdfViewer;
namespace Poppler {
class Document;
}
class DocumentObserver
{
friend class PdfViewer;
public:
virtual ~DocumentObserver();
virtual void documentLoaded() = 0;
virtual void documentClosed() = 0;
virtual void pageChanged(int page) = 0;
protected:
DocumentObserver();
Poppler::Document* document() const;
void setPage(int page);
int page() const;
void reloadPage();
private:
PdfViewer *m_viewer;
};
#endif
/*
* Copyright (C) 2008, Pino Toscano <pino@kde.org>
*
* 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, 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 "embeddedfiles.h"
#include <poppler-qt5.h>
#include <QtWidgets/QTableWidget>
EmbeddedFilesDock::EmbeddedFilesDock(QWidget *parent)
: AbstractInfoDock(parent)
{
m_table = new QTableWidget(this);
setWidget(m_table);
setWindowTitle(tr("Embedded files"));
m_table->setColumnCount(6);
m_table->setHorizontalHeaderLabels(
QStringList() << tr("Name") << tr("Description") << tr("Size") << tr("Creation date")
<< tr("Modification date") << tr("Checksum"));
m_table->setHorizontalScrollMode(QAbstractItemView::ScrollPerPixel);
}
EmbeddedFilesDock::~EmbeddedFilesDock()
{
}
void EmbeddedFilesDock::fillInfo()
{
m_table->setHorizontalHeaderLabels(
QStringList() << tr("Name") << tr("Description") << tr("Size") << tr("Creation date")
<< tr("Modification date") << tr("Checksum"));
if (!document()->hasEmbeddedFiles()) {
m_table->setItem(0, 0, new QTableWidgetItem(tr("No files")));
return;
}
const QList<Poppler::EmbeddedFile*> files = document()->embeddedFiles();
m_table->setRowCount(files.count());
int i = 0;
Q_FOREACH(Poppler::EmbeddedFile *file, files) {
m_table->setItem(i, 0, new QTableWidgetItem(file->name()));
m_table->setItem(i, 1, new QTableWidgetItem(file->description()));
m_table->setItem(i, 2, new QTableWidgetItem(QString::number(file->size())));
m_table->setItem(i, 3, new QTableWidgetItem(file->createDate().toString(Qt::SystemLocaleDate)));
m_table->setItem(i, 4, new QTableWidgetItem(file->modDate().toString(Qt::SystemLocaleDate)));
const QByteArray checksum = file->checksum();
const QString checksumString = !checksum.isEmpty() ? QString::fromLatin1(checksum.toHex()) : QString::fromLatin1("n/a");
m_table->setItem(i, 5, new QTableWidgetItem(checksumString));
++i;
}
}
void EmbeddedFilesDock::documentLoaded()
{
if ( document()->pageMode() == Poppler::Document::UseAttach ) {
show();
}
}
void EmbeddedFilesDock::documentClosed()
{
m_table->clear();
m_table->setRowCount(0);
AbstractInfoDock::documentClosed();
}
#include "embeddedfiles.moc"
/*
* Copyright (C) 2008, Pino Toscano <pino@kde.org>
*
* 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, 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 ATTACHMENTS_H
#define ATTACHMENTS_H
#include "abstractinfodock.h"
class QTableWidget;
class EmbeddedFilesDock : public AbstractInfoDock
{
Q_OBJECT
public:
EmbeddedFilesDock(QWidget *parent = 0);
~EmbeddedFilesDock();
virtual void documentLoaded();
/*virtual*/ void documentClosed();
protected:
/*virtual*/ void fillInfo();
private:
QTableWidget *m_table;
};
#endif
/*
* Copyright (C) 2008, Pino Toscano <pino@kde.org>
*
* 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, 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