Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/LibreOffice/vcl/inc/qt5/   (Office von Apache Version 25.8.3.2©)  Datei vom 5.10.2025 mit Größe 11 kB image not shown  

Quelle  QtInstanceTreeView.hxx   Sprache: C

 
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; fill-column: 100 -*- */
/*
 * This file is part of the LibreOffice project.
 *
 * This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
 */


#pragma once

#include "QtInstanceTreeIter.hxx"
#include "QtInstanceWidget.hxx"

#include <QtCore/QSortFilterProxyModel>
#include <QtGui/QStandardItemModel>
#include <QtWidgets/QTreeView>

class QtInstanceTreeView : public QtInstanceWidget, public virtual weld::TreeView
{
    Q_OBJECT

    QTreeView* m_pTreeView;

    /** The model displayed in the tree view. The proxy model takes care of sorting
     *  if sorting is enabled. */

    QSortFilterProxyModel* m_pModel;

    /** The QStandardItemModel used as the source model for `m_pModel`. */
    QStandardItemModel* m_pSourceModel;

    QItemSelectionModel* m_pSelectionModel;

    bool m_bExtraToggleButtonColumnEnabled = false;

public:
    QtInstanceTreeView(QTreeView* pTreeView);

    virtual void insert(const weld::TreeIter* pParent, int nPos, const OUString* pStr,
                        const OUString* pId, const OUString* pIconName,
                        VirtualDevice* pImageSurface, bool bChildrenOnDemand,
                        weld::TreeIter* pRet) override;

    virtual void insert_separator(int pos, const OUString& rId) override;

    virtual OUString get_selected_text() const override;
    virtual OUString get_selected_id() const override;

    virtual void enable_toggle_buttons(weld::ColumnToggleType eType) override;

    virtual void set_clicks_to_toggle(int nToggleBehavior) override;

    virtual int get_selected_index() const override;
    virtual void select(int nPos) override;
    virtual void unselect(int nPos) override;
    virtual void remove(int nPos) override;
    virtual OUString get_text(int nRow, int nCol = -1) const override;
    virtual void set_text(int nRow, const OUString& rText, int nCol = -1) override;
    virtual void set_sensitive(int nRow, bool bSensitive, int nCol = -1) override;
    virtual bool get_sensitive(int nRow, int nCol) const override;
    virtual void set_id(int row, const OUString& rId) override;
    virtual void set_toggle(int nRow, TriState eState, int nCol = -1) override;
    virtual TriState get_toggle(int nRow, int nCol = -1) const override;
    virtual void set_image(int nRow, const OUString& rImage, int nCol = -1) override;
    virtual void set_image(int nRow, VirtualDevice& rImage, int nCol = -1) override;
    virtual void set_image(int nRow, const css::uno::Reference<css::graphic::XGraphic>& rImage,
                           int nCol = -1) override;
    virtual void set_text_emphasis(int nRow, bool bOn, int nCol) override;
    virtual bool get_text_emphasis(int nRow, int nCol) const override;
    virtual void set_text_align(int nRow, double fAlign, int nCol) override;
    virtual void swap(int nPos1, int nPos2) override;
    virtual std::vector<int> get_selected_rows() const override;
    virtual void set_font_color(int nPos, const Color& rColor) override;
    virtual void scroll_to_row(int nRow) override;
    virtual bool is_selected(int nPos) const override;
    virtual int get_cursor_index() const override;
    virtual void set_cursor(int pos) override;

    virtual int find_text(const OUString& rText) const override;
    virtual OUString get_id(int nPos) const override;
    virtual int find_id(const OUString& rId) const override;

    virtual std::unique_ptr<weld::TreeIter> make_iterator(const weld::TreeIter* pOrig
                                                          = nullptr) const override;
    virtual void copy_iterator(const weld::TreeIter& rSource, weld::TreeIter& rDest) const override;
    virtual bool get_selected(weld::TreeIter* pIter) const override;
    virtual bool get_cursor(weld::TreeIter* pIter) const override;
    virtual void set_cursor(const weld::TreeIter& rIter) override;
    virtual bool get_iter_first(weld::TreeIter& rIter) const override;
    virtual bool iter_next_sibling(weld::TreeIter& rIter) const override;
    virtual bool iter_previous_sibling(weld::TreeIter& rIter) const override;
    virtual bool iter_next(weld::TreeIter& rIter) const override;
    virtual bool iter_previous(weld::TreeIter& rIter) const override;
    virtual bool iter_children(weld::TreeIter& rIter) const override;
    virtual bool iter_parent(weld::TreeIter& rIter) const override;
    virtual int get_iter_depth(const weld::TreeIter& rIter) const override;
    virtual int get_iter_index_in_parent(const weld::TreeIter& rIter) const override;

    virtual int iter_compare(const weld::TreeIter& a, const weld::TreeIter& b) const override;
    virtual bool iter_has_child(const weld::TreeIter& rIter) const override;
    virtual int iter_n_children(const weld::TreeIter& rIter) const override;
    virtual void remove(const weld::TreeIter& rIter) override;
    virtual void select(const weld::TreeIter& rIter) override;
    virtual void unselect(const weld::TreeIter& rIter) override;
    virtual void set_extra_row_indent(const weld::TreeIter& rIter, int nIndentLevel) override;
    virtual void set_text(const weld::TreeIter& rIter, const OUString& rStr,
                          int nCol = -1) override;
    virtual void set_sensitive(const weld::TreeIter& rIter, bool bSensitive,
                               int nCol = -1) override;
    virtual bool get_sensitive(const weld::TreeIter& rIter, int nCol) const override;
    virtual void set_text_emphasis(const weld::TreeIter& rIter, bool bOn, int nCol) override;
    virtual bool get_text_emphasis(const weld::TreeIter& rIter, int nCol) const override;
    virtual void set_text_align(const weld::TreeIter& rIter, double fAlign, int nCol) override;
    virtual void set_toggle(const weld::TreeIter& rIter, TriState eState, int nCol = -1) override;
    virtual TriState get_toggle(const weld::TreeIter& rIter, int nCol = -1) const override;
    virtual OUString get_text(const weld::TreeIter& rIter, int nCol = -1) const override;
    virtual void set_id(const weld::TreeIter& rIter, const OUString& rId) override;
    virtual OUString get_id(const weld::TreeIter& rIter) const override;
    virtual void set_image(const weld::TreeIter& rIter, const OUString& rImage,
                           int nCol = -1) override;
    virtual void set_image(const weld::TreeIter& rIter, VirtualDevice& rImage,
                           int nCol = -1) override;
    virtual void set_image(const weld::TreeIter& rIter,
                           const css::uno::Reference<css::graphic::XGraphic>& rImage,
                           int nCol = -1) override;
    virtual void set_font_color(const weld::TreeIter& rIter, const Color& rColor) override;
    virtual void scroll_to_row(const weld::TreeIter& rIter) override;
    virtual bool is_selected(const weld::TreeIter& rIter) const override;

    virtual void move_subtree(weld::TreeIter& rNode, const weld::TreeIter* pNewParent,
                              int nIndexInNewParent) override;

    virtual void all_foreach(const std::function<bool(weld::TreeIter&)>& func) override;
    virtual void selected_foreach(const std::function<bool(weld::TreeIter&)>& func) override;
    virtual void visible_foreach(const std::function<bool(weld::TreeIter&)>& func) override;
    virtual void bulk_insert_for_each(
        int nSourceCount, const std::function<void(weld::TreeIter&, int nSourceIndex)>& func,
        const weld::TreeIter* pParent = nullptr, const std::vector<int>* pFixedWidths = nullptr,
        bool bGoingToSetText = false) override;

    virtual bool get_row_expanded(const weld::TreeIter& rIter) const override;
    virtual void expand_row(const weld::TreeIter& rIter) override;
    virtual void collapse_row(const weld::TreeIter& rIter) override;
    virtual void set_children_on_demand(const weld::TreeIter& rIter,
                                        bool bChildrenOnDemand) override;
    virtual bool get_children_on_demand(const weld::TreeIter& rIter) const override;
    virtual void set_show_expanders(bool bShow) override;

    virtual void start_editing(const weld::TreeIter& rEntry) override;
    virtual void end_editing() override;

    virtual void enable_drag_source(rtl::Reference<TransferDataContainer>& rTransferable,
                                    sal_uInt8 eDNDConstants) override;

    virtual void select_all() override;
    virtual void unselect_all() override;

    virtual int n_children() const override;

    virtual void make_sorted() override;
    virtual void make_unsorted() override;
    virtual bool get_sort_order() const override;
    virtual void set_sort_order(bool bAscending) override;

    virtual void set_sort_indicator(TriState eState, int nColumn) override;
    virtual TriState get_sort_indicator(int nColumn) const override;

    virtual int get_sort_column() const override;
    virtual void set_sort_column(int nColumn) override;

    virtual void clear() override;
    virtual int get_height_rows(int nRows) const override;

    virtual void columns_autosize() override;
    virtual void set_column_fixed_widths(const std::vector<int>& rWidths) override;
    virtual void set_column_editables(const std::vector<bool>& rEditables) override;
    virtual int get_column_width(int nCol) const override;
    virtual void set_centered_column(int nCol) override;
    virtual OUString get_column_title(int nColumn) const override;
    virtual void set_column_title(int nColumn, const OUString& rTitle) override;

    virtual void set_selection_mode(SelectionMode eMode) override;
    virtual int count_selected_rows() const override;
    virtual void remove_selection() override;

    virtual bool changed_by_hover() const override;

    virtual void vadjustment_set_value(int nValue) override;
    virtual int vadjustment_get_value() const override;

    virtual void set_column_custom_renderer(int nColumn, bool bEnable) override;
    virtual void queue_draw() override;

    virtual bool get_dest_row_at_pos(const Point& rPos, weld::TreeIter* pResult, bool bDnDMode,
                                     bool bAutoScroll = true) override;
    virtual void unset_drag_dest_row() override;
    virtual tools::Rectangle get_row_area(const weld::TreeIter& rIter) const override;
    virtual weld::TreeView* get_drag_source() const override;

    using QtInstanceWidget::set_sensitive;
    using QtInstanceWidget::get_sensitive;

private:
    // Returns column index as used in the weld::TreeView API
    int externalColumnIndex(const QModelIndex& rIndex);

    QModelIndex modelIndex(int nRow, int nCol = 0,
                           const QModelIndex& rParentIndex = QModelIndex()) const;
    QModelIndex modelIndex(const weld::TreeIter& rIter, int nCol = 0) const;
    QtInstanceTreeIter treeIter(int nRow, const QModelIndex& rParentIndex = QModelIndex()) const;
    QStandardItem* itemFromIndex(const QModelIndex& rIndex) const;
    QModelIndex toggleButtonModelIndex(const weld::TreeIter& rIter) const;
    QModelIndex firstTextColumnModelIndex(const weld::TreeIter& rIter) const;
    static QAbstractItemView::SelectionMode mapSelectionMode(SelectionMode eMode);

    static Qt::CheckState toQtCheckState(TriState eTristate);
    static TriState toVclTriState(Qt::CheckState eCheckState);

private Q_SLOTS:
    void handleActivated();
    void handleDataChanged(const QModelIndex& rTopLeft, const QModelIndex& rBottomRight,
                           const QVector<int>& rRoles);
    void handleSelectionChanged();
};

/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */

Messung V0.5
C=96 H=95 G=95

¤ Dauer der Verarbeitung: 0.5 Sekunden  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.