Files
oak-editor/app/ui/icons/icons.h
T
itsmattkc 75d4cd899b use hardcoded namespace
The macro defined namespaces confused the hell out of lupdate and more or less broke translations permanently. Looks like the only way we can do it is to have a hardcoded namespace, which goes against my instinct, but honestly how likely is it that we'll change the namespace anyway (I guess forks might want to do it, but that's their problem ;) )
2020-11-17 20:24:42 +11:00

131 lines
3.5 KiB
C++

/***
Olive - Non-Linear Video Editor
Copyright (C) 2020 Olive Team
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
***/
#ifndef ICONS_H
#define ICONS_H
#include <QIcon>
#include "common/define.h"
namespace olive {
namespace icon {
// Playback Icons
extern QIcon GoToStart;
extern QIcon PrevFrame;
extern QIcon Play;
extern QIcon Pause;
extern QIcon NextFrame;
extern QIcon GoToEnd;
// Project Management Toolbar Icons
extern QIcon New;
extern QIcon Open;
extern QIcon Save;
extern QIcon Undo;
extern QIcon Redo;
extern QIcon TreeView;
extern QIcon ListView;
extern QIcon IconView;
// Tool Icons
extern QIcon ToolPointer;
extern QIcon ToolEdit;
extern QIcon ToolRipple;
extern QIcon ToolRolling;
extern QIcon ToolRazor;
extern QIcon ToolSlip;
extern QIcon ToolSlide;
extern QIcon ToolHand;
extern QIcon ToolTransition;
// Project Icons
extern QIcon Folder;
extern QIcon Sequence;
extern QIcon Video;
extern QIcon Audio;
extern QIcon Image;
// Triangle Arrows
extern QIcon TriUp;
extern QIcon TriLeft;
extern QIcon TriDown;
extern QIcon TriRight;
// Miscellaneous Icons
extern QIcon Snapping;
extern QIcon ZoomIn;
extern QIcon ZoomOut;
extern QIcon Record;
extern QIcon Add;
extern QIcon Error;
extern QIcon DirUp;
extern QIcon Clock;
extern QIcon Diamond;
extern QIcon Plus;
extern QIcon Minus;
/**
* @brief Create an icon object loaded from file
*
* Using `name`, this function will load icon files to create an icon object that can be used throughout the
* application.
*
* Olive's icons are stored in a very specific format. They are all sourced from SVGs, but stored as PNGs of various
* sizes. See `app/ui/icons/genicons.sh`, as this script not only generates the multiple sizes but also the QRC file
* used to compile the icons into the executable.
*
* This function is heavily tied into `genicons.sh` and will load all the different sized images (using the same
* filename formatting and QRC resource directory) that `genicons.sh` generates into one QIcon file. If you change
* either this function or `genicons.sh`, you will very likely have to change the other too.
*
* There is not much reason to call this outside of LoadAll() (which stores icons globally in memory so they don't
* have to be reloaded each time a new object needs an icon).
*
* @param theme
*
* Name of the theme (used in the URL as the folder to load PNGs from)
*
* @param name
*
* Name of the icon (will correspond to the original SVG's filename with no path or extension)
*
* @return
*
* A QIcon object containing the various icon sizes loaded from resource
*/
QIcon Create(const QString &theme, const QString& name);
/**
* @brief Methodically load all Olive icons into global variables that can be accessed throughout the application
*
* It's recommended to load any UI icons here so they're ready at startup and don't need to be re-loaded upon each
* use.
*/
void LoadAll(const QString &theme);
}
}
#endif // ICONS_H