Index: /punch-card-project/trunk/punch-card-editor/shared/files.qrc
===================================================================
--- /punch-card-project/trunk/punch-card-editor/shared/files.qrc (revision 58)
+++ /punch-card-project/trunk/punch-card-editor/shared/files.qrc (revision 58)
@@ -0,0 +1,20 @@
+
+
+ icons/document-new.png
+ icons/document-open.png
+ icons/document-save-as.png
+ icons/document-save.png
+ icons/edit-redo.png
+ icons/edit-undo.png
+ icons/format-indent-less.png
+ icons/format-indent-more.png
+ icons/go-down.png
+ icons/go-next.png
+ icons/go-previous.png
+ icons/go-top.png
+ icons/list-add.png
+ icons/list-remove.png
+ icons/system-log-out.png
+ icons/go-up.png
+
+
Index: nch-card-project/trunk/punch-card-editor/shared/icons.qrc
===================================================================
--- /punch-card-project/trunk/punch-card-editor/shared/icons.qrc (revision 57)
+++ (revision )
@@ -1,20 +1,0 @@
-
-
- icons/document-new.png
- icons/document-open.png
- icons/document-save-as.png
- icons/document-save.png
- icons/edit-redo.png
- icons/edit-undo.png
- icons/format-indent-less.png
- icons/format-indent-more.png
- icons/go-down.png
- icons/go-next.png
- icons/go-previous.png
- icons/go-top.png
- icons/list-add.png
- icons/list-remove.png
- icons/system-log-out.png
- icons/go-up.png
-
-
Index: /punch-card-project/trunk/punch-card-editor/src/Makefile
===================================================================
--- /punch-card-project/trunk/punch-card-editor/src/Makefile (revision 57)
+++ /punch-card-project/trunk/punch-card-editor/src/Makefile (revision 58)
@@ -1,5 +1,5 @@
#############################################################################
# Makefile for building: ../bin/src
-# Generated by qmake (2.01a) (Qt 4.5.1) on: Do. Dez 24 19:28:48 2009
+# Generated by qmake (2.01a) (Qt 4.5.1) on: Fr. Jan 1 19:42:19 2010
# Project: src.pro
# Template: app
@@ -390,5 +390,20 @@
-$(DEL_FILE) qrc_icons.cpp
qrc_icons.cpp: ../shared/icons.qrc \
- ../shared/icons/document-new.png
+ ../shared/icons/go-down.png \
+ ../shared/icons/document-open.png \
+ ../shared/icons/go-up.png \
+ ../shared/icons/format-indent-more.png \
+ ../shared/icons/system-log-out.png \
+ ../shared/icons/go-top.png \
+ ../shared/icons/document-new.png \
+ ../shared/icons/go-previous.png \
+ ../shared/icons/list-remove.png \
+ ../shared/icons/edit-undo.png \
+ ../shared/icons/go-next.png \
+ ../shared/icons/document-save.png \
+ ../shared/icons/edit-redo.png \
+ ../shared/icons/format-indent-less.png \
+ ../shared/icons/document-save-as.png \
+ ../shared/icons/list-add.png
/usr/bin/rcc -name icons ../shared/icons.qrc -o qrc_icons.cpp
Index: /punch-card-project/trunk/punch-card-editor/src/app/mainwindow.cc
===================================================================
--- /punch-card-project/trunk/punch-card-editor/src/app/mainwindow.cc (revision 57)
+++ /punch-card-project/trunk/punch-card-editor/src/app/mainwindow.cc (revision 58)
@@ -56,5 +56,5 @@
void MainWindow::createGraphicalEditor() {
- graphical_editor = new CardEditor(this);
+ graphical_editor = new CardEditor(this); // this takes ownership nevertheless
setCentralWidget(graphical_editor);
// signale und so:
@@ -195,9 +195,4 @@
}
-void MainWindow::exportPicture() {
- // das haupteditorwidget bzw. nach Auswahl alle/bestimmte Karten als PNG/SVG/...
- // rendern.
-}
-
void MainWindow::closeFile() {
if(maybeSave()) {
Index: /punch-card-project/trunk/punch-card-editor/src/app/mainwindow.h
===================================================================
--- /punch-card-project/trunk/punch-card-editor/src/app/mainwindow.h (revision 57)
+++ /punch-card-project/trunk/punch-card-editor/src/app/mainwindow.h (revision 58)
@@ -69,5 +69,5 @@
bool saveFileAs();
void exportText();
- void exportPicture();
+ //void exportPicture();
void closeFile();
void help();
Index: /punch-card-project/trunk/punch-card-editor/src/app/mainwindow.ui.cc
===================================================================
--- /punch-card-project/trunk/punch-card-editor/src/app/mainwindow.ui.cc (revision 57)
+++ /punch-card-project/trunk/punch-card-editor/src/app/mainwindow.ui.cc (revision 58)
@@ -60,4 +60,5 @@
connect(deck, SIGNAL(modified(bool)), save_file_action, SLOT(setEnabled(bool)));
connect(deck, SIGNAL(modified(bool)), save_file_as_action, SLOT(setEnabled(bool)));
+ connect(export_picture_action, SIGNAL(triggered()), graphical_editor, SLOT(exportPictureDialog()));
// dynamische Menues und Toolbars erstellen
@@ -106,5 +107,5 @@
export_picture_action = new QAction(tr("&Export Picture of Card..."), this);
export_picture_action->setStatusTip(tr("Save the visualisation of one or more cards as a picture"));
- connect(export_picture_action, SIGNAL(triggered()), this, SLOT(exportPicture()));
+ // connect to cardeditor will be etabilshed when deck is loaded
// close Window: Always possible. Will close Window and if no more windows left => quitting.
Index: /punch-card-project/trunk/punch-card-editor/src/deckviewer/cardeditor.cc
===================================================================
--- /punch-card-project/trunk/punch-card-editor/src/deckviewer/cardeditor.cc (revision 57)
+++ /punch-card-project/trunk/punch-card-editor/src/deckviewer/cardeditor.cc (revision 58)
@@ -1,11 +1,60 @@
#include "cardeditor.h"
+
+#include
+#include
+#include
using namespace QPunchCard;
-CardEditor::CardEditor(App::MainWindow* win) : QScrollArea(win), main(win) {
+CardEditor::CardEditor(App::MainWindow* win) : /*QGraphicsView(win)*/ QScrollArea(win), main(win) {
view = new CardWidget(this);
setWidget(view);
view->unsetCard();
+
+ // neuer, cooler testcode:
+/*
+ view = new CardWidget(this);
+ view->unsetCard();
+
+ QGraphicsScene* scene = new QGraphicsScene();
+ QGraphicsProxyWidget* card_item = scene->addWidget(view);
+ scene->setBackgroundBrush(Qt::red);
+ scene->setSceneRect(0, 0, 3000, 3000);
+
+
+ //setMinimumSize(800, 400);
+
+ setCacheMode(CacheBackground);
+ setViewportUpdateMode(FullViewportUpdate);
+ setRenderHint(QPainter::Antialiasing);
+ setTransformationAnchor(AnchorUnderMouse);
+ setResizeAnchor(AnchorUnderMouse); //ViewCenter);
+
+
+ this->setScene(scene);
+
+ card_item->setPos(QPointF(1000, 1000));
+ fitInView(card_item, Qt::KeepAspectRatio);
+*/
}
+
+ void CardEditor::keyPressEvent(QKeyEvent *event)
+ {
+ switch (event->key()) {
+ case Qt::Key_Plus:
+ //scene()->setSceneRect(0, 0, scene()->width()*1.2, scene()->height()*1.2);
+ //scale(1.2, 1.2);
+ break;
+ case Qt::Key_Minus:
+ //scene()->setSceneRect(0, 0, scene()->width()*1./1.2, scene()->height()*1./1.2);
+ //scale(1./1.2, 1./1.2);
+ break;
+ default:
+ QScrollArea::keyPressEvent(event);
+ //QGraphicsView::keyPressEvent(event);
+ }
+ }
+
+
void CardEditor::setCard(DeckIndex i) {
@@ -39,5 +88,51 @@
}
-void CardEditor::enterEvent(QEvent*) {
+void CardEditor::enterEvent(QEvent* e) {
// aeh... wird vielleicht spaeter gebraucht :)
+ QScrollArea::enterEvent(e);
}
+
+void CardEditor::exportPictureDialog() {
+ // show dialog to export current view to PNG, SVG, etc.
+ /*
+ * TODO: * export all cards at once? (in directory?...)
+ *
+ */
+ Q_ASSERT(this->main);
+ Q_ASSERT(this->view);
+ QString filename = QFileDialog::getSaveFileName(this->main, tr("Choose output file and format by extension"), QString(),
+ tr("Image Files (*.bmp *.jpg *.jpeg *.png *.ppm *.tiff *.xbm *.xpm);;Another (*.xyz)"));
+
+ if(filename.isNull()) {
+ // canceled
+ return;
+ }
+
+ //QFile file(filename);
+ //if(!file.open(QIODevice::WriteOnly)) {
+ /*if(! QFileInfo(filename).isWritable()) {
+ QMessageBox::critical(main, tr("Could not export picture"),
+ tr("Could not open file %1 for writing. Please select a valid filename").arg(filename));
+ // open file dialog another time:
+ exportPictureDialog();
+ }*/
+
+ // get pixmap of actual widget
+ QPixmap pixmap = QPixmap::grabWidget(view);
+ if(!pixmap.save(filename)) {
+ // get list of supported file formats by string
+ QStringList formats;
+ for(int i = 0; i < QImageWriter::supportedImageFormats().count(); i++) {
+ formats << QString(QImageWriter::supportedImageFormats().at(i));
+ }
+
+ QMessageBox::critical(main, tr("Could not export picture"),
+ tr("Exporting picture failed. Valid file formats (filename extensions) are %1").
+ arg( formats.join(", ") ));
+ // open file dialog for another time
+ exportPictureDialog();
+ } else {
+ // finished successfully, tell in status bar
+ main->statusBar()->showMessage(tr("Successfully exported file %1").arg(filename), 4000);
+ }
+}
Index: /punch-card-project/trunk/punch-card-editor/src/deckviewer/cardeditor.h
===================================================================
--- /punch-card-project/trunk/punch-card-editor/src/deckviewer/cardeditor.h (revision 57)
+++ /punch-card-project/trunk/punch-card-editor/src/deckviewer/cardeditor.h (revision 58)
@@ -2,6 +2,10 @@
#define CARDEDITOR_H
+#include
+#include
+
#include
#include
+#include
namespace QPunchCard {
@@ -15,5 +19,5 @@
namespace QPunchCard {
-class CardEditor : public QScrollArea {
+class CardEditor : public /*QGraphicsView */ QScrollArea {
Q_OBJECT
@@ -29,4 +33,7 @@
void contentsChanged(DeckIndex lower, DeckIndex upper);
void fileOpened(bool opened);
+ void exportPictureDialog();
+
+
signals:
@@ -36,4 +43,5 @@
protected:
void enterEvent(QEvent* event);
+ void keyPressEvent(QKeyEvent *event);
};
Index: /punch-card-project/trunk/punch-card-editor/src/qpunchcard/widget.cc
===================================================================
--- /punch-card-project/trunk/punch-card-editor/src/qpunchcard/widget.cc (revision 57)
+++ /punch-card-project/trunk/punch-card-editor/src/qpunchcard/widget.cc (revision 58)
@@ -1,3 +1,10 @@
#include
+#include
+#include
+#include
+#include
+
+#include
+#include
#include "widget.h"
@@ -7,4 +14,7 @@
CardWidget::CardWidget(QWidget * parent, Qt::WFlags f) {
QWidget(parent,f);
+
+ setAutoFillBackground(false);
+
QSizePolicy size(QSizePolicy::Expanding, QSizePolicy::Expanding);
// Lochkartenmasse: bloederweise nur uchar als Datenbereich!?
@@ -12,7 +22,18 @@
size.setVerticalStretch(33);
size.setHeightForWidth(true);
+ setSizePolicy(size);
+
+ // create background picture
+ qDebug("Creating picture from card");
+ qDebug() << "Loading returned " << background_picture.load("/tmp/anb.jpg");
+ background_picture.setMask( background_picture.createMaskFromColor(Qt::white, Qt::MaskOutColor) );
+
+ // mal ganz bloed:
+ codec = CodecFactory::createCodec("o29_code");
+
+ // setup font
+ QFontDatabase::addApplicationFont(":/fonts/BPdots.otf");
setQuality(HighQuality);
- setSizePolicy(size);
updateGeometry();
}
@@ -41,11 +62,40 @@
// prepare for painting
- if(quality() == HighQuality)
+ //if(quality() == HighQuality)
painter.setRenderHint(QPainter::Antialiasing);
painter.setWindow(bound);
// paint punch card
- painter.setPen(Qt::lightGray);
- painter.drawRoundedRect(bound, 100.0, 100.0);
+ if(quality() == ThumbnailQuality) {
+ // paint thumbnail punch card:
+ // * no border, no round edges, var size edge
+ // * only plain background
+ painter.setPen(QPen(Qt::red, 1)); // black
+ painter.setBrush(Qt::lightGray); // lightGray
+ QPoint points[5] = {
+ QPoint(0, 300),
+ QPoint(0, 3250),
+ QPoint(7375, 3250),
+ QPoint(7375, 0),
+ QPoint(200, 0)
+ };
+ painter.drawPolygon(points, 5);
+ } else {
+ // highquality punch card
+ QPainterPath plain_bg;
+ QPainterPath edge;
+ plain_bg.addRoundedRect(bound, 100.0, 100.0);
+ QPolygon edge_polygon;
+ edge_polygon << QPoint(0, 0) << QPoint(0, 300) << QPoint(200, 0);
+ edge.addPolygon(edge_polygon);
+
+ QPainterPath background;
+ background = plain_bg - edge;
+ painter.setPen(Qt::black); // lightGray
+ //painter.drawRoundedRect(bound, 100.0, 100.0);
+ painter.setBrush(Qt::lightGray);
+ painter.drawPath(background);
+ painter.drawPixmap(0, 0, 7375, 3250, this->background_picture);
+ }
// now iterate the columns of the card
@@ -58,6 +108,8 @@
int col, row; // counters
QPoint hole_center;
+
for(col=0; col < 80; col++) {
// card.columns[i] would be the actual column
+ // #1: Print cols out
for(row = 0; row < 12; row++) {
// card.columns[col][row] would it be...
@@ -69,15 +121,47 @@
painter.setPen(Qt::black);
- static const int transform[] = {12,11,0,1,2,3,4,5,6,7,8,9};
+ static const int transform[] = {9,8,7,6,5,4,3,2,1,0,11,12};
//qDebug("Will ausgeben: row=%d, transform=%d < SIZE=%d", row, transform[row], card->get(col).size());
- if(card->get(col).at( transform[row] ))
- // gelocht
- painter.fillRect(hole, Qt::black);
- else if(quality() != ThumbnailQuality)
- // ungelocht, nur high quality zeichnen
- painter.fillRect(hole, Qt::white);
+ bool is_punched = card->get(col).at( transform[row] );
+ if(quality() == ThumbnailQuality) {
+ if(is_punched)
+ painter.fillRect(hole, Qt::black);
+ } else {
+ if(is_punched) {
+ painter.setPen(Qt::black);
+ painter.fillRect(hole, Qt::white);
+ } else {
+ painter.setOpacity(0.1);
+ painter.fillRect(hole, Qt::white);
+ painter.setOpacity(1.0);
+ }
+ } // if quality
+ } // for row
+
+ // #2: Print out the Label line, if present
+ if(this->codec && quality() == HighQuality) {
+ bool can_encode = codec->canEncode(&card->get(col));
+ char c = codec->toAscii(&card->get(col));
+ QFont font("BPDots");
+ font.setFixedPitch(true);
+ font.setPixelSize(150);
+ QFontMetrics metrics(font);
+
+ hole_center.rx() = 251 + col * 87;
+ hole_center.ry() = 73;
+ hole.moveCenter(hole_center);
+
+ painter.setFont(font);
+ if(can_encode) {
+ painter.setPen(Qt::black);
+ painter.drawText(hole, Qt::AlignCenter | Qt::TextDontClip, QString(c));
+ } else {
+ painter.setPen(Qt::red);
+ painter.drawText(hole, Qt::AlignCenter | Qt::TextDontClip, QString("?"));
+ }
}
- }
-}
+
+ } // for col
+} // paintEvent
QDebug QPunchCard::operator<<(QDebug dbg, const CardWidget &c) {
Index: /punch-card-project/trunk/punch-card-editor/src/qpunchcard/widget.h
===================================================================
--- /punch-card-project/trunk/punch-card-editor/src/qpunchcard/widget.h (revision 57)
+++ /punch-card-project/trunk/punch-card-editor/src/qpunchcard/widget.h (revision 58)
@@ -7,8 +7,11 @@
#include "qpunchcard/card.h"
+#include "text/codec.h"
#include
#include
+#include
#include
+#include
namespace QPunchCard {
@@ -22,11 +25,26 @@
const Card* card;
//QPointer card; // ### something like Card* const card;
+ const Codec* codec;
public:
enum Quality { HighQuality, ThumbnailQuality };
Quality _quality;
+ enum Editable { Readable, Hoverable, Writable };
+ Editable _editable;
+
+ /*
+ enum ElementVisibility {
+ Default = 0x00,
+ ShowNotPunchedHoles = 0x01
+ };
+ Q_DECLARE_FLAGS(_show_elements, ElementVisibility);
+ */
+
+ QPixmap background_picture;
CardWidget(QWidget * parent = 0, Qt::WFlags f = 0);
CardWidget(const Card* card, QWidget * parent = 0, Qt::WFlags f = 0) : card(card) { CardWidget(parent, f); }
+
+ // card handling
void setCard(const Card* card) { this->card = card; }
void unsetCard() { card = 0; }
@@ -41,12 +59,28 @@
// Quality issues (Property)
- void setQuality(const Quality quality) { _quality = quality; } // { setProperty("quality", quality); }
- Quality quality() const { return _quality; } // { getProperty("quality"); }
+ void setQuality(Quality quality) { _quality = quality; }
+ Quality quality() const { return _quality; }
+
+ // Editable issues
+ void setEditable(Editable editable) { _editable = editable; }
+ Editable editable() const { return _editable; }
+
+ // View issues
+
+
+ // text related things
+ const Codec* getCodec() const { return codec; }
~CardWidget() {};
+
+public slots:
+ void setCodec(const Codec* codec) { this->codec = codec; }
+ void clearCodec() { setCodec(0); }
protected:
void paintEvent(QPaintEvent *event);
};
+
+//Q_DECLARE_OPERATORS_FOR_FLAGS(CardWidget::ElementVisibility);
QDebug operator<<(QDebug dbg, const CardWidget &c);
Index: /punch-card-project/trunk/punch-card-editor/src/src.pro
===================================================================
--- /punch-card-project/trunk/punch-card-editor/src/src.pro (revision 57)
+++ /punch-card-project/trunk/punch-card-editor/src/src.pro (revision 58)
@@ -5,5 +5,5 @@
OBJECTS_DIR = ../bin/obj
-RESOURCES = ../shared/icons.qrc
+RESOURCES = ../shared/files.qrc
# INCLUDEPATH += ../../protocols/documation-m200
@@ -11,5 +11,5 @@
CONFIG += warn_off
-#CONFIG += debug
+CONFIG += debug
#CONFIG += release
Index: /punch-card-project/trunk/punch-card-editor/src/src.pro.user
===================================================================
--- /punch-card-project/trunk/punch-card-editor/src/src.pro.user (revision 57)
+++ /punch-card-project/trunk/punch-card-editor/src/src.pro.user (revision 58)
@@ -11,9 +11,9 @@
RunConfiguration0-Executable
- /mnt/data/Programme/Lochstreifen/punch-card/punch-card-editor/bin/src
+ /mnt/data/Programme/technikum29-projects/punch-card-project/trunk/punch-card-editor/bin/src
RunConfiguration0-RunConfiguration.name
- Führe /mnt/data/Programme/Lochstreifen/punch-card/punch-card-editor/bin/src aus
+ Führe /mnt/data/Programme/technikum29-projects/punch-card-project/trunk/punch-card-editor/bin/src aus
@@ -101,5 +101,5 @@
2
- /mnt/data/Programme/Lochstreifen/punch-card/punch-card-editor/src
+ /mnt/data/Programme/technikum29-projects/punch-card-project/trunk/punch-card-editor/src
@@ -123,5 +123,153 @@
CONFIG_PROTECT_MASK=/etc/sandbox.d /etc/env.d/java/ /etc/php/cli-php5/ext-active/ /etc/php/cgi-php5/ext-active/ /etc/php/apache2-php5/ext-active/ /etc/udev/rules.d /etc/fonts/fonts.conf /etc/gconf /etc/terminfo /etc/texmf/web2c /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/revdep-rebuild
CVS_RSH=ssh
- DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-NGF11UUF2G,guid=d77d60b3dd8aad2f8ae9083b4b336e9a
+ DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-vStWvGfPi4,guid=f13e2f54c7de3a252ce1974d4b40914d
+ DCCC_PATH=/usr/lib/distcc/bin
+ DESKTOP_SESSION=xfce
+ DESKTOP_STARTUP_ID=
+ DISPLAY=:0.0
+ DISTCC_LOG=
+ DISTCC_VERBOSE=0
+ DM_CONTROL=/var/run/xdmctl
+ EDITOR=/bin/nano
+ GCC_SPECS=
+ GDK_USE_XFT=1
+ GENERATION=2
+ GLADE_CATALOG_PATH=:
+ GLADE_MODULE_PATH=:
+ GLADE_PIXMAP_PATH=:
+ GTK_PATH=:/usr/lib/gtk-2.0
+ HOME=/home/sven
+ INFOPATH=/usr/share/info:/usr/share/binutils-data/i686-pc-linux-gnu/2.18/info:/usr/share/gcc-data/i686-pc-linux-gnu/4.1.1/info:/usr/share/info/emacs-21
+ JAVAC=/home/sven/.gentoo/java-config-2/current-user-vm/bin/javac
+ JAVA_HOME=/home/sven/.gentoo/java-config-2/current-user-vm
+ JDK_HOME=/home/sven/.gentoo/java-config-2/current-user-vm
+ LADSPA_PATH=/usr/lib/ladspa
+ LANG=de_DE
+ LC_ALL=de_DE
+ LESS=-R -M --shift 5
+ LESSOPEN=|lesspipe.sh %s
+ LIBGLADE_MODULE_PATH=:/usr/lib/libglade/2.0
+ LOGNAME=sven
+ MANPATH=/home/sven/.gentoo/java-config-2/current-user-vm/man:/usr/local/share/man:/usr/share/man:/usr/share/binutils-data/i686-pc-linux-gnu/2.18/man:/usr/share/gcc-data/i686-pc-linux-gnu/4.1.1/man:/opt/blackdown-jdk-1.4.2.03/man:/etc/java-config/system-vm/man/:/usr/lib/php5/man/:/usr/kde/4.2/share/man:/usr/kde/3.5/share/man:/usr/qt/3/doc/man:/opt/opera/share/man
+ OPENGL_PROFILE=nvidia
+ PAGER=/usr/bin/less
+ PATH=/usr/bin:/usr/local/bin:/usr/bin:/bin:/opt/bin:/usr/i686-pc-linux-gnu/gcc-bin/4.1.1:/opt/blackdown-jdk-1.4.2.03/bin:/opt/blackdown-jdk-1.4.2.03/jre/bin:/usr/kde/4.2/bin:/usr/kde/3.5/bin:/usr/qt/3/bin:/usr/games/bin
+ PKG_CONFIG_PATH=/usr/kde/4.2/lib/pkgconfig:/usr/qt/3/lib/pkgconfig
+ PRELINK_PATH_MASK=/usr/lib/gstreamer-0.8
+ PWD=/home/sven
+ QMAKESPEC=linux-g++
+ QTDIR=/usr
+ SANE_CONFIG_DIR=/etc/sane.d
+ SESSION_MANAGER=local/sveni:@/tmp/.ICE-unix/3877,unix/sveni:/tmp/.ICE-unix/3877
+ SHELL=/bin/bash
+ SHLVL=1
+ SSH_AGENT_PID=3869
+ SSH_AUTH_SOCK=/tmp/ssh-IZwkod3868/agent.3868
+ USB_DEVFS_PATH=/dev/bus/usb
+ USER=sven
+ VMHANDLE=blackdown-jdk-1.4.2
+ WINDOWPATH=7
+ XDG_CONFIG_DIRS=/etc/xdg
+ XDG_DATA_DIRS=/usr/local/share:/usr/kde/4.2/share:/usr/kde/3.5/share:/usr/share:/usr/share
+ XDG_SESSION_COOKIE=4ca7d15657433fffff2f84004717d7fc-1262522700.921936-30255898
+ XDM_MANAGED=method=classic
+ _=/usr/bin/xfce4-session
+
+
+ /mnt/data/Programme/technikum29-projects/punch-card-project/trunk/punch-card-editor/src/src.pro
+ -spec
+ /usr/share/qt4/mkspecs/linux-g++
+ -r
+ CONFIG+=debug
+
+ /usr/bin/qmake
+ false
+ /mnt/data/Programme/technikum29-projects/punch-card-project/trunk/punch-card-editor/src
+
+
+
+
+ buildconfiguration-Debug-buildstep1
+
+ Debug
+
+ ANT_HOME=/usr/share/ant
+ CLASSPATH=.
+ CONFIG_PROTECT=/usr/kde/4.2/share/config /usr/kde/4.2/env /usr/kde/4.2/shutdown /usr/share/config /usr/kde/3.5/share/config /usr/kde/3.5/env /usr/kde/3.5/shutdown
+ CONFIG_PROTECT_MASK=/etc/sandbox.d /etc/env.d/java/ /etc/php/cli-php5/ext-active/ /etc/php/cgi-php5/ext-active/ /etc/php/apache2-php5/ext-active/ /etc/udev/rules.d /etc/fonts/fonts.conf /etc/gconf /etc/terminfo /etc/texmf/web2c /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/revdep-rebuild
+ CVS_RSH=ssh
+ DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-vStWvGfPi4,guid=f13e2f54c7de3a252ce1974d4b40914d
+ DCCC_PATH=/usr/lib/distcc/bin
+ DESKTOP_SESSION=xfce
+ DESKTOP_STARTUP_ID=
+ DISPLAY=:0.0
+ DISTCC_LOG=
+ DISTCC_VERBOSE=0
+ DM_CONTROL=/var/run/xdmctl
+ EDITOR=/bin/nano
+ GCC_SPECS=
+ GDK_USE_XFT=1
+ GENERATION=2
+ GLADE_CATALOG_PATH=:
+ GLADE_MODULE_PATH=:
+ GLADE_PIXMAP_PATH=:
+ GTK_PATH=:/usr/lib/gtk-2.0
+ HOME=/home/sven
+ INFOPATH=/usr/share/info:/usr/share/binutils-data/i686-pc-linux-gnu/2.18/info:/usr/share/gcc-data/i686-pc-linux-gnu/4.1.1/info:/usr/share/info/emacs-21
+ JAVAC=/home/sven/.gentoo/java-config-2/current-user-vm/bin/javac
+ JAVA_HOME=/home/sven/.gentoo/java-config-2/current-user-vm
+ JDK_HOME=/home/sven/.gentoo/java-config-2/current-user-vm
+ LADSPA_PATH=/usr/lib/ladspa
+ LANG=de_DE
+ LC_ALL=de_DE
+ LESS=-R -M --shift 5
+ LESSOPEN=|lesspipe.sh %s
+ LIBGLADE_MODULE_PATH=:/usr/lib/libglade/2.0
+ LOGNAME=sven
+ MANPATH=/home/sven/.gentoo/java-config-2/current-user-vm/man:/usr/local/share/man:/usr/share/man:/usr/share/binutils-data/i686-pc-linux-gnu/2.18/man:/usr/share/gcc-data/i686-pc-linux-gnu/4.1.1/man:/opt/blackdown-jdk-1.4.2.03/man:/etc/java-config/system-vm/man/:/usr/lib/php5/man/:/usr/kde/4.2/share/man:/usr/kde/3.5/share/man:/usr/qt/3/doc/man:/opt/opera/share/man
+ OPENGL_PROFILE=nvidia
+ PAGER=/usr/bin/less
+ PATH=/usr/bin:/usr/local/bin:/usr/bin:/bin:/opt/bin:/usr/i686-pc-linux-gnu/gcc-bin/4.1.1:/opt/blackdown-jdk-1.4.2.03/bin:/opt/blackdown-jdk-1.4.2.03/jre/bin:/usr/kde/4.2/bin:/usr/kde/3.5/bin:/usr/qt/3/bin:/usr/games/bin
+ PKG_CONFIG_PATH=/usr/kde/4.2/lib/pkgconfig:/usr/qt/3/lib/pkgconfig
+ PRELINK_PATH_MASK=/usr/lib/gstreamer-0.8
+ PWD=/home/sven
+ QMAKESPEC=linux-g++
+ QTDIR=/usr
+ SANE_CONFIG_DIR=/etc/sane.d
+ SESSION_MANAGER=local/sveni:@/tmp/.ICE-unix/3877,unix/sveni:/tmp/.ICE-unix/3877
+ SHELL=/bin/bash
+ SHLVL=1
+ SSH_AGENT_PID=3869
+ SSH_AUTH_SOCK=/tmp/ssh-IZwkod3868/agent.3868
+ USB_DEVFS_PATH=/dev/bus/usb
+ USER=sven
+ VMHANDLE=blackdown-jdk-1.4.2
+ WINDOWPATH=7
+ XDG_CONFIG_DIRS=/etc/xdg
+ XDG_DATA_DIRS=/usr/local/share:/usr/kde/4.2/share:/usr/kde/3.5/share:/usr/share:/usr/share
+ XDG_SESSION_COOKIE=4ca7d15657433fffff2f84004717d7fc-1262522700.921936-30255898
+ XDM_MANAGED=method=classic
+ _=/usr/bin/xfce4-session
+
+ false
+
+ -w
+
+ /usr/bin/make
+ true
+ /mnt/data/Programme/technikum29-projects/punch-card-project/trunk/punch-card-editor/src
+
+
+
+ buildconfiguration-Debug-cleanstep0
+
+ Debug
+
+ ANT_HOME=/usr/share/ant
+ CLASSPATH=.
+ CONFIG_PROTECT=/usr/kde/4.2/share/config /usr/kde/4.2/env /usr/kde/4.2/shutdown /usr/share/config /usr/kde/3.5/share/config /usr/kde/3.5/env /usr/kde/3.5/shutdown
+ CONFIG_PROTECT_MASK=/etc/sandbox.d /etc/env.d/java/ /etc/php/cli-php5/ext-active/ /etc/php/cgi-php5/ext-active/ /etc/php/apache2-php5/ext-active/ /etc/udev/rules.d /etc/fonts/fonts.conf /etc/gconf /etc/terminfo /etc/texmf/web2c /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/revdep-rebuild
+ CVS_RSH=ssh
+ DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-al0AsHPXja,guid=4bd797857293243240627b514b3dc8f5
DCCC_PATH=/usr/lib/distcc/bin
DESKTOP_SESSION=xfce
@@ -162,9 +310,9 @@
QTDIR=/usr
SANE_CONFIG_DIR=/etc/sane.d
- SESSION_MANAGER=local/sveni:@/tmp/.ICE-unix/3881,unix/sveni:/tmp/.ICE-unix/3881
+ SESSION_MANAGER=local/sveni:@/tmp/.ICE-unix/3873,unix/sveni:/tmp/.ICE-unix/3873
SHELL=/bin/bash
SHLVL=1
- SSH_AGENT_PID=3873
- SSH_AUTH_SOCK=/tmp/ssh-zSZPLl3872/agent.3872
+ SSH_AGENT_PID=3865
+ SSH_AUTH_SOCK=/tmp/ssh-saRMzq3864/agent.3864
USB_DEVFS_PATH=/dev/bus/usb
USER=sven
@@ -173,154 +321,5 @@
XDG_CONFIG_DIRS=/etc/xdg
XDG_DATA_DIRS=/usr/local/share:/usr/kde/4.2/share:/usr/kde/3.5/share:/usr/share:/usr/share
- XDG_SESSION_COOKIE=4ca7d15657433fffff2f84004717d7fc-1261661850.180533-607134573
- XDM_MANAGED=method=classic
- _=/usr/bin/xfce4-session
-
-
- /mnt/data/Programme/Lochstreifen/punch-card/punch-card-editor/src/src.pro
- -spec
- /usr/share/qt4/mkspecs/linux-g++
- -r
- CONFIG+=debug
-
- /usr/bin/qmake
- false
- /mnt/data/Programme/Lochstreifen/punch-card/punch-card-editor/src
-
-
-
-
- buildconfiguration-Debug-buildstep1
-
- Debug
-
- ANT_HOME=/usr/share/ant
- CLASSPATH=.
- CONFIG_PROTECT=/usr/kde/4.2/share/config /usr/kde/4.2/env /usr/kde/4.2/shutdown /usr/share/config /usr/kde/3.5/share/config /usr/kde/3.5/env /usr/kde/3.5/shutdown
- CONFIG_PROTECT_MASK=/etc/sandbox.d /etc/env.d/java/ /etc/php/cli-php5/ext-active/ /etc/php/cgi-php5/ext-active/ /etc/php/apache2-php5/ext-active/ /etc/udev/rules.d /etc/fonts/fonts.conf /etc/gconf /etc/terminfo /etc/texmf/web2c /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/revdep-rebuild
- CVS_RSH=ssh
- DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-NGF11UUF2G,guid=d77d60b3dd8aad2f8ae9083b4b336e9a
- DCCC_PATH=/usr/lib/distcc/bin
- DESKTOP_SESSION=xfce
- DESKTOP_STARTUP_ID=
- DISPLAY=:0.0
- DISTCC_LOG=
- DISTCC_VERBOSE=0
- DM_CONTROL=/var/run/xdmctl
- EDITOR=/bin/nano
- GCC_SPECS=
- GDK_USE_XFT=1
- GENERATION=2
- GLADE_CATALOG_PATH=:
- GLADE_MODULE_PATH=:
- GLADE_PIXMAP_PATH=:
- GTK_PATH=:/usr/lib/gtk-2.0
- HOME=/home/sven
- INFOPATH=/usr/share/info:/usr/share/binutils-data/i686-pc-linux-gnu/2.18/info:/usr/share/gcc-data/i686-pc-linux-gnu/4.1.1/info:/usr/share/info/emacs-21
- JAVAC=/home/sven/.gentoo/java-config-2/current-user-vm/bin/javac
- JAVA_HOME=/home/sven/.gentoo/java-config-2/current-user-vm
- JDK_HOME=/home/sven/.gentoo/java-config-2/current-user-vm
- LADSPA_PATH=/usr/lib/ladspa
- LANG=de_DE
- LANGUAGE=
- LC_ALL=de_DE
- LESS=-R -M --shift 5
- LESSOPEN=|lesspipe.sh %s
- LIBGLADE_MODULE_PATH=:/usr/lib/libglade/2.0
- LOGNAME=sven
- MANPATH=/home/sven/.gentoo/java-config-2/current-user-vm/man:/usr/local/share/man:/usr/share/man:/usr/share/binutils-data/i686-pc-linux-gnu/2.18/man:/usr/share/gcc-data/i686-pc-linux-gnu/4.1.1/man:/opt/blackdown-jdk-1.4.2.03/man:/etc/java-config/system-vm/man/:/usr/lib/php5/man/:/usr/kde/4.2/share/man:/usr/kde/3.5/share/man:/usr/qt/3/doc/man:/opt/opera/share/man
- OPENGL_PROFILE=nvidia
- PAGER=/usr/bin/less
- PATH=/usr/bin:/usr/local/bin:/usr/bin:/bin:/opt/bin:/usr/i686-pc-linux-gnu/gcc-bin/4.1.1:/opt/blackdown-jdk-1.4.2.03/bin:/opt/blackdown-jdk-1.4.2.03/jre/bin:/usr/kde/4.2/bin:/usr/kde/3.5/bin:/usr/qt/3/bin:/usr/games/bin
- PKG_CONFIG_PATH=/usr/kde/4.2/lib/pkgconfig:/usr/qt/3/lib/pkgconfig
- PRELINK_PATH_MASK=/usr/lib/gstreamer-0.8
- PWD=/home/sven
- QMAKESPEC=linux-g++
- QTDIR=/usr
- SANE_CONFIG_DIR=/etc/sane.d
- SESSION_MANAGER=local/sveni:@/tmp/.ICE-unix/3881,unix/sveni:/tmp/.ICE-unix/3881
- SHELL=/bin/bash
- SHLVL=1
- SSH_AGENT_PID=3873
- SSH_AUTH_SOCK=/tmp/ssh-zSZPLl3872/agent.3872
- USB_DEVFS_PATH=/dev/bus/usb
- USER=sven
- VMHANDLE=blackdown-jdk-1.4.2
- WINDOWPATH=7
- XDG_CONFIG_DIRS=/etc/xdg
- XDG_DATA_DIRS=/usr/local/share:/usr/kde/4.2/share:/usr/kde/3.5/share:/usr/share:/usr/share
- XDG_SESSION_COOKIE=4ca7d15657433fffff2f84004717d7fc-1261661850.180533-607134573
- XDM_MANAGED=method=classic
- _=/usr/bin/xfce4-session
-
- false
-
- -w
-
- /usr/bin/make
- true
- /mnt/data/Programme/Lochstreifen/punch-card/punch-card-editor/src
-
-
-
- buildconfiguration-Debug-cleanstep0
-
- Debug
-
- ANT_HOME=/usr/share/ant
- CLASSPATH=.
- CONFIG_PROTECT=/usr/kde/4.2/share/config /usr/kde/4.2/env /usr/kde/4.2/shutdown /usr/share/config /usr/kde/3.5/share/config /usr/kde/3.5/env /usr/kde/3.5/shutdown
- CONFIG_PROTECT_MASK=/etc/sandbox.d /etc/env.d/java/ /etc/php/cli-php5/ext-active/ /etc/php/cgi-php5/ext-active/ /etc/php/apache2-php5/ext-active/ /etc/udev/rules.d /etc/fonts/fonts.conf /etc/gconf /etc/terminfo /etc/texmf/web2c /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/revdep-rebuild
- CVS_RSH=ssh
- DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-9LL9VRBIRW,guid=0b12c30eaf4d6c14ba5868eb4b3298b5
- DCCC_PATH=/usr/lib/distcc/bin
- DESKTOP_SESSION=xfce
- DESKTOP_STARTUP_ID=
- DISPLAY=:0.0
- DISTCC_LOG=
- DISTCC_VERBOSE=0
- DM_CONTROL=/var/run/xdmctl
- EDITOR=/bin/nano
- GCC_SPECS=
- GDK_USE_XFT=1
- GENERATION=2
- GLADE_CATALOG_PATH=:
- GLADE_MODULE_PATH=:
- GLADE_PIXMAP_PATH=:
- GTK_PATH=:/usr/lib/gtk-2.0
- HOME=/home/sven
- INFOPATH=/usr/share/info:/usr/share/binutils-data/i686-pc-linux-gnu/2.18/info:/usr/share/gcc-data/i686-pc-linux-gnu/4.1.1/info:/usr/share/info/emacs-21
- JAVAC=/home/sven/.gentoo/java-config-2/current-user-vm/bin/javac
- JAVA_HOME=/home/sven/.gentoo/java-config-2/current-user-vm
- JDK_HOME=/home/sven/.gentoo/java-config-2/current-user-vm
- LADSPA_PATH=/usr/lib/ladspa
- LANG=de_DE
- LC_ALL=de_DE
- LESS=-R -M --shift 5
- LESSOPEN=|lesspipe.sh %s
- LIBGLADE_MODULE_PATH=:/usr/lib/libglade/2.0
- LOGNAME=sven
- MANPATH=/home/sven/.gentoo/java-config-2/current-user-vm/man:/usr/local/share/man:/usr/share/man:/usr/share/binutils-data/i686-pc-linux-gnu/2.18/man:/usr/share/gcc-data/i686-pc-linux-gnu/4.1.1/man:/opt/blackdown-jdk-1.4.2.03/man:/etc/java-config/system-vm/man/:/usr/lib/php5/man/:/usr/kde/4.2/share/man:/usr/kde/3.5/share/man:/usr/qt/3/doc/man:/opt/opera/share/man
- OPENGL_PROFILE=nvidia
- PAGER=/usr/bin/less
- PATH=/usr/bin:/usr/local/bin:/usr/bin:/bin:/opt/bin:/usr/i686-pc-linux-gnu/gcc-bin/4.1.1:/opt/blackdown-jdk-1.4.2.03/bin:/opt/blackdown-jdk-1.4.2.03/jre/bin:/usr/kde/4.2/bin:/usr/kde/3.5/bin:/usr/qt/3/bin:/usr/games/bin
- PKG_CONFIG_PATH=/usr/kde/4.2/lib/pkgconfig:/usr/qt/3/lib/pkgconfig
- PRELINK_PATH_MASK=/usr/lib/gstreamer-0.8
- PWD=/home/sven
- QMAKESPEC=linux-g++
- QTDIR=/usr
- SANE_CONFIG_DIR=/etc/sane.d
- SESSION_MANAGER=local/sveni:@/tmp/.ICE-unix/3980,unix/sveni:/tmp/.ICE-unix/3980
- SHELL=/bin/bash
- SHLVL=1
- SSH_AGENT_PID=3972
- SSH_AUTH_SOCK=/tmp/ssh-RAyzVU3971/agent.3971
- USB_DEVFS_PATH=/dev/bus/usb
- USER=sven
- VMHANDLE=blackdown-jdk-1.4.2
- WINDOWPATH=7
- XDG_CONFIG_DIRS=/etc/xdg
- XDG_DATA_DIRS=/usr/local/share:/usr/kde/4.2/share:/usr/kde/3.5/share:/usr/share:/usr/share
- XDG_SESSION_COOKIE=4ca7d15657433fffff2f84004717d7fc-1261607092.718129-2000615939
+ XDG_SESSION_COOKIE=4ca7d15657433fffff2f84004717d7fc-1262340341.91684-1518068440
XDM_MANAGED=method=classic
_=/usr/bin/xfce4-session
@@ -333,5 +332,5 @@
/usr/bin/make
true
- /mnt/data/Programme/Lochstreifen/punch-card/punch-card-editor/src
+ /mnt/data/Programme/technikum29-projects/punch-card-project/trunk/punch-card-editor/src
true
Index: /punch-card-project/trunk/punch-card-editor/src/text/codec.cc
===================================================================
--- /punch-card-project/trunk/punch-card-editor/src/text/codec.cc (revision 57)
+++ /punch-card-project/trunk/punch-card-editor/src/text/codec.cc (revision 58)
@@ -1,6 +1,4 @@
#include
#include
-#include
-#include
#include "codec.h"
@@ -8,4 +6,7 @@
using namespace QPunchCard;
+
+// initialize static members
+QHash CodecFactory::codec_cache;
QString Codec::toAscii(const Card* target_card) const {
@@ -53,7 +54,10 @@
}
-CharArrayCodec::CharArrayCodec(const int* table, char illegal) : Codec(illegal), table(table) {
+CharArrayCodec::CharArrayCodec(const int* table, char illegal) : Codec(illegal) {
+ d = new Data;
+ d->table = table;
+
// Inverse Tabelle (ASCII -> Column-Tabelle) erstellen
- if(!table) {
+ if(!d->table) {
// uhh... miserable failure. Sehr schlecht.
qDebug() << "CharArrayCodec: Table is NULL! This will *CRASH* application!";
@@ -63,9 +67,9 @@
for(int i = 0; i < 4096; i++) {
// Illegal characters setzen
- inverse_table[i] = illegal;
+ d->inverse_table[i] = illegal;
}
for(char c = ' '; c < '`'; c++) {
- inverse_table[ this->table[c] ] = c;
+ d->inverse_table[ d->table[c] ] = c;
}
}
@@ -78,14 +82,18 @@
const Codec* CodecFactory::createCodec(const QString& name, char illegal) {
- if("o29_code" == name)
- return new CharArrayCodec(o29_code, illegal);
- else if("o26_ftn_code" == name)
- return new CharArrayCodec(o26_ftn_code, illegal);
- else if("o26_comm_code" == name)
- return new CharArrayCodec(o26_comm_code, illegal);
- else {
- qDebug() << QString("Codec '%s' not supported!").arg(name);
- return NULL;
+ if(!CodecFactory::codec_cache.contains(name)) {
+ if("o29_code" == name)
+ CodecFactory::codec_cache[name] = new CharArrayCodec(o29_code, illegal);
+ else if("o26_ftn_code" == name)
+ CodecFactory::codec_cache[name] = new CharArrayCodec(o26_ftn_code, illegal);
+ else if("o26_comm_code" == name)
+ CodecFactory::codec_cache[name] = new CharArrayCodec(o26_comm_code, illegal);
+ else {
+ qDebug() << QString("Codec '%s' not supported!").arg(name);
+ return NULL;
+ }
}
+
+ return CodecFactory::codec_cache[name];
}
Index: /punch-card-project/trunk/punch-card-editor/src/text/codec.h
===================================================================
--- /punch-card-project/trunk/punch-card-editor/src/text/codec.h (revision 57)
+++ /punch-card-project/trunk/punch-card-editor/src/text/codec.h (revision 58)
@@ -29,5 +29,6 @@
const char illegal;
/// @param illegal_character Zeichen fuer nicht existente Zahlen
- Codec(char illegal_character = '~') : illegal(illegal_character) { }
+ Codec(char illegal_character = '~') : illegal(illegal_character) {}
+ Codec(const Codec& other) : illegal(other.illegal) {}
virtual ~Codec() {}
virtual char toAscii(const Column* col) const = 0;
@@ -51,15 +52,26 @@
**/
class CharArrayCodec : public Codec {
- const int* table;
- char inverse_table[4096];
+ class Data {
+ public:
+ const int* table;
+ char inverse_table[4096];
+ int ref;
+ };
+
+ Data* d;
public:
CharArrayCodec(const int* table, char illegal = '~');// : Codec(illegal), table(table) {}
- char toAscii(const Column* col) const { return inverse_table[*col]; }
- Column fromAscii(char ch) const { return Column(canEncode(ch) ? table[ch]: 0); }
+ CharArrayCodec(const CharArrayCodec& other) : Codec(other) {
+ d = other.d;
+ d->ref++;
+ }
+ ~CharArrayCodec() { if(--d->ref == 0) delete d; }
+ char toAscii(const Column* col) const { return d->inverse_table[*col]; }
+ Column fromAscii(char ch) const { return Column(canEncode(ch) ? d->table[ch]: 0); }
- bool canEncode(const Column* col) const { return inverse_table[*col] != illegal; }
+ bool canEncode(const Column* col) const { return d->inverse_table[*col] != illegal; }
bool canEncode(char ch) const {
- bool r = (table[ch] != ERROR);
+ bool r = (d->table[ch] != ERROR);
if(ch < ' ' || ch > 'z') r = false;
//qDebug("CharArrayCodec: %c is a %s character", ch, r ? "valid" : "invalid");
@@ -75,4 +87,5 @@
**/
class CodecFactory {
+ static QHash codec_cache;
public:
// TODO: Codec-Caching (Codec-Constructor privatisieren, dafuer hier caching
@@ -84,5 +97,4 @@
};
-
}; // Namespace
#endif // CODEC_H
Index: /punch-card-project/trunk/punch-card-editor/src/text/editor.cc
===================================================================
--- /punch-card-project/trunk/punch-card-editor/src/text/editor.cc (revision 57)
+++ /punch-card-project/trunk/punch-card-editor/src/text/editor.cc (revision 58)
@@ -18,5 +18,6 @@
// Codec erstellen
- codec = QSharedPointer( CodecFactory::createCodec("o29_code") );
+ //codec = QSharedPointer( CodecFactory::createCodec("o29_code") );
+ codec = CodecFactory::createCodec("o29_code");
if(!codec) {
qDebug("Got NULL Codec :-(");
@@ -201,5 +202,5 @@
**/
bool Text::Editor::translateBlock(const QTextBlock& block) {
- Q_ASSERT(!codec.isNull());
+ Q_ASSERT(codec != NULL);
Q_ASSERT(!main->deck.isNull());
if(! block.isValid()) {
Index: /punch-card-project/trunk/punch-card-editor/src/text/editor.h
===================================================================
--- /punch-card-project/trunk/punch-card-editor/src/text/editor.h (revision 57)
+++ /punch-card-project/trunk/punch-card-editor/src/text/editor.h (revision 58)
@@ -27,5 +27,6 @@
QPointer main;
- QSharedPointer codec;
+ //QSharedPointer codec;
+ const Codec* codec;
QList invalid_characters;
friend class Text::EditorDock;
Index: /punch-card-project/trunk/punch-card-editor/src/text/editordock.cc
===================================================================
--- /punch-card-project/trunk/punch-card-editor/src/text/editordock.cc (revision 57)
+++ /punch-card-project/trunk/punch-card-editor/src/text/editordock.cc (revision 58)
@@ -69,5 +69,6 @@
void Text::EditorDock::setCodec(QString by_name) {
// QSharedPointer: Durch Assignment wird das alte Objekt geloescht :-)
- editor->codec = QSharedPointer( CodecFactory::createCodec(by_name) );
+ //editor->codec = QSharedPointer( CodecFactory::createCodec(by_name) );
+ editor->codec = CodecFactory::createCodec(by_name);
// jetzt: Text komplett neu auswerten. Todo...
}