1 /***************************************************************************
2 * Copyright (C) 2007 by Kita Developers *
3 * ikemo@users.sourceforge.jp *
5 * This program is free software; you can redistribute it and/or modify *
6 * it under the terms of the GNU General Public License as published by *
7 * the Free Software Foundation; either version 2 of the License, or *
8 * (at your option) any later version. *
9 ***************************************************************************/
10 #include "viewmediator.h"
13 #include <kio/netaccess.h>
15 #include "boardtabwidget.h"
16 #include "favoritelistview.h"
17 #include "mainwindow.h"
18 #include "threadtabwidget.h"
19 #include "writetabwidget.h"
20 #include "libkita/datmanager.h"
24 ViewMediator* ViewMediator::instance = 0;
26 ViewMediator::ViewMediator()
30 ViewMediator::~ViewMediator()
34 ViewMediator* ViewMediator::getInstance()
37 instance = new ViewMediator();
42 void ViewMediator::closeThreadTab(const KUrl& url)
44 Q_ASSERT(m_threadTabWidget);
46 m_threadTabWidget->slotCloseThreadTab(url);
49 void ViewMediator::showWriteView(const KUrl& url, const QString& resStr)
51 Q_ASSERT(m_writeTabWidget);
53 m_writeTabWidget->resize(500, 400);
54 m_writeTabWidget->show();
55 m_writeTabWidget->slotShowWriteView(url, resStr);
58 void ViewMediator::openBoard(const KUrl& url)
60 Q_ASSERT(m_boardTabWidget);
62 m_boardTabWidget->loadBoard(url);
65 void ViewMediator::openThread(const KUrl& url)
67 Q_ASSERT(m_threadTabWidget);
69 m_threadTabWidget->slotShowMainThread(url);
72 void ViewMediator::setMainStatus(const QString& statusStr)
74 Q_ASSERT(m_mainWindow);
76 m_mainWindow->setMainStatus(statusStr);
79 void ViewMediator::setMainUrlLine(const KUrl& url)
81 Q_ASSERT(m_mainWindow);
83 m_mainWindow->setUrl(url);
86 void ViewMediator::setMainCaption(const QString& str)
88 Q_ASSERT(m_mainWindow);
90 m_mainWindow->setCaption(str);
93 void ViewMediator::bookmark(const QString& datUrl, bool on)
95 Q_ASSERT(m_mainWindow);
97 m_mainWindow->bookmark(datUrl, on);
100 bool ViewMediator::isActive()
102 Q_ASSERT(m_mainWindow);
104 if(m_mainWindow->isActiveWindow()) return true;
109 void ViewMediator::updateBoardView(const KUrl& datUrl)
111 Q_ASSERT(m_boardTabWidget);
113 m_boardTabWidget->updateBoardView(datUrl);
116 void ViewMediator::updateThreadView(const KUrl& datUrl)
118 Q_ASSERT(m_threadTabWidget);
120 m_threadTabWidget->slotUpdateThreadTab(datUrl);
123 void ViewMediator::changeWriteTab(const KUrl& datUrl)
125 Q_ASSERT(m_writeTabWidget);
127 m_writeTabWidget->slotChangeWriteTab(datUrl);
130 void ViewMediator::updateFavoriteListView()
132 Q_ASSERT(m_favoriteListView);
134 m_favoriteListView->refresh();
137 void ViewMediator::openUrl(const KUrl& url)
140 if (DatManager(url).isThreadEnrolled()) {
141 m_threadTabWidget->slotShowMainThread(url);
145 QString mimetype = KIO::NetAccess::mimetype(url , m_threadTabWidget);
146 KRun::runUrl(url, mimetype, 0);