Changeset 49 in projects
- Timestamp:
- Dec 11, 2009, 9:35:47 PM (14 years ago)
- Location:
- punch-card/punch-card-editor/src
- Files:
-
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
punch-card/punch-card-editor/src/app/decktexteditor.cc
r48 r49 75 75 void TextEditorDock::showTextConverterDialog() { 76 76 qDebug("Text Converter Dialog... PENDING"); 77 } 78 79 DeckTextEditor::DeckTextEditor(EditorWindow* main) : QPlainTextEdit(main), main(main) { 80 row_area = new NumberArea(this); 81 col_area = new NumberArea(this); 82 83 connect(this->document(), SIGNAL(contentsChange(int,int,int)), 84 this, SLOT(translateChanges(int, int, int))); 85 86 // Codec erstellen 87 codec = QSharedPointer<const Codec>( CodecFactory::createCodec("o29_code") ); 88 if(!codec) { 89 qDebug("Got NULL Codec :-("); 90 } 91 92 // Font einstellen 93 QFont font; 94 font.setFamily("Courier"); 95 font.setFixedPitch(true); 96 font.setPointSize(13); 97 setFont(font); 98 99 QFont col_font = font; 100 col_font.setFamily("Verdana"); 101 col_font.setPointSize(7); 102 col_area->setFont(col_font); 103 104 connect(this, SIGNAL(blockCountChanged(int)), this, SLOT(updateLineNumberAreaWidth(int))); 105 connect(this, SIGNAL(updateRequest(const QRect &, int)), this, SLOT(updateLineNumberArea(const QRect &, int))); 106 connect(this, SIGNAL(cursorPositionChanged()), this, SLOT(highlightCurrentCursorPos())); 107 108 updateLineNumberAreaWidth(0); 109 highlightCurrentCursorPos(); 77 110 } 78 111 … … 95 128 } 96 129 97 DeckTextEditor::DeckTextEditor(EditorWindow* main) : QPlainTextEdit(main), main(main) { 98 row_area = new NumberArea(this); 99 col_area = new NumberArea(this); 100 101 connect(this->document(), SIGNAL(contentsChange(int,int,int)), 102 this, SLOT(translateChanges(int, int, int))); 103 104 // Codec erstellen 105 codec = QSharedPointer<const Codec>( CodecFactory::createCodec("o29_code") ); 106 if(!codec) { 107 qDebug("Got NULL Codec :-("); 108 } 109 110 // Font einstellen 111 QFont font; 112 font.setFamily("Courier"); 113 font.setFixedPitch(true); 114 font.setPointSize(13); 115 setFont(font); 116 117 QFont col_font = font; 118 col_font.setPointSize(8); 119 col_area->setFont(col_font); 120 121 connect(this, SIGNAL(blockCountChanged(int)), this, SLOT(updateLineNumberAreaWidth(int))); 122 connect(this, SIGNAL(updateRequest(const QRect &, int)), this, SLOT(updateLineNumberArea(const QRect &, int))); 123 connect(this, SIGNAL(cursorPositionChanged()), this, SLOT(highlightCurrentCursorPos())); 124 125 updateLineNumberAreaWidth(0); 126 highlightCurrentCursorPos(); 130 // das wird *NICHT* repainten, das muss danach gemacht werden 131 bool DeckTextEditor::checkValidity(int pos) { 132 QChar c = document()->characterAt(pos); 133 if(c.isNull()) { 134 qDebug("checkValidity: %d is not a valid position", pos); 135 return true; 136 } 137 // check character 138 Q_ASSERT(codec); 139 if(codec->canEncode(c.toAscii())) { 140 // everything fine with this character 141 // just take a look wether it was declared as bad sometime 142 // ago... 143 qDebug("Codec says %c can be encoded", c.toAscii()); 144 for(int bads = 0; bads < invalid_characters.length(); bads++) { 145 if( pos == invalid_characters[bads].cursor.anchor() ) { 146 qDebug("Character at %d is no more bad", pos); 147 // dieses Zeichen loeschen und iterieren stoppen 148 invalid_characters.removeAt(bads); 149 emit invalidCharactersCountChanged( invalid_characters.count() ); 150 break; 151 } 152 } 153 154 return true; 155 } else { 156 // this is a bad character that cannot be encoded 157 // with the current Codec. 158 qDebug("Codec says %c cannot be encoded", c.toAscii()); 159 // #1: Mark character 160 QTextEdit::ExtraSelection selection; 161 selection.cursor = QTextCursor(document()); 162 selection.cursor.setPosition(pos); 163 selection.cursor.movePosition(QTextCursor::Right, QTextCursor::KeepAnchor); 164 selection.format.setFontWeight(QFont::Bold); 165 selection.format.setForeground(Qt::red); 166 selection.format.setBackground(Qt::yellow); 167 selection.format.setToolTip(tr("This character cannot be punched on the punch card using the current codec")); 168 // #2: Toggle anywhere in the superclass that the text 169 // contains bad characters 170 invalid_characters.append(selection); 171 emit invalidCharactersCountChanged( invalid_characters.count() ); 172 // das emitten auf ein *Zeichen* hin ist ggf. schlecht, wenn die 173 // Funktion etwa in translateChanges in einer schleife aufgerufen wird 174 // und ein reciever dann sehr viel zeug hintereinander macht... 175 176 // #3: Return that this character is invalid 177 return false; 178 } 127 179 } 128 180 129 181 void DeckTextEditor::translateChanges(int position, int charsRemoved, int charsAdded) { 130 182 // Dieser slot wird durch das QTextDocument aufgerufen, wenn der Benutzer 131 // den Inhalt geaendert hat. => Uebersetzen ins Kartenmodell und als Signal 132 // weitergeben. 183 // den Inhalt geaendert hat. 184 // 1) Ueberpruefen, ob Text uebersetzbar ist 185 // 2) Uebersetzen ins Kartenmodell und als Signal weitergeben. 133 186 Q_ASSERT(main != 0); 134 187 Q_ASSERT(main->deck != 0); … … 145 198 DeckIndex end_block_number = main->deck->createIndex( end_block.blockNumber() ); 146 199 200 201 if(!(end_pos >= start_pos)) { // sonst waers echt bloed. 202 qDebug("Das momentane END/START-Verhaeltnis ist bloed."); 203 } 204 147 205 if(! start_block.isValid()) { 148 206 // keine gute Grundlage. … … 155 213 qDebug() << start_block_number; 156 214 return; 215 } 216 217 // Ueber Buchstaben iterieren und auf Gueltigkeit ueberpruefen, 218 // wird diese auch textlich auszeichnen 219 for(int i = start_pos; i < end_pos; i++) { 220 if(!checkValidity(i)) { 221 qDebug("Got invalid character at %d", i); 222 } 223 // neue text highlights painten 224 paintHighlights(); 157 225 } 158 226 … … 192 260 } 193 261 262 /** 263 * BUG: Text den man direkt danach schreibt, wird auch gelb wie ungueltige Chars. 264 * Ursache: Formatierung wird immer auch auf Zeichen direkt danach angewandt. 265 * Loesung: Eine weitere Formatierung fuer zeichen direkt danach anwenden, wenn 266 * diese eingegeben werden 267 * 268 **/ 194 269 bool DeckTextEditor::translateBlock(const QTextBlock& block) { 195 270 Q_ASSERT(!codec.isNull()); … … 262 337 if (rect.contains(viewport()->rect())) 263 338 updateLineNumberAreaWidth(0); 339 } 340 341 void DeckTextEditor::paintEvent(QPaintEvent* e) { 342 QPlainTextEdit::paintEvent(e); 343 // mal testweise hier den 80 column begrenzungsstrich hinpinseln 344 // ggf. besser: *unter* den normalen Kram zeichnen, mit ausgegrautem 345 // Bereich und schoenem Strich. Vgl. Qt Creator Editor-Dingens. 346 QPainter p( viewport() ); 347 int x_pos = fontMetrics().width('1') * 80 + this->cursorRect(QTextCursor(document())).x(); 348 p.setBrush(Qt::blue); 349 p.drawLine(QPoint(x_pos, e->rect().top()), QPoint(x_pos, e->rect().bottom())); 264 350 } 265 351 … … 334 420 } 335 421 } 422 { 423 // Third: Bad Characters list 424 extra_selections.append(this->invalid_characters); 425 } 336 426 337 427 setExtraSelections(extra_selections); … … 370 460 painter.setFont(font);*/ 371 461 372 int font_width = fontMetrics().width('4'); 462 // das holt die Metrik von der Font der 463 // Textarea, nicht die kleinere! 464 int font_width = this->fontMetrics().width('1'); 465 466 int x_offset = this->cursorRect(QTextCursor(document())).x(); 373 467 374 468 // ueber alle *zeichen* iterieren. 375 for(int i = 0; i < 80; i++) { 376 painter.drawText(row_area->width() + i * font_width, 4, font_width, fontMetrics().height(), Qt::AlignCenter, 377 QString::number(i)); 469 for(int i = 1; i <= 80; i++) { 470 /*painter.drawLine( 471 QPoint(x_offset + row_area->width() + i * font_width, 4), 472 QPoint(x_offset + row_area->width() + i * font_width, 20) 473 );*/ 474 475 painter.drawText(x_offset + row_area->width() + i * font_width, 4, font_width, fontMetrics().height(), 476 Qt::AlignHCenter, 477 QString("%1\n%2").arg(QString::number((int)(i / 10))).arg(QString::number(i%10)) 478 ); 378 479 } 379 480 } else { -
punch-card/punch-card-editor/src/app/decktexteditor.h
r48 r49 42 42 QPointer<EditorWindow> main; 43 43 QSharedPointer<const Codec> codec; 44 QList<QTextEdit::ExtraSelection> invalid_characters; 44 45 friend class TextEditorDock; 45 46 … … 64 65 QSize numberAreaSize(const NumberArea* area) const; 65 66 bool translateBlock(const QTextBlock& block); 67 bool checkValidity(int pos); 68 /// returns # of invalid chars 69 int containsInvalidCharacters() { return invalid_characters.count(); } 66 70 67 71 public slots: … … 73 77 // die aktive Karte des Benutzers 74 78 void cursorRowChanged(DeckIndex row); 79 void invalidCharactersCountChanged(int new_number); 75 80 76 81 private: … … 81 86 protected: 82 87 void resizeEvent(QResizeEvent* event); 88 void paintEvent(QPaintEvent* e); 83 89 84 90 private slots: -
punch-card/punch-card-editor/src/app/editorwindow.cc
r47 r49 118 118 // this method will close it when everything went good 119 119 QFile file(filename); 120 FileFormat* format = autoDetectFileFormat(file); 120 const FileFormat* format = FileFormatFactory::createFormat( 121 FileFormatFactory::autoDetectFormat(file) 122 ); 121 123 Deck* new_deck = new Deck(format); 122 124 // Leser anschmeissen 123 if( format->read(file) ) {125 if( new_deck->read(file) ) { 124 126 statusBar()->showMessage(QString(tr("Deck read in successfully")), 4000); 125 127 } else … … 193 195 // Nutze einfach mal 194 196 deck->setFormat( new JonesFileFormat ); 195 return deck->save(file); 197 if(deck->save(file)) { 198 statusBar()->showMessage(QString(tr("Deck written successfully to %1").arg(filename)), 4000); 199 return true; 200 } else { 201 // todo: das hier als qmessagewindow oder so 202 statusBar()->showMessage(QString(tr("Error while writing the deck")), 4000); 203 return false; 204 } 196 205 } 197 206 } -
punch-card/punch-card-editor/src/qpunchcard/card.cc
r48 r49 6 6 void Deck::init() { 7 7 undo = new QUndoStack(this); 8 } 9 10 void Deck::setFormat(const FileFormat* new_format) { 11 created_format = QSharedPointer<const FileFormat>(new_format); 12 } 8 13 9 14 15 bool Deck::save(const FileFormat* format, QFile& file) { 16 return format ? format->write(file, *this) : false; 10 17 } 11 18 12 bool Deck::save(FileFormat* format, QFile& file) { 13 if(!format) return false; 14 return format->write(file); 19 bool Deck::read(const FileFormat* format, QFile& file) { 20 return format ? format->read(file, *this) : false; 15 21 } 16 22 -
punch-card/punch-card-editor/src/qpunchcard/card.h
r48 r49 9 9 #include <QUndoStack> 10 10 #include <QFile> 11 #include <QSharedPointer> 11 12 12 13 #include <QModelIndex> … … 94 95 Q_OBJECT 95 96 96 Q Pointer<FileFormat> created_format;97 QSharedPointer<const FileFormat> created_format; 97 98 void init(); 98 99 … … 106 107 ~Deck() {}; 107 108 /// Create from file/stream/etc., that is, calls format->read() 108 Deck( FileFormat* format) : QList< QPointer<Card> >(), created_format(format) { init(); }109 Deck(const FileFormat* format) : QList< QPointer<Card> >(), created_format(format) { init(); } 109 110 /// Save with same device/format as created 110 bool save(QFile& file) { return save(created_format , file); }111 bool save(QFile& file) { return save(created_format.data(), file); } 111 112 /// Save 112 bool save(FileFormat* format, QFile& file); 113 bool save(const FileFormat* format, QFile& file); 114 bool read(QFile& file) { return read(created_format.data(), file); } 115 bool read(const FileFormat* format, QFile& file); 113 116 114 117 bool canSave() const { return created_format; } 115 void setFormat( FileFormat* format) { created_format = format; } // TODO: was ist mit altem format?118 void setFormat(const FileFormat* format); 116 119 //File* getFile() { if(created_format && created_format->file) return created_format->file; } 117 120 -
punch-card/punch-card-editor/src/qpunchcard/codec.h
r48 r49 56 56 CharArrayCodec(const int* table, char illegal = '~');// : Codec(illegal), table(table) {} 57 57 char toAscii(const Column* col) const { return inverse_table[*col]; } 58 Column fromAscii(char ch) const { return Column( table[ch]); }58 Column fromAscii(char ch) const { return Column(canEncode(ch) ? table[ch]: 0); } 59 59 60 60 bool canEncode(const Column* col) const { return inverse_table[*col] != illegal; } 61 bool canEncode(char ch) const { return table[ch] != ERROR; } 61 bool canEncode(char ch) const { 62 bool r = (table[ch] != ERROR); 63 if(ch < ' ' || ch > 'z') r = false; 64 //qDebug("CharArrayCodec: %c is a %s character", ch, r ? "valid" : "invalid"); 65 return r; } 62 66 }; 63 67 -
punch-card/punch-card-editor/src/qpunchcard/format.cc
r44 r49 4 4 using namespace QPunchCard; 5 5 6 FileFormat* QPunchCard::autoDetectFileFormat(const QFile&) { 7 // geht soweit ganz einfach: 8 return new JonesFileFormat(); 9 /*JonesFileFormat* n = new JonesFileFormat(); 10 n->file = new QFile( file.fileName(), n ); // super copy ;-) 11 return n;*/ 6 QList<QString> FileFormatFactory::availableFormats() { 7 QList<QString> ret; 8 ret << "Jones Emulated Card Deck File" << "Punch Card Markup Language File"; 9 return ret; 12 10 } 13 11 14 bool JonesFileFormat::read(QFile& file) { 12 const FileFormat* FileFormatFactory::createFormat(const QString& name) { 13 if(name == "Jones Emulated Card Deck File") 14 return new JonesFileFormat; 15 if(name == "Punch Card Markup Language File") 16 return new PunchCardMarkupLanguageFormat; 17 else { 18 qDebug() << "FileFormatFactory: Invalid createFormat name: " << name; 19 return 0; 20 } 21 } 22 23 QString FileFormatFactory::autoDetectFormat(const QFile&) { 24 // spaeter per magic bytes-Erkennung machen 25 return QString("Jones Emulated Card Deck File"); 26 } 27 28 bool JonesFileFormat::read(QFile& file, Deck& deck) const { 15 29 qDebug() << "Jones reading"; 16 30 … … 20 34 return false; 21 35 } 22 23 // ohne Deck geht gar nix24 if(!deck)25 return false;26 36 27 37 // Now we have an open file at `file`. Use … … 80 90 81 91 /* push card on the card deck*/ 82 deck ->push_back(cur_card);92 deck.push_back(cur_card); 83 93 } // while ! eof 84 94 … … 88 98 89 99 // jones writer 90 bool JonesFileFormat::write(QFile& file ){100 bool JonesFileFormat::write(QFile& file, const Deck& deck) const { 91 101 qDebug() << "Jones writing"; 92 102 93 103 if(!file.isOpen()) { 94 104 // oeffne Datei 95 if(! file.open(QIODevice::WriteOnly)) 105 if(! file.open(QIODevice::WriteOnly)) { 106 qDebug() << "Failed to open file: " << file.errorString(); 96 107 return false; 108 } 97 109 } 98 99 // nen Deck brauchen wir natuerlich auch schon100 if(!deck)101 return false;102 110 103 111 int col_length = 80; 104 112 105 113 // Write out file prefix 106 114 qDebug() << "Beginning Jones writing"; 107 115 file.putChar('H'); 108 116 file.putChar('8'); … … 112 120 113 121 //for(i = begin(); i != end(); i++ ) { 114 for(int i=0; i < deck ->count(); i++) {122 for(int i=0; i < deck.count(); i++) { 115 123 // iterate throught the Cards 116 124 // erhmm... write a header... … … 126 134 char first, second, third; 127 135 128 int even = jones_column_to_integer( deck ->at(i)->get(cur_col++) );129 int odd = jones_column_to_integer( deck ->at(i)->get(cur_col++) );136 int even = jones_column_to_integer( deck[i]->get(cur_col++) ); 137 int odd = jones_column_to_integer( deck[i]->get(cur_col++) ); 130 138 131 139 first = even >> 4; … … 140 148 141 149 file.close(); 150 qDebug() << "Jones File written."; 142 151 return true; // done. 143 152 } // jones writer … … 160 169 161 170 int r; 162 for(int i = 0; i < (int)sizeof(Mapping); i++) 171 // das hier sollte im Idealfall gleich sein ;-) 172 for(int i = 0; i < col.size() && i < (int)sizeof(Mapping); i++) 163 173 r |= (col[i] << Mapping[i]); 164 174 return r; -
punch-card/punch-card-editor/src/qpunchcard/format.h
r44 r49 3 3 4 4 namespace QPunchCard { 5 class FileFormat; };5 class FileFormat; class FileFormatFactory; }; 6 6 7 7 #include "card.h" 8 #include <QPointer>9 8 #include <QFile> 9 #include <QList> 10 #include <QString> 10 11 11 12 namespace QPunchCard { 12 13 13 class FileFormat : public QObject { 14 Q_OBJECT 15 16 protected: 17 // QPointer<QFile> file; 18 QPointer<Deck> deck; 19 friend class Deck; 20 14 class FileFormat { 21 15 public: 22 FileFormat(QObject* parent = 0): QObject(parent) {} 23 24 public slots: 25 virtual bool write(QFile&) { return false; } 26 virtual bool read(QFile&) { return false; } 27 virtual bool saveDialog() { return false; } 28 virtual bool readDialog() { return false; } 29 30 signals: 31 // for save/read progress bars in toolbar 32 void progress(int); 16 virtual ~FileFormat() {} 17 virtual bool write(QFile& /* target */, const Deck& /* source */) const = 0; 18 virtual bool read(QFile& /* source */, Deck& /* target */) const = 0; 33 19 }; 34 20 35 FileFormat* autoDetectFileFormat(const QFile &file); 21 class FileFormatFactory { 22 public: 23 static QList<QString> availableFormats(); 24 static const FileFormat* createFormat(const QString& name); 25 static QString autoDetectFormat(const QFile& file); 26 }; 36 27 37 28 /**************************************************************************** … … 40 31 41 32 class JonesFileFormat : public FileFormat { 42 Q_OBJECT 33 public: 34 static int jones_column_to_integer(const Column& col); 35 static Column jones_integer_to_column(int integer); 43 36 44 public: 45 JonesFileFormat() {} 46 47 int jones_column_to_integer(const Column& col); 48 Column jones_integer_to_column(int integer); 49 50 public slots: 51 bool write(QFile& file); 52 bool read(QFile& file); 37 bool write(QFile& target, const Deck& source) const; 38 bool read(QFile& source, Deck& target) const; 53 39 }; 54 40 41 class PunchCardMarkupLanguageFormat : public FileFormat { 42 public: 43 bool write(QFile& target, const Deck& source) const { return false; } 44 bool read(QFile& source, Deck& target) const { return false; } 45 }; 55 46 56 47 }; // namespace -
punch-card/punch-card-editor/src/src.pro.user
r48 r49 83 83 <value type="QString" >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</value> 84 84 <value type="QString" >CVS_RSH=ssh</value> 85 <value type="QString" >DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus- uhw0GfKk8Y,guid=e0286bbbef04ed7c603577be4b1fe48d</value>85 <value type="QString" >DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-ebkbOdFEJV,guid=24fbcd9fb1a83886c102f0364b2278cc</value> 86 86 <value type="QString" >DCCC_PATH=/usr/lib/distcc/bin</value> 87 87 <value type="QString" >DESKTOP_SESSION=xfce</value> … … 122 122 <value type="QString" >QTDIR=/usr</value> 123 123 <value type="QString" >SANE_CONFIG_DIR=/etc/sane.d</value> 124 <value type="QString" >SESSION_MANAGER=local/sveni:@/tmp/.ICE-unix/39 21,unix/sveni:/tmp/.ICE-unix/3921</value>124 <value type="QString" >SESSION_MANAGER=local/sveni:@/tmp/.ICE-unix/3918,unix/sveni:/tmp/.ICE-unix/3918</value> 125 125 <value type="QString" >SHELL=/bin/bash</value> 126 126 <value type="QString" >SHLVL=1</value> 127 <value type="QString" >SSH_AGENT_PID=391 3</value>128 <value type="QString" >SSH_AUTH_SOCK=/tmp/ssh-e mYdHV3912/agent.3912</value>127 <value type="QString" >SSH_AGENT_PID=3910</value> 128 <value type="QString" >SSH_AUTH_SOCK=/tmp/ssh-eIpvrL3909/agent.3909</value> 129 129 <value type="QString" >USB_DEVFS_PATH=/dev/bus/usb</value> 130 130 <value type="QString" >USER=sven</value> … … 133 133 <value type="QString" >XDG_CONFIG_DIRS=/etc/xdg</value> 134 134 <value type="QString" >XDG_DATA_DIRS=/usr/local/share:/usr/kde/4.2/share:/usr/kde/3.5/share:/usr/share:/usr/share</value> 135 <value type="QString" >XDG_SESSION_COOKIE=4ca7d15657433fffff2f84004717d7fc-1260 381324.894938-786350827</value>135 <value type="QString" >XDG_SESSION_COOKIE=4ca7d15657433fffff2f84004717d7fc-1260550347.423423-1208523191</value> 136 136 <value type="QString" >XDM_MANAGED=method=classic</value> 137 137 <value type="QString" >_=/usr/bin/xfce4-session</value> … … 160 160 <value type="QString" >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</value> 161 161 <value type="QString" >CVS_RSH=ssh</value> 162 <value type="QString" >DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus- uhw0GfKk8Y,guid=e0286bbbef04ed7c603577be4b1fe48d</value>162 <value type="QString" >DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-ebkbOdFEJV,guid=24fbcd9fb1a83886c102f0364b2278cc</value> 163 163 <value type="QString" >DCCC_PATH=/usr/lib/distcc/bin</value> 164 164 <value type="QString" >DESKTOP_SESSION=xfce</value> … … 199 199 <value type="QString" >QTDIR=/usr</value> 200 200 <value type="QString" >SANE_CONFIG_DIR=/etc/sane.d</value> 201 <value type="QString" >SESSION_MANAGER=local/sveni:@/tmp/.ICE-unix/39 21,unix/sveni:/tmp/.ICE-unix/3921</value>201 <value type="QString" >SESSION_MANAGER=local/sveni:@/tmp/.ICE-unix/3918,unix/sveni:/tmp/.ICE-unix/3918</value> 202 202 <value type="QString" >SHELL=/bin/bash</value> 203 203 <value type="QString" >SHLVL=1</value> 204 <value type="QString" >SSH_AGENT_PID=391 3</value>205 <value type="QString" >SSH_AUTH_SOCK=/tmp/ssh-e mYdHV3912/agent.3912</value>204 <value type="QString" >SSH_AGENT_PID=3910</value> 205 <value type="QString" >SSH_AUTH_SOCK=/tmp/ssh-eIpvrL3909/agent.3909</value> 206 206 <value type="QString" >USB_DEVFS_PATH=/dev/bus/usb</value> 207 207 <value type="QString" >USER=sven</value> … … 210 210 <value type="QString" >XDG_CONFIG_DIRS=/etc/xdg</value> 211 211 <value type="QString" >XDG_DATA_DIRS=/usr/local/share:/usr/kde/4.2/share:/usr/kde/3.5/share:/usr/share:/usr/share</value> 212 <value type="QString" >XDG_SESSION_COOKIE=4ca7d15657433fffff2f84004717d7fc-1260 381324.894938-786350827</value>212 <value type="QString" >XDG_SESSION_COOKIE=4ca7d15657433fffff2f84004717d7fc-1260550347.423423-1208523191</value> 213 213 <value type="QString" >XDM_MANAGED=method=classic</value> 214 214 <value type="QString" >_=/usr/bin/xfce4-session</value> … … 233 233 <value type="QString" >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</value> 234 234 <value type="QString" >CVS_RSH=ssh</value> 235 <value type="QString" >DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus- uhw0GfKk8Y,guid=e0286bbbef04ed7c603577be4b1fe48d</value>235 <value type="QString" >DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-ebkbOdFEJV,guid=24fbcd9fb1a83886c102f0364b2278cc</value> 236 236 <value type="QString" >DCCC_PATH=/usr/lib/distcc/bin</value> 237 237 <value type="QString" >DESKTOP_SESSION=xfce</value> … … 272 272 <value type="QString" >QTDIR=/usr</value> 273 273 <value type="QString" >SANE_CONFIG_DIR=/etc/sane.d</value> 274 <value type="QString" >SESSION_MANAGER=local/sveni:@/tmp/.ICE-unix/39 21,unix/sveni:/tmp/.ICE-unix/3921</value>274 <value type="QString" >SESSION_MANAGER=local/sveni:@/tmp/.ICE-unix/3918,unix/sveni:/tmp/.ICE-unix/3918</value> 275 275 <value type="QString" >SHELL=/bin/bash</value> 276 276 <value type="QString" >SHLVL=1</value> 277 <value type="QString" >SSH_AGENT_PID=391 3</value>278 <value type="QString" >SSH_AUTH_SOCK=/tmp/ssh-e mYdHV3912/agent.3912</value>277 <value type="QString" >SSH_AGENT_PID=3910</value> 278 <value type="QString" >SSH_AUTH_SOCK=/tmp/ssh-eIpvrL3909/agent.3909</value> 279 279 <value type="QString" >USB_DEVFS_PATH=/dev/bus/usb</value> 280 280 <value type="QString" >USER=sven</value> … … 283 283 <value type="QString" >XDG_CONFIG_DIRS=/etc/xdg</value> 284 284 <value type="QString" >XDG_DATA_DIRS=/usr/local/share:/usr/kde/4.2/share:/usr/kde/3.5/share:/usr/share:/usr/share</value> 285 <value type="QString" >XDG_SESSION_COOKIE=4ca7d15657433fffff2f84004717d7fc-1260 381324.894938-786350827</value>285 <value type="QString" >XDG_SESSION_COOKIE=4ca7d15657433fffff2f84004717d7fc-1260550347.423423-1208523191</value> 286 286 <value type="QString" >XDM_MANAGED=method=classic</value> 287 287 <value type="QString" >_=/usr/bin/xfce4-session</value>
Note: See TracChangeset
for help on using the changeset viewer.