OSDN Git Service

8fa85a27cb15b9b7466231a080e6a22a6e8b9d5c
[kita/kita.git] / src / viewmediator.cpp
1 /***************************************************************************
2  *   Copyright (C) 2007 by Kita Developers                                 *
3  *   ikemo@users.sourceforge.jp                                            *
4  *                                                                         *
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"
11
12 #include <krun.h>
13 #include <kio/netaccess.h>
14
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"
21
22 using namespace Kita;
23
24 ViewMediator* ViewMediator::instance = 0;
25
26 ViewMediator::ViewMediator()
27 {
28 }
29
30 ViewMediator::~ViewMediator()
31 {
32 }
33
34 ViewMediator* ViewMediator::getInstance()
35 {
36     if(instance == 0) {
37         instance = new ViewMediator();
38     }
39     return instance;
40 }
41
42 void ViewMediator::closeThreadTab(const KUrl& url)
43 {
44     Q_ASSERT(m_threadTabWidget);
45
46     m_threadTabWidget->slotCloseThreadTab(url);
47 }
48
49 void ViewMediator::showWriteView(const KUrl& url, const QString& resStr)
50 {
51     Q_ASSERT(m_writeTabWidget);
52
53     m_writeTabWidget->resize(500, 400);
54     m_writeTabWidget->show();
55     m_writeTabWidget->slotShowWriteView(url, resStr);
56 }
57
58 void ViewMediator::openBoard(const KUrl& url)
59 {
60     Q_ASSERT(m_boardTabWidget);
61
62     m_boardTabWidget->loadBoard(url);
63 }
64
65 void ViewMediator::openThread(const KUrl& url)
66 {
67     Q_ASSERT(m_threadTabWidget);
68
69     m_threadTabWidget->slotShowMainThread(url);
70 }
71
72 void ViewMediator::setMainStatus(const QString& statusStr)
73 {
74     Q_ASSERT(m_mainWindow);
75
76     m_mainWindow->setMainStatus(statusStr);
77 }
78
79 void ViewMediator::setMainUrlLine(const KUrl& url)
80 {
81     Q_ASSERT(m_mainWindow);
82
83     m_mainWindow->setUrl(url);
84 }
85
86 void ViewMediator::setMainCaption(const QString& str)
87 {
88     Q_ASSERT(m_mainWindow);
89
90     m_mainWindow->setCaption(str);
91 }
92
93 void ViewMediator::bookmark(const QString& datUrl, bool on)
94 {
95     Q_ASSERT(m_mainWindow);
96
97     m_mainWindow->bookmark(datUrl, on);
98 }
99
100 bool ViewMediator::isActive()
101 {
102     Q_ASSERT(m_mainWindow);
103
104     if(m_mainWindow->isActiveWindow()) return true;
105
106     return false;
107 }
108
109 void ViewMediator::updateBoardView(const KUrl& datUrl)
110 {
111     Q_ASSERT(m_boardTabWidget);
112
113     m_boardTabWidget->updateBoardView(datUrl);
114 }
115
116 void ViewMediator::updateThreadView(const KUrl& datUrl)
117 {
118     Q_ASSERT(m_threadTabWidget);
119
120     m_threadTabWidget->slotUpdateThreadTab(datUrl);
121 }
122
123 void ViewMediator::changeWriteTab(const KUrl& datUrl)
124 {
125     Q_ASSERT(m_writeTabWidget);
126
127     m_writeTabWidget->slotChangeWriteTab(datUrl);
128 }
129
130 void ViewMediator::updateFavoriteListView()
131 {
132     Q_ASSERT(m_favoriteListView);
133
134     m_favoriteListView->refresh();
135 }
136
137 void ViewMediator::openUrl(const KUrl& url)
138 {
139     // open thread.
140     if (DatManager(url).isThreadEnrolled()) {
141         m_threadTabWidget->slotShowMainThread(url);
142         return;
143     }
144
145     QString mimetype = KIO::NetAccess::mimetype(url , m_threadTabWidget);
146     KRun::runUrl(url, mimetype, 0);
147 }