void OutputItemHeaderWidget::maximizePart()
    {
        if (_maximized) {
            //item->_output->restoreSize();
            emit restoredSize();
            _maxButton->setIcon(GuiRegistry::instance().maximizeIcon());
        }
        else {
            //item->_output->maximizePart(item);
            emit maximizedPart();
            _maxButton->setIcon(GuiRegistry::instance().maximizeHighlightedIcon());
        }

        _maximized = !_maximized;
    }
示例#2
0
    void OutputWidget::present(MongoShell *shell, const std::vector<MongoShellResult> &results)
    {
        if (_prevResultsCount > 0) {
            clearAllParts();
        }
        int const RESULTS_SIZE = _prevResultsCount = results.size();
        bool const multipleResults = (RESULTS_SIZE > 1);
        
        _outputItemContentWidgets.clear();

        for (int i = 0; i < RESULTS_SIZE; ++i) {
            MongoShellResult shellResult = results[i];

            double secs = shellResult.elapsedMs() / 1000.f;
            ViewMode viewMode = AppRegistry::instance().settingsManager()->viewMode();
            if (_prevViewModes.size()) {
                viewMode = _prevViewModes.back();
                _prevViewModes.pop_back();
            }

            bool const firstItem = (0 == i);
            bool const lastItem = (RESULTS_SIZE-1 == i);

            OutputItemContentWidget* item = nullptr;
            if (shellResult.documents().size() > 0) {
                item = new OutputItemContentWidget(viewMode, shell, QtUtils::toQString(shellResult.type()),
                                                   shellResult.documents(), shellResult.queryInfo(), secs, 
                                                   multipleResults, firstItem, lastItem, 
                                                   shellResult.aggrInfo(), this);
            } else {
                item = new OutputItemContentWidget(viewMode, shell, QtUtils::toQString(shellResult.response()), 
                                                   secs, multipleResults, firstItem, lastItem, 
                                                   shellResult.aggrInfo(), this);
            }
            VERIFY(connect(item, SIGNAL(maximizedPart()), this, SLOT(maximizePart())));
            VERIFY(connect(item, SIGNAL(restoredSize()), this, SLOT(restoreSize())));
            _splitter->addWidget(item);
            _outputItemContentWidgets.push_back(item);
        }
        
        tryToMakeAllPartsEqualInSize();
    }
    void OutputItemHeaderWidget::maximizeMinimizePart()
    {
        // No maximize/minimize behaviour if there is only one query result
        if (!_multipleResults)
            return;

        if (_maximized) {   // restoring original size
            emit restoredSize();
            _maxButton->setIcon(GuiRegistry::instance().maximizeIcon());
            _maxButton->setToolTip("Maximize this output result (double-click on result header)");
            updateDockButtonOnToggleOrientation();
        }
        else {              // maximizing
            emit maximizedPart();
            _maxButton->setIcon(GuiRegistry::instance().minimizeIcon());
            _maxButton->setToolTip("Restore back to original size (double-click on result header)");
            _verticalLine->setVisible(true);
            _dockUndockButton->setVisible(true);
        }

        _maximized = !_maximized;
    }