annotate widgets/TipDialog.h @ 349:369a197737c7

* Various fixes to object lifetime management, particularly in the spectrum layer and for notification of main model deletion. The main purpose of this is to improve the behaviour of the spectrum, but I think it may also help with #1840922 Various crashes in Layer Summary window.
author Chris Cannam
date Wed, 23 Jan 2008 15:43:27 +0000
parents 1c4c9e3e44e6
children 1fe7951a61e8
rev   line source
Chris@225 1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
Chris@225 2
Chris@225 3 /*
Chris@225 4 Sonic Visualiser
Chris@225 5 An audio file viewer and annotation editor.
Chris@225 6 Centre for Digital Music, Queen Mary, University of London.
Chris@225 7 This file copyright 2007 QMUL.
Chris@225 8
Chris@225 9 This program is free software; you can redistribute it and/or
Chris@225 10 modify it under the terms of the GNU General Public License as
Chris@225 11 published by the Free Software Foundation; either version 2 of the
Chris@225 12 License, or (at your option) any later version. See the file
Chris@225 13 COPYING included with this distribution for more information.
Chris@225 14 */
Chris@225 15
Chris@225 16 #ifndef _TIP_DIALOG_H_
Chris@225 17 #define _TIP_DIALOG_H_
Chris@225 18
Chris@225 19 #include <QDialog>
Chris@225 20 #include <QString>
Chris@225 21 #include <QXmlDefaultHandler>
Chris@225 22
Chris@225 23 #include <vector>
Chris@225 24
Chris@225 25 class QLabel;
Chris@225 26 class QXmlInputSource;
Chris@225 27
Chris@225 28 class TipDialog : public QDialog
Chris@225 29 {
Chris@225 30 Q_OBJECT
Chris@225 31
Chris@225 32 public:
Chris@225 33 TipDialog(QWidget *parent = 0, Qt::WFlags flags = 0);
Chris@225 34 virtual ~TipDialog();
Chris@225 35
Chris@225 36 bool isOK() { return !m_tips.empty(); }
Chris@225 37
Chris@225 38 protected slots:
Chris@225 39 void previous();
Chris@225 40 void next();
Chris@225 41
Chris@225 42 protected:
Chris@225 43 int m_tipNumber;
Chris@225 44 QLabel *m_label;
Chris@225 45 QString m_caption;
Chris@225 46
Chris@225 47 std::vector<QString> m_tips;
Chris@225 48
Chris@225 49 void readTips();
Chris@225 50 void showTip();
Chris@225 51
Chris@225 52 class TipFileParser : public QXmlDefaultHandler
Chris@225 53 {
Chris@225 54 public:
Chris@225 55 TipFileParser(TipDialog *dialog);
Chris@225 56 virtual ~TipFileParser();
Chris@225 57
Chris@225 58 void parse(QXmlInputSource &source);
Chris@225 59
Chris@225 60 virtual bool startElement(const QString &namespaceURI,
Chris@225 61 const QString &localName,
Chris@225 62 const QString &qName,
Chris@225 63 const QXmlAttributes& atts);
Chris@225 64
Chris@225 65 virtual bool characters(const QString &);
Chris@225 66
Chris@225 67 virtual bool endElement(const QString &namespaceURI,
Chris@225 68 const QString &localName,
Chris@225 69 const QString &qName);
Chris@225 70
Chris@225 71 bool error(const QXmlParseException &exception);
Chris@225 72 bool fatalError(const QXmlParseException &exception);
Chris@225 73
Chris@225 74 protected:
Chris@225 75 TipDialog *m_dialog;
Chris@225 76
Chris@225 77 bool m_inTip;
Chris@225 78 bool m_inText;
Chris@228 79 bool m_inHtml;
Chris@225 80 };
Chris@225 81 };
Chris@225 82
Chris@225 83 #endif