OSDN Git Service

ac24a12c526b3781ffda06b7b9066cbcd19d66e2
[gefu/Gefu.git] / folderview.cpp
1 #include "mainwindow.h"
2 #include "preferences.h"
3 #include "folderview.h"
4
5 #include <QApplication>
6 #include <QDebug>
7 #include <QHeaderView>
8
9 ///////////////////////////////////////////////////////////////////////////////
10 /// \brief FolderView::FolderView
11 /// \param parent   親ウィジェット
12 ///
13 /// コンストラクタ
14 ///
15 FolderView::FolderView(QWidget *parent) :
16     QTableView(parent),
17     m_p(this)
18 {
19 }
20
21 ///////////////////////////////////////////////////////////////////////////////
22 /// \brief FolderView::initialize
23 /// \param w    メインウィンドウオブジェクト
24 ///
25 /// 初期化処理を行います。
26 ///
27 void FolderView::initialize(MainWindow *w)
28 {
29     qDebug() << "FolderView::initialize()";
30
31     connect(this, SIGNAL(doubleClicked(QModelIndex)), w, SLOT(onOpen(QModelIndex)));
32     connect(this, SIGNAL(prefs_updated()), w, SLOT(prefs_updated()));
33     connect(&m_p, SIGNAL(copyItems(QStringList,QString)), w, SLOT(copyItems(QStringList,QString)));
34     connect(&m_p, SIGNAL(moveItems(QStringList,QString)), w, SLOT(moveItems(QStringList,QString)));
35
36     installEventFilter(w);
37     viewport()->installEventFilter(&m_p);
38     viewport()->installEventFilter(w);
39 }
40
41 ///////////////////////////////////////////////////////////////////////////////
42 /// \brief FolderView::onScaleUp
43 ///
44 /// 文字を大きくします。
45 ///
46 void FolderView::onScaleUp()
47 {
48     Preferences prefs(this);
49     QFont font = prefs.getFolderViewFont();
50     font.setPointSize(font.pointSize() + 1);
51     prefs.setFolderViewFont(font);
52
53     emit prefs_updated();
54 }
55
56 ///////////////////////////////////////////////////////////////////////////////
57 /// \brief FolderView::onScaleDown
58 ///
59 /// 文字を小さくします。
60 ///
61 void FolderView::onScaleDown()
62 {
63     Preferences prefs(this);
64     QFont font = prefs.getFolderViewFont();
65     font.setPointSize(font.pointSize() - 1);
66     prefs.setFolderViewFont(font);
67
68     emit prefs_updated();
69 }
70
71 ///////////////////////////////////////////////////////////////////////////////
72 /// \brief FolderView::setModel
73 /// \param model    モデルオブジェクト
74 ///
75 /// モデルを設定します。
76 ///
77 void FolderView::setModel(QAbstractItemModel *model)
78 {
79     if (this->model()) {
80         this->model()->disconnect(this);
81     }
82
83     QTableView::setModel(model);
84
85     if (this->model()) {
86         connect(this->model(), SIGNAL(modelAboutToBeReset()), &m_p, SLOT(model_PreReset()));
87         connect(this->model(), SIGNAL(modelReset()), &m_p, SLOT(model_PostReset()));
88
89         // 列の幅を設定する
90         horizontalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents);
91         horizontalHeader()->setSectionResizeMode(FolderModel::Name,
92                                                  QHeaderView::Stretch);
93     }
94 }
95