/**************************************************************************** * * * Copyright (C) 2005 Michael Buesch * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License version 2 * * as published by the Free Software Foundation. * * * * 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. Additionally a copy of the * * GNU General Public License is available here: * * http://passwordmanager.sourceforge.net/gplv2.txt * * http://www.gnu.org/licenses/gpl.txt * * * ****************************************************************************/ #ifndef REGTRACK_STACK_H_ #define REGTRACK_STACK_H_ #include class StackView; class RegTrack; class StackItem : public QListViewItem { public: StackItem(StackView *_parent, int _pos); virtual ~StackItem(); void setName(const QString &str); void setText(const QString &str); QString text() const; protected: virtual int width(const QFontMetrics &fm, const QListView *lv, int c) const; virtual int compare(QListViewItem *_item, int col, bool ascending) const; protected: StackView *parent; int pos; }; class StackView : public QListView { Q_OBJECT public: StackView(RegTrack *_rt, const char *name = 0, WFlags f = 0); virtual ~StackView(); void push(QString str); QString pop(); int size() const; int count() const; void reset(bool full = false); void load(QDataStream &ds); void save(QDataStream &ds); protected slots: void itemDoubleClicked(QListViewItem *_item, const QPoint &/*point*/, int /*column*/); void itemClicked(int button, QListViewItem *_item, const QPoint &/*pos*/, int /*column*/); protected: void updateItemNames(); protected: RegTrack *rt; QValueList list; }; #endif // REGTRACK_STACK_H_