Make everything final that can be
Apparently gcc does use final for devirtualization.
This commit is contained in:
parent
ab39cfe362
commit
ea96c6e2ad
159 changed files with 412 additions and 412 deletions
|
@ -38,7 +38,7 @@ namespace {
|
|||
};
|
||||
|
||||
template<class T>
|
||||
struct CastVisitor : public CastVisitorBase {
|
||||
struct CastVisitor final : public CastVisitorBase {
|
||||
T *element;
|
||||
CastVisitor() : element(0) { }
|
||||
void Visit(T& ele) { element = &ele; }
|
||||
|
@ -64,7 +64,7 @@ public:
|
|||
|
||||
|
||||
template <typename ElementTypeT>
|
||||
class UnknownElement::Imp_T : public UnknownElement::Imp
|
||||
class UnknownElement::Imp_T final : public UnknownElement::Imp
|
||||
{
|
||||
public:
|
||||
Imp_T(const ElementTypeT& element) : m_Element(element) { }
|
||||
|
|
|
@ -35,7 +35,7 @@
|
|||
namespace {
|
||||
using namespace agi::charset;
|
||||
|
||||
class UCDetect : public nsUniversalDetector {
|
||||
class UCDetect final : public nsUniversalDetector {
|
||||
/// List of detected character sets
|
||||
CharsetListDetected list;
|
||||
|
||||
|
|
|
@ -25,7 +25,7 @@ namespace agi { namespace charset {
|
|||
///
|
||||
/// While glibc iconv supports ISO-6937-2, GNU libiconv does not due to that
|
||||
/// it's not used by anything but old subtitle formats
|
||||
class Converter6937 : public Converter {
|
||||
class Converter6937 final : public Converter {
|
||||
/// Converter to UCS-4 so that we only have to deal with unicode codepoints
|
||||
std::unique_ptr<IconvWrapper> to_ucs4;
|
||||
|
||||
|
|
|
@ -135,7 +135,7 @@ namespace {
|
|||
}
|
||||
|
||||
#ifdef ICONV_POSIX
|
||||
class ConverterImpl : public agi::charset::Converter {
|
||||
class ConverterImpl final : public agi::charset::Converter {
|
||||
size_t bomSize;
|
||||
iconv_t cd;
|
||||
public:
|
||||
|
@ -175,7 +175,7 @@ namespace {
|
|||
|
||||
#else
|
||||
|
||||
class ConverterImpl : public iconv_fallbacks, public agi::charset::Converter {
|
||||
class ConverterImpl final : public iconv_fallbacks, public agi::charset::Converter {
|
||||
size_t bomSize;
|
||||
char invalidRep[8];
|
||||
size_t invalidRepSize;
|
||||
|
|
|
@ -32,19 +32,19 @@ namespace {
|
|||
std::function<void (agi::dispatch::Thunk)> invoke_main;
|
||||
std::atomic<uint_fast32_t> threads_running;
|
||||
|
||||
class MainQueue : public agi::dispatch::Queue {
|
||||
class MainQueue final : public agi::dispatch::Queue {
|
||||
void DoInvoke(agi::dispatch::Thunk thunk) override {
|
||||
invoke_main(thunk);
|
||||
}
|
||||
};
|
||||
|
||||
class BackgroundQueue : public agi::dispatch::Queue {
|
||||
class BackgroundQueue final : public agi::dispatch::Queue {
|
||||
void DoInvoke(agi::dispatch::Thunk thunk) override {
|
||||
service->post(thunk);
|
||||
}
|
||||
};
|
||||
|
||||
class SerialQueue : public agi::dispatch::Queue {
|
||||
class SerialQueue final : public agi::dispatch::Queue {
|
||||
boost::asio::io_service::strand strand;
|
||||
|
||||
void DoInvoke(agi::dispatch::Thunk thunk) override {
|
||||
|
|
|
@ -31,7 +31,7 @@ DEFINE_SIMPLE_EXCEPTION_NOINNER(OptionJsonValueArray, OptionJsonValueError, "opt
|
|||
DEFINE_SIMPLE_EXCEPTION_NOINNER(OptionJsonValueSingle, OptionJsonValueError, "options/value")
|
||||
DEFINE_SIMPLE_EXCEPTION_NOINNER(OptionJsonValueNull, OptionJsonValueError, "options/value")
|
||||
|
||||
class ConfigVisitor : public json::ConstVisitor {
|
||||
class ConfigVisitor final : public json::ConstVisitor {
|
||||
/// Option map being populated
|
||||
OptionValueMap &values;
|
||||
/// Option name prefix to add to read names
|
||||
|
|
|
@ -109,7 +109,7 @@ struct color_grammar : qi::grammar<Iterator, agi::Color()> {
|
|||
};
|
||||
|
||||
template <typename Lexer>
|
||||
struct dialogue_tokens : lex::lexer<Lexer> {
|
||||
struct dialogue_tokens final : lex::lexer<Lexer> {
|
||||
int paren_depth;
|
||||
|
||||
template<typename KT>
|
||||
|
|
|
@ -29,7 +29,7 @@ public:
|
|||
|
||||
// thrown during the first phase of reading. generally catches low-level
|
||||
// problems such as errant characters or corrupt/incomplete documents
|
||||
class ScanException : public Exception {
|
||||
class ScanException final : public Exception {
|
||||
public:
|
||||
ScanException(std::string const& sMessage, Reader::Location locError)
|
||||
: Exception(sMessage)
|
||||
|
@ -41,7 +41,7 @@ public:
|
|||
|
||||
// thrown during the second phase of reading. generally catches
|
||||
// higher-level problems such as missing commas or brackets
|
||||
class ParseException : public Exception {
|
||||
class ParseException final : public Exception {
|
||||
public:
|
||||
ParseException(std::string const& sMessage, Reader::Location locTokenBegin, Reader::Location locTokenEnd)
|
||||
: Exception(sMessage)
|
||||
|
|
|
@ -15,7 +15,7 @@ Author: Terry Caton
|
|||
|
||||
namespace json {
|
||||
|
||||
class Writer : private ConstVisitor {
|
||||
class Writer final : private ConstVisitor {
|
||||
Writer(std::ostream& ostr);
|
||||
void Write(const Object& object);
|
||||
void Write(const Array& array);
|
||||
|
|
|
@ -32,7 +32,7 @@ namespace agi {
|
|||
/// @class line_iterator
|
||||
/// @brief An iterator over lines in a stream
|
||||
template<class OutputType = std::string>
|
||||
class line_iterator : public std::iterator<std::input_iterator_tag, OutputType> {
|
||||
class line_iterator final : public std::iterator<std::input_iterator_tag, OutputType> {
|
||||
std::istream *stream; ///< Stream to iterator over
|
||||
OutputType value; ///< Value to return when this is dereference
|
||||
std::shared_ptr<agi::charset::IconvWrapper> conv;
|
||||
|
|
|
@ -120,7 +120,7 @@ public:
|
|||
};
|
||||
|
||||
/// A simple emitter which writes the log to a file in json format
|
||||
class JsonEmitter : public Emitter {
|
||||
class JsonEmitter final : public Emitter {
|
||||
std::unique_ptr<std::ostream> fp;
|
||||
|
||||
void WriteTime(const char *key);
|
||||
|
|
|
@ -39,7 +39,7 @@ DEFINE_SIMPLE_EXCEPTION_NOINNER(OptionErrorDuplicateKey, OptionError, "options/d
|
|||
|
||||
class OptionValue;
|
||||
|
||||
class OptionValueMap : public std::map<std::string, std::unique_ptr<OptionValue>> {
|
||||
class OptionValueMap final : public std::map<std::string, std::unique_ptr<OptionValue>> {
|
||||
private:
|
||||
OptionValueMap(const OptionValueMap& x);
|
||||
OptionValueMap& operator=(const OptionValueMap& x);
|
||||
|
|
|
@ -99,7 +99,7 @@ public:
|
|||
};
|
||||
|
||||
#define CONFIG_OPTIONVALUE(type_name, type) \
|
||||
class OptionValue##type_name : public OptionValue { \
|
||||
class OptionValue##type_name final : public OptionValue { \
|
||||
type value; \
|
||||
type value_default; \
|
||||
public: \
|
||||
|
@ -121,7 +121,7 @@ CONFIG_OPTIONVALUE(Color, Color)
|
|||
CONFIG_OPTIONVALUE(Bool, bool)
|
||||
|
||||
#define CONFIG_OPTIONVALUE_LIST(type_name, type) \
|
||||
class OptionValueList##type_name : public OptionValue { \
|
||||
class OptionValueList##type_name final : public OptionValue { \
|
||||
std::vector<type> array; \
|
||||
std::vector<type> array_default; \
|
||||
std::string name; \
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
namespace agi {
|
||||
|
||||
template<typename T>
|
||||
class owning_intrusive_list : private boost::intrusive::make_list<T, boost::intrusive::constant_time_size<false>>::type {
|
||||
class owning_intrusive_list final : private boost::intrusive::make_list<T, boost::intrusive::constant_time_size<false>>::type {
|
||||
typedef typename boost::intrusive::make_list<T, boost::intrusive::constant_time_size<false>>::type base;
|
||||
public:
|
||||
using base::back;
|
||||
|
|
|
@ -133,7 +133,7 @@ namespace detail {
|
|||
|
||||
/// @brief Templated common code for signals
|
||||
template<class Slot>
|
||||
class SignalBaseImpl : public SignalBase {
|
||||
class SignalBaseImpl final : public SignalBase {
|
||||
protected:
|
||||
typedef boost::container::map<ConnectionToken*, Slot> SlotMap;
|
||||
|
||||
|
@ -187,7 +187,7 @@ namespace detail {
|
|||
/// @param Arg1 Type of first argument to pass to slots
|
||||
/// @param Arg2 Type of second argument to pass to slots
|
||||
template<class Arg1 = void, class Arg2 = void>
|
||||
class Signal : public detail::SignalBaseImpl<std::function<void (Arg1, Arg2)> > {
|
||||
class Signal final : public detail::SignalBaseImpl<std::function<void (Arg1, Arg2)> > {
|
||||
typedef detail::SignalBaseImpl<std::function<void (Arg1, Arg2)> > super;
|
||||
using super::Blocked;
|
||||
using super::slots;
|
||||
|
@ -266,7 +266,7 @@ public:
|
|||
/// @class Signal
|
||||
/// @brief Zero-argument signal
|
||||
template<>
|
||||
class Signal<void> : public detail::SignalBaseImpl<std::function<void ()> > {
|
||||
class Signal<void> final : public detail::SignalBaseImpl<std::function<void ()> > {
|
||||
typedef detail::SignalBaseImpl<std::function<void ()> > super;
|
||||
using super::Blocked;
|
||||
using super::slots;
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
#include <vector>
|
||||
|
||||
/// @class AssAttachment
|
||||
class AssAttachment : public AssEntry {
|
||||
class AssAttachment final : public AssEntry {
|
||||
/// ASS uuencoded entry data, including header.
|
||||
boost::flyweight<std::string> entry_data;
|
||||
|
||||
|
|
|
@ -83,20 +83,20 @@ public:
|
|||
virtual std::string GetText() { return text; }
|
||||
};
|
||||
|
||||
class AssDialogueBlockPlain : public AssDialogueBlock {
|
||||
class AssDialogueBlockPlain final : public AssDialogueBlock {
|
||||
public:
|
||||
using AssDialogueBlock::text;
|
||||
AssBlockType GetType() const override { return AssBlockType::PLAIN; }
|
||||
AssDialogueBlockPlain(std::string const& text = std::string()) : AssDialogueBlock(text) { }
|
||||
};
|
||||
|
||||
class AssDialogueBlockComment : public AssDialogueBlock {
|
||||
class AssDialogueBlockComment final : public AssDialogueBlock {
|
||||
public:
|
||||
AssBlockType GetType() const override { return AssBlockType::COMMENT; }
|
||||
AssDialogueBlockComment(std::string const& text = std::string()) : AssDialogueBlock("{" + text + "}") { }
|
||||
};
|
||||
|
||||
class AssDialogueBlockDrawing : public AssDialogueBlock {
|
||||
class AssDialogueBlockDrawing final : public AssDialogueBlock {
|
||||
public:
|
||||
using AssDialogueBlock::text;
|
||||
int Scale;
|
||||
|
@ -105,7 +105,7 @@ public:
|
|||
AssDialogueBlockDrawing(std::string const& text, int scale) : AssDialogueBlock(text), Scale(scale) { }
|
||||
};
|
||||
|
||||
class AssDialogueBlockOverride : public AssDialogueBlock {
|
||||
class AssDialogueBlockOverride final : public AssDialogueBlock {
|
||||
public:
|
||||
AssDialogueBlockOverride(std::string const& text = std::string()) : AssDialogueBlock(text) { }
|
||||
|
||||
|
@ -150,7 +150,7 @@ struct AssDialogueBase {
|
|||
boost::flyweight<std::string> Text;
|
||||
};
|
||||
|
||||
class AssDialogue : public AssEntry, public AssDialogueBase, public AssEntryListHook {
|
||||
class AssDialogue final : public AssEntry, public AssDialogueBase, public AssEntryListHook {
|
||||
std::string GetData(bool ssa) const;
|
||||
|
||||
/// @brief Parse raw ASS data into everything else
|
||||
|
|
|
@ -18,7 +18,7 @@
|
|||
|
||||
#include <boost/algorithm/string/predicate.hpp>
|
||||
|
||||
class AssInfo : public AssEntry {
|
||||
class AssInfo final : public AssEntry {
|
||||
std::string key;
|
||||
std::string value;
|
||||
|
||||
|
|
|
@ -62,7 +62,7 @@ enum class VariableDataType {
|
|||
};
|
||||
|
||||
/// A single parameter to an override tag
|
||||
class AssOverrideParameter : boost::noncopyable {
|
||||
class AssOverrideParameter final : boost::noncopyable {
|
||||
std::string value;
|
||||
mutable std::unique_ptr<AssDialogueBlockOverride> block;
|
||||
VariableDataType type;
|
||||
|
@ -87,7 +87,7 @@ public:
|
|||
}
|
||||
};
|
||||
|
||||
class AssOverrideTag : boost::noncopyable {
|
||||
class AssOverrideTag final : boost::noncopyable {
|
||||
bool valid;
|
||||
|
||||
public:
|
||||
|
|
|
@ -39,7 +39,7 @@
|
|||
#include <array>
|
||||
#include <wx/arrstr.h>
|
||||
|
||||
class AssStyle : public AssEntry, public AssEntryListHook {
|
||||
class AssStyle final : public AssEntry, public AssEntryListHook {
|
||||
std::string data;
|
||||
|
||||
public:
|
||||
|
|
|
@ -53,7 +53,7 @@ class wxSlider;
|
|||
|
||||
/// @class AudioBox
|
||||
/// @brief Panel with audio playback and timing controls, also containing an AudioDisplay
|
||||
class AudioBox : public wxSashWindow {
|
||||
class AudioBox final : public wxSashWindow {
|
||||
/// The controller controlling this audio box
|
||||
AudioController *controller;
|
||||
|
||||
|
|
|
@ -63,7 +63,7 @@ class TimeRange;
|
|||
/// providers or players owned by a controller. If some operation that isn't
|
||||
/// possible in the existing design is needed, the controller should be
|
||||
/// extended in some way to allow it.
|
||||
class AudioController : public wxEvtHandler {
|
||||
class AudioController final : public wxEvtHandler {
|
||||
/// Project context this controller belongs to
|
||||
agi::Context *context;
|
||||
|
||||
|
|
|
@ -108,7 +108,7 @@ public:
|
|||
wxColour Selection() const { return focused ? sel_focused_colour : sel_colour; }
|
||||
};
|
||||
|
||||
class AudioDisplayScrollbar : public AudioDisplayInteractionObject {
|
||||
class AudioDisplayScrollbar final : public AudioDisplayInteractionObject {
|
||||
static const int height = 15;
|
||||
static const int min_width = 10;
|
||||
|
||||
|
@ -247,7 +247,7 @@ public:
|
|||
const int AudioDisplayScrollbar::min_width;
|
||||
|
||||
|
||||
class AudioDisplayTimeline : public AudioDisplayInteractionObject {
|
||||
class AudioDisplayTimeline final : public AudioDisplayInteractionObject {
|
||||
int duration; ///< Total duration in ms
|
||||
double ms_per_pixel; ///< Milliseconds per pixel
|
||||
int pixel_left; ///< Leftmost visible pixel (i.e. scroll position)
|
||||
|
@ -460,7 +460,7 @@ public:
|
|||
}
|
||||
};
|
||||
|
||||
class AudioMarkerInteractionObject : public AudioDisplayInteractionObject {
|
||||
class AudioMarkerInteractionObject final : public AudioDisplayInteractionObject {
|
||||
// Object-pair being interacted with
|
||||
std::vector<AudioMarker*> markers;
|
||||
AudioTimingController *timing_controller;
|
||||
|
@ -502,7 +502,7 @@ public:
|
|||
int GetPosition() const { return markers.front()->GetPosition(); }
|
||||
};
|
||||
|
||||
class AudioStyleRangeMerger : public AudioRenderingStyleRanges {
|
||||
class AudioStyleRangeMerger final : public AudioRenderingStyleRanges {
|
||||
typedef std::map<int, AudioRenderingStyle> style_map;
|
||||
public:
|
||||
typedef style_map::iterator iterator;
|
||||
|
|
|
@ -67,7 +67,7 @@ namespace agi { struct Context; }
|
|||
/// actually updated until the line is committed (which if auto-commit timing
|
||||
/// changes is on, will happen as soon as the user adjusts the timing of the
|
||||
/// new syllable).
|
||||
class AudioKaraoke : public wxWindow {
|
||||
class AudioKaraoke final : public wxWindow {
|
||||
agi::Context *c; ///< Project context
|
||||
agi::signal::Connection file_changed; ///< File changed slot
|
||||
agi::signal::Connection audio_opened; ///< Audio opened connection
|
||||
|
|
|
@ -32,7 +32,7 @@
|
|||
|
||||
#include <algorithm>
|
||||
|
||||
class AudioMarkerKeyframe : public AudioMarker {
|
||||
class AudioMarkerKeyframe final : public AudioMarker {
|
||||
Pen *style;
|
||||
int position;
|
||||
public:
|
||||
|
@ -86,7 +86,7 @@ void AudioMarkerProviderKeyframes::GetMarkers(TimeRange const& range, AudioMarke
|
|||
out.push_back(&*a);
|
||||
}
|
||||
|
||||
class VideoPositionMarker : public AudioMarker {
|
||||
class VideoPositionMarker final : public AudioMarker {
|
||||
Pen style;
|
||||
int position;
|
||||
|
||||
|
|
|
@ -122,7 +122,7 @@ public:
|
|||
|
||||
|
||||
/// Marker provider for video keyframes
|
||||
class AudioMarkerProviderKeyframes : public AudioMarkerProvider {
|
||||
class AudioMarkerProviderKeyframes final : public AudioMarkerProvider {
|
||||
/// Video controller to get keyframes from
|
||||
VideoContext *vc;
|
||||
|
||||
|
@ -155,7 +155,7 @@ public:
|
|||
};
|
||||
|
||||
/// Marker provider for the current video playback position
|
||||
class VideoPositionMarkerProvider : public AudioMarkerProvider {
|
||||
class VideoPositionMarkerProvider final : public AudioMarkerProvider {
|
||||
VideoContext *vc;
|
||||
|
||||
std::unique_ptr<VideoPositionMarker> marker;
|
||||
|
@ -174,8 +174,8 @@ public:
|
|||
};
|
||||
|
||||
/// Marker provider for lines every second
|
||||
class SecondsMarkerProvider : public AudioMarkerProvider {
|
||||
struct Marker : public AudioMarker {
|
||||
class SecondsMarkerProvider final : public AudioMarkerProvider {
|
||||
struct Marker final : public AudioMarker {
|
||||
Pen *style;
|
||||
int position;
|
||||
|
||||
|
|
|
@ -40,7 +40,7 @@
|
|||
|
||||
struct PlaybackState;
|
||||
|
||||
class AlsaPlayer : public AudioPlayer {
|
||||
class AlsaPlayer final : public AudioPlayer {
|
||||
std::unique_ptr<PlaybackState> ps;
|
||||
pthread_t thread;
|
||||
|
||||
|
|
|
@ -43,7 +43,7 @@
|
|||
|
||||
class DirectSoundPlayer;
|
||||
|
||||
class DirectSoundPlayerThread : public wxThread {
|
||||
class DirectSoundPlayerThread final : public wxThread {
|
||||
DirectSoundPlayer *parent;
|
||||
HANDLE stopnotify;
|
||||
|
||||
|
@ -55,7 +55,7 @@ public:
|
|||
wxThread::ExitCode Entry();
|
||||
};
|
||||
|
||||
class DirectSoundPlayer : public AudioPlayer {
|
||||
class DirectSoundPlayer final : public AudioPlayer {
|
||||
friend class DirectSoundPlayerThread;
|
||||
|
||||
volatile bool playing;
|
||||
|
|
|
@ -117,7 +117,7 @@ struct COMObjectRetainer {
|
|||
};
|
||||
|
||||
/// @brief RAII wrapper around Win32 HANDLE type
|
||||
struct Win32KernelHandle : public agi::scoped_holder<HANDLE, BOOL (__stdcall *)(HANDLE)> {
|
||||
struct Win32KernelHandle final : public agi::scoped_holder<HANDLE, BOOL (__stdcall *)(HANDLE)> {
|
||||
/// @brief Create with a managed handle
|
||||
/// @param handle Win32 handle to manage
|
||||
Win32KernelHandle(HANDLE handle = 0)
|
||||
|
|
|
@ -44,7 +44,7 @@ class DirectSoundPlayer2Thread;
|
|||
/// The core design idea is to have a playback thread that owns the DirectSound COM objects
|
||||
/// and performs all playback operations, and use the player object as a proxy to
|
||||
/// send commands to the playback thread.
|
||||
class DirectSoundPlayer2 : public AudioPlayer {
|
||||
class DirectSoundPlayer2 final : public AudioPlayer {
|
||||
/// The playback thread
|
||||
std::unique_ptr<DirectSoundPlayer2Thread> thread;
|
||||
|
||||
|
|
|
@ -51,7 +51,7 @@
|
|||
|
||||
#include <wx/timer.h>
|
||||
|
||||
class OpenALPlayer : public AudioPlayer, wxTimer {
|
||||
class OpenALPlayer final : public AudioPlayer, wxTimer {
|
||||
/// Number of OpenAL buffers to use
|
||||
static const ALsizei num_buffers = 8;
|
||||
|
||||
|
|
|
@ -52,7 +52,7 @@ class AudioProvider;
|
|||
class OSSPlayer;
|
||||
|
||||
/// Worker thread to asynchronously write audio data to the output device
|
||||
class OSSPlayerThread : public wxThread {
|
||||
class OSSPlayerThread final : public wxThread {
|
||||
/// Parent player
|
||||
OSSPlayer *parent;
|
||||
|
||||
|
@ -65,7 +65,7 @@ public:
|
|||
wxThread::ExitCode Entry();
|
||||
};
|
||||
|
||||
class OSSPlayer : public AudioPlayer {
|
||||
class OSSPlayer final : public AudioPlayer {
|
||||
friend class OSSPlayerThread;
|
||||
|
||||
/// sample rate of audio
|
||||
|
|
|
@ -49,7 +49,7 @@ class wxArrayString;
|
|||
/// @class PortAudioPlayer
|
||||
/// @brief PortAudio Player
|
||||
///
|
||||
class PortAudioPlayer : public AudioPlayer {
|
||||
class PortAudioPlayer final : public AudioPlayer {
|
||||
typedef std::vector<PaDeviceIndex> DeviceVec;
|
||||
/// Map of supported output devices from name -> device index
|
||||
std::map<std::string, DeviceVec> devices;
|
||||
|
|
|
@ -39,7 +39,7 @@
|
|||
|
||||
class PulseAudioPlayer;
|
||||
|
||||
class PulseAudioPlayer : public AudioPlayer {
|
||||
class PulseAudioPlayer final : public AudioPlayer {
|
||||
float volume = 1.f;
|
||||
bool is_playing = false;
|
||||
|
||||
|
|
|
@ -38,7 +38,7 @@
|
|||
#include "avisynth.h"
|
||||
#include "avisynth_wrap.h"
|
||||
|
||||
class AvisynthAudioProvider : public AudioProvider {
|
||||
class AvisynthAudioProvider final : public AudioProvider {
|
||||
AviSynthWrapper avs_wrapper;
|
||||
PClip clip;
|
||||
|
||||
|
|
|
@ -33,7 +33,7 @@
|
|||
|
||||
/// Anything integral -> 16 bit signed machine-endian audio converter
|
||||
template<class Target>
|
||||
class BitdepthConvertAudioProvider : public AudioProviderWrapper {
|
||||
class BitdepthConvertAudioProvider final : public AudioProviderWrapper {
|
||||
int src_bytes_per_sample;
|
||||
public:
|
||||
BitdepthConvertAudioProvider(std::unique_ptr<AudioProvider> src) : AudioProviderWrapper(std::move(src)) {
|
||||
|
@ -74,7 +74,7 @@ public:
|
|||
|
||||
/// Floating point -> 16 bit signed machine-endian audio converter
|
||||
template<class Source, class Target>
|
||||
class FloatConvertAudioProvider : public AudioProviderWrapper {
|
||||
class FloatConvertAudioProvider final : public AudioProviderWrapper {
|
||||
public:
|
||||
FloatConvertAudioProvider(std::unique_ptr<AudioProvider> src) : AudioProviderWrapper(std::move(src)) {
|
||||
bytes_per_sample = sizeof(Target);
|
||||
|
@ -105,7 +105,7 @@ public:
|
|||
};
|
||||
|
||||
/// Non-mono 16-bit signed machine-endian -> mono 16-bit signed machine endian converter
|
||||
class DownmixAudioProvider : public AudioProviderWrapper {
|
||||
class DownmixAudioProvider final : public AudioProviderWrapper {
|
||||
int src_channels;
|
||||
public:
|
||||
DownmixAudioProvider(std::unique_ptr<AudioProvider> src) : AudioProviderWrapper(std::move(src)) {
|
||||
|
@ -136,7 +136,7 @@ public:
|
|||
|
||||
/// Sample doubler with linear interpolation for the agi::util::make_unique<samples>
|
||||
/// Requires 16-bit mono input
|
||||
class SampleDoublingAudioProvider : public AudioProviderWrapper {
|
||||
class SampleDoublingAudioProvider final : public AudioProviderWrapper {
|
||||
public:
|
||||
SampleDoublingAudioProvider(std::unique_ptr<AudioProvider> src) : AudioProviderWrapper(std::move(src)) {
|
||||
if (source->GetBytesPerSample() != 2)
|
||||
|
|
|
@ -34,7 +34,7 @@
|
|||
|
||||
#include "include/aegisub/audio_provider.h"
|
||||
|
||||
class DummyAudioProvider : public AudioProvider {
|
||||
class DummyAudioProvider final : public AudioProvider {
|
||||
bool noise;
|
||||
void FillBuffer(void *buf, int64_t start, int64_t count) const override;
|
||||
|
||||
|
|
|
@ -39,7 +39,7 @@
|
|||
|
||||
/// @class FFmpegSourceAudioProvider
|
||||
/// @brief Implements audio loading with the FFMS library.
|
||||
class FFmpegSourceAudioProvider : public AudioProvider, FFmpegSourceProvider {
|
||||
class FFmpegSourceAudioProvider final : public AudioProvider, FFmpegSourceProvider {
|
||||
/// audio source object
|
||||
agi::scoped_holder<FFMS_AudioSource*, void (FFMS_CC *)(FFMS_AudioSource*)> AudioSource;
|
||||
|
||||
|
|
|
@ -71,7 +71,7 @@ agi::fs::path cache_path() {
|
|||
}
|
||||
|
||||
/// A PCM audio provider for raw dumps with no header
|
||||
class RawAudioProvider : public PCMAudioProvider {
|
||||
class RawAudioProvider final : public PCMAudioProvider {
|
||||
public:
|
||||
RawAudioProvider(agi::fs::path const& cache_filename, AudioProvider *src)
|
||||
: PCMAudioProvider(cache_filename)
|
||||
|
|
|
@ -39,7 +39,7 @@ namespace agi {
|
|||
class ProgressSink;
|
||||
}
|
||||
|
||||
class HDAudioProvider : public AudioProviderWrapper {
|
||||
class HDAudioProvider final : public AudioProviderWrapper {
|
||||
/// Name of the file which the decoded audio is written to
|
||||
agi::fs::path diskCacheFilename;
|
||||
/// Audio provider which reads from the decoded cache
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
#include <memory>
|
||||
#include <mutex>
|
||||
|
||||
class LockAudioProvider : public AudioProviderWrapper {
|
||||
class LockAudioProvider final : public AudioProviderWrapper {
|
||||
mutable std::mutex mutex;
|
||||
|
||||
void FillBuffer(void *buf, int64_t start, int64_t count) const override;
|
||||
|
|
|
@ -351,7 +351,7 @@ static const uint8_t w64Guiddata[16] = {
|
|||
/// @brief Sony Wave64 audio provider
|
||||
///
|
||||
/// http://www.vcs.de/fileadmin/user_upload/MBS/PDF/Whitepaper/Informations_about_Sony_Wave64.pdf
|
||||
class Wave64AudioProvider : public PCMAudioProvider {
|
||||
class Wave64AudioProvider final : public PCMAudioProvider {
|
||||
// Here's some copy-paste from the FFmpegSource2 code
|
||||
|
||||
/// http://msdn.microsoft.com/en-us/library/dd757720(VS.85).aspx
|
||||
|
|
|
@ -42,7 +42,7 @@ namespace agi {
|
|||
class ProgressSink;
|
||||
}
|
||||
|
||||
class RAMAudioProvider : public AudioProviderWrapper {
|
||||
class RAMAudioProvider final : public AudioProviderWrapper {
|
||||
#ifdef _MSC_VER
|
||||
boost::container::stable_vector<char[1 << 22]> blockcache;
|
||||
#else
|
||||
|
|
|
@ -52,7 +52,7 @@ struct AudioSpectrumCacheBlockFactory;
|
|||
///
|
||||
/// Renders frequency-power spectrum graphs of PCM audio data using a derivation function
|
||||
/// such as the fast fourier transform.
|
||||
class AudioSpectrumRenderer : public AudioRendererBitmapProvider {
|
||||
class AudioSpectrumRenderer final : public AudioRendererBitmapProvider {
|
||||
friend struct AudioSpectrumCacheBlockFactory;
|
||||
|
||||
/// Internal cache management for the spectrum
|
||||
|
|
|
@ -40,7 +40,7 @@ class AudioColorScheme;
|
|||
|
||||
#include "audio_renderer.h"
|
||||
|
||||
class AudioWaveformRenderer : public AudioRendererBitmapProvider {
|
||||
class AudioWaveformRenderer final : public AudioRendererBitmapProvider {
|
||||
/// Colour tables used for rendering
|
||||
std::vector<AudioColorScheme> colors;
|
||||
|
||||
|
|
|
@ -54,7 +54,7 @@ class TimeableLine;
|
|||
///
|
||||
/// Audio marker intended to live in pairs of two, taking styles depending
|
||||
/// on which marker in the pair is to the left and which is to the right.
|
||||
class DialogueTimingMarker : public AudioMarker {
|
||||
class DialogueTimingMarker final : public AudioMarker {
|
||||
/// Current ms position of this marker
|
||||
int position;
|
||||
|
||||
|
@ -285,7 +285,7 @@ void DialogueTimingMarker::SetPosition(int new_position) {
|
|||
/// addition, any markers for inactive lines that start/end at the same time
|
||||
/// as the active line starts/ends can optionally be dragged along with the
|
||||
/// active line's markers, updating those lines as well.
|
||||
class AudioTimingControllerDialogue : public AudioTimingController {
|
||||
class AudioTimingControllerDialogue final : public AudioTimingController {
|
||||
/// The rendering style for the active line's start marker
|
||||
Pen style_left;
|
||||
/// The rendering style for the active line's end marker
|
||||
|
|
|
@ -43,7 +43,7 @@
|
|||
|
||||
/// @class KaraokeMarker
|
||||
/// @brief AudioMarker implementation for AudioTimingControllerKaraoke
|
||||
class KaraokeMarker : public AudioMarker {
|
||||
class KaraokeMarker final : public AudioMarker {
|
||||
int position;
|
||||
Pen *pen;
|
||||
FeetStyle style;
|
||||
|
@ -81,7 +81,7 @@ public:
|
|||
///
|
||||
/// This does not support \kt, as it inherently requires that the end time of
|
||||
/// one syllable be the same as the start time of the next one.
|
||||
class AudioTimingControllerKaraoke : public AudioTimingController {
|
||||
class AudioTimingControllerKaraoke final : public AudioTimingController {
|
||||
std::deque<agi::signal::Connection> slots;
|
||||
agi::signal::Connection& file_changed_slot;
|
||||
|
||||
|
|
|
@ -123,7 +123,7 @@ namespace Automation4 {
|
|||
|
||||
/// A wrapper around agi::ProgressSink which adds the ability to open
|
||||
/// dialogs on the GUI thread
|
||||
class ProgressSink : public agi::ProgressSink {
|
||||
class ProgressSink final : public agi::ProgressSink {
|
||||
agi::ProgressSink *impl;
|
||||
BackgroundScriptRunner *bsr;
|
||||
int trace_level;
|
||||
|
@ -218,7 +218,7 @@ namespace Automation4 {
|
|||
};
|
||||
|
||||
/// Manager for scripts specified by a subtitle file
|
||||
class LocalScriptManager : public ScriptManager {
|
||||
class LocalScriptManager final : public ScriptManager {
|
||||
std::deque<agi::signal::Connection> slots;
|
||||
agi::Context *context;
|
||||
|
||||
|
@ -229,7 +229,7 @@ namespace Automation4 {
|
|||
};
|
||||
|
||||
/// Manager for scripts in the autoload directory
|
||||
class AutoloadScriptManager : public ScriptManager {
|
||||
class AutoloadScriptManager final : public ScriptManager {
|
||||
std::string path;
|
||||
public:
|
||||
AutoloadScriptManager(std::string path);
|
||||
|
@ -281,7 +281,7 @@ namespace Automation4 {
|
|||
|
||||
/// A script which represents a file not recognized by any registered
|
||||
/// automation engines
|
||||
class UnknownScript : public Script {
|
||||
class UnknownScript final : public Script {
|
||||
public:
|
||||
UnknownScript(agi::fs::path const& filename) : Script(filename) { }
|
||||
|
||||
|
|
|
@ -300,7 +300,7 @@ int luaopen_lpeg (lua_State *L);
|
|||
namespace Automation4 {
|
||||
int regex_init(lua_State *L);
|
||||
|
||||
class LuaScript : public Script {
|
||||
class LuaScript final : public Script {
|
||||
lua_State *L;
|
||||
|
||||
std::string name;
|
||||
|
|
|
@ -200,7 +200,7 @@ namespace Automation4 {
|
|||
};
|
||||
|
||||
/// A lua-generated dialog or panel in the export options dialog
|
||||
class LuaDialog : public ScriptDialog {
|
||||
class LuaDialog final : public ScriptDialog {
|
||||
/// Controls in this dialog
|
||||
std::vector<std::unique_ptr<LuaDialogControl>> controls;
|
||||
/// The names and IDs of buttons in this dialog if non-default ones were used
|
||||
|
@ -250,7 +250,7 @@ namespace Automation4 {
|
|||
/// @throws agi::UserCancelException if the function fails to run to completion (either due to cancelling or errors)
|
||||
void LuaThreadedCall(lua_State *L, int nargs, int nresults, std::string const& title, wxWindow *parent, bool can_open_config);
|
||||
|
||||
class LuaCommand : public cmd::Command, private LuaFeature {
|
||||
class LuaCommand final : public cmd::Command, private LuaFeature {
|
||||
std::string cmd_name;
|
||||
wxString display;
|
||||
wxString help;
|
||||
|
@ -274,7 +274,7 @@ namespace Automation4 {
|
|||
static int LuaRegister(lua_State *L);
|
||||
};
|
||||
|
||||
class LuaExportFilter : public ExportFilter, private LuaFeature {
|
||||
class LuaExportFilter final : public ExportFilter, private LuaFeature {
|
||||
bool has_config;
|
||||
LuaDialog *config_dialog;
|
||||
|
||||
|
|
|
@ -141,7 +141,7 @@ namespace Automation4 {
|
|||
|
||||
namespace LuaControl {
|
||||
/// A static text label
|
||||
class Label : public LuaDialogControl {
|
||||
class Label final : public LuaDialogControl {
|
||||
std::string label;
|
||||
public:
|
||||
Label(lua_State *L) : LuaDialogControl(L), label(get_field(L, "label")) { }
|
||||
|
@ -193,7 +193,7 @@ namespace Automation4 {
|
|||
};
|
||||
|
||||
/// A color-picker button
|
||||
class Color : public LuaDialogControl {
|
||||
class Color final : public LuaDialogControl {
|
||||
agi::Color color;
|
||||
bool alpha;
|
||||
|
||||
|
@ -221,7 +221,7 @@ namespace Automation4 {
|
|||
};
|
||||
|
||||
/// A multiline text edit control
|
||||
class Textbox : public Edit {
|
||||
class Textbox final : public Edit {
|
||||
public:
|
||||
Textbox(lua_State *L) : Edit(L) { }
|
||||
|
||||
|
@ -236,7 +236,7 @@ namespace Automation4 {
|
|||
|
||||
|
||||
/// Integer only edit
|
||||
class IntEdit : public Edit {
|
||||
class IntEdit final : public Edit {
|
||||
wxSpinCtrl *cw;
|
||||
int value;
|
||||
int min, max;
|
||||
|
@ -272,14 +272,14 @@ namespace Automation4 {
|
|||
};
|
||||
|
||||
// Float only edit
|
||||
class FloatEdit : public Edit {
|
||||
class FloatEdit final : public Edit {
|
||||
double value;
|
||||
double min;
|
||||
double max;
|
||||
double step;
|
||||
wxSpinCtrlDouble *scd;
|
||||
|
||||
struct DoubleValidator : public wxValidator {
|
||||
struct DoubleValidator final : public wxValidator {
|
||||
double *value;
|
||||
DoubleValidator(double *value) : value(value) { }
|
||||
wxValidator *Clone() const override { return new DoubleValidator(value); }
|
||||
|
@ -341,7 +341,7 @@ namespace Automation4 {
|
|||
};
|
||||
|
||||
/// A dropdown list
|
||||
class Dropdown : public LuaDialogControl {
|
||||
class Dropdown final : public LuaDialogControl {
|
||||
std::vector<std::string> items;
|
||||
std::string value;
|
||||
wxComboBox *cw;
|
||||
|
@ -371,7 +371,7 @@ namespace Automation4 {
|
|||
}
|
||||
};
|
||||
|
||||
class Checkbox : public LuaDialogControl {
|
||||
class Checkbox final : public LuaDialogControl {
|
||||
std::string label;
|
||||
bool value;
|
||||
wxCheckBox *cw;
|
||||
|
|
|
@ -35,7 +35,7 @@
|
|||
#include "auto4_base.h"
|
||||
|
||||
namespace Automation4 {
|
||||
class LuaScriptFactory : public ScriptFactory {
|
||||
class LuaScriptFactory final : public ScriptFactory {
|
||||
std::unique_ptr<Script> Produce(agi::fs::path const& filename) const override;
|
||||
public:
|
||||
LuaScriptFactory();
|
||||
|
|
|
@ -49,7 +49,7 @@ namespace agi {
|
|||
}
|
||||
class AssDialogue;
|
||||
|
||||
class BaseGrid : public wxWindow, public SubtitleSelectionController {
|
||||
class BaseGrid final : public wxWindow, public SubtitleSelectionController {
|
||||
int lineHeight = 1; ///< Height of a line in pixels in the current font
|
||||
bool holding = false; ///< Is a drag selection in process?
|
||||
wxFont font; ///< Current grid font
|
||||
|
|
|
@ -43,7 +43,7 @@ public:
|
|||
agi::Color GetColor() { return colour; }
|
||||
};
|
||||
|
||||
struct ColorValidator : public wxValidator {
|
||||
struct ColorValidator final : public wxValidator {
|
||||
agi::Color *color;
|
||||
ColorValidator(agi::Color *color) : color(color) { }
|
||||
wxValidator *Clone() const override { return new ColorValidator(color); }
|
||||
|
|
|
@ -57,7 +57,7 @@
|
|||
namespace {
|
||||
using cmd::Command;
|
||||
|
||||
struct app_about : public Command {
|
||||
struct app_about final : public Command {
|
||||
CMD_NAME("app/about")
|
||||
CMD_ICON(about_menu)
|
||||
STR_MENU("&About")
|
||||
|
@ -69,7 +69,7 @@ struct app_about : public Command {
|
|||
}
|
||||
};
|
||||
|
||||
struct app_display_audio_subs : public Command {
|
||||
struct app_display_audio_subs final : public Command {
|
||||
CMD_NAME("app/display/audio_subs")
|
||||
STR_MENU("&Audio+Subs View")
|
||||
STR_DISP("Audio+Subs View")
|
||||
|
@ -89,7 +89,7 @@ struct app_display_audio_subs : public Command {
|
|||
}
|
||||
};
|
||||
|
||||
struct app_display_full : public Command {
|
||||
struct app_display_full final : public Command {
|
||||
CMD_NAME("app/display/full")
|
||||
STR_MENU("&Full view")
|
||||
STR_DISP("Full view")
|
||||
|
@ -109,7 +109,7 @@ struct app_display_full : public Command {
|
|||
}
|
||||
};
|
||||
|
||||
struct app_display_subs : public Command {
|
||||
struct app_display_subs final : public Command {
|
||||
CMD_NAME("app/display/subs")
|
||||
STR_MENU("S&ubs Only View")
|
||||
STR_DISP("Subs Only View")
|
||||
|
@ -125,7 +125,7 @@ struct app_display_subs : public Command {
|
|||
}
|
||||
};
|
||||
|
||||
struct app_display_video_subs : public Command {
|
||||
struct app_display_video_subs final : public Command {
|
||||
CMD_NAME("app/display/video_subs")
|
||||
STR_MENU("&Video+Subs View")
|
||||
STR_DISP("Video+Subs View")
|
||||
|
@ -145,7 +145,7 @@ struct app_display_video_subs : public Command {
|
|||
}
|
||||
};
|
||||
|
||||
struct app_exit : public Command {
|
||||
struct app_exit final : public Command {
|
||||
CMD_NAME("app/exit")
|
||||
STR_MENU("E&xit")
|
||||
STR_DISP("Exit")
|
||||
|
@ -156,7 +156,7 @@ struct app_exit : public Command {
|
|||
}
|
||||
};
|
||||
|
||||
struct app_language : public Command {
|
||||
struct app_language final : public Command {
|
||||
CMD_NAME("app/language")
|
||||
CMD_ICON(languages_menu)
|
||||
STR_MENU("&Language...")
|
||||
|
@ -181,7 +181,7 @@ struct app_language : public Command {
|
|||
}
|
||||
};
|
||||
|
||||
struct app_log : public Command {
|
||||
struct app_log final : public Command {
|
||||
CMD_NAME("app/log")
|
||||
CMD_ICON(about_menu)
|
||||
STR_MENU("&Log window")
|
||||
|
@ -193,7 +193,7 @@ struct app_log : public Command {
|
|||
}
|
||||
};
|
||||
|
||||
struct app_new_window : public Command {
|
||||
struct app_new_window final : public Command {
|
||||
CMD_NAME("app/new_window")
|
||||
CMD_ICON(new_window_menu)
|
||||
STR_MENU("New &Window")
|
||||
|
@ -205,7 +205,7 @@ struct app_new_window : public Command {
|
|||
}
|
||||
};
|
||||
|
||||
struct app_options : public Command {
|
||||
struct app_options final : public Command {
|
||||
CMD_NAME("app/options")
|
||||
CMD_ICON(options_button)
|
||||
STR_MENU("&Options...")
|
||||
|
@ -221,7 +221,7 @@ struct app_options : public Command {
|
|||
}
|
||||
};
|
||||
|
||||
struct app_toggle_global_hotkeys : public Command {
|
||||
struct app_toggle_global_hotkeys final : public Command {
|
||||
CMD_NAME("app/toggle/global_hotkeys")
|
||||
CMD_ICON(toggle_audio_medusa)
|
||||
STR_MENU("Toggle global hotkey overrides")
|
||||
|
@ -239,7 +239,7 @@ struct app_toggle_global_hotkeys : public Command {
|
|||
}
|
||||
};
|
||||
|
||||
struct app_toggle_toolbar : public Command {
|
||||
struct app_toggle_toolbar final : public Command {
|
||||
CMD_NAME("app/toggle/toolbar")
|
||||
STR_HELP("Toggle the main toolbar")
|
||||
CMD_TYPE(COMMAND_DYNAMIC_NAME)
|
||||
|
@ -260,7 +260,7 @@ struct app_toggle_toolbar : public Command {
|
|||
}
|
||||
};
|
||||
|
||||
struct app_updates : public Command {
|
||||
struct app_updates final : public Command {
|
||||
CMD_NAME("app/updates")
|
||||
STR_MENU("&Check for Updates...")
|
||||
STR_DISP("Check for Updates")
|
||||
|
|
|
@ -60,7 +60,7 @@ namespace {
|
|||
}
|
||||
};
|
||||
|
||||
struct audio_close : public validate_audio_open {
|
||||
struct audio_close final : public validate_audio_open {
|
||||
CMD_NAME("audio/close")
|
||||
CMD_ICON(close_audio_menu)
|
||||
STR_MENU("&Close Audio")
|
||||
|
@ -72,7 +72,7 @@ struct audio_close : public validate_audio_open {
|
|||
}
|
||||
};
|
||||
|
||||
struct audio_open : public Command {
|
||||
struct audio_open final : public Command {
|
||||
CMD_NAME("audio/open")
|
||||
CMD_ICON(open_audio_menu)
|
||||
STR_MENU("&Open Audio File...")
|
||||
|
@ -96,7 +96,7 @@ struct audio_open : public Command {
|
|||
}
|
||||
};
|
||||
|
||||
struct audio_open_blank : public Command {
|
||||
struct audio_open_blank final : public Command {
|
||||
CMD_NAME("audio/open/blank")
|
||||
STR_MENU("Open 2h30 Blank Audio")
|
||||
STR_DISP("Open 2h30 Blank Audio")
|
||||
|
@ -112,7 +112,7 @@ struct audio_open_blank : public Command {
|
|||
}
|
||||
};
|
||||
|
||||
struct audio_open_noise : public Command {
|
||||
struct audio_open_noise final : public Command {
|
||||
CMD_NAME("audio/open/noise")
|
||||
STR_MENU("Open 2h30 Noise Audio")
|
||||
STR_DISP("Open 2h30 Noise Audio")
|
||||
|
@ -128,7 +128,7 @@ struct audio_open_noise : public Command {
|
|||
}
|
||||
};
|
||||
|
||||
struct audio_open_video : public Command {
|
||||
struct audio_open_video final : public Command {
|
||||
CMD_NAME("audio/open/video")
|
||||
CMD_ICON(open_audio_from_video_menu)
|
||||
STR_MENU("Open Audio from &Video")
|
||||
|
@ -151,7 +151,7 @@ struct audio_open_video : public Command {
|
|||
}
|
||||
};
|
||||
|
||||
struct audio_view_spectrum : public Command {
|
||||
struct audio_view_spectrum final : public Command {
|
||||
CMD_NAME("audio/view/spectrum")
|
||||
STR_MENU("&Spectrum Display")
|
||||
STR_DISP("Spectrum Display")
|
||||
|
@ -167,7 +167,7 @@ struct audio_view_spectrum : public Command {
|
|||
}
|
||||
};
|
||||
|
||||
struct audio_view_waveform : public Command {
|
||||
struct audio_view_waveform final : public Command {
|
||||
CMD_NAME("audio/view/waveform")
|
||||
STR_MENU("&Waveform Display")
|
||||
STR_DISP("Waveform Display")
|
||||
|
@ -183,7 +183,7 @@ struct audio_view_waveform : public Command {
|
|||
}
|
||||
};
|
||||
|
||||
struct audio_save_clip : public Command {
|
||||
struct audio_save_clip final : public Command {
|
||||
CMD_NAME("audio/save/clip")
|
||||
STR_MENU("Create audio clip")
|
||||
STR_DISP("Create audio clip")
|
||||
|
@ -210,7 +210,7 @@ struct audio_save_clip : public Command {
|
|||
}
|
||||
};
|
||||
|
||||
struct audio_play_current_selection : public validate_audio_open {
|
||||
struct audio_play_current_selection final : public validate_audio_open {
|
||||
CMD_NAME("audio/play/current")
|
||||
STR_MENU("Play current audio selection")
|
||||
STR_DISP("Play current audio selection")
|
||||
|
@ -222,7 +222,7 @@ struct audio_play_current_selection : public validate_audio_open {
|
|||
}
|
||||
};
|
||||
|
||||
struct audio_play_current_line : public validate_audio_open {
|
||||
struct audio_play_current_line final : public validate_audio_open {
|
||||
CMD_NAME("audio/play/line")
|
||||
CMD_ICON(button_playline)
|
||||
STR_MENU("Play current line")
|
||||
|
@ -237,7 +237,7 @@ struct audio_play_current_line : public validate_audio_open {
|
|||
}
|
||||
};
|
||||
|
||||
struct audio_play_selection : public validate_audio_open {
|
||||
struct audio_play_selection final : public validate_audio_open {
|
||||
CMD_NAME("audio/play/selection")
|
||||
CMD_ICON(button_playsel)
|
||||
STR_MENU("Play audio selection")
|
||||
|
@ -250,7 +250,7 @@ struct audio_play_selection : public validate_audio_open {
|
|||
}
|
||||
};
|
||||
|
||||
struct audio_play_toggle : public validate_audio_open {
|
||||
struct audio_play_toggle final : public validate_audio_open {
|
||||
CMD_NAME("audio/play/toggle")
|
||||
STR_MENU("Play audio selection or stop")
|
||||
STR_DISP("Play audio selection or stop")
|
||||
|
@ -266,7 +266,7 @@ struct audio_play_toggle : public validate_audio_open {
|
|||
}
|
||||
};
|
||||
|
||||
struct audio_stop : public Command {
|
||||
struct audio_stop final : public Command {
|
||||
CMD_NAME("audio/stop")
|
||||
CMD_ICON(button_stop)
|
||||
STR_MENU("Stop playing")
|
||||
|
@ -284,7 +284,7 @@ struct audio_stop : public Command {
|
|||
}
|
||||
};
|
||||
|
||||
struct audio_play_before : public validate_audio_open {
|
||||
struct audio_play_before final : public validate_audio_open {
|
||||
CMD_NAME("audio/play/selection/before")
|
||||
CMD_ICON(button_playfivehbefore)
|
||||
STR_MENU("Play 500 ms before selection")
|
||||
|
@ -298,7 +298,7 @@ struct audio_play_before : public validate_audio_open {
|
|||
}
|
||||
};
|
||||
|
||||
struct audio_play_after : public validate_audio_open {
|
||||
struct audio_play_after final : public validate_audio_open {
|
||||
CMD_NAME("audio/play/selection/after")
|
||||
CMD_ICON(button_playfivehafter)
|
||||
STR_MENU("Play 500 ms after selection")
|
||||
|
@ -312,7 +312,7 @@ struct audio_play_after : public validate_audio_open {
|
|||
}
|
||||
};
|
||||
|
||||
struct audio_play_end : public validate_audio_open {
|
||||
struct audio_play_end final : public validate_audio_open {
|
||||
CMD_NAME("audio/play/selection/end")
|
||||
CMD_ICON(button_playlastfiveh)
|
||||
STR_MENU("Play last 500 ms of selection")
|
||||
|
@ -326,7 +326,7 @@ struct audio_play_end : public validate_audio_open {
|
|||
}
|
||||
};
|
||||
|
||||
struct audio_play_begin : public validate_audio_open {
|
||||
struct audio_play_begin final : public validate_audio_open {
|
||||
CMD_NAME("audio/play/selection/begin")
|
||||
CMD_ICON(button_playfirstfiveh)
|
||||
STR_MENU("Play first 500 ms of selection")
|
||||
|
@ -342,7 +342,7 @@ struct audio_play_begin : public validate_audio_open {
|
|||
}
|
||||
};
|
||||
|
||||
struct audio_play_to_end : public validate_audio_open {
|
||||
struct audio_play_to_end final : public validate_audio_open {
|
||||
CMD_NAME("audio/play/to_end")
|
||||
CMD_ICON(button_playtoend)
|
||||
STR_MENU("Play from selection start to end of file")
|
||||
|
@ -355,7 +355,7 @@ struct audio_play_to_end : public validate_audio_open {
|
|||
}
|
||||
};
|
||||
|
||||
struct audio_commit : public validate_audio_open {
|
||||
struct audio_commit final : public validate_audio_open {
|
||||
CMD_NAME("audio/commit")
|
||||
CMD_ICON(button_audio_commit)
|
||||
STR_MENU("Commit")
|
||||
|
@ -372,7 +372,7 @@ struct audio_commit : public validate_audio_open {
|
|||
}
|
||||
};
|
||||
|
||||
struct audio_commit_default : public validate_audio_open {
|
||||
struct audio_commit_default final : public validate_audio_open {
|
||||
CMD_NAME("audio/commit/default")
|
||||
STR_MENU("Commit and use default timing for next line")
|
||||
STR_DISP("Commit and use default timing for next line")
|
||||
|
@ -387,7 +387,7 @@ struct audio_commit_default : public validate_audio_open {
|
|||
}
|
||||
};
|
||||
|
||||
struct audio_commit_next : public validate_audio_open {
|
||||
struct audio_commit_next final : public validate_audio_open {
|
||||
CMD_NAME("audio/commit/next")
|
||||
STR_MENU("Commit and move to next line")
|
||||
STR_DISP("Commit and move to next line")
|
||||
|
@ -402,7 +402,7 @@ struct audio_commit_next : public validate_audio_open {
|
|||
}
|
||||
};
|
||||
|
||||
struct audio_commit_stay : public validate_audio_open {
|
||||
struct audio_commit_stay final : public validate_audio_open {
|
||||
CMD_NAME("audio/commit/stay")
|
||||
STR_MENU("Commit and stay on current line")
|
||||
STR_DISP("Commit and stay on current line")
|
||||
|
@ -414,7 +414,7 @@ struct audio_commit_stay : public validate_audio_open {
|
|||
}
|
||||
};
|
||||
|
||||
struct audio_go_to : public validate_audio_open {
|
||||
struct audio_go_to final : public validate_audio_open {
|
||||
CMD_NAME("audio/go_to")
|
||||
CMD_ICON(button_audio_goto)
|
||||
STR_MENU("Go to selection")
|
||||
|
@ -426,7 +426,7 @@ struct audio_go_to : public validate_audio_open {
|
|||
}
|
||||
};
|
||||
|
||||
struct audio_scroll_left : public validate_audio_open {
|
||||
struct audio_scroll_left final : public validate_audio_open {
|
||||
CMD_NAME("audio/scroll/left")
|
||||
STR_MENU("Scroll left")
|
||||
STR_DISP("Scroll left")
|
||||
|
@ -437,7 +437,7 @@ struct audio_scroll_left : public validate_audio_open {
|
|||
}
|
||||
};
|
||||
|
||||
struct audio_scroll_right : public validate_audio_open {
|
||||
struct audio_scroll_right final : public validate_audio_open {
|
||||
CMD_NAME("audio/scroll/right")
|
||||
STR_MENU("Scroll right")
|
||||
STR_DISP("Scroll right")
|
||||
|
@ -452,7 +452,7 @@ static inline void toggle(const char *opt) {
|
|||
OPT_SET(opt)->SetBool(!OPT_GET(opt)->GetBool());
|
||||
}
|
||||
|
||||
struct audio_autoscroll : public Command {
|
||||
struct audio_autoscroll final : public Command {
|
||||
CMD_NAME("audio/opt/autoscroll")
|
||||
CMD_ICON(toggle_audio_autoscroll)
|
||||
STR_MENU("Auto scroll audio display to selected line")
|
||||
|
@ -469,7 +469,7 @@ struct audio_autoscroll : public Command {
|
|||
}
|
||||
};
|
||||
|
||||
struct audio_autocommit : public Command {
|
||||
struct audio_autocommit final : public Command {
|
||||
CMD_NAME("audio/opt/autocommit")
|
||||
CMD_ICON(toggle_audio_autocommit)
|
||||
STR_MENU("Automatically commit all changes")
|
||||
|
@ -486,7 +486,7 @@ struct audio_autocommit : public Command {
|
|||
}
|
||||
};
|
||||
|
||||
struct audio_autonext : public Command {
|
||||
struct audio_autonext final : public Command {
|
||||
CMD_NAME("audio/opt/autonext")
|
||||
CMD_ICON(toggle_audio_nextcommit)
|
||||
STR_MENU("Auto go to next line on commit")
|
||||
|
@ -503,7 +503,7 @@ struct audio_autonext : public Command {
|
|||
}
|
||||
};
|
||||
|
||||
struct audio_toggle_spectrum : public Command {
|
||||
struct audio_toggle_spectrum final : public Command {
|
||||
CMD_NAME("audio/opt/spectrum")
|
||||
CMD_ICON(toggle_audio_spectrum)
|
||||
STR_MENU("Spectrum analyzer mode")
|
||||
|
@ -520,7 +520,7 @@ struct audio_toggle_spectrum : public Command {
|
|||
}
|
||||
};
|
||||
|
||||
struct audio_vertical_link : public Command {
|
||||
struct audio_vertical_link final : public Command {
|
||||
CMD_NAME("audio/opt/vertical_link")
|
||||
CMD_ICON(toggle_audio_link)
|
||||
STR_MENU("Link vertical zoom and volume sliders")
|
||||
|
@ -537,7 +537,7 @@ struct audio_vertical_link : public Command {
|
|||
}
|
||||
};
|
||||
|
||||
struct audio_karaoke : public Command {
|
||||
struct audio_karaoke final : public Command {
|
||||
CMD_NAME("audio/karaoke")
|
||||
CMD_ICON(kara_mode)
|
||||
STR_MENU("Toggle karaoke mode")
|
||||
|
|
|
@ -49,7 +49,7 @@
|
|||
namespace {
|
||||
using cmd::Command;
|
||||
|
||||
struct reload_all : public Command {
|
||||
struct reload_all final : public Command {
|
||||
CMD_NAME("am/reload")
|
||||
STR_MENU("&Reload Automation scripts")
|
||||
STR_DISP("Reload Automation scripts")
|
||||
|
@ -62,7 +62,7 @@ struct reload_all : public Command {
|
|||
}
|
||||
};
|
||||
|
||||
struct reload_autoload : public Command {
|
||||
struct reload_autoload final : public Command {
|
||||
CMD_NAME("am/reload/autoload")
|
||||
STR_MENU("R&eload autoload Automation scripts")
|
||||
STR_DISP("Reload autoload Automation scripts")
|
||||
|
@ -74,7 +74,7 @@ struct reload_autoload : public Command {
|
|||
}
|
||||
};
|
||||
|
||||
struct open_manager : public Command {
|
||||
struct open_manager final : public Command {
|
||||
CMD_NAME("am/manager")
|
||||
CMD_ICON(automation_toolbutton)
|
||||
STR_MENU("&Automation...")
|
||||
|
@ -86,7 +86,7 @@ struct open_manager : public Command {
|
|||
}
|
||||
};
|
||||
|
||||
struct meta : public Command {
|
||||
struct meta final : public Command {
|
||||
CMD_NAME("am/meta")
|
||||
CMD_ICON(automation_toolbutton)
|
||||
STR_MENU("&Automation...")
|
||||
|
|
|
@ -43,7 +43,7 @@ namespace agi { struct Context; }
|
|||
}
|
||||
|
||||
#define COMMAND_GROUP(cname, cmdname, menu, disp, help) \
|
||||
struct cname : public Command { \
|
||||
struct cname final : public Command { \
|
||||
CMD_NAME(cmdname) \
|
||||
STR_MENU(menu) \
|
||||
STR_DISP(disp) \
|
||||
|
|
|
@ -331,7 +331,7 @@ void show_color_picker(const agi::Context *c, agi::Color (AssStyle::*field), con
|
|||
}
|
||||
}
|
||||
|
||||
struct edit_color_primary : public Command {
|
||||
struct edit_color_primary final : public Command {
|
||||
CMD_NAME("edit/color/primary")
|
||||
CMD_ICON(button_color_one)
|
||||
STR_MENU("Primary Color...")
|
||||
|
@ -343,7 +343,7 @@ struct edit_color_primary : public Command {
|
|||
}
|
||||
};
|
||||
|
||||
struct edit_color_secondary : public Command {
|
||||
struct edit_color_secondary final : public Command {
|
||||
CMD_NAME("edit/color/secondary")
|
||||
CMD_ICON(button_color_two)
|
||||
STR_MENU("Secondary Color...")
|
||||
|
@ -355,7 +355,7 @@ struct edit_color_secondary : public Command {
|
|||
}
|
||||
};
|
||||
|
||||
struct edit_color_outline : public Command {
|
||||
struct edit_color_outline final : public Command {
|
||||
CMD_NAME("edit/color/outline")
|
||||
CMD_ICON(button_color_three)
|
||||
STR_MENU("Outline Color...")
|
||||
|
@ -367,7 +367,7 @@ struct edit_color_outline : public Command {
|
|||
}
|
||||
};
|
||||
|
||||
struct edit_color_shadow : public Command {
|
||||
struct edit_color_shadow final : public Command {
|
||||
CMD_NAME("edit/color/shadow")
|
||||
CMD_ICON(button_color_four)
|
||||
STR_MENU("Shadow Color...")
|
||||
|
@ -379,7 +379,7 @@ struct edit_color_shadow : public Command {
|
|||
}
|
||||
};
|
||||
|
||||
struct edit_style_bold : public Command {
|
||||
struct edit_style_bold final : public Command {
|
||||
CMD_NAME("edit/style/bold")
|
||||
CMD_ICON(button_bold)
|
||||
STR_MENU("Toggle Bold")
|
||||
|
@ -391,7 +391,7 @@ struct edit_style_bold : public Command {
|
|||
}
|
||||
};
|
||||
|
||||
struct edit_style_italic : public Command {
|
||||
struct edit_style_italic final : public Command {
|
||||
CMD_NAME("edit/style/italic")
|
||||
CMD_ICON(button_italics)
|
||||
STR_MENU("Toggle Italics")
|
||||
|
@ -403,7 +403,7 @@ struct edit_style_italic : public Command {
|
|||
}
|
||||
};
|
||||
|
||||
struct edit_style_underline : public Command {
|
||||
struct edit_style_underline final : public Command {
|
||||
CMD_NAME("edit/style/underline")
|
||||
CMD_ICON(button_underline)
|
||||
STR_MENU("Toggle Underline")
|
||||
|
@ -415,7 +415,7 @@ struct edit_style_underline : public Command {
|
|||
}
|
||||
};
|
||||
|
||||
struct edit_style_strikeout : public Command {
|
||||
struct edit_style_strikeout final : public Command {
|
||||
CMD_NAME("edit/style/strikeout")
|
||||
CMD_ICON(button_strikeout)
|
||||
STR_MENU("Toggle Strikeout")
|
||||
|
@ -427,7 +427,7 @@ struct edit_style_strikeout : public Command {
|
|||
}
|
||||
};
|
||||
|
||||
struct edit_font : public Command {
|
||||
struct edit_font final : public Command {
|
||||
CMD_NAME("edit/font")
|
||||
CMD_ICON(button_fontname)
|
||||
STR_MENU("Font Face...")
|
||||
|
@ -473,7 +473,7 @@ struct edit_font : public Command {
|
|||
}
|
||||
};
|
||||
|
||||
struct edit_find_replace : public Command {
|
||||
struct edit_find_replace final : public Command {
|
||||
CMD_NAME("edit/find_replace")
|
||||
CMD_ICON(find_replace_menu)
|
||||
STR_MENU("Find and R&eplace...")
|
||||
|
@ -539,7 +539,7 @@ static void delete_lines(agi::Context *c, wxString const& commit_message) {
|
|||
c->selectionController->SetSelectionAndActive({ new_active }, new_active);
|
||||
}
|
||||
|
||||
struct edit_line_copy : public validate_sel_nonempty {
|
||||
struct edit_line_copy final : public validate_sel_nonempty {
|
||||
CMD_NAME("edit/line/copy")
|
||||
CMD_ICON(copy_button)
|
||||
STR_MENU("&Copy Lines")
|
||||
|
@ -579,7 +579,7 @@ struct edit_line_cut: public validate_sel_nonempty {
|
|||
}
|
||||
};
|
||||
|
||||
struct edit_line_delete : public validate_sel_nonempty {
|
||||
struct edit_line_delete final : public validate_sel_nonempty {
|
||||
CMD_NAME("edit/line/delete")
|
||||
CMD_ICON(delete_button)
|
||||
STR_MENU("De&lete Lines")
|
||||
|
@ -657,7 +657,7 @@ static void duplicate_lines(agi::Context *c, int shift) {
|
|||
c->selectionController->SetSelectionAndActive(std::move(new_sel), new_active);
|
||||
}
|
||||
|
||||
struct edit_line_duplicate : public validate_sel_nonempty {
|
||||
struct edit_line_duplicate final : public validate_sel_nonempty {
|
||||
CMD_NAME("edit/line/duplicate")
|
||||
STR_MENU("&Duplicate Lines")
|
||||
STR_DISP("Duplicate Lines")
|
||||
|
@ -668,7 +668,7 @@ struct edit_line_duplicate : public validate_sel_nonempty {
|
|||
}
|
||||
};
|
||||
|
||||
struct edit_line_duplicate_shift : public validate_video_and_sel_nonempty {
|
||||
struct edit_line_duplicate_shift final : public validate_video_and_sel_nonempty {
|
||||
CMD_NAME("edit/line/split/after")
|
||||
STR_MENU("Split lines after current frame")
|
||||
STR_DISP("Split lines after current frame")
|
||||
|
@ -680,7 +680,7 @@ struct edit_line_duplicate_shift : public validate_video_and_sel_nonempty {
|
|||
}
|
||||
};
|
||||
|
||||
struct edit_line_duplicate_shift_back : public validate_video_and_sel_nonempty {
|
||||
struct edit_line_duplicate_shift_back final : public validate_video_and_sel_nonempty {
|
||||
CMD_NAME("edit/line/split/before")
|
||||
STR_MENU("Split lines before current frame")
|
||||
STR_DISP("Split lines before current frame")
|
||||
|
@ -724,7 +724,7 @@ static void combine_concat(AssDialogue *first, AssDialogue *second) {
|
|||
|
||||
static void combine_drop(AssDialogue *, AssDialogue *) { }
|
||||
|
||||
struct edit_line_join_as_karaoke : public validate_sel_multiple {
|
||||
struct edit_line_join_as_karaoke final : public validate_sel_multiple {
|
||||
CMD_NAME("edit/line/join/as_karaoke")
|
||||
STR_MENU("As &Karaoke")
|
||||
STR_DISP("As Karaoke")
|
||||
|
@ -735,7 +735,7 @@ struct edit_line_join_as_karaoke : public validate_sel_multiple {
|
|||
}
|
||||
};
|
||||
|
||||
struct edit_line_join_concatenate : public validate_sel_multiple {
|
||||
struct edit_line_join_concatenate final : public validate_sel_multiple {
|
||||
CMD_NAME("edit/line/join/concatenate")
|
||||
STR_MENU("&Concatenate")
|
||||
STR_DISP("Concatenate")
|
||||
|
@ -746,7 +746,7 @@ struct edit_line_join_concatenate : public validate_sel_multiple {
|
|||
}
|
||||
};
|
||||
|
||||
struct edit_line_join_keep_first : public validate_sel_multiple {
|
||||
struct edit_line_join_keep_first final : public validate_sel_multiple {
|
||||
CMD_NAME("edit/line/join/keep_first")
|
||||
STR_MENU("Keep &First")
|
||||
STR_DISP("Keep First")
|
||||
|
@ -788,7 +788,7 @@ static bool try_paste_lines(agi::Context *c) {
|
|||
return true;
|
||||
}
|
||||
|
||||
struct edit_line_paste : public Command {
|
||||
struct edit_line_paste final : public Command {
|
||||
CMD_NAME("edit/line/paste")
|
||||
CMD_ICON(paste_button)
|
||||
STR_MENU("&Paste Lines")
|
||||
|
@ -820,7 +820,7 @@ struct edit_line_paste : public Command {
|
|||
}
|
||||
};
|
||||
|
||||
struct edit_line_paste_over : public Command {
|
||||
struct edit_line_paste_over final : public Command {
|
||||
CMD_NAME("edit/line/paste/over")
|
||||
STR_MENU("Paste Lines &Over...")
|
||||
STR_DISP("Paste Lines Over")
|
||||
|
@ -913,7 +913,7 @@ bool check_end(AssDialogue *d1, AssDialogue *d2) {
|
|||
|
||||
}
|
||||
|
||||
struct edit_line_recombine : public validate_sel_multiple {
|
||||
struct edit_line_recombine final : public validate_sel_multiple {
|
||||
CMD_NAME("edit/line/recombine")
|
||||
STR_MENU("Recom&bine Lines")
|
||||
STR_DISP("Recombine Lines")
|
||||
|
@ -991,7 +991,7 @@ struct edit_line_recombine : public validate_sel_multiple {
|
|||
}
|
||||
};
|
||||
|
||||
struct edit_line_split_by_karaoke : public validate_sel_nonempty {
|
||||
struct edit_line_split_by_karaoke final : public validate_sel_nonempty {
|
||||
CMD_NAME("edit/line/split/by_karaoke")
|
||||
STR_MENU("Split Lines (by karaoke)")
|
||||
STR_DISP("Split Lines (by karaoke)")
|
||||
|
@ -1019,7 +1019,7 @@ void split_lines(agi::Context *c, Func&& set_time) {
|
|||
c->ass->Commit(_("split"), AssFile::COMMIT_DIAG_ADDREM | AssFile::COMMIT_DIAG_FULL);
|
||||
}
|
||||
|
||||
struct edit_line_split_estimate : public validate_video_and_sel_nonempty {
|
||||
struct edit_line_split_estimate final : public validate_video_and_sel_nonempty {
|
||||
CMD_NAME("edit/line/split/estimate")
|
||||
STR_MENU("Split at cursor (estimate times)")
|
||||
STR_DISP("Split at cursor (estimate times)")
|
||||
|
@ -1035,7 +1035,7 @@ struct edit_line_split_estimate : public validate_video_and_sel_nonempty {
|
|||
}
|
||||
};
|
||||
|
||||
struct edit_line_split_preserve : public validate_sel_nonempty {
|
||||
struct edit_line_split_preserve final : public validate_sel_nonempty {
|
||||
CMD_NAME("edit/line/split/preserve")
|
||||
STR_MENU("Split at cursor (preserve times)")
|
||||
STR_DISP("Split at cursor (preserve times)")
|
||||
|
@ -1046,7 +1046,7 @@ struct edit_line_split_preserve : public validate_sel_nonempty {
|
|||
}
|
||||
};
|
||||
|
||||
struct edit_line_split_video : public validate_video_and_sel_nonempty {
|
||||
struct edit_line_split_video final : public validate_video_and_sel_nonempty {
|
||||
CMD_NAME("edit/line/split/video")
|
||||
STR_MENU("Split at cursor (at video frame)")
|
||||
STR_DISP("Split at cursor (at video frame)")
|
||||
|
@ -1063,7 +1063,7 @@ struct edit_line_split_video : public validate_video_and_sel_nonempty {
|
|||
}
|
||||
};
|
||||
|
||||
struct edit_redo : public Command {
|
||||
struct edit_redo final : public Command {
|
||||
CMD_NAME("edit/redo")
|
||||
CMD_ICON(redo_button)
|
||||
STR_HELP("Redo last undone action")
|
||||
|
@ -1089,7 +1089,7 @@ struct edit_redo : public Command {
|
|||
}
|
||||
};
|
||||
|
||||
struct edit_undo : public Command {
|
||||
struct edit_undo final : public Command {
|
||||
CMD_NAME("edit/undo")
|
||||
CMD_ICON(undo_button)
|
||||
STR_HELP("Undo last action")
|
||||
|
@ -1115,7 +1115,7 @@ struct edit_undo : public Command {
|
|||
}
|
||||
};
|
||||
|
||||
struct edit_revert : public Command {
|
||||
struct edit_revert final : public Command {
|
||||
CMD_NAME("edit/revert")
|
||||
STR_DISP("Revert")
|
||||
STR_MENU("Revert")
|
||||
|
@ -1128,7 +1128,7 @@ struct edit_revert : public Command {
|
|||
}
|
||||
};
|
||||
|
||||
struct edit_clear : public Command {
|
||||
struct edit_clear final : public Command {
|
||||
CMD_NAME("edit/clear")
|
||||
STR_DISP("Clear")
|
||||
STR_MENU("Clear")
|
||||
|
@ -1142,7 +1142,7 @@ struct edit_clear : public Command {
|
|||
};
|
||||
|
||||
std::string get_text(AssDialogueBlock &d) { return d.GetText(); }
|
||||
struct edit_clear_text : public Command {
|
||||
struct edit_clear_text final : public Command {
|
||||
CMD_NAME("edit/clear/text")
|
||||
STR_DISP("Clear Text")
|
||||
STR_MENU("Clear Text")
|
||||
|
@ -1159,7 +1159,7 @@ struct edit_clear_text : public Command {
|
|||
}
|
||||
};
|
||||
|
||||
struct edit_insert_original : public Command {
|
||||
struct edit_insert_original final : public Command {
|
||||
CMD_NAME("edit/insert_original")
|
||||
STR_DISP("Insert Original")
|
||||
STR_MENU("Insert Original")
|
||||
|
|
|
@ -48,7 +48,7 @@
|
|||
namespace {
|
||||
using cmd::Command;
|
||||
|
||||
struct grid_line_next : public Command {
|
||||
struct grid_line_next final : public Command {
|
||||
CMD_NAME("grid/line/next")
|
||||
STR_MENU("Next Line")
|
||||
STR_DISP("Next Line")
|
||||
|
@ -59,7 +59,7 @@ struct grid_line_next : public Command {
|
|||
}
|
||||
};
|
||||
|
||||
struct grid_line_next_create : public Command {
|
||||
struct grid_line_next_create final : public Command {
|
||||
CMD_NAME("grid/line/next/create")
|
||||
CMD_ICON(button_audio_commit)
|
||||
STR_MENU("Next Line")
|
||||
|
@ -87,7 +87,7 @@ struct grid_line_next_create : public Command {
|
|||
}
|
||||
};
|
||||
|
||||
struct grid_line_prev : public Command {
|
||||
struct grid_line_prev final : public Command {
|
||||
CMD_NAME("grid/line/prev")
|
||||
STR_MENU("Previous Line")
|
||||
STR_DISP("Previous Line")
|
||||
|
@ -98,7 +98,7 @@ struct grid_line_prev : public Command {
|
|||
}
|
||||
};
|
||||
|
||||
struct grid_sort_actor : public Command {
|
||||
struct grid_sort_actor final : public Command {
|
||||
CMD_NAME("grid/sort/actor")
|
||||
STR_MENU("&Actor Name")
|
||||
STR_DISP("Actor Name")
|
||||
|
@ -118,7 +118,7 @@ struct validate_sel_multiple : public Command {
|
|||
}
|
||||
};
|
||||
|
||||
struct grid_sort_actor_selected : public validate_sel_multiple {
|
||||
struct grid_sort_actor_selected final : public validate_sel_multiple {
|
||||
CMD_NAME("grid/sort/actor/selected")
|
||||
STR_MENU("&Actor Name")
|
||||
STR_DISP("Actor Name")
|
||||
|
@ -130,7 +130,7 @@ struct grid_sort_actor_selected : public validate_sel_multiple {
|
|||
}
|
||||
};
|
||||
|
||||
struct grid_sort_effect : public Command {
|
||||
struct grid_sort_effect final : public Command {
|
||||
CMD_NAME("grid/sort/effect")
|
||||
STR_MENU("&Effect")
|
||||
STR_DISP("Effect")
|
||||
|
@ -142,7 +142,7 @@ struct grid_sort_effect : public Command {
|
|||
}
|
||||
};
|
||||
|
||||
struct grid_sort_effect_selected : public validate_sel_multiple {
|
||||
struct grid_sort_effect_selected final : public validate_sel_multiple {
|
||||
CMD_NAME("grid/sort/effect/selected")
|
||||
STR_MENU("&Effect")
|
||||
STR_DISP("Effect")
|
||||
|
@ -154,7 +154,7 @@ struct grid_sort_effect_selected : public validate_sel_multiple {
|
|||
}
|
||||
};
|
||||
|
||||
struct grid_sort_end : public Command {
|
||||
struct grid_sort_end final : public Command {
|
||||
CMD_NAME("grid/sort/end")
|
||||
STR_MENU("&End Time")
|
||||
STR_DISP("End Time")
|
||||
|
@ -166,7 +166,7 @@ struct grid_sort_end : public Command {
|
|||
}
|
||||
};
|
||||
|
||||
struct grid_sort_end_selected : public validate_sel_multiple {
|
||||
struct grid_sort_end_selected final : public validate_sel_multiple {
|
||||
CMD_NAME("grid/sort/end/selected")
|
||||
STR_MENU("&End Time")
|
||||
STR_DISP("End Time")
|
||||
|
@ -178,7 +178,7 @@ struct grid_sort_end_selected : public validate_sel_multiple {
|
|||
}
|
||||
};
|
||||
|
||||
struct grid_sort_layer : public Command {
|
||||
struct grid_sort_layer final : public Command {
|
||||
CMD_NAME("grid/sort/layer")
|
||||
STR_MENU("&Layer")
|
||||
STR_DISP("Layer")
|
||||
|
@ -190,7 +190,7 @@ struct grid_sort_layer : public Command {
|
|||
}
|
||||
};
|
||||
|
||||
struct grid_sort_layer_selected : public validate_sel_multiple {
|
||||
struct grid_sort_layer_selected final : public validate_sel_multiple {
|
||||
CMD_NAME("grid/sort/layer/selected")
|
||||
STR_MENU("&Layer")
|
||||
STR_DISP("Layer")
|
||||
|
@ -202,7 +202,7 @@ struct grid_sort_layer_selected : public validate_sel_multiple {
|
|||
}
|
||||
};
|
||||
|
||||
struct grid_sort_start : public Command {
|
||||
struct grid_sort_start final : public Command {
|
||||
CMD_NAME("grid/sort/start")
|
||||
STR_MENU("&Start Time")
|
||||
STR_DISP("Start Time")
|
||||
|
@ -214,7 +214,7 @@ struct grid_sort_start : public Command {
|
|||
}
|
||||
};
|
||||
|
||||
struct grid_sort_start_selected : public validate_sel_multiple {
|
||||
struct grid_sort_start_selected final : public validate_sel_multiple {
|
||||
CMD_NAME("grid/sort/start/selected")
|
||||
STR_MENU("&Start Time")
|
||||
STR_DISP("Start Time")
|
||||
|
@ -226,7 +226,7 @@ struct grid_sort_start_selected : public validate_sel_multiple {
|
|||
}
|
||||
};
|
||||
|
||||
struct grid_sort_style : public Command {
|
||||
struct grid_sort_style final : public Command {
|
||||
CMD_NAME("grid/sort/style")
|
||||
STR_MENU("St&yle Name")
|
||||
STR_DISP("Style Name")
|
||||
|
@ -238,7 +238,7 @@ struct grid_sort_style : public Command {
|
|||
}
|
||||
};
|
||||
|
||||
struct grid_sort_style_selected : public validate_sel_multiple {
|
||||
struct grid_sort_style_selected final : public validate_sel_multiple {
|
||||
CMD_NAME("grid/sort/style/selected")
|
||||
STR_MENU("St&yle Name")
|
||||
STR_DISP("Style Name")
|
||||
|
@ -250,7 +250,7 @@ struct grid_sort_style_selected : public validate_sel_multiple {
|
|||
}
|
||||
};
|
||||
|
||||
struct grid_tag_cycle_hiding : public Command {
|
||||
struct grid_tag_cycle_hiding final : public Command {
|
||||
CMD_NAME("grid/tag/cycle_hiding")
|
||||
CMD_ICON(toggle_tag_hiding)
|
||||
STR_MENU("Cycle Tag Hiding Mode")
|
||||
|
@ -275,7 +275,7 @@ struct grid_tag_cycle_hiding : public Command {
|
|||
}
|
||||
};
|
||||
|
||||
struct grid_tags_hide : public Command {
|
||||
struct grid_tags_hide final : public Command {
|
||||
CMD_NAME("grid/tags/hide")
|
||||
STR_MENU("&Hide Tags")
|
||||
STR_DISP("Hide Tags")
|
||||
|
@ -291,7 +291,7 @@ struct grid_tags_hide : public Command {
|
|||
}
|
||||
};
|
||||
|
||||
struct grid_tags_show : public Command {
|
||||
struct grid_tags_show final : public Command {
|
||||
CMD_NAME("grid/tags/show")
|
||||
STR_MENU("Sh&ow Tags")
|
||||
STR_DISP("Show Tags")
|
||||
|
@ -307,7 +307,7 @@ struct grid_tags_show : public Command {
|
|||
}
|
||||
};
|
||||
|
||||
struct grid_tags_simplify : public Command {
|
||||
struct grid_tags_simplify final : public Command {
|
||||
CMD_NAME("grid/tags/simplify")
|
||||
STR_MENU("S&implify Tags")
|
||||
STR_DISP("Simplify Tags")
|
||||
|
@ -342,7 +342,7 @@ static bool move_one(T begin, T end, U const& to_move, int step) {
|
|||
return move_count > 0;
|
||||
}
|
||||
|
||||
struct grid_move_up : public Command {
|
||||
struct grid_move_up final : public Command {
|
||||
CMD_NAME("grid/move/up")
|
||||
STR_MENU("Move line up")
|
||||
STR_DISP("Move line up")
|
||||
|
@ -359,7 +359,7 @@ struct grid_move_up : public Command {
|
|||
}
|
||||
};
|
||||
|
||||
struct grid_move_down : public Command {
|
||||
struct grid_move_down final : public Command {
|
||||
CMD_NAME("grid/move/down")
|
||||
STR_MENU("Move line down")
|
||||
STR_DISP("Move line down")
|
||||
|
@ -376,7 +376,7 @@ struct grid_move_down : public Command {
|
|||
}
|
||||
};
|
||||
|
||||
struct grid_swap : public Command {
|
||||
struct grid_swap final : public Command {
|
||||
CMD_NAME("grid/swap")
|
||||
CMD_ICON(arrow_sort)
|
||||
STR_MENU("Swap Lines")
|
||||
|
|
|
@ -45,7 +45,7 @@
|
|||
namespace {
|
||||
using cmd::Command;
|
||||
|
||||
struct help_bugs : public Command {
|
||||
struct help_bugs final : public Command {
|
||||
CMD_NAME("help/bugs")
|
||||
CMD_ICON(bugtracker_button)
|
||||
STR_MENU("&Bug Tracker...")
|
||||
|
@ -66,7 +66,7 @@ struct help_bugs : public Command {
|
|||
}
|
||||
};
|
||||
|
||||
struct help_contents : public Command {
|
||||
struct help_contents final : public Command {
|
||||
CMD_NAME("help/contents")
|
||||
CMD_ICON(contents_button)
|
||||
STR_MENU("&Contents")
|
||||
|
@ -78,7 +78,7 @@ struct help_contents : public Command {
|
|||
}
|
||||
};
|
||||
|
||||
struct help_forums : public Command {
|
||||
struct help_forums final : public Command {
|
||||
CMD_NAME("help/forums")
|
||||
CMD_ICON(forums_button)
|
||||
STR_MENU("&Forums")
|
||||
|
@ -90,7 +90,7 @@ struct help_forums : public Command {
|
|||
}
|
||||
};
|
||||
|
||||
struct help_irc : public Command {
|
||||
struct help_irc final : public Command {
|
||||
CMD_NAME("help/irc")
|
||||
CMD_ICON(irc_button)
|
||||
STR_MENU("&IRC Channel")
|
||||
|
@ -102,7 +102,7 @@ struct help_irc : public Command {
|
|||
}
|
||||
};
|
||||
|
||||
struct help_video : public Command {
|
||||
struct help_video final : public Command {
|
||||
CMD_NAME("help/video")
|
||||
CMD_ICON(visual_help)
|
||||
STR_MENU("&Visual Typesetting")
|
||||
|
@ -114,7 +114,7 @@ struct help_video : public Command {
|
|||
}
|
||||
};
|
||||
|
||||
struct help_website : public Command {
|
||||
struct help_website final : public Command {
|
||||
CMD_NAME("help/website")
|
||||
CMD_ICON(website_button)
|
||||
STR_MENU("&Website")
|
||||
|
|
|
@ -44,7 +44,7 @@
|
|||
namespace {
|
||||
using cmd::Command;
|
||||
|
||||
struct keyframe_close : public Command {
|
||||
struct keyframe_close final : public Command {
|
||||
CMD_NAME("keyframe/close")
|
||||
CMD_ICON(close_keyframes_menu)
|
||||
STR_MENU("Close Keyframes")
|
||||
|
@ -61,7 +61,7 @@ struct keyframe_close : public Command {
|
|||
}
|
||||
};
|
||||
|
||||
struct keyframe_open : public Command {
|
||||
struct keyframe_open final : public Command {
|
||||
CMD_NAME("keyframe/open")
|
||||
CMD_ICON(open_keyframes_menu)
|
||||
STR_MENU("Open Keyframes...")
|
||||
|
@ -80,7 +80,7 @@ struct keyframe_open : public Command {
|
|||
}
|
||||
};
|
||||
|
||||
struct keyframe_save : public Command {
|
||||
struct keyframe_save final : public Command {
|
||||
CMD_NAME("keyframe/save")
|
||||
CMD_ICON(save_keyframes_menu)
|
||||
STR_MENU("Save Keyframes...")
|
||||
|
|
|
@ -117,7 +117,7 @@ struct recent_video_entry : public Command {
|
|||
};
|
||||
|
||||
template<class T>
|
||||
class mru_wrapper : public T {
|
||||
class mru_wrapper final : public T {
|
||||
int id;
|
||||
std::string full_name;
|
||||
public:
|
||||
|
|
|
@ -78,7 +78,7 @@ struct validate_nonempty_selection_video_loaded : public Command {
|
|||
}
|
||||
};
|
||||
|
||||
struct subtitle_attachment : public Command {
|
||||
struct subtitle_attachment final : public Command {
|
||||
CMD_NAME("subtitle/attachment")
|
||||
CMD_ICON(attach_button)
|
||||
STR_MENU("A&ttachments...")
|
||||
|
@ -91,7 +91,7 @@ struct subtitle_attachment : public Command {
|
|||
}
|
||||
};
|
||||
|
||||
struct subtitle_find : public Command {
|
||||
struct subtitle_find final : public Command {
|
||||
CMD_NAME("subtitle/find")
|
||||
CMD_ICON(find_button)
|
||||
STR_MENU("&Find...")
|
||||
|
@ -104,7 +104,7 @@ struct subtitle_find : public Command {
|
|||
}
|
||||
};
|
||||
|
||||
struct subtitle_find_next : public Command {
|
||||
struct subtitle_find_next final : public Command {
|
||||
CMD_NAME("subtitle/find/next")
|
||||
CMD_ICON(find_next_menu)
|
||||
STR_MENU("Find &Next")
|
||||
|
@ -134,7 +134,7 @@ static void insert_subtitle_at_video(agi::Context *c, bool after) {
|
|||
c->selectionController->SetSelectionAndActive({ def }, def);
|
||||
}
|
||||
|
||||
struct subtitle_insert_after : public validate_nonempty_selection {
|
||||
struct subtitle_insert_after final : public validate_nonempty_selection {
|
||||
CMD_NAME("subtitle/insert/after")
|
||||
STR_MENU("&After Current")
|
||||
STR_DISP("After Current")
|
||||
|
@ -168,7 +168,7 @@ struct subtitle_insert_after : public validate_nonempty_selection {
|
|||
}
|
||||
};
|
||||
|
||||
struct subtitle_insert_after_videotime : public validate_nonempty_selection_video_loaded {
|
||||
struct subtitle_insert_after_videotime final : public validate_nonempty_selection_video_loaded {
|
||||
CMD_NAME("subtitle/insert/after/videotime")
|
||||
STR_MENU("After Current, at Video Time")
|
||||
STR_DISP("After Current, at Video Time")
|
||||
|
@ -179,7 +179,7 @@ struct subtitle_insert_after_videotime : public validate_nonempty_selection_vide
|
|||
}
|
||||
};
|
||||
|
||||
struct subtitle_insert_before : public validate_nonempty_selection {
|
||||
struct subtitle_insert_before final : public validate_nonempty_selection {
|
||||
CMD_NAME("subtitle/insert/before")
|
||||
STR_MENU("&Before Current")
|
||||
STR_DISP("Before Current")
|
||||
|
@ -210,7 +210,7 @@ struct subtitle_insert_before : public validate_nonempty_selection {
|
|||
}
|
||||
};
|
||||
|
||||
struct subtitle_insert_before_videotime : public validate_nonempty_selection_video_loaded {
|
||||
struct subtitle_insert_before_videotime final : public validate_nonempty_selection_video_loaded {
|
||||
CMD_NAME("subtitle/insert/before/videotime")
|
||||
STR_MENU("Before Current, at Video Time")
|
||||
STR_DISP("Before Current, at Video Time")
|
||||
|
@ -221,7 +221,7 @@ struct subtitle_insert_before_videotime : public validate_nonempty_selection_vid
|
|||
}
|
||||
};
|
||||
|
||||
struct subtitle_new : public Command {
|
||||
struct subtitle_new final : public Command {
|
||||
CMD_NAME("subtitle/new")
|
||||
CMD_ICON(new_toolbutton)
|
||||
STR_MENU("&New Subtitles")
|
||||
|
@ -234,7 +234,7 @@ struct subtitle_new : public Command {
|
|||
}
|
||||
};
|
||||
|
||||
struct subtitle_open : public Command {
|
||||
struct subtitle_open final : public Command {
|
||||
CMD_NAME("subtitle/open")
|
||||
CMD_ICON(open_toolbutton)
|
||||
STR_MENU("&Open Subtitles...")
|
||||
|
@ -249,7 +249,7 @@ struct subtitle_open : public Command {
|
|||
}
|
||||
};
|
||||
|
||||
struct subtitle_open_autosave : public Command {
|
||||
struct subtitle_open_autosave final : public Command {
|
||||
CMD_NAME("subtitle/open/autosave")
|
||||
STR_MENU("Open A&utosaved Subtitles...")
|
||||
STR_DISP("Open Autosaved Subtitles")
|
||||
|
@ -263,7 +263,7 @@ struct subtitle_open_autosave : public Command {
|
|||
}
|
||||
};
|
||||
|
||||
struct subtitle_open_charset : public Command {
|
||||
struct subtitle_open_charset final : public Command {
|
||||
CMD_NAME("subtitle/open/charset")
|
||||
CMD_ICON(open_with_toolbutton)
|
||||
STR_MENU("Open Subtitles with &Charset...")
|
||||
|
@ -283,7 +283,7 @@ struct subtitle_open_charset : public Command {
|
|||
}
|
||||
};
|
||||
|
||||
struct subtitle_open_video : public Command {
|
||||
struct subtitle_open_video final : public Command {
|
||||
CMD_NAME("subtitle/open/video")
|
||||
STR_MENU("Open Subtitles from &Video")
|
||||
STR_DISP("Open Subtitles from Video")
|
||||
|
@ -300,7 +300,7 @@ struct subtitle_open_video : public Command {
|
|||
}
|
||||
};
|
||||
|
||||
struct subtitle_properties : public Command {
|
||||
struct subtitle_properties final : public Command {
|
||||
CMD_NAME("subtitle/properties")
|
||||
CMD_ICON(properties_toolbutton)
|
||||
STR_MENU("&Properties...")
|
||||
|
@ -336,7 +336,7 @@ static void save_subtitles(agi::Context *c, agi::fs::path filename) {
|
|||
}
|
||||
}
|
||||
|
||||
struct subtitle_save : public Command {
|
||||
struct subtitle_save final : public Command {
|
||||
CMD_NAME("subtitle/save")
|
||||
CMD_ICON(save_toolbutton)
|
||||
STR_MENU("&Save Subtitles")
|
||||
|
@ -353,7 +353,7 @@ struct subtitle_save : public Command {
|
|||
}
|
||||
};
|
||||
|
||||
struct subtitle_save_as : public Command {
|
||||
struct subtitle_save_as final : public Command {
|
||||
CMD_NAME("subtitle/save/as")
|
||||
CMD_ICON(save_as_toolbutton)
|
||||
STR_MENU("Save Subtitles &as...")
|
||||
|
@ -365,7 +365,7 @@ struct subtitle_save_as : public Command {
|
|||
}
|
||||
};
|
||||
|
||||
struct subtitle_select_all : public Command {
|
||||
struct subtitle_select_all final : public Command {
|
||||
CMD_NAME("subtitle/select/all")
|
||||
STR_MENU("Select &All")
|
||||
STR_DISP("Select All")
|
||||
|
@ -378,7 +378,7 @@ struct subtitle_select_all : public Command {
|
|||
}
|
||||
};
|
||||
|
||||
struct subtitle_select_visible : public Command {
|
||||
struct subtitle_select_visible final : public Command {
|
||||
CMD_NAME("subtitle/select/visible")
|
||||
CMD_ICON(select_visible_button)
|
||||
STR_MENU("Select Visible")
|
||||
|
@ -411,7 +411,7 @@ struct subtitle_select_visible : public Command {
|
|||
}
|
||||
};
|
||||
|
||||
struct subtitle_spellcheck : public Command {
|
||||
struct subtitle_spellcheck final : public Command {
|
||||
CMD_NAME("subtitle/spellcheck")
|
||||
CMD_ICON(spellcheck_toolbutton)
|
||||
STR_MENU("Spell &Checker...")
|
||||
|
|
|
@ -106,7 +106,7 @@ static void adjoin_lines(agi::Context *c, bool set_start) {
|
|||
c->ass->Commit(_("adjoin"), AssFile::COMMIT_DIAG_TIME);
|
||||
}
|
||||
|
||||
struct time_continuous_end : public validate_adjoinable {
|
||||
struct time_continuous_end final : public validate_adjoinable {
|
||||
CMD_NAME("time/continuous/end")
|
||||
STR_MENU("Change &End")
|
||||
STR_DISP("Change End")
|
||||
|
@ -117,7 +117,7 @@ struct time_continuous_end : public validate_adjoinable {
|
|||
}
|
||||
};
|
||||
|
||||
struct time_continuous_start : public validate_adjoinable {
|
||||
struct time_continuous_start final : public validate_adjoinable {
|
||||
CMD_NAME("time/continuous/start")
|
||||
STR_MENU("Change &Start")
|
||||
STR_DISP("Change Start")
|
||||
|
@ -128,7 +128,7 @@ struct time_continuous_start : public validate_adjoinable {
|
|||
}
|
||||
};
|
||||
|
||||
struct time_frame_current : public validate_video_loaded {
|
||||
struct time_frame_current final : public validate_video_loaded {
|
||||
CMD_NAME("time/frame/current")
|
||||
CMD_ICON(shift_to_frame)
|
||||
STR_MENU("Shift to &Current Frame")
|
||||
|
@ -155,7 +155,7 @@ struct time_frame_current : public validate_video_loaded {
|
|||
}
|
||||
};
|
||||
|
||||
struct time_shift : public Command {
|
||||
struct time_shift final : public Command {
|
||||
CMD_NAME("time/shift")
|
||||
CMD_ICON(shift_times_toolbutton)
|
||||
STR_MENU("S&hift Times...")
|
||||
|
@ -185,7 +185,7 @@ static void snap_subs_video(agi::Context *c, bool set_start) {
|
|||
c->ass->Commit(_("timing"), AssFile::COMMIT_DIAG_TIME);
|
||||
}
|
||||
|
||||
struct time_snap_end_video : public validate_video_loaded {
|
||||
struct time_snap_end_video final : public validate_video_loaded {
|
||||
CMD_NAME("time/snap/end_video")
|
||||
CMD_ICON(subend_to_video)
|
||||
STR_MENU("Snap &End to Video")
|
||||
|
@ -197,7 +197,7 @@ struct time_snap_end_video : public validate_video_loaded {
|
|||
}
|
||||
};
|
||||
|
||||
struct time_snap_scene : public validate_video_loaded {
|
||||
struct time_snap_scene final : public validate_video_loaded {
|
||||
CMD_NAME("time/snap/scene")
|
||||
CMD_ICON(snap_subs_to_scene)
|
||||
STR_MENU("Snap to S&cene")
|
||||
|
@ -243,7 +243,7 @@ struct time_snap_scene : public validate_video_loaded {
|
|||
}
|
||||
};
|
||||
|
||||
struct time_add_lead_both : public Command {
|
||||
struct time_add_lead_both final : public Command {
|
||||
CMD_NAME("time/lead/both")
|
||||
STR_MENU("Add lead in and out")
|
||||
STR_DISP("Add lead in and out")
|
||||
|
@ -256,7 +256,7 @@ struct time_add_lead_both : public Command {
|
|||
}
|
||||
};
|
||||
|
||||
struct time_add_lead_in : public Command {
|
||||
struct time_add_lead_in final : public Command {
|
||||
CMD_NAME("time/lead/in")
|
||||
CMD_ICON(button_leadin)
|
||||
STR_MENU("Add lead in")
|
||||
|
@ -268,7 +268,7 @@ struct time_add_lead_in : public Command {
|
|||
}
|
||||
};
|
||||
|
||||
struct time_add_lead_out : public Command {
|
||||
struct time_add_lead_out final : public Command {
|
||||
CMD_NAME("time/lead/out")
|
||||
CMD_ICON(button_leadout)
|
||||
STR_MENU("Add lead out")
|
||||
|
@ -280,7 +280,7 @@ struct time_add_lead_out : public Command {
|
|||
}
|
||||
};
|
||||
|
||||
struct time_length_increase : public Command {
|
||||
struct time_length_increase final : public Command {
|
||||
CMD_NAME("time/length/increase")
|
||||
STR_MENU("Increase length")
|
||||
STR_DISP("Increase length")
|
||||
|
@ -291,7 +291,7 @@ struct time_length_increase : public Command {
|
|||
}
|
||||
};
|
||||
|
||||
struct time_length_increase_shift : public Command {
|
||||
struct time_length_increase_shift final : public Command {
|
||||
CMD_NAME("time/length/increase/shift")
|
||||
STR_MENU("Increase length and shift")
|
||||
STR_DISP("Increase length and shift")
|
||||
|
@ -302,7 +302,7 @@ struct time_length_increase_shift : public Command {
|
|||
}
|
||||
};
|
||||
|
||||
struct time_length_decrease : public Command {
|
||||
struct time_length_decrease final : public Command {
|
||||
CMD_NAME("time/length/decrease")
|
||||
STR_MENU("Decrease length")
|
||||
STR_DISP("Decrease length")
|
||||
|
@ -313,7 +313,7 @@ struct time_length_decrease : public Command {
|
|||
}
|
||||
};
|
||||
|
||||
struct time_length_decrease_shift : public Command {
|
||||
struct time_length_decrease_shift final : public Command {
|
||||
CMD_NAME("time/length/decrease/shift")
|
||||
STR_MENU("Decrease length and shift")
|
||||
STR_DISP("Decrease length and shift")
|
||||
|
@ -324,7 +324,7 @@ struct time_length_decrease_shift : public Command {
|
|||
}
|
||||
};
|
||||
|
||||
struct time_start_increase : public Command {
|
||||
struct time_start_increase final : public Command {
|
||||
CMD_NAME("time/start/increase")
|
||||
STR_MENU("Shift start time forward")
|
||||
STR_DISP("Shift start time forward")
|
||||
|
@ -335,7 +335,7 @@ struct time_start_increase : public Command {
|
|||
}
|
||||
};
|
||||
|
||||
struct time_start_decrease : public Command {
|
||||
struct time_start_decrease final : public Command {
|
||||
CMD_NAME("time/start/decrease")
|
||||
STR_MENU("Shift start time backward")
|
||||
STR_DISP("Shift start time backward")
|
||||
|
@ -346,7 +346,7 @@ struct time_start_decrease : public Command {
|
|||
}
|
||||
};
|
||||
|
||||
struct time_snap_start_video : public validate_video_loaded {
|
||||
struct time_snap_start_video final : public validate_video_loaded {
|
||||
CMD_NAME("time/snap/start_video")
|
||||
CMD_ICON(substart_to_video)
|
||||
STR_MENU("Snap &Start to Video")
|
||||
|
@ -358,7 +358,7 @@ struct time_snap_start_video : public validate_video_loaded {
|
|||
}
|
||||
};
|
||||
|
||||
struct time_next : public Command {
|
||||
struct time_next final : public Command {
|
||||
CMD_NAME("time/next")
|
||||
CMD_ICON(button_next)
|
||||
STR_MENU("Next Line")
|
||||
|
@ -370,7 +370,7 @@ struct time_next : public Command {
|
|||
}
|
||||
};
|
||||
|
||||
struct time_prev : public Command {
|
||||
struct time_prev final : public Command {
|
||||
CMD_NAME("time/prev")
|
||||
CMD_ICON(button_prev)
|
||||
STR_MENU("Previous Line")
|
||||
|
|
|
@ -44,7 +44,7 @@
|
|||
namespace {
|
||||
using cmd::Command;
|
||||
|
||||
struct timecode_close : public Command {
|
||||
struct timecode_close final : public Command {
|
||||
CMD_NAME("timecode/close")
|
||||
CMD_ICON(close_timecodes_menu)
|
||||
STR_MENU("Close Timecodes File")
|
||||
|
@ -61,7 +61,7 @@ struct timecode_close : public Command {
|
|||
}
|
||||
};
|
||||
|
||||
struct timecode_open : public Command {
|
||||
struct timecode_open final : public Command {
|
||||
CMD_NAME("timecode/open")
|
||||
CMD_ICON(open_timecodes_menu)
|
||||
STR_MENU("Open Timecodes File...")
|
||||
|
@ -76,7 +76,7 @@ struct timecode_open : public Command {
|
|||
}
|
||||
};
|
||||
|
||||
struct timecode_save : public Command {
|
||||
struct timecode_save final : public Command {
|
||||
CMD_NAME("timecode/save")
|
||||
CMD_ICON(save_timecodes_menu)
|
||||
STR_MENU("Save Timecodes File...")
|
||||
|
|
|
@ -60,7 +60,7 @@
|
|||
namespace {
|
||||
using cmd::Command;
|
||||
|
||||
struct tool_assdraw : public Command {
|
||||
struct tool_assdraw final : public Command {
|
||||
CMD_NAME("tool/assdraw")
|
||||
CMD_ICON(assdraw)
|
||||
STR_MENU("ASSDraw3...")
|
||||
|
@ -72,7 +72,7 @@ struct tool_assdraw : public Command {
|
|||
}
|
||||
};
|
||||
|
||||
struct tool_export : public Command {
|
||||
struct tool_export final : public Command {
|
||||
CMD_NAME("tool/export")
|
||||
CMD_ICON(export_menu)
|
||||
STR_MENU("&Export Subtitles...")
|
||||
|
@ -85,7 +85,7 @@ struct tool_export : public Command {
|
|||
}
|
||||
};
|
||||
|
||||
struct tool_font_collector : public Command {
|
||||
struct tool_font_collector final : public Command {
|
||||
CMD_NAME("tool/font_collector")
|
||||
CMD_ICON(font_collector_button)
|
||||
STR_MENU("&Fonts Collector...")
|
||||
|
@ -97,7 +97,7 @@ struct tool_font_collector : public Command {
|
|||
}
|
||||
};
|
||||
|
||||
struct tool_line_select : public Command {
|
||||
struct tool_line_select final : public Command {
|
||||
CMD_NAME("tool/line/select")
|
||||
CMD_ICON(select_lines_button)
|
||||
STR_MENU("S&elect Lines...")
|
||||
|
@ -109,7 +109,7 @@ struct tool_line_select : public Command {
|
|||
}
|
||||
};
|
||||
|
||||
struct tool_resampleres : public Command {
|
||||
struct tool_resampleres final : public Command {
|
||||
CMD_NAME("tool/resampleres")
|
||||
CMD_ICON(resample_toolbutton)
|
||||
STR_MENU("&Resample Resolution...")
|
||||
|
@ -124,7 +124,7 @@ struct tool_resampleres : public Command {
|
|||
}
|
||||
};
|
||||
|
||||
struct tool_style_assistant : public Command {
|
||||
struct tool_style_assistant final : public Command {
|
||||
CMD_NAME("tool/style/assistant")
|
||||
CMD_ICON(styling_toolbutton)
|
||||
STR_MENU("St&yling Assistant...")
|
||||
|
@ -144,7 +144,7 @@ struct tool_styling_assistant_validator : public Command {
|
|||
}
|
||||
};
|
||||
|
||||
struct tool_styling_assistant_commit : public tool_styling_assistant_validator {
|
||||
struct tool_styling_assistant_commit final : public tool_styling_assistant_validator {
|
||||
CMD_NAME("tool/styling_assistant/commit")
|
||||
STR_MENU("&Accept changes")
|
||||
STR_DISP("Accept changes")
|
||||
|
@ -155,7 +155,7 @@ struct tool_styling_assistant_commit : public tool_styling_assistant_validator {
|
|||
}
|
||||
};
|
||||
|
||||
struct tool_styling_assistant_preview : public tool_styling_assistant_validator {
|
||||
struct tool_styling_assistant_preview final : public tool_styling_assistant_validator {
|
||||
CMD_NAME("tool/styling_assistant/preview")
|
||||
STR_MENU("&Preview changes")
|
||||
STR_DISP("Preview changes")
|
||||
|
@ -166,7 +166,7 @@ struct tool_styling_assistant_preview : public tool_styling_assistant_validator
|
|||
}
|
||||
};
|
||||
|
||||
struct tool_style_manager : public Command {
|
||||
struct tool_style_manager final : public Command {
|
||||
CMD_NAME("tool/style/manager")
|
||||
CMD_ICON(style_toolbutton)
|
||||
STR_MENU("&Styles Manager...")
|
||||
|
@ -178,7 +178,7 @@ struct tool_style_manager : public Command {
|
|||
}
|
||||
};
|
||||
|
||||
struct tool_time_kanji : public Command {
|
||||
struct tool_time_kanji final : public Command {
|
||||
CMD_NAME("tool/time/kanji")
|
||||
CMD_ICON(kara_timing_copier)
|
||||
STR_MENU("&Kanji Timer...")
|
||||
|
@ -190,7 +190,7 @@ struct tool_time_kanji : public Command {
|
|||
}
|
||||
};
|
||||
|
||||
struct tool_time_postprocess : public Command {
|
||||
struct tool_time_postprocess final : public Command {
|
||||
CMD_NAME("tool/time/postprocess")
|
||||
CMD_ICON(timing_processor_toolbutton)
|
||||
STR_MENU("&Timing Post-Processor...")
|
||||
|
@ -202,7 +202,7 @@ struct tool_time_postprocess : public Command {
|
|||
}
|
||||
};
|
||||
|
||||
struct tool_translation_assistant : public Command {
|
||||
struct tool_translation_assistant final : public Command {
|
||||
CMD_NAME("tool/translation_assistant")
|
||||
CMD_ICON(translation_toolbutton)
|
||||
STR_MENU("&Translation Assistant...")
|
||||
|
@ -228,7 +228,7 @@ struct tool_translation_assistant_validator : public Command {
|
|||
}
|
||||
};
|
||||
|
||||
struct tool_translation_assistant_commit : public tool_translation_assistant_validator {
|
||||
struct tool_translation_assistant_commit final : public tool_translation_assistant_validator {
|
||||
CMD_NAME("tool/translation_assistant/commit")
|
||||
STR_MENU("&Accept changes")
|
||||
STR_DISP("Accept changes")
|
||||
|
@ -239,7 +239,7 @@ struct tool_translation_assistant_commit : public tool_translation_assistant_val
|
|||
}
|
||||
};
|
||||
|
||||
struct tool_translation_assistant_preview : public tool_translation_assistant_validator {
|
||||
struct tool_translation_assistant_preview final : public tool_translation_assistant_validator {
|
||||
CMD_NAME("tool/translation_assistant/preview")
|
||||
STR_MENU("&Preview changes")
|
||||
STR_DISP("Preview changes")
|
||||
|
@ -250,7 +250,7 @@ struct tool_translation_assistant_preview : public tool_translation_assistant_va
|
|||
}
|
||||
};
|
||||
|
||||
struct tool_translation_assistant_next : public tool_translation_assistant_validator {
|
||||
struct tool_translation_assistant_next final : public tool_translation_assistant_validator {
|
||||
CMD_NAME("tool/translation_assistant/next")
|
||||
STR_MENU("&Next Line")
|
||||
STR_DISP("Next Line")
|
||||
|
@ -261,7 +261,7 @@ struct tool_translation_assistant_next : public tool_translation_assistant_valid
|
|||
}
|
||||
};
|
||||
|
||||
struct tool_translation_assistant_prev : public tool_translation_assistant_validator {
|
||||
struct tool_translation_assistant_prev final : public tool_translation_assistant_validator {
|
||||
CMD_NAME("tool/translation_assistant/prev")
|
||||
STR_MENU("&Previous Line")
|
||||
STR_DISP("Previous Line")
|
||||
|
@ -273,7 +273,7 @@ struct tool_translation_assistant_prev : public tool_translation_assistant_valid
|
|||
};
|
||||
}
|
||||
|
||||
struct tool_translation_assistant_insert : public tool_translation_assistant_validator {
|
||||
struct tool_translation_assistant_insert final : public tool_translation_assistant_validator {
|
||||
CMD_NAME("tool/translation_assistant/insert_original")
|
||||
STR_MENU("&Insert Original")
|
||||
STR_DISP("Insert Original")
|
||||
|
|
|
@ -85,7 +85,7 @@ struct validator_video_attached : public Command {
|
|||
}
|
||||
};
|
||||
|
||||
struct video_aspect_cinematic : public validator_video_loaded {
|
||||
struct video_aspect_cinematic final : public validator_video_loaded {
|
||||
CMD_NAME("video/aspect/cinematic")
|
||||
STR_MENU("&Cinematic (2.35)")
|
||||
STR_DISP("Cinematic (2.35)")
|
||||
|
@ -103,7 +103,7 @@ struct video_aspect_cinematic : public validator_video_loaded {
|
|||
}
|
||||
};
|
||||
|
||||
struct video_aspect_custom : public validator_video_loaded {
|
||||
struct video_aspect_custom final : public validator_video_loaded {
|
||||
CMD_NAME("video/aspect/custom")
|
||||
STR_MENU("C&ustom...")
|
||||
STR_DISP("Custom")
|
||||
|
@ -146,7 +146,7 @@ struct video_aspect_custom : public validator_video_loaded {
|
|||
}
|
||||
};
|
||||
|
||||
struct video_aspect_default : public validator_video_loaded {
|
||||
struct video_aspect_default final : public validator_video_loaded {
|
||||
CMD_NAME("video/aspect/default")
|
||||
STR_MENU("&Default")
|
||||
STR_DISP("Default")
|
||||
|
@ -164,7 +164,7 @@ struct video_aspect_default : public validator_video_loaded {
|
|||
}
|
||||
};
|
||||
|
||||
struct video_aspect_full : public validator_video_loaded {
|
||||
struct video_aspect_full final : public validator_video_loaded {
|
||||
CMD_NAME("video/aspect/full")
|
||||
STR_MENU("&Fullscreen (4:3)")
|
||||
STR_DISP("Fullscreen (4:3)")
|
||||
|
@ -182,7 +182,7 @@ struct video_aspect_full : public validator_video_loaded {
|
|||
}
|
||||
};
|
||||
|
||||
struct video_aspect_wide : public validator_video_loaded {
|
||||
struct video_aspect_wide final : public validator_video_loaded {
|
||||
CMD_NAME("video/aspect/wide")
|
||||
STR_MENU("&Widescreen (16:9)")
|
||||
STR_DISP("Widescreen (16:9)")
|
||||
|
@ -200,7 +200,7 @@ struct video_aspect_wide : public validator_video_loaded {
|
|||
}
|
||||
};
|
||||
|
||||
struct video_close : public validator_video_loaded {
|
||||
struct video_close final : public validator_video_loaded {
|
||||
CMD_NAME("video/close")
|
||||
CMD_ICON(close_video_menu)
|
||||
STR_MENU("&Close Video")
|
||||
|
@ -212,7 +212,7 @@ struct video_close : public validator_video_loaded {
|
|||
}
|
||||
};
|
||||
|
||||
struct video_copy_coordinates : public validator_video_loaded {
|
||||
struct video_copy_coordinates final : public validator_video_loaded {
|
||||
CMD_NAME("video/copy_coordinates")
|
||||
STR_MENU("Copy coordinates to Clipboard")
|
||||
STR_DISP("Copy coordinates to Clipboard")
|
||||
|
@ -223,7 +223,7 @@ struct video_copy_coordinates : public validator_video_loaded {
|
|||
}
|
||||
};
|
||||
|
||||
struct video_cycle_subtitles_provider : public cmd::Command {
|
||||
struct video_cycle_subtitles_provider final : public cmd::Command {
|
||||
CMD_NAME("video/subtitles_provider/cycle")
|
||||
STR_MENU("Cycle active subtitles provider")
|
||||
STR_DISP("Cycle active subtitles provider")
|
||||
|
@ -242,7 +242,7 @@ struct video_cycle_subtitles_provider : public cmd::Command {
|
|||
}
|
||||
};
|
||||
|
||||
struct video_detach : public validator_video_loaded {
|
||||
struct video_detach final : public validator_video_loaded {
|
||||
CMD_NAME("video/detach")
|
||||
CMD_ICON(detach_video_menu)
|
||||
STR_MENU("&Detach Video")
|
||||
|
@ -262,7 +262,7 @@ struct video_detach : public validator_video_loaded {
|
|||
}
|
||||
};
|
||||
|
||||
struct video_details : public validator_video_loaded {
|
||||
struct video_details final : public validator_video_loaded {
|
||||
CMD_NAME("video/details")
|
||||
CMD_ICON(show_video_details_menu)
|
||||
STR_MENU("Show &Video Details")
|
||||
|
@ -275,7 +275,7 @@ struct video_details : public validator_video_loaded {
|
|||
}
|
||||
};
|
||||
|
||||
struct video_focus_seek : public validator_video_loaded {
|
||||
struct video_focus_seek final : public validator_video_loaded {
|
||||
CMD_NAME("video/focus_seek")
|
||||
STR_MENU("Toggle video slider focus")
|
||||
STR_DISP("Toggle video slider focus")
|
||||
|
@ -293,7 +293,7 @@ struct video_focus_seek : public validator_video_loaded {
|
|||
}
|
||||
};
|
||||
|
||||
struct video_frame_copy : public validator_video_loaded {
|
||||
struct video_frame_copy final : public validator_video_loaded {
|
||||
CMD_NAME("video/frame/copy")
|
||||
STR_MENU("Copy image to Clipboard")
|
||||
STR_DISP("Copy image to Clipboard")
|
||||
|
@ -304,7 +304,7 @@ struct video_frame_copy : public validator_video_loaded {
|
|||
}
|
||||
};
|
||||
|
||||
struct video_frame_copy_raw : public validator_video_loaded {
|
||||
struct video_frame_copy_raw final : public validator_video_loaded {
|
||||
CMD_NAME("video/frame/copy/raw")
|
||||
STR_MENU("Copy image to Clipboard (no subtitles)")
|
||||
STR_DISP("Copy image to Clipboard (no subtitles)")
|
||||
|
@ -315,7 +315,7 @@ struct video_frame_copy_raw : public validator_video_loaded {
|
|||
}
|
||||
};
|
||||
|
||||
struct video_frame_next : public validator_video_loaded {
|
||||
struct video_frame_next final : public validator_video_loaded {
|
||||
CMD_NAME("video/frame/next")
|
||||
STR_MENU("Next Frame")
|
||||
STR_DISP("Next Frame")
|
||||
|
@ -326,7 +326,7 @@ struct video_frame_next : public validator_video_loaded {
|
|||
}
|
||||
};
|
||||
|
||||
struct video_frame_next_boundary : public validator_video_loaded {
|
||||
struct video_frame_next_boundary final : public validator_video_loaded {
|
||||
CMD_NAME("video/frame/next/boundary")
|
||||
STR_MENU("Next Boundary")
|
||||
STR_DISP("Next Boundary")
|
||||
|
@ -355,7 +355,7 @@ struct video_frame_next_boundary : public validator_video_loaded {
|
|||
}
|
||||
};
|
||||
|
||||
struct video_frame_next_keyframe : public validator_video_loaded {
|
||||
struct video_frame_next_keyframe final : public validator_video_loaded {
|
||||
CMD_NAME("video/frame/next/keyframe")
|
||||
STR_MENU("Next Keyframe")
|
||||
STR_DISP("Next Keyframe")
|
||||
|
@ -369,7 +369,7 @@ struct video_frame_next_keyframe : public validator_video_loaded {
|
|||
}
|
||||
};
|
||||
|
||||
struct video_frame_next_large : public validator_video_loaded {
|
||||
struct video_frame_next_large final : public validator_video_loaded {
|
||||
CMD_NAME("video/frame/next/large")
|
||||
STR_MENU("Fast jump forward")
|
||||
STR_DISP("Fast jump forward")
|
||||
|
@ -382,7 +382,7 @@ struct video_frame_next_large : public validator_video_loaded {
|
|||
}
|
||||
};
|
||||
|
||||
struct video_frame_prev : public validator_video_loaded {
|
||||
struct video_frame_prev final : public validator_video_loaded {
|
||||
CMD_NAME("video/frame/prev")
|
||||
STR_MENU("Previous Frame")
|
||||
STR_DISP("Previous Frame")
|
||||
|
@ -393,7 +393,7 @@ struct video_frame_prev : public validator_video_loaded {
|
|||
}
|
||||
};
|
||||
|
||||
struct video_frame_prev_boundary : public validator_video_loaded {
|
||||
struct video_frame_prev_boundary final : public validator_video_loaded {
|
||||
CMD_NAME("video/frame/prev/boundary")
|
||||
STR_MENU("Previous Boundary")
|
||||
STR_DISP("Previous Boundary")
|
||||
|
@ -422,7 +422,7 @@ struct video_frame_prev_boundary : public validator_video_loaded {
|
|||
}
|
||||
};
|
||||
|
||||
struct video_frame_prev_keyframe : public validator_video_loaded {
|
||||
struct video_frame_prev_keyframe final : public validator_video_loaded {
|
||||
CMD_NAME("video/frame/prev/keyframe")
|
||||
STR_MENU("Previous Keyframe")
|
||||
STR_DISP("Previous Keyframe")
|
||||
|
@ -444,7 +444,7 @@ struct video_frame_prev_keyframe : public validator_video_loaded {
|
|||
}
|
||||
};
|
||||
|
||||
struct video_frame_prev_large : public validator_video_loaded {
|
||||
struct video_frame_prev_large final : public validator_video_loaded {
|
||||
CMD_NAME("video/frame/prev/large")
|
||||
STR_MENU("Fast jump backwards")
|
||||
STR_DISP("Fast jump backwards")
|
||||
|
@ -495,7 +495,7 @@ static void save_snapshot(agi::Context *c, bool raw) {
|
|||
GetImage(*c->videoController->GetFrame(c->videoController->GetFrameN(), raw)).SaveFile(to_wx(path), wxBITMAP_TYPE_PNG);
|
||||
}
|
||||
|
||||
struct video_frame_save : public validator_video_loaded {
|
||||
struct video_frame_save final : public validator_video_loaded {
|
||||
CMD_NAME("video/frame/save")
|
||||
STR_MENU("Save PNG snapshot")
|
||||
STR_DISP("Save PNG snapshot")
|
||||
|
@ -506,7 +506,7 @@ struct video_frame_save : public validator_video_loaded {
|
|||
}
|
||||
};
|
||||
|
||||
struct video_frame_save_raw : public validator_video_loaded {
|
||||
struct video_frame_save_raw final : public validator_video_loaded {
|
||||
CMD_NAME("video/frame/save/raw")
|
||||
STR_MENU("Save PNG snapshot (no subtitles)")
|
||||
STR_DISP("Save PNG snapshot (no subtitles)")
|
||||
|
@ -517,7 +517,7 @@ struct video_frame_save_raw : public validator_video_loaded {
|
|||
}
|
||||
};
|
||||
|
||||
struct video_jump : public validator_video_loaded {
|
||||
struct video_jump final : public validator_video_loaded {
|
||||
CMD_NAME("video/jump")
|
||||
CMD_ICON(jumpto_button)
|
||||
STR_MENU("&Jump to...")
|
||||
|
@ -533,7 +533,7 @@ struct video_jump : public validator_video_loaded {
|
|||
}
|
||||
};
|
||||
|
||||
struct video_jump_end : public validator_video_loaded {
|
||||
struct video_jump_end final : public validator_video_loaded {
|
||||
CMD_NAME("video/jump/end")
|
||||
CMD_ICON(video_to_subend)
|
||||
STR_MENU("Jump Video to &End")
|
||||
|
@ -547,7 +547,7 @@ struct video_jump_end : public validator_video_loaded {
|
|||
}
|
||||
};
|
||||
|
||||
struct video_jump_start : public validator_video_loaded {
|
||||
struct video_jump_start final : public validator_video_loaded {
|
||||
CMD_NAME("video/jump/start")
|
||||
CMD_ICON(video_to_substart)
|
||||
STR_MENU("Jump Video to &Start")
|
||||
|
@ -560,7 +560,7 @@ struct video_jump_start : public validator_video_loaded {
|
|||
}
|
||||
};
|
||||
|
||||
struct video_open : public Command {
|
||||
struct video_open final : public Command {
|
||||
CMD_NAME("video/open")
|
||||
CMD_ICON(open_video_menu)
|
||||
STR_MENU("&Open Video...")
|
||||
|
@ -576,7 +576,7 @@ struct video_open : public Command {
|
|||
}
|
||||
};
|
||||
|
||||
struct video_open_dummy : public Command {
|
||||
struct video_open_dummy final : public Command {
|
||||
CMD_NAME("video/open/dummy")
|
||||
CMD_ICON(use_dummy_video_menu)
|
||||
STR_MENU("&Use Dummy Video...")
|
||||
|
@ -590,7 +590,7 @@ struct video_open_dummy : public Command {
|
|||
}
|
||||
};
|
||||
|
||||
struct video_opt_autoscroll : public Command {
|
||||
struct video_opt_autoscroll final : public Command {
|
||||
CMD_NAME("video/opt/autoscroll")
|
||||
CMD_ICON(toggle_video_autoscroll)
|
||||
STR_MENU("Toggle autoscroll of video")
|
||||
|
@ -607,7 +607,7 @@ struct video_opt_autoscroll : public Command {
|
|||
}
|
||||
};
|
||||
|
||||
struct video_play : public validator_video_loaded {
|
||||
struct video_play final : public validator_video_loaded {
|
||||
CMD_NAME("video/play")
|
||||
CMD_ICON(button_play)
|
||||
STR_MENU("Play")
|
||||
|
@ -619,7 +619,7 @@ struct video_play : public validator_video_loaded {
|
|||
}
|
||||
};
|
||||
|
||||
struct video_play_line : public validator_video_loaded {
|
||||
struct video_play_line final : public validator_video_loaded {
|
||||
CMD_NAME("video/play/line")
|
||||
CMD_ICON(button_playline)
|
||||
STR_MENU("Play line")
|
||||
|
@ -631,7 +631,7 @@ struct video_play_line : public validator_video_loaded {
|
|||
}
|
||||
};
|
||||
|
||||
struct video_show_overscan : public validator_video_loaded {
|
||||
struct video_show_overscan final : public validator_video_loaded {
|
||||
CMD_NAME("video/show_overscan")
|
||||
STR_MENU("Show &Overscan Mask")
|
||||
STR_DISP("Show Overscan Mask")
|
||||
|
@ -715,7 +715,7 @@ public:
|
|||
}
|
||||
};
|
||||
|
||||
struct video_zoom_in : public validator_video_attached {
|
||||
struct video_zoom_in final : public validator_video_attached {
|
||||
CMD_NAME("video/zoom/in")
|
||||
CMD_ICON(zoom_in_button)
|
||||
STR_MENU("Zoom In")
|
||||
|
@ -727,7 +727,7 @@ struct video_zoom_in : public validator_video_attached {
|
|||
}
|
||||
};
|
||||
|
||||
struct video_zoom_out : public validator_video_attached {
|
||||
struct video_zoom_out final : public validator_video_attached {
|
||||
CMD_NAME("video/zoom/out")
|
||||
CMD_ICON(zoom_out_button)
|
||||
STR_MENU("Zoom Out")
|
||||
|
|
|
@ -37,7 +37,7 @@ namespace {
|
|||
using cmd::Command;
|
||||
|
||||
template<class T>
|
||||
struct visual_tool_command : public Command {
|
||||
struct visual_tool_command final : public Command {
|
||||
CMD_TYPE(COMMAND_VALIDATE | COMMAND_RADIO)
|
||||
|
||||
bool Validate(const agi::Context *c) override {
|
||||
|
@ -53,7 +53,7 @@ namespace {
|
|||
}
|
||||
};
|
||||
|
||||
struct visual_mode_cross : public visual_tool_command<VisualToolCross> {
|
||||
struct visual_mode_cross final : public visual_tool_command<VisualToolCross> {
|
||||
CMD_NAME("video/tool/cross")
|
||||
CMD_ICON(visual_standard)
|
||||
STR_MENU("Standard")
|
||||
|
@ -61,7 +61,7 @@ namespace {
|
|||
STR_HELP("Standard mode, double click sets position")
|
||||
};
|
||||
|
||||
struct visual_mode_drag : public visual_tool_command<VisualToolDrag> {
|
||||
struct visual_mode_drag final : public visual_tool_command<VisualToolDrag> {
|
||||
CMD_NAME("video/tool/drag")
|
||||
CMD_ICON(visual_move)
|
||||
STR_MENU("Drag")
|
||||
|
@ -69,7 +69,7 @@ namespace {
|
|||
STR_HELP("Drag subtitles")
|
||||
};
|
||||
|
||||
struct visual_mode_rotate_z : public visual_tool_command<VisualToolRotateZ> {
|
||||
struct visual_mode_rotate_z final : public visual_tool_command<VisualToolRotateZ> {
|
||||
CMD_NAME("video/tool/rotate/z")
|
||||
CMD_ICON(visual_rotatez)
|
||||
STR_MENU("Rotate Z")
|
||||
|
@ -77,7 +77,7 @@ namespace {
|
|||
STR_HELP("Rotate subtitles on their Z axis")
|
||||
};
|
||||
|
||||
struct visual_mode_rotate_xy : public visual_tool_command<VisualToolRotateXY> {
|
||||
struct visual_mode_rotate_xy final : public visual_tool_command<VisualToolRotateXY> {
|
||||
CMD_NAME("video/tool/rotate/xy")
|
||||
CMD_ICON(visual_rotatexy)
|
||||
STR_MENU("Rotate XY")
|
||||
|
@ -85,7 +85,7 @@ namespace {
|
|||
STR_HELP("Rotate subtitles on their X and Y axes")
|
||||
};
|
||||
|
||||
struct visual_mode_scale : public visual_tool_command<VisualToolScale> {
|
||||
struct visual_mode_scale final : public visual_tool_command<VisualToolScale> {
|
||||
CMD_NAME("video/tool/scale")
|
||||
CMD_ICON(visual_scale)
|
||||
STR_MENU("Scale")
|
||||
|
@ -93,7 +93,7 @@ namespace {
|
|||
STR_HELP("Scale subtitles on X and Y axes")
|
||||
};
|
||||
|
||||
struct visual_mode_clip : public visual_tool_command<VisualToolClip> {
|
||||
struct visual_mode_clip final : public visual_tool_command<VisualToolClip> {
|
||||
CMD_NAME("video/tool/clip")
|
||||
CMD_ICON(visual_clip)
|
||||
STR_MENU("Clip")
|
||||
|
@ -101,7 +101,7 @@ namespace {
|
|||
STR_HELP("Clip subtitles to a rectangle")
|
||||
};
|
||||
|
||||
struct visual_mode_vector_clip : public visual_tool_command<VisualToolVectorClip> {
|
||||
struct visual_mode_vector_clip final : public visual_tool_command<VisualToolVectorClip> {
|
||||
CMD_NAME("video/tool/vector_clip")
|
||||
CMD_ICON(visual_vector_clip)
|
||||
STR_MENU("Vector Clip")
|
||||
|
|
|
@ -39,7 +39,7 @@ class wxListEvent;
|
|||
|
||||
#include <wx/dialog.h>
|
||||
|
||||
class DialogAttachments : public wxDialog {
|
||||
class DialogAttachments final : public wxDialog {
|
||||
AssFile *ass;
|
||||
|
||||
wxListView *listView;
|
||||
|
|
|
@ -50,7 +50,7 @@ class wxButton;
|
|||
class wxListEvent;
|
||||
class wxListView;
|
||||
|
||||
class DialogAutomation : public wxDialog {
|
||||
class DialogAutomation final : public wxDialog {
|
||||
agi::Context *context;
|
||||
|
||||
/// Struct to attach a flag for global/local to scripts
|
||||
|
|
|
@ -24,7 +24,7 @@
|
|||
|
||||
class wxListBox;
|
||||
|
||||
class DialogAutosave : public wxDialog {
|
||||
class DialogAutosave final : public wxDialog {
|
||||
struct Version {
|
||||
wxString filename;
|
||||
wxDateTime date;
|
||||
|
|
|
@ -86,7 +86,7 @@ static const int spectrum_horz_vert_arrow_size = 4;
|
|||
|
||||
wxDEFINE_EVENT(EVT_SPECTRUM_CHANGE, wxCommandEvent);
|
||||
|
||||
class ColorPickerSpectrum : public wxControl {
|
||||
class ColorPickerSpectrum final : public wxControl {
|
||||
int x;
|
||||
int y;
|
||||
|
||||
|
@ -251,7 +251,7 @@ wxDEFINE_EVENT(EVT_RECENT_SELECT, wxThreadEvent);
|
|||
|
||||
/// @class ColorPickerRecent
|
||||
/// @brief A grid of recently used colors which can be selected by clicking on them
|
||||
class ColorPickerRecent : public wxStaticBitmap {
|
||||
class ColorPickerRecent final : public wxStaticBitmap {
|
||||
int rows; ///< Number of rows of colors
|
||||
int cols; ///< Number of cols of colors
|
||||
int cellsize; ///< Width/Height of each cell
|
||||
|
@ -344,7 +344,7 @@ public:
|
|||
|
||||
wxDEFINE_EVENT(EVT_DROPPER_SELECT, wxThreadEvent);
|
||||
|
||||
class ColorPickerScreenDropper : public wxControl {
|
||||
class ColorPickerScreenDropper final : public wxControl {
|
||||
wxBitmap capture;
|
||||
|
||||
int resx, resy;
|
||||
|
@ -434,7 +434,7 @@ void ColorPickerScreenDropper::DropFromScreenXY(int x, int y) {
|
|||
}
|
||||
|
||||
|
||||
class DialogColorPicker : public wxDialog {
|
||||
class DialogColorPicker final : public wxDialog {
|
||||
std::unique_ptr<PersistLocation> persist;
|
||||
|
||||
agi::Color cur_color; ///< Currently selected colour
|
||||
|
|
|
@ -42,7 +42,7 @@ class PersistLocation;
|
|||
class VideoBox;
|
||||
class VideoDisplay;
|
||||
|
||||
class DialogDetachedVideo : public wxDialog {
|
||||
class DialogDetachedVideo final : public wxDialog {
|
||||
agi::Context *context;
|
||||
VideoDisplay *old_display;
|
||||
wxWindow *old_slider;
|
||||
|
|
|
@ -26,7 +26,7 @@
|
|||
class wxFlexGridSizer;
|
||||
class wxStaticText;
|
||||
|
||||
class DialogDummyVideo : public wxDialog {
|
||||
class DialogDummyVideo final : public wxDialog {
|
||||
DialogDummyVideo(wxWindow *parent);
|
||||
|
||||
double fps;
|
||||
|
|
|
@ -42,7 +42,7 @@ class wxChoice;
|
|||
class wxSizer;
|
||||
class wxTextCtrl;
|
||||
|
||||
class DialogExport : public wxDialog {
|
||||
class DialogExport final : public wxDialog {
|
||||
agi::Context *c;
|
||||
|
||||
/// The export transform engine
|
||||
|
|
|
@ -48,7 +48,7 @@ namespace {
|
|||
const boost::regex timecode_regex("([[:digit:]]{2}):([[:digit:]]{2}):([[:digit:]]{2}):([[:digit:]]{2})");
|
||||
|
||||
/// Validator for SMPTE timecodes
|
||||
class TimecodeValidator : public wxValidator {
|
||||
class TimecodeValidator final : public wxValidator {
|
||||
EbuTimecode *value;
|
||||
|
||||
wxTextCtrl *GetCtrl() const { return dynamic_cast<wxTextCtrl*>(GetWindow()); }
|
||||
|
|
|
@ -112,7 +112,7 @@ public:
|
|||
};
|
||||
|
||||
/// Dialog box for getting an export configuration for EBU Tech 3264-1991
|
||||
class EbuExportConfigurationDialog : public wxDialog {
|
||||
class EbuExportConfigurationDialog final : public wxDialog {
|
||||
public:
|
||||
/// Constructor
|
||||
/// @param owner Parent window of the dialog
|
||||
|
|
|
@ -31,7 +31,7 @@ class wxStaticText;
|
|||
class wxTextCtrl;
|
||||
class wxThreadEvent;
|
||||
|
||||
class DialogFontsCollector : public wxDialog {
|
||||
class DialogFontsCollector final : public wxDialog {
|
||||
AssFile *subs;
|
||||
|
||||
ScintillaTextCtrl *collection_log;
|
||||
|
|
|
@ -38,7 +38,7 @@ namespace agi { struct Context; }
|
|||
class TimeEdit;
|
||||
class wxTextCtrl;
|
||||
|
||||
class DialogJumpTo : public wxDialog {
|
||||
class DialogJumpTo final : public wxDialog {
|
||||
agi::Context *c; ///< Project context
|
||||
long jumpframe; ///< Target frame to jump to
|
||||
TimeEdit *JumpTime; ///< Target time edit control
|
||||
|
|
|
@ -69,7 +69,7 @@
|
|||
#define TEXT_LABEL_SOURCE _("Source: ")
|
||||
#define TEXT_LABEL_DEST _("Dest: ")
|
||||
|
||||
class KaraokeLineMatchDisplay : public wxControl {
|
||||
class KaraokeLineMatchDisplay final : public wxControl {
|
||||
typedef AssKaraoke::Syllable MatchSyllable;
|
||||
|
||||
struct MatchGroup {
|
||||
|
|
|
@ -44,7 +44,7 @@ class KaraokeLineMatchDisplay;
|
|||
class wxComboBox;
|
||||
class wxCheckBox;
|
||||
|
||||
class DialogKanjiTimer : public wxDialog {
|
||||
class DialogKanjiTimer final : public wxDialog {
|
||||
AssFile *subs;
|
||||
|
||||
KaraokeLineMatchDisplay *display;
|
||||
|
|
|
@ -52,7 +52,7 @@
|
|||
#include <wx/stattext.h>
|
||||
#include <wx/textctrl.h>
|
||||
|
||||
class EmitLog : public agi::log::Emitter {
|
||||
class EmitLog final : public agi::log::Emitter {
|
||||
wxTextCtrl *text_ctrl;
|
||||
public:
|
||||
EmitLog(wxTextCtrl *t)
|
||||
|
|
|
@ -36,7 +36,7 @@
|
|||
|
||||
class wxCheckListBox;
|
||||
|
||||
class DialogPasteOver : public wxDialog {
|
||||
class DialogPasteOver final : public wxDialog {
|
||||
wxCheckListBox *ListBox;
|
||||
|
||||
void CheckAll(bool check);
|
||||
|
|
|
@ -72,7 +72,7 @@ namespace {
|
|||
}
|
||||
}
|
||||
|
||||
class DialogProgressSink : public agi::ProgressSink {
|
||||
class DialogProgressSink final : public agi::ProgressSink {
|
||||
DialogProgress *dialog;
|
||||
std::atomic<bool> cancelled;
|
||||
|
||||
|
|
|
@ -31,7 +31,7 @@ class wxTextCtrl;
|
|||
|
||||
/// @class DialogProgress
|
||||
/// @brief Progress-bar dialog box for displaying during long operations
|
||||
class DialogProgress : public wxDialog, public agi::BackgroundRunner {
|
||||
class DialogProgress final : public wxDialog, public agi::BackgroundRunner {
|
||||
friend class DialogProgressSink;
|
||||
DialogProgressSink *ps;
|
||||
|
||||
|
|
|
@ -41,7 +41,7 @@ class wxCheckBox;
|
|||
class wxComboBox;
|
||||
class wxTextCtrl;
|
||||
|
||||
class DialogProperties : public wxDialog {
|
||||
class DialogProperties final : public wxDialog {
|
||||
agi::Context *c; ///< Project this dialog is adjusting the properties of
|
||||
|
||||
/// Pairs of a script property and a text control for that property
|
||||
|
|
|
@ -29,7 +29,7 @@ struct ResampleSettings;
|
|||
/// @brief Configuration dialog for resolution resampling
|
||||
///
|
||||
/// Populate a ResampleSettings structure with data from the user
|
||||
class DialogResample : public wxDialog {
|
||||
class DialogResample final : public wxDialog {
|
||||
agi::Context *c; ///< Project context
|
||||
|
||||
wxSpinCtrl *res_x;
|
||||
|
|
|
@ -28,7 +28,7 @@ class SearchReplaceEngine;
|
|||
struct SearchReplaceSettings;
|
||||
class wxComboBox;
|
||||
|
||||
class DialogSearchReplace : public wxDialog {
|
||||
class DialogSearchReplace final : public wxDialog {
|
||||
agi::Context *c;
|
||||
std::unique_ptr<SearchReplaceSettings> settings;
|
||||
bool has_replace;
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
|
||||
/// @class SelectedChoicesDialog
|
||||
/// @brief wxMultiChoiceDialog with Select All and Select None
|
||||
class SelectedChoicesDialog : public wxMultiChoiceDialog {
|
||||
class SelectedChoicesDialog final : public wxMultiChoiceDialog {
|
||||
SelectedChoicesDialog(SelectedChoicesDialog const&);
|
||||
SelectedChoicesDialog& operator=(SelectedChoicesDialog const&);
|
||||
|
||||
|
|
|
@ -28,7 +28,7 @@ class wxRadioBox;
|
|||
class wxRadioButton;
|
||||
class wxTextCtrl;
|
||||
|
||||
class DialogSelection : public wxDialog {
|
||||
class DialogSelection final : public wxDialog {
|
||||
agi::Context *con; ///< Project context
|
||||
|
||||
wxTextCtrl *match_text; ///< Text to search for
|
||||
|
|
|
@ -43,7 +43,7 @@ namespace json {
|
|||
typedef std::deque<UnknownElement> Array;
|
||||
}
|
||||
|
||||
class DialogShiftTimes : public wxDialog {
|
||||
class DialogShiftTimes final : public wxDialog {
|
||||
wxDECLARE_NO_COPY_CLASS(DialogShiftTimes); // clang + libc++ herps a derp without this
|
||||
agi::Context *context;
|
||||
|
||||
|
|
|
@ -35,7 +35,7 @@ class wxComboBox;
|
|||
class wxListBox;
|
||||
class wxTextCtrl;
|
||||
|
||||
class DialogSpellChecker : public wxDialog {
|
||||
class DialogSpellChecker final : public wxDialog {
|
||||
agi::Context *context; ///< The project context
|
||||
std::unique_ptr<agi::SpellChecker> spellchecker; ///< The spellchecking engine
|
||||
|
||||
|
|
|
@ -47,7 +47,7 @@ class AssStyleStorage;
|
|||
class PersistLocation;
|
||||
class SubtitlesPreview;
|
||||
|
||||
class DialogStyleEditor : public wxDialog {
|
||||
class DialogStyleEditor final : public wxDialog {
|
||||
agi::Context *c;
|
||||
std::unique_ptr<PersistLocation> persist;
|
||||
|
||||
|
|
|
@ -52,7 +52,7 @@ class AssStyle;
|
|||
class DialogStyleEditor;
|
||||
class PersistLocation;
|
||||
|
||||
class DialogStyleManager : public wxDialog {
|
||||
class DialogStyleManager final : public wxDialog {
|
||||
agi::Context *c; ///< Project context
|
||||
std::unique_ptr<PersistLocation> persist;
|
||||
|
||||
|
|
|
@ -33,7 +33,7 @@ class wxCheckBox;
|
|||
class wxListBox;
|
||||
class wxTextCtrl;
|
||||
|
||||
class DialogStyling : public wxDialog {
|
||||
class DialogStyling final : public wxDialog {
|
||||
agi::Context *c;
|
||||
agi::signal::Connection active_line_connection;
|
||||
|
||||
|
|
|
@ -39,7 +39,7 @@
|
|||
///
|
||||
/// A simple dialog to let the user select the format of a plain text file
|
||||
/// being imported into Aegisub
|
||||
class DialogTextImport : public wxDialog {
|
||||
class DialogTextImport final : public wxDialog {
|
||||
std::string seperator;
|
||||
std::string comment;
|
||||
bool include_blank;
|
||||
|
|
|
@ -45,7 +45,7 @@ class wxSlider;
|
|||
|
||||
/// @class DialogTimingProcessor
|
||||
/// @brief Automatic postprocessor for correcting common timing issues
|
||||
class DialogTimingProcessor : public wxDialog {
|
||||
class DialogTimingProcessor final : public wxDialog {
|
||||
agi::Context *c; ///< Project context
|
||||
|
||||
int leadIn; ///< Lead-in to add in milliseconds
|
||||
|
|
|
@ -36,7 +36,7 @@ class wxStaticText;
|
|||
class wxCheckBox;
|
||||
|
||||
/// Assistant for translating subtitles in one language to another language
|
||||
class DialogTranslation : public wxDialog {
|
||||
class DialogTranslation final : public wxDialog {
|
||||
agi::Context *c;
|
||||
|
||||
agi::signal::Connection file_change_connection;
|
||||
|
|
|
@ -93,7 +93,7 @@ struct AegisubUpdateDescription {
|
|||
: url(std::move(url)), friendly_name(std::move(friendly_name)), description(std::move(description)) { }
|
||||
};
|
||||
|
||||
class VersionCheckerResultDialog : public wxDialog {
|
||||
class VersionCheckerResultDialog final : public wxDialog {
|
||||
void OnCloseButton(wxCommandEvent &evt);
|
||||
void OnRemindMeLater(wxCommandEvent &evt);
|
||||
void OnClose(wxCloseEvent &evt);
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue