summaryrefslogtreecommitdiff
path: root/src/plugins
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins')
-rw-r--r--src/plugins/coreplugin/editormanager/editormanager.cpp10
-rw-r--r--src/plugins/coreplugin/editormanager/openeditorswindow.cpp20
-rw-r--r--src/plugins/coreplugin/editormanager/openeditorswindow.h12
3 files changed, 31 insertions, 11 deletions
diff --git a/src/plugins/coreplugin/editormanager/editormanager.cpp b/src/plugins/coreplugin/editormanager/editormanager.cpp
index cb27e5daf8..a430488c38 100644
--- a/src/plugins/coreplugin/editormanager/editormanager.cpp
+++ b/src/plugins/coreplugin/editormanager/editormanager.cpp
@@ -2183,9 +2183,13 @@ void EditorManager::showPopupOrSelectDocument()
QWidget *referenceWidget = activeRoot->isVisible() ? activeRoot : activeRoot->window();
QTC_CHECK(referenceWidget->isVisible());
const QPoint p = referenceWidget->mapToGlobal(QPoint(0, 0));
- windowPopup()->move((referenceWidget->width() - d->m_windowPopup->width()) / 2 + p.x(),
- (referenceWidget->height() - d->m_windowPopup->height()) / 2 + p.y());
- windowPopup()->setVisible(true);
+ OpenEditorsWindow *popup = windowPopup();
+ popup->setMaximumSize(qMax(popup->minimumWidth(), referenceWidget->width() / 2),
+ qMax(popup->minimumHeight(), referenceWidget->height() / 2));
+ popup->adjustSize();
+ popup->move((referenceWidget->width() - popup->width()) / 2 + p.x(),
+ (referenceWidget->height() - popup->height()) / 2 + p.y());
+ popup->setVisible(true);
}
}
diff --git a/src/plugins/coreplugin/editormanager/openeditorswindow.cpp b/src/plugins/coreplugin/editormanager/openeditorswindow.cpp
index 7d0af0b8a2..c58f3cba65 100644
--- a/src/plugins/coreplugin/editormanager/openeditorswindow.cpp
+++ b/src/plugins/coreplugin/editormanager/openeditorswindow.cpp
@@ -38,8 +38,8 @@
#include <QFocusEvent>
#include <QHeaderView>
-#include <QTreeWidget>
#include <QVBoxLayout>
+#include <QScrollBar>
Q_DECLARE_METATYPE(Core::Internal::EditorView*)
Q_DECLARE_METATYPE(Core::IDocument*)
@@ -47,15 +47,12 @@ Q_DECLARE_METATYPE(Core::IDocument*)
using namespace Core;
using namespace Core::Internal;
-const int WIDTH = 300;
-const int HEIGHT = 200;
-
OpenEditorsWindow::OpenEditorsWindow(QWidget *parent) :
QFrame(parent, Qt::Popup),
m_emptyIcon(QLatin1String(":/core/images/empty14.png")),
- m_editorList(new QTreeWidget(this))
+ m_editorList(new OpenEditorsTreeWidget(this))
{
- resize(QSize(WIDTH, HEIGHT));
+ setMinimumSize(300, 200);
m_editorList->setColumnCount(1);
m_editorList->header()->hide();
m_editorList->setIndentation(0);
@@ -158,6 +155,17 @@ void OpenEditorsWindow::selectPreviousEditor()
selectUpDown(false);
}
+QSize OpenEditorsTreeWidget::sizeHint() const
+{
+ return QSize(sizeHintForColumn(0) + verticalScrollBar()->width() + frameWidth() * 2,
+ viewportSizeHint().height() + frameWidth() * 2);
+}
+
+QSize OpenEditorsWindow::sizeHint() const
+{
+ return m_editorList->sizeHint() + QSize(frameWidth() * 2, frameWidth() * 2);
+}
+
void OpenEditorsWindow::selectNextEditor()
{
selectUpDown(true);
diff --git a/src/plugins/coreplugin/editormanager/openeditorswindow.h b/src/plugins/coreplugin/editormanager/openeditorswindow.h
index 6595bc1fe1..6445b37dd6 100644
--- a/src/plugins/coreplugin/editormanager/openeditorswindow.h
+++ b/src/plugins/coreplugin/editormanager/openeditorswindow.h
@@ -35,10 +35,10 @@
#include <QFrame>
#include <QIcon>
#include <QList>
+#include <QTreeWidget>
QT_BEGIN_NAMESPACE
class QTreeWidgetItem;
-class QTreeWidget;
QT_END_NAMESPACE
namespace Core {
@@ -48,6 +48,13 @@ class IEditor;
namespace Internal {
+class OpenEditorsTreeWidget : public QTreeWidget {
+public:
+ explicit OpenEditorsTreeWidget(QWidget *parent = 0) : QTreeWidget(parent) {}
+ ~OpenEditorsTreeWidget() {}
+ QSize sizeHint() const;
+};
+
class EditorHistoryItem;
class OpenEditorsWindow : public QFrame
@@ -66,6 +73,7 @@ public:
void setVisible(bool visible);
void selectNextEditor();
void selectPreviousEditor();
+ QSize sizeHint() const;
public slots:
void selectAndHide();
@@ -83,7 +91,7 @@ private:
bool isSameFile(IEditor *editorA, IEditor *editorB) const;
const QIcon m_emptyIcon;
- QTreeWidget *m_editorList;
+ OpenEditorsTreeWidget *m_editorList;
};
} // namespace Internal