Properly map the popup menu position to global coordinates.
This commit is contained in:
parent
49e5495414
commit
c967a013be
@ -25,7 +25,7 @@
|
||||
#define VER_LAMEXP_MAJOR 4
|
||||
#define VER_LAMEXP_MINOR_HI 0
|
||||
#define VER_LAMEXP_MINOR_LO 0
|
||||
#define VER_LAMEXP_BUILD 308
|
||||
#define VER_LAMEXP_BUILD 310
|
||||
#define VER_LAMEXP_SUFFIX RC-1
|
||||
|
||||
/*
|
||||
|
@ -1962,9 +1962,15 @@ void MainWindow::restoreCursor(void)
|
||||
*/
|
||||
void MainWindow::sourceFilesContextMenu(const QPoint &pos)
|
||||
{
|
||||
if(pos.x() <= sourceFileView->width() && pos.y() <= sourceFileView->height() && pos.x() >= 0 && pos.y() >= 0)
|
||||
QAbstractScrollArea *scrollArea = dynamic_cast<QAbstractScrollArea*>(QObject::sender());
|
||||
QWidget *sender = scrollArea ? scrollArea->viewport() : dynamic_cast<QWidget*>(QObject::sender());
|
||||
|
||||
if(sender)
|
||||
{
|
||||
m_sourceFilesContextMenu->popup(sourceFileView->mapToGlobal(pos));
|
||||
if(pos.x() <= sender->width() && pos.y() <= sender->height() && pos.x() >= 0 && pos.y() >= 0)
|
||||
{
|
||||
m_sourceFilesContextMenu->popup(sender->mapToGlobal(pos));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -2051,10 +2057,12 @@ void MainWindow::findFileContextActionTriggered(void)
|
||||
*/
|
||||
void MainWindow::outputFolderContextMenu(const QPoint &pos)
|
||||
{
|
||||
|
||||
if(pos.x() <= outputFolderView->width() && pos.y() <= outputFolderView->height() && pos.x() >= 0 && pos.y() >= 0)
|
||||
QAbstractScrollArea *scrollArea = dynamic_cast<QAbstractScrollArea*>(QObject::sender());
|
||||
QWidget *sender = scrollArea ? scrollArea->viewport() : dynamic_cast<QWidget*>(QObject::sender());
|
||||
|
||||
if(pos.x() <= sender->width() && pos.y() <= sender->height() && pos.x() >= 0 && pos.y() >= 0)
|
||||
{
|
||||
m_outputFolderContextMenu->popup(outputFolderView->mapToGlobal(pos));
|
||||
m_outputFolderContextMenu->popup(sender->mapToGlobal(pos));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -56,6 +56,8 @@
|
||||
|
||||
#include <Windows.h>
|
||||
|
||||
////////////////////////////////////////////////////////////
|
||||
|
||||
#define CHANGE_BACKGROUND_COLOR(WIDGET, COLOR) \
|
||||
{ \
|
||||
QPalette palette = WIDGET->palette(); \
|
||||
@ -69,6 +71,8 @@
|
||||
m_systemTray->setToolTip(QString().sprintf("LameXP v%d.%02d\n%ls", lamexp_version_major(), lamexp_version_minor(), QString(TXT).utf16())); \
|
||||
}
|
||||
|
||||
#define SET_FONT_BOLD(WIDGET,BOLD) { QFont _font = WIDGET->font(); _font.setBold(BOLD); WIDGET->setFont(_font); }
|
||||
|
||||
////////////////////////////////////////////////////////////
|
||||
// Constructor
|
||||
////////////////////////////////////////////////////////////
|
||||
@ -125,7 +129,8 @@ ProcessingDialog::ProcessingDialog(FileListModel *fileListModel, AudioFileModel
|
||||
connect(view_log, SIGNAL(customContextMenuRequested(QPoint)), this, SLOT(contextMenuTriggered(QPoint)));
|
||||
connect(contextMenuDetailsAction, SIGNAL(triggered(bool)), this, SLOT(contextMenuDetailsActionTriggered()));
|
||||
connect(contextMenuShowFileAction, SIGNAL(triggered(bool)), this, SLOT(contextMenuShowFileActionTriggered()));
|
||||
|
||||
SET_FONT_BOLD(contextMenuDetailsAction, true);
|
||||
|
||||
//Enque jobs
|
||||
if(fileListModel)
|
||||
{
|
||||
@ -422,9 +427,12 @@ void ProcessingDialog::logViewDoubleClicked(const QModelIndex &index)
|
||||
|
||||
void ProcessingDialog::contextMenuTriggered(const QPoint &pos)
|
||||
{
|
||||
if(pos.x() <= view_log->width() && pos.y() <= view_log->height() && pos.x() >= 0 && pos.y() >= 0)
|
||||
QAbstractScrollArea *scrollArea = dynamic_cast<QAbstractScrollArea*>(QObject::sender());
|
||||
QWidget *sender = scrollArea ? scrollArea->viewport() : dynamic_cast<QWidget*>(QObject::sender());
|
||||
|
||||
if(pos.x() <= sender->width() && pos.y() <= sender->height() && pos.x() >= 0 && pos.y() >= 0)
|
||||
{
|
||||
m_contextMenu->popup(view_log->mapToGlobal(pos));
|
||||
m_contextMenu->popup(sender->mapToGlobal(pos));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -298,33 +298,44 @@ void lamexp_message_handler(QtMsgType type, const char *msg)
|
||||
*/
|
||||
void lamexp_init_console(int argc, char* argv[])
|
||||
{
|
||||
bool enableConsole = lamexp_version_demo();
|
||||
|
||||
for(int i = 0; i < argc; i++)
|
||||
{
|
||||
if(lamexp_version_demo() || !_stricmp(argv[i], "--console"))
|
||||
if(!_stricmp(argv[i], "--console"))
|
||||
{
|
||||
if(AllocConsole())
|
||||
{
|
||||
//See: http://support.microsoft.com/default.aspx?scid=kb;en-us;105305
|
||||
int hCrtStdOut = _open_osfhandle((long) GetStdHandle(STD_OUTPUT_HANDLE), _O_TEXT);
|
||||
int hCrtStdErr = _open_osfhandle((long) GetStdHandle(STD_ERROR_HANDLE), _O_TEXT);
|
||||
FILE *hfStdOut = _fdopen(hCrtStdOut, "w");
|
||||
FILE *hfStderr = _fdopen(hCrtStdErr, "w");
|
||||
*stdout = *hfStdOut;
|
||||
*stderr = *hfStderr;
|
||||
setvbuf(stdout, NULL, _IONBF, 0);
|
||||
setvbuf(stderr, NULL, _IONBF, 0);
|
||||
}
|
||||
|
||||
HMENU hMenu = GetSystemMenu(GetConsoleWindow(), 0);
|
||||
EnableMenuItem(hMenu, SC_CLOSE, MF_BYCOMMAND | MF_GRAYED);
|
||||
RemoveMenu(hMenu, SC_CLOSE, MF_BYCOMMAND);
|
||||
|
||||
SetConsoleCtrlHandler(NULL, TRUE);
|
||||
SetConsoleTitle(L"LameXP - Audio Encoder Front-End | Debug Console");
|
||||
SetConsoleOutputCP(CP_UTF8);
|
||||
|
||||
break;
|
||||
enableConsole = true;
|
||||
}
|
||||
else if(!_stricmp(argv[i], "--no-console"))
|
||||
{
|
||||
enableConsole = false;
|
||||
}
|
||||
}
|
||||
|
||||
if(enableConsole)
|
||||
{
|
||||
if(AllocConsole())
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
//See: http://support.microsoft.com/default.aspx?scid=kb;en-us;105305
|
||||
//-------------------------------------------------------------------
|
||||
int hCrtStdOut = _open_osfhandle((long) GetStdHandle(STD_OUTPUT_HANDLE), _O_TEXT);
|
||||
int hCrtStdErr = _open_osfhandle((long) GetStdHandle(STD_ERROR_HANDLE), _O_TEXT);
|
||||
FILE *hfStdOut = _fdopen(hCrtStdOut, "w");
|
||||
FILE *hfStderr = _fdopen(hCrtStdErr, "w");
|
||||
*stdout = *hfStdOut;
|
||||
*stderr = *hfStderr;
|
||||
setvbuf(stdout, NULL, _IONBF, 0);
|
||||
setvbuf(stderr, NULL, _IONBF, 0);
|
||||
}
|
||||
|
||||
HMENU hMenu = GetSystemMenu(GetConsoleWindow(), 0);
|
||||
EnableMenuItem(hMenu, SC_CLOSE, MF_BYCOMMAND | MF_GRAYED);
|
||||
RemoveMenu(hMenu, SC_CLOSE, MF_BYCOMMAND);
|
||||
|
||||
SetConsoleCtrlHandler(NULL, TRUE);
|
||||
SetConsoleTitle(L"LameXP - Audio Encoder Front-End | Debug Console");
|
||||
SetConsoleOutputCP(CP_UTF8);
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user