don't use shared ptr on projects
Really unnecessary
This commit is contained in:
+39
-48
@@ -105,7 +105,6 @@ void Core::DeclareTypesForQt()
|
||||
qRegisterMetaType<Decoder::RetrieveState>();
|
||||
qRegisterMetaType<olive::TimeRange>();
|
||||
qRegisterMetaType<Color>();
|
||||
qRegisterMetaType<olive::ProjectPtr>();
|
||||
qRegisterMetaType<olive::AudioVisualWaveform>();
|
||||
qRegisterMetaType<olive::SampleJob>();
|
||||
qRegisterMetaType<olive::ShaderJob>();
|
||||
@@ -263,14 +262,14 @@ void Core::ClearOpenRecentList()
|
||||
void Core::CreateNewProject()
|
||||
{
|
||||
// If we already have an empty/new project, switch to it
|
||||
foreach (ProjectPtr already_open, open_projects_) {
|
||||
foreach (Project* already_open, open_projects_) {
|
||||
if (already_open->is_new()) {
|
||||
AddOpenProject(already_open);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
AddOpenProject(std::make_shared<Project>());
|
||||
AddOpenProject(new Project());
|
||||
}
|
||||
|
||||
const bool &Core::snapping() const
|
||||
@@ -283,17 +282,6 @@ const QStringList &Core::GetRecentProjects() const
|
||||
return recent_projects_;
|
||||
}
|
||||
|
||||
ProjectPtr Core::GetSharedPtrFromProject(Project *project) const
|
||||
{
|
||||
foreach (ProjectPtr p, open_projects_) {
|
||||
if (p.get() == project) {
|
||||
return p;
|
||||
}
|
||||
}
|
||||
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
void Core::SetTool(const Tool::Item &tool)
|
||||
{
|
||||
tool_ = tool;
|
||||
@@ -348,10 +336,10 @@ void Core::DialogPreferencesShow()
|
||||
|
||||
void Core::DialogProjectPropertiesShow()
|
||||
{
|
||||
ProjectPtr proj = GetActiveProject();
|
||||
Project* proj = GetActiveProject();
|
||||
|
||||
if (proj) {
|
||||
ProjectPropertiesDialog ppd(proj.get(), main_window_);
|
||||
ProjectPropertiesDialog ppd(proj, main_window_);
|
||||
ppd.exec();
|
||||
} else {
|
||||
QMessageBox::critical(main_window_,
|
||||
@@ -407,7 +395,7 @@ void Core::CreateNewFolder()
|
||||
|
||||
void Core::CreateNewSequence()
|
||||
{
|
||||
ProjectPtr active_project = GetActiveProject();
|
||||
Project* active_project = GetActiveProject();
|
||||
|
||||
if (!active_project) {
|
||||
QMessageBox::critical(main_window_, tr("Failed to create new sequence"), tr("Failed to find active project"));
|
||||
@@ -415,7 +403,7 @@ void Core::CreateNewSequence()
|
||||
}
|
||||
|
||||
// Create new sequence
|
||||
SequencePtr new_sequence = CreateNewSequenceForProject(active_project.get());
|
||||
SequencePtr new_sequence = CreateNewSequenceForProject(active_project);
|
||||
|
||||
// Set all defaults for the sequence
|
||||
new_sequence->set_default_parameters();
|
||||
@@ -440,13 +428,13 @@ void Core::CreateNewSequence()
|
||||
}
|
||||
}
|
||||
|
||||
void Core::AddOpenProject(ProjectPtr p)
|
||||
void Core::AddOpenProject(Project* p)
|
||||
{
|
||||
// Ensure project is not open at the moment
|
||||
foreach (ProjectPtr already_open, open_projects_) {
|
||||
foreach (Project* already_open, open_projects_) {
|
||||
if (already_open == p) {
|
||||
// Signal UI to switch to this project
|
||||
emit ProjectOpened(p.get());
|
||||
emit ProjectOpened(p);
|
||||
return;
|
||||
}
|
||||
}
|
||||
@@ -456,24 +444,26 @@ void Core::AddOpenProject(ProjectPtr p)
|
||||
CloseProject(open_projects_.last(), false);
|
||||
}
|
||||
|
||||
connect(p.get(), &Project::ModifiedChanged, this, &Core::ProjectWasModified);
|
||||
connect(p, &Project::ModifiedChanged, this, &Core::ProjectWasModified);
|
||||
open_projects_.append(p);
|
||||
|
||||
PushRecentlyOpenedProject(p->filename());
|
||||
|
||||
emit ProjectOpened(p.get());
|
||||
emit ProjectOpened(p);
|
||||
}
|
||||
|
||||
void Core::AddOpenProjectFromTask(Task *task)
|
||||
{
|
||||
ProjectLoadBaseTask* load_task = static_cast<ProjectLoadBaseTask*>(task);
|
||||
|
||||
ProjectPtr project = load_task->GetLoadedProject();
|
||||
Project* project = load_task->GetLoadedProject();
|
||||
MainWindowLayoutInfo layout = load_task->GetLoadedLayout();
|
||||
|
||||
if (ValidateFootageInLoadedProject(project, load_task->GetFilenameProjectWasSavedAs())) {
|
||||
AddOpenProject(project);
|
||||
main_window_->LoadLayout(layout);
|
||||
} else {
|
||||
delete project;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -516,7 +506,7 @@ void Core::ProjectWasModified(bool e)
|
||||
} else {
|
||||
// If we just set this project to "not modified", see if all projects are not modified in which case we can hide
|
||||
// the modified flag
|
||||
foreach (ProjectPtr open, open_projects_) {
|
||||
foreach (Project* open, open_projects_) {
|
||||
if (open->is_modified()) {
|
||||
main_window_->setWindowModified(true);
|
||||
return;
|
||||
@@ -546,7 +536,7 @@ bool Core::StartHeadlessExport()
|
||||
CLITaskDialog task_dialog(&plm);
|
||||
|
||||
if (task_dialog.Run()) {
|
||||
ProjectPtr p = plm.GetLoadedProject();
|
||||
std::unique_ptr<Project> p = std::unique_ptr<Project>(plm.GetLoadedProject());
|
||||
QList<ItemPtr> items = p->get_items_of_type(Item::kSequence);
|
||||
|
||||
// Check if this project contains sequences
|
||||
@@ -696,7 +686,7 @@ void Core::StartGUI(bool full_screen)
|
||||
}
|
||||
}
|
||||
|
||||
void Core::SaveProjectInternal(ProjectPtr project)
|
||||
void Core::SaveProjectInternal(Project* project)
|
||||
{
|
||||
// Create save manager
|
||||
Task* psm;
|
||||
@@ -754,7 +744,7 @@ ViewerOutput *Core::GetSequenceToExport()
|
||||
|
||||
void Core::SaveAutorecovery()
|
||||
{
|
||||
foreach (ProjectPtr p, open_projects_) {
|
||||
foreach (Project* p, open_projects_) {
|
||||
if (!p->has_autorecovery_been_saved()) {
|
||||
// FIXME: SAVE AN AUTORECOVERY PROJECT
|
||||
p->set_autorecovery_saved(true);
|
||||
@@ -764,19 +754,19 @@ void Core::SaveAutorecovery()
|
||||
|
||||
void Core::ProjectSaveSucceeded(Task* task)
|
||||
{
|
||||
ProjectPtr p = static_cast<ProjectSaveTask*>(task)->GetProject();
|
||||
Project* p = static_cast<ProjectSaveTask*>(task)->GetProject();
|
||||
|
||||
PushRecentlyOpenedProject(p->filename());
|
||||
|
||||
p->set_modified(false);
|
||||
}
|
||||
|
||||
ProjectPtr Core::GetActiveProject() const
|
||||
Project* Core::GetActiveProject() const
|
||||
{
|
||||
ProjectPanel* active_project_panel = PanelManager::instance()->MostRecentlyFocused<ProjectPanel>();
|
||||
|
||||
if (active_project_panel && active_project_panel->project()) {
|
||||
return GetSharedPtrFromProject(active_project_panel->project());
|
||||
return active_project_panel->project();
|
||||
}
|
||||
|
||||
return nullptr;
|
||||
@@ -834,7 +824,7 @@ QString Core::PasteStringFromClipboard()
|
||||
|
||||
bool Core::SaveActiveProject()
|
||||
{
|
||||
ProjectPtr active_project = GetActiveProject();
|
||||
Project* active_project = GetActiveProject();
|
||||
|
||||
if (active_project) {
|
||||
return SaveProject(active_project);
|
||||
@@ -845,7 +835,7 @@ bool Core::SaveActiveProject()
|
||||
|
||||
bool Core::SaveActiveProjectAs()
|
||||
{
|
||||
ProjectPtr active_project = GetActiveProject();
|
||||
Project* active_project = GetActiveProject();
|
||||
|
||||
if (active_project) {
|
||||
return SaveProjectAs(active_project);
|
||||
@@ -856,7 +846,7 @@ bool Core::SaveActiveProjectAs()
|
||||
|
||||
bool Core::SaveAllProjects()
|
||||
{
|
||||
foreach (ProjectPtr p, open_projects_) {
|
||||
foreach (Project* p, open_projects_) {
|
||||
if (!SaveProject(p)) {
|
||||
return false;
|
||||
}
|
||||
@@ -872,10 +862,10 @@ bool Core::CloseActiveProject()
|
||||
|
||||
bool Core::CloseAllExceptActiveProject()
|
||||
{
|
||||
ProjectPtr active_proj = GetActiveProject();
|
||||
QList<ProjectPtr> copy = open_projects_;
|
||||
Project* active_proj = GetActiveProject();
|
||||
QList<Project*> copy = open_projects_;
|
||||
|
||||
foreach (ProjectPtr p, copy) {
|
||||
foreach (Project* p, copy) {
|
||||
if (p != active_proj) {
|
||||
if (!CloseProject(p, true)) {
|
||||
return false;
|
||||
@@ -934,7 +924,7 @@ void Core::SetStartupLocale()
|
||||
}
|
||||
}
|
||||
|
||||
bool Core::SaveProject(ProjectPtr p)
|
||||
bool Core::SaveProject(Project* p)
|
||||
{
|
||||
if (p->filename().isEmpty()) {
|
||||
return SaveProjectAs(p);
|
||||
@@ -945,7 +935,7 @@ bool Core::SaveProject(ProjectPtr p)
|
||||
}
|
||||
}
|
||||
|
||||
bool Core::SaveProjectAs(ProjectPtr p)
|
||||
bool Core::SaveProjectAs(Project* p)
|
||||
{
|
||||
QFileDialog fd(main_window_, tr("Save Project As"));
|
||||
|
||||
@@ -992,7 +982,7 @@ void Core::PushRecentlyOpenedProject(const QString& s)
|
||||
void Core::OpenProjectInternal(const QString &filename)
|
||||
{
|
||||
// See if this project is open already
|
||||
foreach (ProjectPtr p, open_projects_) {
|
||||
foreach (Project* p, open_projects_) {
|
||||
if (p->filename() == filename) {
|
||||
// This project is already open
|
||||
AddOpenProject(p);
|
||||
@@ -1128,13 +1118,13 @@ void Core::OpenProjectFromRecentList(int index)
|
||||
}
|
||||
}
|
||||
|
||||
bool Core::CloseProject(ProjectPtr p, bool auto_open_new)
|
||||
bool Core::CloseProject(Project *p, bool auto_open_new)
|
||||
{
|
||||
CloseProjectBehavior b = kCloseProjectOnlyOne;
|
||||
return CloseProject(p, auto_open_new, b);
|
||||
}
|
||||
|
||||
bool Core::CloseProject(ProjectPtr p, bool auto_open_new, CloseProjectBehavior &confirm_behavior)
|
||||
bool Core::CloseProject(Project* p, bool auto_open_new, CloseProjectBehavior &confirm_behavior)
|
||||
{
|
||||
for (int i=0;i<open_projects_.size();i++) {
|
||||
if (open_projects_.at(i) == p) {
|
||||
@@ -1202,9 +1192,10 @@ bool Core::CloseProject(ProjectPtr p, bool auto_open_new, CloseProjectBehavior &
|
||||
// For safety, the undo stack is cleared so no commands try to affect a freed project
|
||||
undo_stack_.clear();
|
||||
|
||||
disconnect(p.get(), &Project::ModifiedChanged, this, &Core::ProjectWasModified);
|
||||
emit ProjectClosed(p.get());
|
||||
disconnect(p, &Project::ModifiedChanged, this, &Core::ProjectWasModified);
|
||||
emit ProjectClosed(p);
|
||||
open_projects_.removeAt(i);
|
||||
delete p;
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -1219,12 +1210,12 @@ bool Core::CloseProject(ProjectPtr p, bool auto_open_new, CloseProjectBehavior &
|
||||
|
||||
bool Core::CloseAllProjects(bool auto_open_new)
|
||||
{
|
||||
QList<ProjectPtr> copy = open_projects_;
|
||||
QList<Project*> copy = open_projects_;
|
||||
|
||||
// See how many projects are modified so we can set "behavior" correctly
|
||||
// (i.e. whether to show "Yes/No To All" buttons or not)
|
||||
int modified_count = 0;
|
||||
foreach (ProjectPtr p, copy) {
|
||||
foreach (Project* p, copy) {
|
||||
if (p->is_modified()) {
|
||||
modified_count++;
|
||||
}
|
||||
@@ -1238,7 +1229,7 @@ bool Core::CloseAllProjects(bool auto_open_new)
|
||||
behavior = kCloseProjectOnlyOne;
|
||||
}
|
||||
|
||||
foreach (ProjectPtr p, copy) {
|
||||
foreach (Project* p, copy) {
|
||||
// If this is the only remaining project and the user hasn't chose "yes/no to all", hide those buttons
|
||||
if (modified_count == 1 && behavior == kCloseProjectAsk) {
|
||||
behavior = kCloseProjectOnlyOne;
|
||||
@@ -1288,7 +1279,7 @@ void Core::CacheActiveSequence(bool in_out_only)
|
||||
}
|
||||
}
|
||||
|
||||
bool Core::ValidateFootageInLoadedProject(ProjectPtr project, const QString& project_saved_url)
|
||||
bool Core::ValidateFootageInLoadedProject(Project* project, const QString& project_saved_url)
|
||||
{
|
||||
QList<FootagePtr> footage_we_couldnt_validate;
|
||||
|
||||
|
||||
+13
-18
@@ -197,11 +197,6 @@ public:
|
||||
*/
|
||||
const QStringList& GetRecentProjects() const;
|
||||
|
||||
/**
|
||||
* @brief Convenience function to retrieve a Project's shared pointer
|
||||
*/
|
||||
ProjectPtr GetSharedPtrFromProject(Project* project) const;
|
||||
|
||||
/**
|
||||
* @brief Get the currently active project
|
||||
*
|
||||
@@ -212,7 +207,7 @@ public:
|
||||
*
|
||||
* The active Project file, or nullptr if the heuristic couldn't find one.
|
||||
*/
|
||||
ProjectPtr GetActiveProject() const;
|
||||
Project* GetActiveProject() const;
|
||||
ProjectViewModel* GetActiveProjectModel() const;
|
||||
Folder* GetSelectedFolderInActiveProject() const;
|
||||
|
||||
@@ -268,8 +263,8 @@ public:
|
||||
/**
|
||||
* @brief Closes a project
|
||||
*/
|
||||
bool CloseProject(ProjectPtr p, bool auto_open_new, CloseProjectBehavior& confirm_behavior);
|
||||
bool CloseProject(ProjectPtr p, bool auto_open_new);
|
||||
bool CloseProject(Project* p, bool auto_open_new, CloseProjectBehavior& confirm_behavior);
|
||||
bool CloseProject(Project* p, bool auto_open_new);
|
||||
|
||||
/**
|
||||
* @brief Closes all open projects
|
||||
@@ -284,13 +279,18 @@ public:
|
||||
/**
|
||||
* @brief Check each footage object for whether it still exists or has changed
|
||||
*/
|
||||
bool ValidateFootageInLoadedProject(ProjectPtr project, const QString &project_saved_url);
|
||||
bool ValidateFootageInLoadedProject(Project* project, const QString &project_saved_url);
|
||||
|
||||
/**
|
||||
* @brief Changes the current language
|
||||
*/
|
||||
bool SetLanguage(const QString& locale);
|
||||
|
||||
/**
|
||||
* @brief Saves a specific project
|
||||
*/
|
||||
bool SaveProject(Project *p);
|
||||
|
||||
static const uint kProjectVersion;
|
||||
|
||||
public slots:
|
||||
@@ -454,15 +454,10 @@ private:
|
||||
*/
|
||||
void SetStartupLocale();
|
||||
|
||||
/**
|
||||
* @brief Saves a specific project
|
||||
*/
|
||||
bool SaveProject(ProjectPtr p);
|
||||
|
||||
/**
|
||||
* @brief Performs a "save as" on a specific project
|
||||
*/
|
||||
bool SaveProjectAs(ProjectPtr p);
|
||||
bool SaveProjectAs(Project *p);
|
||||
|
||||
/**
|
||||
* @brief Adds a filename to the top of the recently opened projects list (or moves it if it already exists)
|
||||
@@ -488,7 +483,7 @@ private:
|
||||
/**
|
||||
* @brief Internal function for saving a project to a file
|
||||
*/
|
||||
void SaveProjectInternal(ProjectPtr project);
|
||||
void SaveProjectInternal(Project *project);
|
||||
|
||||
/**
|
||||
* @brief Retrieves the currently most active sequence for exporting
|
||||
@@ -503,7 +498,7 @@ private:
|
||||
/**
|
||||
* @brief List of currently open projects
|
||||
*/
|
||||
QList<ProjectPtr> open_projects_;
|
||||
QList<Project*> open_projects_;
|
||||
|
||||
/**
|
||||
* @brief Currently active tool
|
||||
@@ -563,7 +558,7 @@ private slots:
|
||||
/**
|
||||
* @brief Adds a project to the "open projects" list
|
||||
*/
|
||||
void AddOpenProject(olive::ProjectPtr p);
|
||||
void AddOpenProject(olive::Project* p);
|
||||
|
||||
void AddOpenProjectFromTask(Task* task);
|
||||
|
||||
|
||||
@@ -51,9 +51,7 @@ ProjectPanel::ProjectPanel(QWidget *parent) :
|
||||
// Make toolbar connections
|
||||
connect(toolbar, &ProjectToolbar::NewClicked, this, &ProjectPanel::ShowNewMenu);
|
||||
connect(toolbar, &ProjectToolbar::OpenClicked, Core::instance(), &Core::OpenProject);
|
||||
connect(toolbar, &ProjectToolbar::SaveClicked, Core::instance(), &Core::SaveActiveProject);
|
||||
connect(toolbar, &ProjectToolbar::UndoClicked, Core::instance()->undo_stack(), &QUndoStack::undo);
|
||||
connect(toolbar, &ProjectToolbar::RedoClicked, Core::instance()->undo_stack(), &QUndoStack::redo);
|
||||
connect(toolbar, &ProjectToolbar::SaveClicked, this, &ProjectPanel::SaveConnectedProject);
|
||||
|
||||
// Set up main explorer object
|
||||
explorer_ = new ProjectExplorer(this);
|
||||
@@ -229,6 +227,11 @@ void ProjectPanel::UpdateSubtitle()
|
||||
}
|
||||
}
|
||||
|
||||
void ProjectPanel::SaveConnectedProject()
|
||||
{
|
||||
Core::instance()->SaveProject(this->project());
|
||||
}
|
||||
|
||||
QList<Footage *> ProjectPanel::GetSelectedFootage() const
|
||||
{
|
||||
QList<Item*> items = SelectedItems();
|
||||
|
||||
@@ -78,10 +78,10 @@ private slots:
|
||||
|
||||
void UpdateSubtitle();
|
||||
|
||||
void SaveConnectedProject();
|
||||
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
Q_DECLARE_METATYPE(olive::ProjectPtr)
|
||||
|
||||
#endif // PROJECT_PANEL_H
|
||||
|
||||
@@ -103,8 +103,6 @@ private slots:
|
||||
|
||||
};
|
||||
|
||||
using ProjectPtr = std::shared_ptr<Project>;
|
||||
|
||||
}
|
||||
|
||||
#endif // PROJECT_H
|
||||
|
||||
@@ -60,7 +60,7 @@ bool ProjectLoadTask::Run()
|
||||
} else if (reader.name() == QStringLiteral("url")) {
|
||||
project_saved_url_ = reader.readElementText();
|
||||
} else if (reader.name() == QStringLiteral("project")) {
|
||||
project_ = std::make_shared<Project>();
|
||||
project_ = new Project();
|
||||
|
||||
project_->set_filename(GetFilename());
|
||||
|
||||
|
||||
@@ -32,7 +32,7 @@ class ProjectLoadBaseTask : public Task
|
||||
public:
|
||||
ProjectLoadBaseTask(const QString& filename);
|
||||
|
||||
ProjectPtr GetLoadedProject() const
|
||||
Project* GetLoadedProject() const
|
||||
{
|
||||
return project_;
|
||||
}
|
||||
@@ -58,7 +58,7 @@ public:
|
||||
}
|
||||
|
||||
protected:
|
||||
ProjectPtr project_;
|
||||
Project* project_;
|
||||
|
||||
MainWindowLayoutInfo layout_info_;
|
||||
|
||||
|
||||
@@ -53,7 +53,7 @@ bool LoadOTIOTask::Run()
|
||||
return false;
|
||||
}
|
||||
|
||||
project_ = std::make_shared<Project>();
|
||||
project_ = new Project();
|
||||
project_->set_filename(GetFilename());
|
||||
|
||||
std::vector<OTIO::Timeline*> timelines;
|
||||
@@ -165,7 +165,7 @@ bool LoadOTIOTask::Run()
|
||||
if (imported_footage.contains(footage_url)) {
|
||||
probed_item = imported_footage.value(footage_url);
|
||||
} else {
|
||||
probed_item = Decoder::Probe(project_.get(), footage_url, &IsCancelled());
|
||||
probed_item = Decoder::Probe(project_, footage_url, &IsCancelled());
|
||||
imported_footage.insert(footage_url, probed_item);
|
||||
project_->root()->add_child(probed_item);
|
||||
}
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
|
||||
namespace olive {
|
||||
|
||||
ProjectSaveTask::ProjectSaveTask(ProjectPtr project) :
|
||||
ProjectSaveTask::ProjectSaveTask(Project *project) :
|
||||
project_(project)
|
||||
{
|
||||
SetTitle(tr("Saving '%1'").arg(project->filename()));
|
||||
|
||||
@@ -30,9 +30,9 @@ class ProjectSaveTask : public Task
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
ProjectSaveTask(ProjectPtr project);
|
||||
ProjectSaveTask(Project* project);
|
||||
|
||||
ProjectPtr GetProject() const
|
||||
Project* GetProject() const
|
||||
{
|
||||
return project_;
|
||||
}
|
||||
@@ -41,7 +41,7 @@ protected:
|
||||
virtual bool Run() override;
|
||||
|
||||
private:
|
||||
ProjectPtr project_;
|
||||
Project* project_;
|
||||
|
||||
};
|
||||
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
|
||||
namespace olive {
|
||||
|
||||
SaveOTIOTask::SaveOTIOTask(ProjectPtr project) :
|
||||
SaveOTIOTask::SaveOTIOTask(Project *project) :
|
||||
project_(project)
|
||||
{
|
||||
SetTitle(tr("Exporting project to OpenTimelineIO"));
|
||||
|
||||
@@ -33,7 +33,7 @@ class SaveOTIOTask : public Task
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
SaveOTIOTask(ProjectPtr project);
|
||||
SaveOTIOTask(Project* project);
|
||||
|
||||
protected:
|
||||
virtual bool Run() override;
|
||||
@@ -45,7 +45,7 @@ private:
|
||||
|
||||
bool SerializeTrackList(TrackList* list, opentimelineio::v1_0::Timeline *otio_timeline);
|
||||
|
||||
ProjectPtr project_;
|
||||
Project* project_;
|
||||
|
||||
};
|
||||
|
||||
|
||||
@@ -36,43 +36,35 @@ ProjectToolbar::ProjectToolbar(QWidget *parent) :
|
||||
layout->setMargin(0);
|
||||
|
||||
new_button_ = new QPushButton();
|
||||
connect(new_button_, SIGNAL(clicked(bool)), this, SIGNAL(NewClicked()));
|
||||
connect(new_button_, &QPushButton::clicked, this, &ProjectToolbar::NewClicked);
|
||||
layout->addWidget(new_button_);
|
||||
|
||||
open_button_ = new QPushButton();
|
||||
connect(open_button_, SIGNAL(clicked(bool)), this, SIGNAL(OpenClicked()));
|
||||
connect(open_button_, &QPushButton::clicked, this, &ProjectToolbar::OpenClicked);
|
||||
layout->addWidget(open_button_);
|
||||
|
||||
save_button_ = new QPushButton();
|
||||
connect(save_button_, SIGNAL(clicked(bool)), this, SIGNAL(SaveClicked()));
|
||||
connect(save_button_, &QPushButton::clicked, this, &ProjectToolbar::SaveClicked);
|
||||
layout->addWidget(save_button_);
|
||||
|
||||
undo_button_ = new QPushButton();
|
||||
connect(undo_button_, SIGNAL(clicked(bool)), this, SIGNAL(UndoClicked()));
|
||||
layout->addWidget(undo_button_);
|
||||
|
||||
redo_button_ = new QPushButton();
|
||||
connect(redo_button_, SIGNAL(clicked(bool)), this, SIGNAL(RedoClicked()));
|
||||
layout->addWidget(redo_button_);
|
||||
|
||||
search_field_ = new QLineEdit();
|
||||
search_field_->setClearButtonEnabled(true);
|
||||
connect(search_field_, SIGNAL(textChanged(const QString &)), this, SIGNAL(SearchChanged(const QString&)));
|
||||
connect(search_field_, &QLineEdit::textChanged, this, &ProjectToolbar::SearchChanged);
|
||||
layout->addWidget(search_field_);
|
||||
|
||||
tree_button_ = new QPushButton();
|
||||
tree_button_->setCheckable(true);
|
||||
connect(tree_button_, SIGNAL(clicked(bool)), this, SLOT(ViewButtonClicked()));
|
||||
connect(tree_button_, &QPushButton::clicked, this, &ProjectToolbar::ViewButtonClicked);
|
||||
layout->addWidget(tree_button_);
|
||||
|
||||
list_button_ = new QPushButton();
|
||||
list_button_->setCheckable(true);
|
||||
connect(list_button_, SIGNAL(clicked(bool)), this, SLOT(ViewButtonClicked()));
|
||||
connect(list_button_, &QPushButton::clicked, this, &ProjectToolbar::ViewButtonClicked);
|
||||
layout->addWidget(list_button_);
|
||||
|
||||
icon_button_ = new QPushButton();
|
||||
icon_button_->setCheckable(true);
|
||||
connect(icon_button_, SIGNAL(clicked(bool)), this, SLOT(ViewButtonClicked()));
|
||||
connect(icon_button_, &QPushButton::clicked, this, &ProjectToolbar::ViewButtonClicked);
|
||||
layout->addWidget(icon_button_);
|
||||
|
||||
// Group Tree/List/Icon view buttons into a button group for easy exclusive-buttons
|
||||
@@ -116,14 +108,12 @@ void ProjectToolbar::Retranslate()
|
||||
new_button_->setToolTip(tr("New..."));
|
||||
open_button_->setToolTip(tr("Open Project"));
|
||||
save_button_->setToolTip(tr("Save Project"));
|
||||
undo_button_->setToolTip(tr("Undo"));
|
||||
redo_button_->setToolTip(tr("Redo"));
|
||||
|
||||
search_field_->setPlaceholderText(tr("Search media, markers, etc."));
|
||||
|
||||
tree_button_->setToolTip(tr("Switch to Tree View"));
|
||||
list_button_->setToolTip(tr("Switch to List View"));
|
||||
icon_button_->setToolTip(tr("Switch to Icon View"));
|
||||
tree_button_->setToolTip(tr("Tree View"));
|
||||
list_button_->setToolTip(tr("List View"));
|
||||
icon_button_->setToolTip(tr("Icon View"));
|
||||
}
|
||||
|
||||
void ProjectToolbar::UpdateIcons()
|
||||
@@ -131,8 +121,6 @@ void ProjectToolbar::UpdateIcons()
|
||||
new_button_->setIcon(icon::New);
|
||||
open_button_->setIcon(icon::Open);
|
||||
save_button_->setIcon(icon::Save);
|
||||
undo_button_->setIcon(icon::Undo);
|
||||
redo_button_->setIcon(icon::Redo);
|
||||
tree_button_->setIcon(icon::TreeView);
|
||||
list_button_->setIcon(icon::ListView);
|
||||
icon_button_->setIcon(icon::IconView);
|
||||
|
||||
@@ -60,9 +60,6 @@ signals:
|
||||
void OpenClicked();
|
||||
void SaveClicked();
|
||||
|
||||
void UndoClicked();
|
||||
void RedoClicked();
|
||||
|
||||
void SearchChanged(const QString&);
|
||||
|
||||
void ViewChanged(ViewType type);
|
||||
@@ -74,8 +71,6 @@ private:
|
||||
QPushButton* new_button_;
|
||||
QPushButton* open_button_;
|
||||
QPushButton* save_button_;
|
||||
QPushButton* undo_button_;
|
||||
QPushButton* redo_button_;
|
||||
|
||||
QLineEdit* search_field_;
|
||||
|
||||
|
||||
@@ -350,10 +350,10 @@ void ImportTool::DropGhosts(bool insert)
|
||||
}
|
||||
|
||||
if (behavior != kDWSDisable) {
|
||||
ProjectPtr active_project = Core::instance()->GetActiveProject();
|
||||
Project* active_project = Core::instance()->GetActiveProject();
|
||||
|
||||
if (active_project) {
|
||||
SequencePtr new_sequence = Core::instance()->CreateNewSequenceForProject(active_project.get());
|
||||
SequencePtr new_sequence = Core::instance()->CreateNewSequenceForProject(active_project);
|
||||
|
||||
new_sequence->set_default_parameters();
|
||||
|
||||
|
||||
@@ -282,7 +282,7 @@ void MainMenu::ToolItemTriggered()
|
||||
|
||||
void MainMenu::FileMenuAboutToShow()
|
||||
{
|
||||
Project* active_project = Core::instance()->GetActiveProject().get();
|
||||
Project* active_project = Core::instance()->GetActiveProject();
|
||||
|
||||
file_project_properties_item_->setEnabled(active_project);
|
||||
file_save_item_->setEnabled(active_project);
|
||||
|
||||
@@ -479,7 +479,7 @@ void MainWindow::ProjectCloseRequested()
|
||||
ProjectPanel* panel = static_cast<ProjectPanel*>(sender());
|
||||
Project* p = panel->project();
|
||||
|
||||
Core::instance()->CloseProject(Core::instance()->GetSharedPtrFromProject(p), true);
|
||||
Core::instance()->CloseProject(p, true);
|
||||
}
|
||||
|
||||
void MainWindow::FloatingPanelCloseRequested()
|
||||
|
||||
Reference in New Issue
Block a user