/* * All or portions of this file Copyright (c) Amazon.com, Inc. or its affiliates or * its licensors. * * For complete copyright and license terms please see the LICENSE at the root of this * distribution (the "License"). All use of this software is governed by the License, * or, if provided, by the license below or the license accompanying this file. Do not * remove or modify any license notices. This file is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * */ #pragma once #include #include #include class StackEventsWidget; class StackEventsSplitter : public QSplitter { Q_OBJECT public: StackEventsSplitter(QSharedPointer eventsModel, QWidget* parent); QWidget* GetTopWidget() const; void SetTopWidget(QWidget* widget); void SetStackEventsModel(QSharedPointer eventsModel); void ShowEventLog(); void MaximizeEventLog(); void MinimizeEventLog(); signals: void RefreshTime(); private: StackEventsWidget* m_eventsWidget; QSharedPointer m_model; // allow time for stack operation to start before doing initial refresh static const long INITIAL_REFRESH_TIMEOUT_MS = 8000; QTimer m_initialRefreshTimer; void OnInitialRefreshTimeout(); static const long REFRESH_TIMEOUT_MS = 20000; QTimer m_refreshTimer; void OnRefreshTimeout(); void OnCommandStatusChanged(IStackEventsModel::CommandStatus commandStatus); };