From 2bda8f7717adf28da4af0d34fb82f63d2868c31d Mon Sep 17 00:00:00 2001 From: toma Date: Wed, 25 Nov 2009 17:56:58 +0000 Subject: Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features. BUG:215923 git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdeutils@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19da --- ark/arkapp.h | 93 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 93 insertions(+) create mode 100644 ark/arkapp.h (limited to 'ark/arkapp.h') diff --git a/ark/arkapp.h b/ark/arkapp.h new file mode 100644 index 0000000..1d1b474 --- /dev/null +++ b/ark/arkapp.h @@ -0,0 +1,93 @@ +/* + + ark -- archiver for the KDE project + + Copyright (C) + + 2002: Helio Chissini de Castro + 1999-2000: Corel Corporation (author: Emily Ezust emilye@corel.com) + 1999: Francois-Xavier Duranceau duranceau@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 + of the License, 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 ARKAPP_H +#define ARKAPP_H + +#include "mainwindow.h" + +// QT includes +#include + +// KDE includes +#include + +class QString; +class QStringList; + +class EqualKey +{ + public: + bool operator()(const QString & str1, const QString & str2) const + { + return (str1 == str2); + } +}; + + +// This class follows the singleton pattern. +class ArkApplication : public KUniqueApplication +{ + Q_OBJECT + public: + virtual int newInstance(); + virtual ~ArkApplication() {} + + // keep track of windows so we know when to quit + int windowCount() { return m_windowCount; } + int addWindow() { ++m_windowCount; return m_windowCount; } + void removeWindow() { --m_windowCount;} + + // keep track of open archive names so we don't open one twice + // note that ArkWidget is not a pointer to const because raise() + // requires later a pointer to nonconst. + void addOpenArk(const KURL & _arkname, MainWindow * _ptr); + void removeOpenArk(const KURL & _arkname); + + bool isArkOpenAlready(const KURL & _arkname); + + void raiseArk(const KURL & _arkname); + + // use this function to access data from other modules. + static ArkApplication *getInstance(); + + protected: + ArkApplication(); + + private: + QWidget *m_mainwidget; // to be the parent of all ArkWidgets + int m_windowCount; + + QStringList openArksList; + + // a hash to obtain the window associated with a filename. + // given a QString key, you get an ArkWidget * pointer. + QDict m_windowsHash; + + static ArkApplication *mInstance; +}; + +#endif // ARKAPP_H -- cgit v1.2.3