diff --git a/src/libs/extensionsystem/mainwindow.ui b/src/libs/extensionsystem/mainwindow.ui new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/src/libs/utils/fancymainwindow.cpp b/src/libs/utils/fancymainwindow.cpp index bbb703f8f7a50421503046e1ab93aa358e8a3a99..6428e20bcd42147aeb5070339378b3a813c10f96 100644 --- a/src/libs/utils/fancymainwindow.cpp +++ b/src/libs/utils/fancymainwindow.cpp @@ -33,7 +33,6 @@ #include <QtGui/QDockWidget> #include <QtCore/QSettings> - using namespace Utils; FancyMainWindow::FancyMainWindow(QWidget *parent) @@ -41,6 +40,7 @@ FancyMainWindow::FancyMainWindow(QWidget *parent) m_locked(true), m_handleDockVisibilityChanges(true) { + setProperty("panelwidget", true); } QDockWidget *FancyMainWindow::addDockForWidget(QWidget *widget) diff --git a/src/plugins/coreplugin/manhattanstyle.cpp b/src/plugins/coreplugin/manhattanstyle.cpp index 924b290c763acc725039b53b5abd14f5d2e18dad..104151875927ff45164ee9e6a27068ae3d08732a 100644 --- a/src/plugins/coreplugin/manhattanstyle.cpp +++ b/src/plugins/coreplugin/manhattanstyle.cpp @@ -55,6 +55,7 @@ #include <QtGui/QStyleFactory> #include <QtGui/QStyleOption> #include <QtGui/QToolBar> +#include <QtGui/QTreeView> #include <QtGui/QToolButton> #include <QtGui/QAbstractItemView> @@ -88,10 +89,9 @@ bool panelWidget(const QWidget *widget) while (p) { if (qobject_cast<const QToolBar *>(p) || qobject_cast<const QStatusBar *>(p) || - qobject_cast<const QMenuBar *>(p)) + qobject_cast<const QMenuBar *>(p) || + p->property("panelwidget").toBool()) return styleEnabled(widget); - if (p->property("panelwidget").toBool()) - return true; p = p->parentWidget(); } return false; @@ -197,6 +197,8 @@ int ManhattanStyle::pixelMetric(PixelMetric metric, const QStyleOption *option, if (panelWidget(widget)) retval = 16; break; + case PM_DockWidgetSeparatorExtent: + return 1; case PM_MenuPanelWidth: case PM_MenuBarHMargin: case PM_MenuBarVMargin: @@ -260,6 +262,7 @@ void ManhattanStyle::polish(QWidget *widget) if (qobject_cast<QToolBar*>(widget)) widget->removeEventFilter(baseStyle()); } + if (panelWidget(widget)) { widget->setAttribute(Qt::WA_LayoutUsesWidgetRect, true); if (qobject_cast<QToolButton*>(widget)) { @@ -594,6 +597,27 @@ void ManhattanStyle::drawControl(ControlElement element, const QStyleOption *opt return QProxyStyle::drawControl(element, option, painter, widget); switch (element) { + case CE_Splitter: + painter->fillRect(option->rect, Utils::StyleHelper::borderColor()); + break; + + case CE_TabBarTabShape: + // Most styles draw a single dark outline. This looks rather ugly when combined with our + // single pixel dark separator so we adjust the first tab to compensate for this + + if (const QStyleOptionTabV3 *tab = qstyleoption_cast<const QStyleOptionTabV3 *>(option)) { + QStyleOptionTabV3 adjustedTab = *tab; + if (tab->position == QStyleOptionTab::Beginning) { + if (option->direction == Qt::LeftToRight) + adjustedTab.rect = adjustedTab.rect.adjusted(-1, 0, 0, 0); + else + adjustedTab.rect = adjustedTab.rect.adjusted(0, 0, 1 ,0); + } + QProxyStyle::drawControl(element, &adjustedTab, painter, widget); + return; + } + break; + case CE_MenuBarItem: painter->save(); if (const QStyleOptionMenuItem *mbi = qstyleoption_cast<const QStyleOptionMenuItem *>(option)) { diff --git a/src/plugins/debugger/breakwindow.cpp b/src/plugins/debugger/breakwindow.cpp index 6cd9b4841d660ae714f87a3d6a89c9ae07a94193..953d1cea250342d324114030c6835336461ab32b 100644 --- a/src/plugins/debugger/breakwindow.cpp +++ b/src/plugins/debugger/breakwindow.cpp @@ -83,6 +83,7 @@ BreakWindow::BreakWindow(Debugger::DebuggerManager *manager) : m_manager(manager), m_alwaysResizeColumnsToContents(false) { QAction *act = theDebuggerAction(UseAlternatingRowColors); + setFrameStyle(QFrame::NoFrame); setWindowTitle(tr("Breakpoints")); setWindowIcon(QIcon(":/debugger/images/debugger_breakpoints.png")); setAlternatingRowColors(act->isChecked()); diff --git a/src/plugins/debugger/debuggermanager.cpp b/src/plugins/debugger/debuggermanager.cpp index 9c0e217e14ee02c6d06c36cb353957aa3c237e8c..70c02b886ffc4a9986b9708ed09e18b9417f5ed7 100644 --- a/src/plugins/debugger/debuggermanager.cpp +++ b/src/plugins/debugger/debuggermanager.cpp @@ -64,6 +64,7 @@ #endif #include <coreplugin/icore.h> +#include <coreplugin/minisplitter.h> #include <coreplugin/editormanager/editormanager.h> #include <utils/qtcassert.h> #include <projectexplorer/toolchain.h> @@ -585,7 +586,7 @@ void DebuggerManager::init() d->m_threadsDock = uiSwitcher->createDockWidget(LANG_CPP, d->m_threadsWindow); - QSplitter *localsAndWatchers = new QSplitter(Qt::Vertical); + QSplitter *localsAndWatchers = new Core::MiniSplitter(Qt::Vertical); localsAndWatchers->setWindowTitle(d->m_localsWindow->windowTitle()); localsAndWatchers->addWidget(d->m_localsWindow); localsAndWatchers->addWidget(d->m_watchersWindow); diff --git a/src/plugins/debugger/debuggeroutputwindow.cpp b/src/plugins/debugger/debuggeroutputwindow.cpp index 45e535c229937791f41091be044c6e51c6875328..0c39f9a15318644e10b2f1ab88f51def56f1c3f2 100644 --- a/src/plugins/debugger/debuggeroutputwindow.cpp +++ b/src/plugins/debugger/debuggeroutputwindow.cpp @@ -47,6 +47,7 @@ #include <aggregation/aggregate.h> #include <coreplugin/findplaceholder.h> +#include <coreplugin/minisplitter.h> #include <find/basetextfind.h> using namespace Debugger; @@ -329,7 +330,8 @@ DebuggerOutputWindow::DebuggerOutputWindow(QWidget *parent) { setWindowTitle(tr("Debugger")); - QSplitter *m_splitter = new QSplitter(Qt::Horizontal, this); + QSplitter *m_splitter = new Core::MiniSplitter(Qt::Horizontal); + m_splitter->setParent(this); // mixed input/output m_combinedText = new CombinedPane(this); m_combinedText->setReadOnly(true); diff --git a/src/plugins/debugger/snapshotwindow.cpp b/src/plugins/debugger/snapshotwindow.cpp index 15ecd0b22e557d8b66e38b1cb5e385bd0489ca45..ab11f0fbfbef6e31bf7f60cf711cb7fff0a355e9 100644 --- a/src/plugins/debugger/snapshotwindow.cpp +++ b/src/plugins/debugger/snapshotwindow.cpp @@ -74,6 +74,7 @@ SnapshotWindow::SnapshotWindow(DebuggerManager *manager, QWidget *parent) QAction *act = theDebuggerAction(UseAlternatingRowColors); setWindowTitle(tr("Snapshots")); + setFrameStyle(QFrame::NoFrame); setAlternatingRowColors(act->isChecked()); setRootIsDecorated(false); setIconSize(QSize(10, 10)); diff --git a/src/plugins/debugger/sourcefileswindow.cpp b/src/plugins/debugger/sourcefileswindow.cpp index 37ac5f75aa366f763a2e9f9c41dc4e6784ec6e1e..5d321fc81c1944cf89e0be5a6467332a36c162ae 100644 --- a/src/plugins/debugger/sourcefileswindow.cpp +++ b/src/plugins/debugger/sourcefileswindow.cpp @@ -169,6 +169,7 @@ SourceFilesWindow::SourceFilesWindow(QWidget *parent) proxyModel->setSourceModel(m_model); setModel(proxyModel); + setFrameStyle(QFrame::NoFrame); setWindowTitle(tr("Source Files")); setSortingEnabled(true); setAlternatingRowColors(act->isChecked()); diff --git a/src/plugins/debugger/stackwindow.cpp b/src/plugins/debugger/stackwindow.cpp index a0029b79a70bd027a178d683f7c86574548c414d..c5e3637801b91c225a0aff82c1706aa3fe332c9c 100644 --- a/src/plugins/debugger/stackwindow.cpp +++ b/src/plugins/debugger/stackwindow.cpp @@ -54,6 +54,7 @@ namespace Internal { StackWindow::StackWindow(DebuggerManager *manager, QWidget *parent) : QTreeView(parent), m_manager(manager), m_alwaysResizeColumnsToContents(false) { + setFrameStyle(QFrame::NoFrame); m_disassemblerAgent = new DisassemblerViewAgent(manager); QAction *act = theDebuggerAction(UseAlternatingRowColors); diff --git a/src/plugins/debugger/threadswindow.cpp b/src/plugins/debugger/threadswindow.cpp index 472cba0e4a03b97dce8290023b10e1605ac52a26..951a0eb03852dc8c8d82548385142d093f287645 100644 --- a/src/plugins/debugger/threadswindow.cpp +++ b/src/plugins/debugger/threadswindow.cpp @@ -43,6 +43,7 @@ ThreadsWindow::ThreadsWindow(QWidget *parent) { QAction *act = theDebuggerAction(UseAlternatingRowColors); + setFrameStyle(QFrame::NoFrame); setWindowTitle(tr("Thread")); setAlternatingRowColors(act->isChecked()); setRootIsDecorated(false); diff --git a/src/plugins/debugger/watchwindow.cpp b/src/plugins/debugger/watchwindow.cpp index 7d076e265943fa6a5dfc3f8cc628d1efbefaf24e..77c9f2bd9bb51a40f78d7d523b4e25e35ed45ce9 100644 --- a/src/plugins/debugger/watchwindow.cpp +++ b/src/plugins/debugger/watchwindow.cpp @@ -125,6 +125,7 @@ WatchWindow::WatchWindow(Type type, DebuggerManager *manager, QWidget *parent) m_grabbing = false; QAction *act = theDebuggerAction(UseAlternatingRowColors); + setFrameStyle(QFrame::NoFrame); setWindowTitle(tr("Locals and Watchers")); setAlternatingRowColors(act->isChecked()); setIndentation(indentation() * 9/10); diff --git a/src/plugins/designer/editorwidget.cpp b/src/plugins/designer/editorwidget.cpp index cd6796e1e676ba50b304a90a123ee855bb73f099..d35cd0e05b4e9ab06cd3f7e9bfd40374dcaeecb9 100644 --- a/src/plugins/designer/editorwidget.cpp +++ b/src/plugins/designer/editorwidget.cpp @@ -35,6 +35,7 @@ #include <QtGui/QVBoxLayout> #include <QtGui/QDockWidget> +#include <QtGui/QAbstractItemView> using namespace Designer::Constants; @@ -59,6 +60,13 @@ EditorWidget::EditorWidget(FormEditorW *few, QWidget *parent) : QWidget *subWindow = subs[i]; subWindow->setWindowTitle(subs[i]->windowTitle()); m_designerDockWidgets[i] = addDockForWidget(subWindow); + + // Since we have 1-pixel splitters, we generally want to remove + // frames around item views. So we apply this hack for now. + QList<QAbstractItemView*> frames = subWindow->findChildren<QAbstractItemView*>(); + for (int i = 0 ; i< frames.count(); ++i) + frames[i]->setFrameStyle(QFrame::NoFrame); + } resetToDefaultLayout(); } diff --git a/src/plugins/designer/formeditorstack.cpp b/src/plugins/designer/formeditorstack.cpp index a21a81595ccc4b463342133c302aff834dd43624..af1f3813c1545404f086837ea9e438d593aa67bd 100644 --- a/src/plugins/designer/formeditorstack.cpp +++ b/src/plugins/designer/formeditorstack.cpp @@ -80,6 +80,11 @@ void FormEditorStack::add(const EditorData &data) if (Designer::Constants::Internal::debug) qDebug() << "FormEditorStack::add" << data.widgetHost; + + // Since we have 1 pixel splitters we enforce no frame + // on the content widget + if (QFrame *frame = qobject_cast<QFrame*>(data.widgetHost)) + frame->setFrameStyle(QFrame::NoFrame); } int FormEditorStack::indexOf(const QDesignerFormWindowInterface *fw) const