File indexing completed on 2025-02-02 04:11:32

0001 /*
0002  * SPDX-FileCopyrightText: 2019-2023 Mattia Basaglia <dev@dragon.best>
0003  *
0004  * SPDX-License-Identifier: GPL-3.0-or-later
0005  */
0006 
0007 #pragma once
0008 
0009 #include "clickable_tab_bar.hpp"
0010 
0011 #include "model/document.hpp"
0012 #include "model/assets/composition.hpp"
0013 
0014 namespace glaxnimate::gui {
0015 
0016 class CompositionTabBar : public ClickableTabBar
0017 {
0018     Q_OBJECT
0019 
0020 public:
0021     explicit CompositionTabBar(QWidget *parent = nullptr);
0022 
0023     model::Composition* index_to_comp(int index) const;
0024 
0025     void set_document(model::Document* document);
0026 
0027     void set_current_composition(model::Composition* comp);
0028 
0029 private Q_SLOTS:
0030     void fw_switch(int i);
0031     void on_close(int i);
0032     void on_menu(int i);
0033     void setup_composition(model::Composition* comp, int index);
0034     void on_precomp_removed(int index);
0035 
0036 private:
0037     void update_comp_color(int index, model::Composition* comp);
0038 
0039 Q_SIGNALS:
0040     void switch_composition(model::Composition* comp, int index);
0041 
0042 private:
0043     model::Document* document = nullptr;
0044 };
0045 
0046 
0047 } // namespace glaxnimate::gui