void updatePosition() { int x, y; QRect widgetRect = mWidget->geometry(); int splitterWidth = mSplitter->width(); int handleWidth = mSplitter->handleWidth(); int width = q->width(); if (!isVertical()) { // FIXME: Make this configurable y = 30; if (mDirection == LTR) { if (isVisible()) { x = widgetRect.right() + handleWidth; } else { x = 0; } } else { // RTL if (isVisible()) { x = widgetRect.left() - handleWidth - width; } else { x = splitterWidth - handleWidth - width; } } } else { // FIXME x = 0; y = 0; } q->move(x, y); }
void SplitView::split(BufferView* view, Qt::Orientation orientation) { if (view) { QSplitter* container = qobject_cast<QSplitter*>(view->parentWidget()); if (container) { int index = container->indexOf(view); BufferView* bv = 0; const int size = (orientation == Qt::Horizontal ? container->width() : container->height()) - container->handleWidth(); if (container->count() == 1 || container->orientation() == orientation) { container->setOrientation(orientation); bv = createBufferView(container, index + 1); QList<int> sizes; for (int i = 0; i < container->count(); ++i) sizes += size / container->count(); container->setSizes(sizes); } else if (index != -1) { QList<int> sizes = container->sizes(); QSplitter* splitter = wrap(view, orientation); if (splitter) { container->setSizes(sizes); bv = createBufferView(splitter); splitter->setSizes(QList<int>() << size/2 << size/2); } } if (bv) { bv->setBuffer(view->buffer()); emit viewAdded(bv); } } } }
AutoImportWindow::AutoImportWindow(QWidget* parent) : QWidget(parent) { resultsTable_ = setupFilesTable(); fileNameParser_ = new FileNameParserDialog(this); filePatternLabel_ = new QLabel(); safeIntervalBox = new QSpinBox(); safeIntervalBox->setMinimum(30); safeIntervalBox->setMaximum(84600); safeIntervalBox->setValue(ProjectPreferences().importSafeInterval()); statusLabel_ = new QLabel(this); statusLabel_->setWordWrap(true); QFont font = statusLabel_->font(); font.setBold(true); statusLabel_->setFont(font); deleteLabel_ = new QLabel("Original images will be DELETED after import! If not intended, change the option on left."); deleteLabel_->setWordWrap(true); deleteLabel_->hide(); QPalette pal = deleteLabel_->palette(); pal.setColor(QPalette::WindowText, Qt::red); deleteLabel_->setPalette(pal); importButton_ = new QPushButton(ApplicationData::icon("play"), tr("Start Import")); importButton_->setCheckable(true); importButton_->setChecked(false); connect(importButton_, &QAbstractButton::clicked, this, &AutoImportWindow::executeImport); refreshButton_ = new QPushButton(ApplicationData::icon("refresh"), tr("Rescan Import Folder")); connect(refreshButton_, &QAbstractButton::clicked, this, &AutoImportWindow::analyzeImport); priorityQueueOption_ = new QCheckBox("Prioritize the processing of imported images"); priorityQueueOption_->setChecked(true); continuous = new QCheckBox("Continuously import new images in the import folder"); continuous->setChecked(false); connect(continuous, &QCheckBox::toggled, [ = ] (bool check){ if(check) timer_.start(safeIntervalBox->value()*1000); else timer_.stop(); }); inputContiner_ = setupInputContainer(); QSplitter* mainSplitter = new QSplitter(Qt::Horizontal); mainSplitter->setHandleWidth(4); mainSplitter->addWidget(inputContiner_); mainSplitter->addWidget(setupStatusContinaer()); mainSplitter->setStretchFactor(0, 1); mainSplitter->setStretchFactor(1, 1); int width = mainSplitter->width(); mainSplitter->setSizes(QList<int>() << width/2 << width/2); QGridLayout* mainLayout = new QGridLayout; mainLayout->setMargin(0); mainLayout->setSpacing(0); mainLayout->addWidget(mainSplitter); setLayout(mainLayout); analyzeImport(); if(ProjectPreferences().importRestartCheck()) executeImport(true); connect(&process_, static_cast<void(QProcess::*)(int)>(&QProcess::finished), this, &AutoImportWindow::continueExecution); connect(&watcher_, &QFileSystemWatcher::directoryChanged, [=] { analyzeImport(); if(continuous->isChecked()) executeImport(true); }); connect(&timer_, &QTimer::timeout, [=] { analyzeImport(); if(continuous->isChecked()) executeImport(true); }); }
void KKbdAccessExtensions::showIcon() { if (!d->panel) return; QPoint p; // kdDebug() << "KKbdAccessExtensions::showIcon: topLevelWidget = " << d->panel->topLevelWidget()->name() << endl; if (::qt_cast<QSplitter*>( d->panel )) { QSplitter* splitter = dynamic_cast<QSplitter *>(d->panel); int handleNdx = d->handleNdx - 1; QValueList<int> sizes = splitter->sizes(); // kdDebug() << "KKbdAccessExtensions::showIcon: sizes = " << sizes << endl; if (splitter->orientation() == Qt::Horizontal) { d->icon->setShape(Qt::SizeHorCursor); p.setX(sizes[handleNdx] + (splitter->handleWidth() / 2)); p.setY(splitter->height() / 2); } else { d->icon->setShape(Qt::SizeVerCursor); p.setX(splitter->width() / 2); p.setY(sizes[handleNdx] + (splitter->handleWidth() / 2)); } // kdDebug() << "KKbdAccessExtensions::showIcon: p = " << p << endl; p = splitter->mapToGlobal(p); // kdDebug() << "KKbdAccessExtensions::showIcon: mapToGlobal = " << p << endl; } else { QDockWindow* dockWindow = dynamic_cast<QDockWindow *>(d->panel); p = dockWindow->pos(); if (dockWindow->area()) { // kdDebug() << "KKbdAccessExtensions::showIcon: pos = " << p << " of window = " << dockWindow->parentWidget()->name() << endl; p = dockWindow->parentWidget()->mapTo(dockWindow->topLevelWidget(), p); // kdDebug() << "KKbdAccessExtensions::showIcon: mapTo = " << p << " of window = " << dockWindow->topLevelWidget()->name() << endl; // TODO: How to get the handle width? if (d->handleNdx == 1) { d->icon->setShape(Qt::SizeHorCursor); if (dockWindow->area()->orientation() == Qt::Vertical) { if (dockWindow->area()->handlePosition() == QDockArea::Normal) // Handle is to the right of the dock window. p.setX(p.x() + dockWindow->width()); // else Handle is to the left of the dock window. } else // Handle is to the right of the dock window. p.setX(p.x() + dockWindow->width()); p.setY(p.y() + (dockWindow->height() / 2)); } else { d->icon->setShape(Qt::SizeVerCursor); p.setX(p.x() + (dockWindow->width() / 2)); if (dockWindow->area()->orientation() == Qt::Vertical) // Handle is below the dock window. p.setY(p.y() + dockWindow->height()); else { if (dockWindow->area()->handlePosition() == QDockArea::Normal) // Handle is below the dock window. p.setY(p.y() + dockWindow->height()); // else Handle is above the dock window. } } p = dockWindow->topLevelWidget()->mapToGlobal(p); } else { d->icon->setShape(Qt::SizeAllCursor); p = QPoint(dockWindow->width() / 2, dockWindow->height() / 2); p = dockWindow->mapToGlobal(p); // Undocked. Position in center of window. } } // kdDebug() << "KKbdAccessExtensions::showIcon: show(p) = " << p << endl; d->icon->show(p); }