From 1d25fbd9e720c1bd51ba0098b987fd13db6ded1c Mon Sep 17 00:00:00 2001 From: itsmattkc Date: Sun, 21 Jul 2019 19:04:32 -0700 Subject: [PATCH] added db conversions and new menu into project panel --- app/common/decibel.cpp | 6 ++++++ app/common/decibel.h | 18 ++++++++++++++++++ app/panel/project/project.cpp | 14 ++++++++++++++ app/panel/project/project.h | 2 ++ app/widget/menu/menu.cpp | 5 +++++ app/widget/menu/menu.h | 5 +++++ 6 files changed, 50 insertions(+) create mode 100644 app/common/decibel.cpp create mode 100644 app/common/decibel.h diff --git a/app/common/decibel.cpp b/app/common/decibel.cpp new file mode 100644 index 000000000..7393ba79c --- /dev/null +++ b/app/common/decibel.cpp @@ -0,0 +1,6 @@ +#include "decibel.h" + +decibel::decibel() +{ + +} diff --git a/app/common/decibel.h b/app/common/decibel.h new file mode 100644 index 000000000..2c7bdedfe --- /dev/null +++ b/app/common/decibel.h @@ -0,0 +1,18 @@ +#ifndef DECIBEL_H +#define DECIBEL_H + +/** + * @brief Converts an amplitude into a value in decibels + * + * Converts a 0.0-1.0 amplitude into an infinity-0.0 decibel value + */ +double amplitude_to_db(double amplitude); + +/** + * @brief Converts decibels into an amplitude value + * + * Converts an infinity-0.0 decibel value into a 0.0-1.0 amplitude + */ +double db_to_amplitude(double db); + +#endif // DECIBEL_H diff --git a/app/panel/project/project.cpp b/app/panel/project/project.cpp index 9c34aa5ab..fc261efc0 100644 --- a/app/panel/project/project.cpp +++ b/app/panel/project/project.cpp @@ -20,9 +20,11 @@ #include "project.h" +#include #include #include "core.h" +#include "widget/menu/menushared.h" #include "widget/projecttoolbar/projecttoolbar.h" ProjectPanel::ProjectPanel(QWidget *parent) : @@ -39,6 +41,9 @@ ProjectPanel::ProjectPanel(QWidget *parent) : ProjectToolbar* toolbar = new ProjectToolbar(this); layout->addWidget(toolbar); + // Make toolbar connections + connect(toolbar, SIGNAL(NewClicked()), this, SLOT(ShowNewMenu())); + // Set up main explorer object explorer_ = new ProjectExplorer(this); layout->addWidget(explorer_); @@ -117,3 +122,12 @@ void ProjectPanel::ItemDoubleClickSlot(Item *item) // FIXME: Double click Item should do something } + +void ProjectPanel::ShowNewMenu() +{ + Menu new_menu(this); + + olive::menu_shared.AddItemsForNewMenu(&new_menu); + + new_menu.exec(QCursor::pos()); +} diff --git a/app/panel/project/project.h b/app/panel/project/project.h index 75cef8dbf..07d99312f 100644 --- a/app/panel/project/project.h +++ b/app/panel/project/project.h @@ -56,6 +56,8 @@ private: private slots: void ItemDoubleClickSlot(Item* item); + + void ShowNewMenu(); }; #endif // PROJECT_PANEL_H diff --git a/app/widget/menu/menu.cpp b/app/widget/menu/menu.cpp index 9384db4f7..fd2b59b2a 100644 --- a/app/widget/menu/menu.cpp +++ b/app/widget/menu/menu.cpp @@ -42,6 +42,11 @@ Menu::Menu(Menu *menu, const QObject *receiver, const char *member) : } } +Menu::Menu(QWidget *parent) : + QMenu(parent) +{ +} + QAction *Menu::AddItem(const QString &id, const QObject *receiver, const char *member, diff --git a/app/widget/menu/menu.h b/app/widget/menu/menu.h index bbfd07070..fe197b3a4 100644 --- a/app/widget/menu/menu.h +++ b/app/widget/menu/menu.h @@ -58,6 +58,11 @@ public: */ Menu(Menu* bar, const QObject* receiver = nullptr, const char* member = nullptr); + /** + * @brief Construct a popup menu + */ + Menu(QWidget* parent); + /** * @brief Create a menu item and add it to this menu *