Pencil2D Animation
Download Community News Docs Contribute
  • Overview
  • Articles
  • Code
  •  
  • Class List
  • Class Index
  • Class Hierarchy
  • Class Members
  • File List
Loading...
Searching...
No Matches
  • app
  • src
preferencesdialog.cpp
1/*
2
3Pencil2D - Traditional Animation Software
4Copyright (C) 2005-2007 Patrick Corrieri & Pascal Naidon
5Copyright (C) 2012-2020 Matthew Chiawen Chang
6
7This program is free software; you can redistribute it and/or
8modify it under the terms of the GNU General Public License
9as published by the Free Software Foundation; version 2 of the License.
10
11This program is distributed in the hope that it will be useful,
12but WITHOUT ANY WARRANTY; without even the implied warranty of
13MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14GNU General Public License for more details.
15
16*/
17#include "preferencesdialog.h"
18
19#include "ui_preferencesdialog.h"
20
21PreferencesDialog::PreferencesDialog(QWidget* parent) :
22 QDialog(parent),
23 ui(new Ui::PreferencesDialog)
24{
25 ui->setupUi(this);
26
27 for (int i = 0; i < 0 + 1 * ui->contentsWidget->count(); i++) {
28 QListWidgetItem* item = ui->contentsWidget->item(i);
29 // Fill entire width
30 item->setSizeHint({std::numeric_limits<int>::max(),
31 ui->contentsWidget->visualItemRect(item).height()});
32 }
33}
34
35PreferencesDialog::~PreferencesDialog()
36{
37 delete ui;
38}
39
40void PreferencesDialog::init(PreferenceManager* m)
41{
42 Q_ASSERT(m != nullptr);
43 mPrefManager = m;
44
45 ui->general->setManager(mPrefManager);
46 ui->general->updateValues();
47
48 ui->filesPage->setManager(mPrefManager);
49 ui->filesPage->updateValues();
50
51 ui->timeline->setManager(mPrefManager);
52 ui->timeline->updateValues();
53
54 ui->tools->setManager(mPrefManager);
55 ui->tools->updateValues();
56
57 ui->shortcuts->setManager(mPrefManager);
58
59 connect(ui->general, &GeneralPage::windowOpacityChange, this, &PreferencesDialog::windowOpacityChange);
60 connect(ui->timeline, &TimelinePage::soundScrubChanged, this, &PreferencesDialog::soundScrubChanged);
61 connect(ui->timeline, &TimelinePage::soundScrubMsecChanged, this, &PreferencesDialog::soundScrubMsecChanged);
62 connect(ui->filesPage, &FilesPage::clearRecentList, this, &PreferencesDialog::clearRecentList);
63 connect(ui->buttonBox, &QDialogButtonBox::rejected, this, &PreferencesDialog::close);
64
65 auto onCurrentItemChanged = static_cast<void (QListWidget::*)(QListWidgetItem*, QListWidgetItem*)>(&QListWidget::currentItemChanged);
66 connect(ui->contentsWidget, onCurrentItemChanged, this, &PreferencesDialog::changePage);
67}
68
69void PreferencesDialog::closeEvent(QCloseEvent*)
70{
71 done(QDialog::Accepted);
72}
73
74void PreferencesDialog::changePage(QListWidgetItem* current, QListWidgetItem* previous)
75{
76 if (!current)
77 current = previous;
78
79 ui->pagesWidget->setCurrentIndex(ui->contentsWidget->row(current));
80}
81
82void PreferencesDialog::updateRecentListBtn(bool isEmpty)
83{
84 if (isEmpty)
85 {
86 emit updateRecentFileListBtn();
87 }
88}
PreferenceManager
Definition: preferencemanager.h:28
PreferencesDialog
Definition: preferencesdialog.h:30
QCloseEvent
QDialog
QDialog::Accepted
Accepted
QDialog::done
virtual void done(int r)
QDialogButtonBox::rejected
void rejected()
QListWidget
QListWidget::currentItemChanged
void currentItemChanged(QListWidgetItem *current, QListWidgetItem *previous)
QListWidgetItem
QListWidgetItem::setSizeHint
void setSizeHint(const QSize &size)
QObject::connect
QMetaObject::Connection connect(const QObject *sender, const char *signal, const QObject *receiver, const char *method, Qt::ConnectionType type)
QWidget
QWidget::close
bool close()
QWidget::setupUi
void setupUi(QWidget *widget)
Generated on Thu May 8 2025 04:47:53 for Pencil2D by doxygen 1.9.6 based on revision 4513250b1d5b1a3676ec0e67b06b7a885ceaae39